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

长安链ChainMaker国密TLS设计实现

国密TLS实现不完善,各语言版本支持现状参差不齐。 国密算法套件包括SM2签名、SM2非对称加密、SM3杂凑函数(哈希)、SM4对称加密,以及一个国密密钥协商协议。...目前为止,长安链已经完成了区块链服务客户端SDK,区块链网络节点之间双向国密TLS通信。...3. java客户端:由于java调用长安链golang密码协议库支持国密TLS,工作量较大并且维护困难,实现上采用了比较成熟netty-tcnative + 国密openssl方式。...java sdk就可以实现客户端国密TLS通信,无需关心netty-tcnative国密跨平台问题。...支持 高性能国密库 实现:长安链开源国密算法库目前支持tjfoc实现,北大gmssl等使用C语言实现密码库在性能上有一定差距,接下来我们会引入多种C语言实现,提升国密处理性能。 2.

1.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

netty系列之:使用netty实现支持http2服务器

简介 上一篇文章中,我们提到了如何在netty中配置TLS,让他支持HTTP2。事实上TLS并不是https一个必须要求,它只是建议标准。...那么除了TLS之外,还需要如何设置才能让netty支持http2呢?一起来看看吧。...基本流程 netty支持http2有两种情况,第一种情况是使用tls,在这种情况下需要添加一个ProtocolNegotiationHandler来对握手之后协议进行协商,在协商之后,需要决定到底使用哪一种协议...如果不使用tls,那么有两种情况,一种是直接使用http1.1了,我们需要为http1.1添加一个ChannelInboundHandler即可。...加上之前讲解TLS扩展协议支持,就构成了一个完整支持http2netty服务器

1.2K20

netty系列之:使用netty实现支持http2服务器

简介 上一篇文章中,我们提到了如何在netty中配置TLS,让他支持HTTP2。事实上TLS并不是https一个必须要求,它只是建议标准。...那么除了TLS之外,还需要如何设置才能让netty支持http2呢?一起来看看吧。...基本流程 netty支持http2有两种情况,第一种情况是使用tls,在这种情况下需要添加一个ProtocolNegotiationHandler来对握手之后协议进行协商,在协商之后,需要决定到底使用哪一种协议...如果不使用tls,那么有两种情况,一种是直接使用http1.1了,我们需要为http1.1添加一个ChannelInboundHandler即可。...加上之前讲解TLS扩展协议支持,就构成了一个完整支持http2netty服务器

39640

HTTPS 是如何保证传输安全

HTTPS 可以有效地保护客户端服务器之间通信,是现代网络应用程序中广泛使用一种安全协议。 在 HTTPS 中,SSL/TLS 协议负责加密握手过程,并创建客户端服务器之间安全连接。...以下是 SSL/TLS 协议确保通信安全一些主要机制: 1、握手过程(协商算法) 在 SSL/TLS 协议中,服务器首先通过客户端进行握手来确定应该使用哪个加密算法和密钥长度。...这个过程被称为协商算法。客户端服务器之间交换数据以决定将使用哪个共同协议版本、密码各项参数等等。具体流程包括: (1)、客户端服务器发起连接请求,并指明需要使用加密传输。...(4)、客户端随机生成一个对称密钥并使用服务器公钥加密后发送给服务器。 (5)、服务器使用私钥解密客户端发送信息,并得到对称密钥。 同时,服务器客户端也需要生成用于加密数据传输会话密钥。...客户端会对服务器数字证书进行检查,并使用它来验证服务器身份是否存在问题。 综上所述 HTTPS 运用了多种机制确保通信安全性: (1)、协商算法确定加密和解密方式。

50320

SSLTLS 通信过程

---- 加密通信–Application Data 开始使用协商密钥算法进行加密通信。...---- 重建连接 重建连接(renegotiation) 即放弃正在使用 TLS 连接,重新进行 身份认证 和 密钥协商 过程,特点是 不需要断开当前数据传输 就可以重新 身份认证、更新密钥或算法...在确定重建连接之前,服务器不会立即停止向客户端发送数据,可能恰好同时或有缓存数据需要发送给客户端,但是客户端不会再发送任何信息给服务器。...本节讨论说明密钥协商基本计算过程以及通信过程中密钥使用。...阶段,客户端会发送一份加密套件列表和当前支持 SSL/TLS 版本号给服务端,而且是使用明文传送,如果握手数据包被破解之后,攻击者很有可能篡改数据包,选择一个安全性较低加密套件和版本给服务端

67810

xmpp即时通讯二

“初始流”是从初始实体(通常是一个客户端服务器)到接收实体(通常是一个服务器协商,并被看作从初始实体到接收实体会话一致。...9)--在‘from’地址中提供JID或主机名已授权JID或有效域协商不匹配,此有效域协商为通过SASL或回叫服务器协商,或通过授权资源绑定客户端服务器协商...一个给定域管理者可能需要使用TLS来进行客户端服务器通信,服务器服务器通信,或二者兼有。...客户端使用TLS去保护流,在企图完成SASL协商之前,而且,服务器出于保护服务器服务器通信考虑,应在两个域间使用TLS。      ...:ietf:params:xml:ns:xmpp-tls'/>    步6:客户端服务器试图协商通过现存TCP连接 完成TLS协商

2K80

Https、SSLTLS相关知识及wireShark抓包分析

SSL协议是TLS协议前身,是SSL协议改进版本。 2、网络层次 SSL/TLS协议位于应用层和传输层之间,用于对上层数据包加密之后传输,同时进行身份、数据完整性校验。...而SSL/TLS则结合两者优缺点,数据包加密使用对称加密算法,而对称加密算法密钥采用非对称加密手段协商获取。...Client Hello中携带了当前客户端支持TLS协议版本号(Version)、客户端支持加密套件(Cipher Suites)、一个随机数、客户端支持压缩算法(Compression Method...第一步客户端告诉服务端我所支持相关信息,第二步服务端协商返回确定信息,如确定使用哪种加密套件(Cipher Suites)或压缩方法等。...Change Cipher Spec这一步是告诉服务器端后期通信都会使用我们协商出来密钥进行通信。

1.6K30

TLS降级攻击一种抵御方法

内容以及要求 在TLS握手期间 攻击者可以利用一个或者两个通信方对旧版本或者密码套件支持发起一系列攻击 本研究利用服务器浏览器协调 设计实现一种抵御TLS降级攻击方法 要求 熟悉流量分析 熟悉...),在计算机中指在一个程序、库或硬件更新到较新版本后,用旧版本程序创建文档或系统仍能被正常操作或使用(包括输入数据)、在旧版本基础上开发程序仍能正常编译运行,或较旧版硬件仍可在新版使用情况。...TLS协议是可选,必须配置客户端服务器才能使用。...一旦客户端服务器都同意使用TLS协议,他们通过使用一个握手过程协商出一个有状态连接以传输数据。...通过握手,客户端服务器协商各种参数用于创建安全连接: 当客户端连接到支持TLS协议服务器要求创建安全连接并列出了受支持密码组合(加密密码算法和加密哈希函数),握手开始。

1K30

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

低层是SSL记录层,用于封装不同上层协议,另一层是被封装协议,即SSL握手协议,它可以让服务器和客户机在传输应用数据之前,协商加密算法和加密密钥,客户机提出自己能够支持全部加密算法,服务器选择最适合它算法...4.2 TLS关系SSL是网景公司(Netscape)设计,但IETF将SSL作了标准化,即RFC2246,并将其称为TLS(Transport Layer Security),其最新版本是RFC5246...实际上:TLS是IETF在SSL3.0基础上设计,相当于SSL后续版本。所以我们通常都是SSL/TLS放一起说。5、什么是OpenSSL?...7、Netty聊天加密代码示例7.1 关于NettyNetty是一个Java NIO技术开源异步事件驱动网络编程框架,用于快速开发可维护高性能协议服务器客户端,事实上用Java开发IM系统时...当客户端服务器端进行SSL连接时候,客户端需要验证服务器端发过来证书正确性。

97020

SSLTLS 双向认证(一) — SSLTLS 工作原理

TLS 协议版本 version,从低到高依次 SSLv2, SSLv3, TLSv1, TLSv1.1, TLSv1.2, 当前基本不再使用低于 TLSv1 版本 客户端支持加密套件 cipher...,包括选择使用协议版本 version,选择加密套件 cipher suite,选择压缩算法 compression method、随机数 random_S 等,其中随机数用于后续密钥协商 server_certificates...pre-master,并用证书公钥加密,发送给服务器 此时客户端已经获取全部计算协商密钥需要信息:两个明文随机数 random_C 和 random_S 自己计算产生 pre-master,计算得到协商密钥..., 服务器也结合所有当前通信参数信息生成一段数据并采用协商密钥 session secret 算法加密并发送到客户端; (6) 握手结束 客户端计算所有接收信息 hash 值,并采用协商密钥解密...encrypted_handshake_message,验证服务器发送数据和密钥,验证通过则握手完成 (7) 加密通信 开始使用协商密钥算法进行加密通信。

5.3K10

SSLTLS区别以及介绍

SSL通过互相认证、使用数字签名确保完整性、使用加密确保私密性,以实现客户端服务器之间安全通讯。该协议由两层组成:SSL记录协议和SSL握手协议。...当前版本为3.0。它已被广泛地用于Web浏览器服务器之间身份认证和加密数据传输。   SSL协议位于TCP/IP协议各种应用层协议之间,为数据通讯提供安全支持。...SSL协议工作流程:   服务器认证阶段:   1)客户端服务器发送一个开始信息“Hello”以便开始一个新会话连接;   2)服务器根据客户信息确定是否需要生成新主密钥,如需要则服务器在响应客户...作为这种封装协议之一握手协议允许服务器客户机在应用程序协议传输和接收其第一个数据字节前彼此之间互相认证,协商加密算法和加密密钥。...1.TLSSSL差异   1)版本号:TLS记录格式SSL记录格式相同,但版本值不同,TLS版本1.0使用版本号为SSLv3.1。

1.2K20

SSLTLS原理详解

当前版本为3.0。它已被广泛地用于Web浏览器服务器之间身份认证和加密数据传输。 SSL协议位于TCP/IP协议各种应用层协议之间,为数据通讯提供安全支持。...---- 1.2 TLSSSL差异 1.版本号:TLS记录格式SSL记录格式相同,但版本值不同,TLS版本1.0使用版本号为SSLv3.1。...综上,在这一步,服务器回应包含以下内容: 1.确认使用加密通信协议版本,比如TLS 1.0版本。...如果浏览器服务器支持版本不一致,服务器关闭加密通信 2.一个服务器生成随机数,稍后用于生成”对话密钥” 3.确认使用加密方法,比如RSA公钥加密 4.服务器证书 ---- 2.3 客户端回应(Certificate...附:密钥协商形象化比喻 如果上面的说明不够清晰,这里我们用个形象比喻,我们假设AB通信,A是SSL客户端,B是SSL服务器端,加密后消息放在方括号[]里,以突出明文消息区别。

15.5K161

抓包神器 Wireshark,帮你快速定位线上网络故障(5)

通过 Wireshark 抓包分析,如上图所示,Clinet Hello 阶段主要是客户端告诉服务端客户端所支持 TLS 协议版本号、客户端支持加密套件、客户端支持压缩方法以及客户端生成一个随机数等相关信息...通过抓包分析,如上图所示,主要是服务端根据客户端传递支持相关信息,确定使用 SSL/TLS 协议版本确定使用哪种加密套件及压缩方法等;产生一个随机数 Random。...Change Cipher Spec:此消息是告诉服务器端后期通信都会使用协商出来这个密钥进行加密。...Encrypted Handshake Message:客户端将前面的握手消息生成摘要,然后用协商秘钥进行加密,若服务端接收后能解出来,说明前面协商出来秘钥是一致。 步骤六: ?...Change Cipher Spec:此消息是告诉客户端后期通信都会使用协商出来密钥进行加密通信。

99320

蚂蚁区块链第9课 SSLTLS工作原理及在蚂蚁BAAS中应用

TSL协议版本version,从低到高依次 SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2,当前基本不再使用低于 TLSv1 版本; 客户端支持加密套件 cipher suites...(2).server_hello+server_certificate+sever_hello_done server_hello, 服务端返回协商信息结果,包括选择使用协议版本 version,选择加密套件...,服务器同样发送 change_cipher_spec 以告知客户端后续通信都采用协商密钥算法进行加密通信; encrypted_handshake_message, 服务器也结合所有当前通信参数信息生成一段数据并采用协商密钥...session secret 算法加密并发送到客户端; (6).握手结束 客户端计算所有接收信息 hash 值,并采用协商密钥解密 encrypted_handshake_message,验证服务器发送数据和密钥...,验证通过则握手完成; (7).加密通信 开始使用协商密钥算法进行加密通信。

1.5K30

SSLTLS 原理详解

当前版本为3.0。它已被广泛地用于Web浏览器服务器之间身份认证和加密数据传输。 SSL协议位于TCP/IP协议各种应用层协议之间,为数据通讯提供安全支持。...1.2 TLSSSL差异 版本号:TLS记录格式SSL记录格式相同,但版本值不同,TLS版本1.0使用版本号为SSLv3.1。...综上,在这一步,服务器回应包含以下内容: 确认使用加密通信协议版本,比如TLS 1.0版本。...如果浏览器服务器支持版本不一致,服务器关闭加密通信 一个服务器生成随机数,稍后用于生成”对话密钥” 确认使用加密方法,比如RSA公钥加密 服务器证书 2.3 客户端回应(Certificate...附:密钥协商形象化比喻 如果上面的说明不够清晰,这里我们用个形象比喻,我们假设AB通信,A是SSL客户端,B是SSL服务器端,加密后消息放在方括号[]里,以突出明文消息区别。

2.1K50

HTTPS原理

结合三类算法特点,TLS 基本工作方式是,客户端使用非对称加密服务器进行通信,实现身份验证并协商对称加密使用密钥,然后对称加密算法采用协商密钥对信息以及信息摘要进行加密通信,不同节点之间采用对称密钥不同...4.TLS/SSL握手过程 4.1握手密钥协商过程 基于 RSA 握手和密钥交换客户端验证服务器为示例详解握手过程。...SSLv2 SSLv3 TLSv1 TLSv1.1 TLSv1.2,当前基本不再使用低于 TLSv1 版本客户端支持加密套件 cipher suites 列表, 每个加密套件对应前面 TLS...,因此会提交给下一步处理,处理完之后会返回通知该信息为要求重建连接; (d) 在确定重建连接之前,服务器不会立即停止向客户端发送数据,可能恰好同时或有缓存数据需要发送给客户端,但是客户端不会再发送任何信息给服务器...Hello 阶段,客户端会发送一份加密套件列表和当前支持 SSL/TLS 版本号给服务端,而且是使用明文传送,如果握手数据包被破解之后,攻击者很有可能串改数据包,选择一个安全性较低加密套件和版本给服务端

85910

TLS 1.3 Introduction

虽然 TLS 1.3 不是直接之前版本兼容,所有版本TLS都包含一个版本控制机制,即允许客户端服务器通过协商,选出通信过程中采用 TLS 版本。...其它密码学改进包括改变 RSA 填充以使用 RSA 概率签名方案(RSASSA-PSS),删除压缩,DSA,和定制 DHE 组。 TLS1.2 版本协商机制被废弃。支持在扩展中使用版本列表。...这增加了不正确地实现版本协商 Server 兼容性。...TLS 1.3 中定义版本降级保护机制 RSASSA-PSS 签名方案 ClientHello 中 “supported_versions” 扩展可以被用于协商 TLS 使用版本,它优先于 ClientHello...服务器如果不通过证书进行身份验证,并且如果服务器没有发送CertificateRequest(由此指示客户端不应该使用证书进行身份验证),客户端将忽略此消息。

1.8K70

面试官你不要说我不懂TLS握手了

Version:客户端使用TLS版本号,这里是1.2 Random:随机数,这个随机数会被服务端保留,后续用来生成对称密钥 CipherSuites:支持加密方式列表 服务端ServerHello...version:确认支持TLS版本,这里为1.2 Random:服务器随机数,此随机数后续用来生成对称密钥 Cipher Suite:确认使用加密算法 Cipher Suite格式 Cipher...ECDHE算法密钥交换过程 客户端和服务端确定使用哪种椭圆曲线以及曲线上基点G,这个对外公开 客户端和服务端各自生成一个私钥(假设分别为c和s),将私钥基点G相乘可以分别得到其公钥(假设分别为CP...基于ECDHE密钥协商算法TLS1.2握手分析 客户端发起第一次握手请求这个采用RSA协商算法握手无区别,这里就不说了。...、基点加上自己私钥计算出公钥,该公钥会共享给服务器使用 到这里服务器客户端又多共享了客户端公钥,按道理已经可以计算出对称密钥了,但最终会话对称密钥为了更加安全是使用客户端随机数 + 服务器随机数

54420
领券