首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ruby中用OpenSSL解密aes-128-gcm tls包时的一个非常奇怪的现象

在Ruby中使用OpenSSL解密AES-128-GCM TLS包时出现的奇怪现象可能是由于以下原因导致的:

  1. 不正确的密钥或密钥长度:AES-128-GCM需要128位的密钥。请确保您使用的密钥长度正确,并且密钥与加密时使用的密钥一致。
  2. 不正确的加密模式:AES-128-GCM使用Galois/Counter Mode (GCM)进行加密。请确认您在解密时使用了正确的加密模式。
  3. 错误的解密算法或配置:确保您使用的是OpenSSL中适用于AES-128-GCM解密的正确算法和配置。您可以参考OpenSSL文档或相关的Ruby OpenSSL库文档以获取正确的解密算法和配置信息。
  4. 数据完整性问题:AES-128-GCM提供了数据完整性验证功能。如果解密的数据在传输过程中被篡改或损坏,可能会导致解密出现奇怪的现象。请确保数据在传输过程中没有被篡改,并且使用正确的验证标签。

对于这个奇怪现象的具体原因,没有提供足够的上下文来进行更准确的判断。建议您检查上述可能的原因,并参考Ruby OpenSSL文档、OpenSSL文档以及相关的编程资源来解决该问题。

在腾讯云中,您可以使用腾讯云的云服务器(CVM)来部署和运行Ruby应用程序。腾讯云的CVM提供高性能、可靠的云服务器实例,并支持多种操作系统和应用程序的部署。您可以访问腾讯云CVM产品介绍页面(https://cloud.tencent.com/product/cvm)了解更多详细信息。

请注意,以上答案仅供参考,具体解决方案可能因您的具体环境和要求而有所不同。建议您在遇到问题时参考官方文档、开发者社区或咨询专业的技术人员以获得准确的帮助和支持。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

让大象起舞第二弹---HTTPS计算性能优化

假如我们需要增加一个IP黑名单,事实上tcp accept就可以开始禁止该IP连接,不需要等到HTTP头部数据解析完后才开始工作,因此Accpet之后所有开销都是浪费。...aes-ni: OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-128-gcm 或者代码里将 crypto/evp...这样完全握手快要结束,nginx会发送new session ticket消息生成一个ticket。...客户端在后续请求过程中会在client hello里携带这个ticket,如果nginx能够正确解密这个ticket,标明session能够复用。...只是 TLS 协议一个扩展特性,目前支持率不是很广泛,只有 60% 左右。 2.session ticket 需要维护一个全局 key 来加解密,需要考虑 KEY 安全性和部署效率。

1.1K10

让互联网更快协议,QUIC 腾讯实践及性能优化

如果你刚刚才听说 HTTP2 是下一代互联网协议,如果你刚刚才关注到 TLS1.3 是一个革命性具有里程碑意义协议,但是这两个协议却一直在被另一个更新兴协议所影响和挑战。...通过异步代理方式显然不可能。原因是: 会极大降低用户访问速度。由于应用层一个字节都需要对称加解密,使用异步方式实现会严重降低加解密实时性。 那有没有同步优化方式呢?有。...通过环境变量 aes-ni: OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-128-gcm 或者代码里将 crypto...这里需要注意是,如果需要单独使用 openssl API 进行 AES 对称加解密,最好使用 aes evp API,这样才会默认开启 AES-NI 指令。...为了实现传输并发性,它又实现了 HTTP2 大部分特性,包括多路复用,流量控制等。 虽然如此复杂,但是 QUIC 作为一个新兴协议,已经展现了非常强大生命力和广阔前景。

4.6K81
  • 现代密码学实践指南

    密码学理论艰深,概念繁多,本人知识水平有限,错误难免,如果您发现错误,请务必指出,非常感谢! ---- 下文分类介绍各种适用场景下,你应该使用现代密码学算法 1....非对称加密 应该使用NaCl库 适用场景:当你需要加密消息,发给陌生人,并且对方异步接收消息,做离线解密。...非对称签名 应该使用NaCl,Ed25519,或者RFC6979 应用场景:如果你设计一种新比特币,或者一个Ruby Gems或者Vagrant imges文件签名系统,或者数字版权保护系统(DRM...AES-CBC 关于AES-CBC,AES-GCM流行之前,TLS主要依赖AES-CBC,而由于历史原因,TLS设计之初固定选择了MAC-then-Encrypt结构,AES-CBC和MAC-then-encrypt...结合,为选择密文攻击(CCA)创造了便利条件,TLS历史上有多个漏洞都和CBC模式有关: The POODLE CBC oracle attack:参考: 1.POODLE一个分析 2.openssl

    1K20

    如何建立TLS连接?TLS握手失败可能这个原因!

    网络排查两大鸿沟之一 应用现象跟网络现象之间鸿沟:看得懂应用层日志,但不知道网络到底发生啥。 这里日志也无法告诉我们:到底TLS握手哪里问题。所以要做点别的事。...因为从前面strace openssl输出发现,客户端本地也有中间证书且 过期: 这两张中间证书,签发机构是同一个CA,证书名称也相同,这就导致了OpenSSL在做信任链校验,优先用了本地中间证书...若你对TLS不熟,到这可能有点“爆炸”。核心在于:每次证书更新, 它对应私钥不是必须要更新,可保持不变。 我们把本地已过期中间证书,称old_cert,新中间证书称new_cert。...总结 加密算法类型 对称加密算法:加密和解密用同一个密钥,典型算法有AES、DES。 非对称加密算法:加密和解密用不同密钥,典型非对称加密算法有RSA、ECDSA。...Trust store 它是客户端使用本地CA证书存储,其中文件过期的话可能导致一些问题,排查可以重点关注。

    1.2K40

    让互联网更快协议,QUIC腾讯实践及性能优化

    通过异步代理方式显然不可能。原因是: 会极大降低用户访问速度。由于应用层一个字节都需要对称加解密,使用异步方式实现会严重降低加解密实时性。 那有没有同步优化方式呢?有。...通过环境变量 aes-ni: OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-128-gcm 或者代码里将 crypto...这里需要注意是,如果需要单独使用 openssl API 进行 AES 对称加解密,最好使用 aes evp API,这样才会默认开启 AES-NI 指令。...为了实现传输安全性,它又彻底重构了 TLS 协议,包括证书压缩,握手消息,0RTT 等。虽然后续可能会采用 TLS1.3 协议,但是事实上是 QUIC 推动了 TLS1.3 发展。...为了实现传输并发性,它又实现了 HTTP2 大部分特性,包括多路复用,流量控制等。 虽然如此复杂,但是 QUIC 作为一个新兴协议,已经展现了非常强大生命力和广阔前景。

    1.2K20

    让互联网更快协议,QUIC 腾讯实践及性能优化

    通过异步代理方式显然不可能。原因是: 会极大降低用户访问速度。由于应用层一个字节都需要对称加解密,使用异步方式实现会严重降低加解密实时性。 那有没有同步优化方式呢?有。...通过环境变量 aes-ni: OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-128-gcm 或者代码里将 crypto...这里需要注意是,如果需要单独使用 openssl API 进行 AES 对称加解密,最好使用 aes evp API,这样才会默认开启 AES-NI 指令。...为了实现传输安全性,它又彻底重构了 TLS 协议,包括证书压缩,握手消息,0RTT 等。虽然后续可能会采用 TLS1.3 协议,但是事实上是 QUIC 推动了 TLS1.3 发展。...为了实现传输并发性,它又实现了 HTTP2 大部分特性,包括多路复用,流量控制等。 虽然如此复杂,但是 QUIC 作为一个新兴协议,已经展现了非常强大生命力和广阔前景。

    2.4K70

    Envoy 中 TLS 加速和优化

    目前非常流行 Service Mesh 项目 Istio 中,数据面便是通过 Envoy 来实现。...微服务场景下,Envoy 无论是作为 Ingress Gateway 还是作为微服务代理,都需要处理大量 TLS 请求,尤其在握手阶段执行非对称加解密操作,需要消耗大量 CPU 资源,大规模微服务场景下这可能会成为一个瓶颈...这种技术原理是使用 AVX-512 指令同时处理多个独立缓冲区,即可以一个执行周期内同时执行多个加解密操作,加解密执行效率便会得到成倍提升。...QAT Engine 是 OpenSSL 一个扩展模块,任何使用了 OpenSSL 项目都可以通过 QAT Engine 扩展模块来使用这两种加解密技术。...这样便可以 Envoy 中通过 OpenSSL 调用以上两种加解密技术来实现 TLS 加速。

    2.1K31

    TLS协议分析 (三) record协议

    key做加密/解密 算HMAC,对数据计算HMAC,并且验证收到数据HMAC正确性 发给tcp/ip,把数据发送给 TCP/IP 做传输(或其它ipc机制)。...如果一个TLS实现无法避开回绕一个sequence number,必须进行重协商。sequence number每个record被发送都增加1。...TLS数据流一个方向部分明文(比如协议里面的固定值),那么对2个方向密文做一下xor,就能得到另一个方向对应部分明文了。...,其中几个参数: IV : : 要求必须用密码学安全伪随机数生成器(CSPRNG)生成,并且必须是不可预测Linux下,就是用用/dev/urandom,或者用 openssl RAND_bytes...注意:TLS 1.1版本之前,没有这个IV字段,前一个record最后一个block被当成下一个recordIV来用,然后粗大事了,这导致了 [BEAST攻击] 链接 http://www.openssl.org

    1.3K30

    PHPOpenSSL加密扩展学习(一):对称加密

    也就是说,不管是服务端还是客户端或是其它任何对端,两端通信,它们传输加密内容都必须要使用相同 key 来进行加/解密操作。两端都必须同时保存这样一个 key 。...也就是说,对方向我们发送数据时候,使用我们给它公钥将数据进行加密,数据传输过程中就非常安全,因为中间并没有别人有可以解密这段数据私钥,直到我们接收到数据后使用自己私钥进行解密后就得到了原文数据...这样,我们发送给客户端,就包括两个内容,一个是非对称加密进行加密 key ,一个使用对称加密进行加密数据内容。...OpenSSL 扩展对称加密 好了,介绍这么多理论知识,接下来还是回归正题了,我们 PHP 中如何实现对称和非对称加密呢?非常简单,使用 OpenSSL 扩展就可以了。...在对称加密中,我们还有一种 AEAD 密码模式(GCM 或 CCM) ,使用这种模式算法,我们需要多一参数。

    2.2K30

    让互联网更快:新一代QUIC协议腾讯技术实践分享

    如果:你刚刚才听说 HTTP2 是下一代互联网协议,如果你刚刚才关注到 TLS1.3 是一个革命性具有里程碑意义协议,但是这两个协议却一直在被另一个更新兴协议所影响和挑战。...5、QUIC 选型调研测试方案 决定使用 QUIC 协议之前,我们需要对 QUIC 协议特性及性能做一个全面的测试,如何测试呢?这里简单说一下测试方案。...通过异步代理方式显然不可能。原因是: 会极大降低用户访问速度。由于应用层一个字节都需要对称加解密,使用异步方式实现会严重降低加解密实时性。 那有没有同步优化方式呢?...通过环境变量:aes-ni: OPENSSL_ia32cap="~0x200000200000000" openssl speed -elapsed -evp aes-128-gcm 或者代码里将 crypto...这里需要注意是,如果需要单独使用 openssl API 进行 AES 对称加解密,最好使用 aes evp API,这样才会默认开启 AES-NI 指令。

    2.5K20

    二十二.PE数字签名之(下)微软证书漏洞CVE-2020-0601复现及Windows验证机制分析

    合理时间或代价下)解密获取明文。...ECC常被应用于数字签名,以私钥加密生成签名,以公钥解密验证签名,如果和原文一样则签名验证成功。公开密钥加密之所以可靠是因为它们利用了公钥密码领域单向函数原理,正向操作非常简单,而逆向操作非常困难。...Windows系统访问一个网站(例Github.com), 该网站会向Windows系统发送由第三方权威机构(CA)签署网站证书。...openssl x509 -in ca.cer -text -noout 计算机网络上,OpenSSL一个开放源代码软件库,应用程序可以使用这个来进行安全通信,避免窃听,同时确认另一端连接者身份...这个广泛被应用在互联网网页服务器上。 3.漏洞还原 接下来将详细讲解如何还原可执行文件签名证书伪装漏洞。 第一步,安装Ruby环境并测试。

    2.2K31

    三.CVE-2020-0601微软证书漏洞及Windows验证机制欺骗复现

    win10默认添加了微软ECC根证书,在做证书验证,会一直验证到微软根证书中公钥hash值,这个值直接写在了crypt32.dll里面,验证没有对比是不是同一个椭圆曲线,只对比了公钥值,导致了黑客拿自己私钥签名...ECC和RSA加密算法对比:椭圆曲线加密算法(ECC)和RSA同样是一种公开密钥加密技术,对原始数据以公钥加密,以私钥解密,即便攻击者获取密文和公钥也无法(合理时间或代价下)解密获取明文。...ECC常被应用于数字签名,以私钥加密生成签名,以公钥解密验证签名,如果和原文一样则签名验证成功。公开密钥加密之所以可靠是因为它们利用了公钥密码领域单向函数原理,正向操作非常简单,而逆向操作非常困难。...Windows系统访问一个网站(例Github.com), 该网站会向Windows系统发送由第三方权威机构(CA)签署网站证书。 ?...计算机网络上,OpenSSL一个开放源代码软件库,应用程序可以使用这个来进行安全通信,避免窃听,同时确认另一端连接者身份。这个广泛被应用在互联网网页服务器上。

    3.2K52

    为什么我抓不到baidu数据

    最近,有位读者问起一个奇怪事情,他说他想抓一个baidu.com数据,体验下看乐趣。 但却发现“抓不到”,这就有些奇怪了。 我来还原下他操作步骤。...解密数据 还是先执行tcpdump抓 $ tcpdump -i eth0 host 39.156.66.10 -w baidu.pcap 然后另外一个命令行窗口下执行下面的命令,目的是将加密key...配置项中找到Protocols 将导出ssl.key文件路径输入到这里头。 Protocols中找到TLS那一栏 点击确定后,就能看到18号和20号数据已经被解密。...客户端使用HTTPS与服务端进行数据传输,是需要先基于TCP建立HTTP连接,然后再调用客户端侧TLS库(OpenSSL、NSS)。触发TLS四次握手。...而只有TLS第一次握手(client hello)时候才会有这个随机数,所以如果你想用解密HTTPS,就必须将TLS四次握手能抓齐,才能进行解密

    1.4K10

    基于NettyIM聊天加密技术学习:一文理清常见加密概念、术语等

    实际上:TLS是IETFSSL3.0基础上设计,相当于SSL后续版本。所以我们通常都是SSL/TLS放一起说。5、什么是OpenSSL?...5.1 基本概念OpenSSL一个开放源代码软件库,应用程序可以使用这个来进行安全通信,它包括代码、脚本、配置和过程集合。...其主要库是以 C 语言所写成,实现了基本加密功能,实现了 SSL 与 TLS 协议。OpenSSL整个软件大概可以分成三个主要功能部分:1)SSL协议库;2)应用程序;3)密码算法库。...der -outform pem -out cert.pem补充说明:上述命令中用openssl程序,就是本文中提到OpenSSL开源库提供程序。...除了手动创建证书文件和私钥文件之外,如果是开发环境中,大家可能希望有一个非常简单方法来创建证书和私钥文件,netty为大家提供了SelfSignedCertificate类。

    1K20

    使用mitmproxy嗅探双向认证ssl链接——嗅探AWS IoT SDKmqtts

    亚马逊AWS IoT使用MQTTS(TLSMQTT)来提供物联网设备与云平台直接通信功能。...出于安全考虑,建议给每个设备配备了证书来认证,同时,设备也要安装亚马逊根证书;这样,使用8883端口建立TLS连接,客户端SDK既对AWS进行验证,同时AWS IoT也对设备证书进行验证。...wireshark dnsmasq iptables openssl 1.注册AWS IoT 注册AWS比较麻烦,还需要可支付美元信用卡,不过因为担心被扣费刷爆,我随便baidu了一个填上。...之后就是根据AWS说明下载并试用SDK,特别值得一提是,他提供了一个向导,直接注册设备生成证书和对应平台SDK,非常方便,我选用了生成Linux Python SDK来实验。 2....,但是,AWS提供证书和mitmproxy提供证书格式上不同,不能仅仅替换证书文件,还需要转换,执行脚本-r参数替换为mitmproxy证书文件。

    2.6K50

    Docker容器https请求报错

    某一天,我使用 docker 时候遇到个奇怪问题,容器里面发起 https 请求报了个错。...比如在 docker 打包时候找一个正确根证书(网上下载)打包进去 比如在打包时候基础镜像中执行安装根证书包命令等等。 然而,都没有解决。...验证过程,输出详细证书链信息 根据现象找原因还是有很多办法openssl 命令可以很方便查到证书链信息。...openssl s_client -connect www.qq.com:443 openssl s_client -connect 是一个 OpenSSL 命令。...从上图可以很清楚看到 whistle 证书成为了 https 请求证书链一个环节。 而由于他证书并不是正规官方系统信任证书,因此出现上面的问题也就不奇怪了。

    1.1K50

    DNS 劫持

    监听过程其实就是网络抓过程,什么?搞技术不知道什么是抓?我就不说wireshark、sniffer这些了,fiddler你总听说过了吧?...Layer,它并不是一个协议,其本质上是HTTP和TCP之间加了一层SSL/TLS协议。...CA密钥: 我们浏览一些申请了标准正规证书网站,地址栏会有绿色图标,例如某网站: 绿色图标的初衷是为了提醒用户注意被钓鱼,但是实际情况中用户会不会去关注,就是个问题了。...CA被攻击 试想,当ZF被人收买,你还会相信ZF吗? 同样地道理,我们相信CA,是建立CA信用绝对可靠、大家都相信情况下。...想说但没说 下面的内容跟HTTPS、SSL密切相关,但是不影响基本原理理解,感兴趣可以自行去了解: 数字签名/数字摘要 SSL与TLS关系 openssl漏洞,例如去年轰动全球“心脏滴血”(heartbleed

    3.1K00

    HTTP详解(1)-工作原理「建议收藏」

    2)、封装HTTP请求数据 把以上部分结合本机自己信息,封装成一个HTTP请求数据 3)封装成TCP,建立TCP连接(TCP三次握手) HTTP工作开始之前...):密钥只有一个,加密解密为同一个密码,且加解密速度快,典型对称加密算法有DES、AES,RC5,3DES等;例如我们使用WinRAR创建一个带密码(口令)加密压缩。...一般来说指:加密使用公钥,解密使用私钥。...1、客户端发出TSL请求(ClientHello): 由于客户端(如浏览器)对一些加解密算法支持程度不一样,但是TLS协议传输过程中必须使用同一套加解密算法才能保证数据能够正常解密。...服务端向客户端发送证书中没有提供足够信息(证书公钥)时候,还可以向客户端发送一个 Server Key Exchange, 此外,对于非常重要保密数据,服务端还需要对客户端进行验证,以保证数据传送给了安全合法客户端

    1.2K21

    openssl安装与使用

    OpenSSL最早版本1995年发布,1998年后开始由OpenSSL项目组维护和开发。当前最新版本是1.1.0 alpha版本,完全实现了对SSLv1、SSLv2、SSLv3和TLS支持。。...OpenSSL整个软件大概可以分成三个主要功能部分: OpenSSL源码目录结构也是围绕这三个功能部分进行规划。...其他两个功能部分SSL协议和应用程序都是基于这个库开发。   密码算法库基础上实现,SSL协议部分完全实现和封装了SSL协议三个版本和TLS协议。...-passout args :加密私钥文件,传递密码格式,如果要加密私钥文件单未指定该项,则提示输入密码。传递密码args格式见一下格式。   ...-embed :这个选项产生RSA私钥文件是一个格式。私钥结构体中采用嵌入式DSA参数格式。

    4.2K10

    玩转CVM:Web服务搭建

    本文采用机型为S4.SMALL2云服务器,注意需要在选购勾选上“免费分配公网IP”。我们选用操作系统是CentOS 7,当然对于其他系统如Fedora/Ubuntu等,本文大部分步骤都是通用。...腾讯云域名一个: 腾讯云域名注册页中选择注册。挑一个喜欢域名吧~ 下文中用my-awesome-domain.com指代。...但是就当前主流发行版(如Centos7/Ubuntu18等)中,由于nginx/openssl等软件版本相对不高,将无法支持TLSv1.3等特性,所以请根据需求进行特性间取舍。...完成,对应名是libpcre3-dev和zlib1g-dev) 下载openssl源码 下载最新版本openssl库,版本1.1.1b。...这是因为Nginx中TLS协议以及加密解密等工作是由外部库(如libssl/libcrypto等)来完成,而它们都在openssl项目中实现。

    1.6K50
    领券