有人能讲一讲https是如何实现握手的?急。。。。。 我想知道https中是如何产生会话密钥。是每次都产生不同的会话密钥么?谢谢了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当我们与一个网站建立https连接时,我们的浏览器与Web Server之间要经过一个握手的过程来完成身份鉴定与密钥交换,从而建立安全连接。具体过程如下: 1.用户浏览器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送到服务器。 2.服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器,同时发给浏览器的还有服务器的证书。如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。 3.客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,那么继续。 4.客户端浏览器为本次会话生成pre-master secret,并将其用服务器公钥加密后发送给服务器。 5.如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。 6.如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret。 7.客户端与服务器均使用此master secret生成本次会话的会话密钥(对称密钥)。在双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速度。 8.客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。并通知服务器客户端已经完成本次SSL握手。 9.服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。并通知客户端服务器已经完成本次SSL握手。 10.本次握手过程结束,会话已经建立。双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。 谢谢 大家谢谢 puyinghua一会儿就结帖 CStatic::Create 方法中this指针为空怎么回事 看完c++的书,我想编那种有界面的软件,我要看什么书啊 为什么我调用这个Dll,会内存不能written? 图片刷新的问题 急 求 VC++ 6.0 MSDN 得到web 内容 ,并且过滤.我遇到了问题.请近来看代码 怎么样 把 中文 的CString 加到 DWORD 后面。。。 ?? 求教:一个非常棘手的组件注册问题 如何得到一串字符串的象素宽度? 关于电子邮件的解码! inside ATL 源代码?? 关于CRichEditCtrl的问题,急?
2.服务器将其SSL版本号、加密设置参数、与session有关的数据以及其它一些必要信息发送给浏览器,同时发给浏览器的还有服务器的证书。如果配置服务器的SSL需要验证用户身份,还要发出请求要求浏览器提供用户证书。
3.客户端检查服务器证书,如果检查失败,提示不能建立SSL连接。如果成功,那么继续。
4.客户端浏览器为本次会话生成pre-master secret,并将其用服务器公钥加密后发送给服务器。
5.如果服务器要求鉴别客户身份,客户端还要再对另外一些数据签名后并将其与客户端证书一起发送给服务器。
6.如果服务器要求鉴别客户身份,则检查签署客户证书的CA是否可信。如果不在信任列表中,结束本次会话。如果检查通过,服务器用自己的私钥解密收到的pre-master secret,并用它通过某些算法生成本次会话的master secret。
7.客户端与服务器均使用此master secret生成本次会话的会话密钥(对称密钥)。在双方SSL握手结束后传递任何消息均使用此会话密钥。这样做的主要原因是对称加密比非对称加密的运算量低一个数量级以上,能够显著提高双方会话时的运算速度。
8.客户端通知服务器此后发送的消息都使用这个会话密钥进行加密。并通知服务器客户端已经完成本次SSL握手。
9.服务器通知客户端此后发送的消息都使用这个会话密钥进行加密。并通知客户端服务器已经完成本次SSL握手。
10.本次握手过程结束,会话已经建立。双方使用同一个会话密钥分别对发送以及接受的信息进行加、解密。
谢谢 puyinghua
一会儿就结帖