`

[转]数字证书原理--一个加密通信过程的演化(下)

 
阅读更多
2.6 完整过程:

step1: “客户”向服务端发送一个通信请求

“客户”->“服务器”:你好

  

step2: “服务器”向客户发送自己的数字证书。证书中有一个公钥用来加密信息,私钥由“服务器”持有

“服务器”->“客户”:你好,我是服务器,这里是我的数字证书 

 

step3: “客户”收到“服务器”的证书后,它会去验证这个数字证书到底是不是“服务器”的,数字证书有没有什么问题,数字证书如果检查没有问题,就说明数字证书中的公钥确实是“服务器”的。检查数字证书后,“客户”会发送一个随机的字符串给“服务器”用私钥去加密,服务器把加密的结果返回给“客户”,“客户”用公钥解密这个返回结果,如果解密结果与之前生成的随机字符串一致,那说明对方确实是私钥的持有者,或者说对方确实是“服务器”。

“客户”->“服务器”:向我证明你就是服务器,这是一个随机字符串     //前面的例子中为了方便解释,用的是“你好”等内容,实际情况下一般是随机生成的一个字符串。

“服务器”->“客户”:{一个随机字符串}[私钥|RSA]

 

step4: 验证“服务器”的身份后,“客户”生成一个对称加密算法密钥,用于后面的通信的加密和解密。这个对称加密算法密钥,“客户”会用公钥加密后发送给“服务器”,别人截获了也没用,因为只有“服务器”手中有可以解密的私钥。这样,后面“服务器”和“客户”就都可以用对称加密算法来加密和解密通信内容了。

“服务器”->“客户”:{OK,已经收到你发来的对称加密算法和密钥!有什么可以帮到你的?}[密钥|对称加密算法]

“客户”->“服务器”:{我的帐号是aaa,密码是123,把我的余额的信息发给我看看}[密钥|对称加密算法]

“服务器”->“客户”:{你好,你的余额是100元}[密钥|对称加密算法]

…… //继续其它的通信

 

2.7 其它问题:

上面的过程已经十分接近HTTPS的真实通信过程了,完全可以按照这个过程去理解HTTPS的工作原理。但是我为了方便解释,上面有些细节没有说到,有兴趣的人可以看下这部分的内容。可以跳过不看,无关紧要。

 

【问题1】

上面的通信过程中说到,在检查完证书后,“客户”发送一个随机的字符串给“服务器”去用私钥加密,以便判断对方是否真的持有私钥。但是有一个问题,“黑客”也可以发送一个字符串给“服务器”去加密并且得到加密后的内容,这样对于“服务器”来说是不安全的,因为黑客可以发送一些简单的有规律的字符串给“服务器”加密,从而寻找加密的规律,有可能威胁到私钥的安全。所以说,“服务器”随随便便用私钥去加密一个来路不明的字符串并把结果发送给对方是不安全的。

〖解决方法〗

每次收到“客户”发来的要加密的的字符串时,“服务器”并不是真正的加密这个字符串本身,而是把这个字符串进行一个hash计算,加密这个字符串的hash值(不加密原来的字符串)后发送给“客户”,“客户”收到后解密这个hash值并自己计算字符串的hash值然后进行对比是否一致。也就是说,“服务器”不直接加密收到的字符串,而是加密这个字符串的一个hash值,这样就避免了加密那些有规律的字符串,从而降低被破解的机率。“客户”自己发送的字符串,因此它自己可以计算字符串的hash值,然后再把“服务器”发送过来的加密的hash值和自己计算的进行对比,同样也能确定对方是否是“服务器”。

 

【问题2】

在双方的通信过程中,“黑客”可以截获发送的加密了的内容,虽然他无法解密这个内容,但是他可以捣乱,例如把信息原封不动的发送多次,扰乱通信过程。

〖解决方法〗

可以给通信的内容加上一个序号或者一个随机的值,如果“客户”或者“服务器”接收到的信息中有之前出现过的序号或者随机值,那么说明有人在通信过程中重发信息内容进行捣乱,双方会立刻停止通信。有人可能会问,如果有人一直这么捣乱怎么办?那不是无法通信了? 答案是的确是这样的,例如有人控制了你连接互联网的路由器,他的确可以针对你。但是一些重要的应用,例如军队或者政府的内部网络,它们都不使用我们平时使用的公网,因此一般人不会破坏到他们的通信。 

 

【问题3】

在双方的通信过程中,“黑客”除了简单的重复发送截获的消息之外,还可以修改截获后的密文修改后再发送,因为修改的是密文,虽然不能完全控制消息解密后的内容,但是仍然会破坏解密后的密文。因此发送过程如果黑客对密文进行了修改,“客户”和“服务器”是无法判断密文是否被修改的。虽然不一定能达到目的,但是“黑客”可以一直这样碰碰运气。

〖解决方法〗

在每次发送信息时,先对信息的内容进行一个hash计算得出一个hash值,将信息的内容和这个hash值一起加密后发送。接收方在收到后进行解密得到明文的内容和hash值,然后接收方再自己对收到信息内容做一次hash计算,与收到的hash值进行对比看是否匹配,如果匹配就说明信息在传输过程中没有被修改过。如果不匹配说明中途有人故意对加密数据进行了修改,立刻中断通话过程后做其它处理。

分享到:
评论

相关推荐

    加密通信过程演化以及PKI 体系结构

    "加密通信过程演化以及PKI 体系结构" 加密通信过程的演化是指从最初的简单加密算法到现在的复杂的加密通信过程的发展。数字证书的产生是为了解决身份验证和加密通信的安全问题。 数字证书是由认证中心(CA)颁发的...

    SSL协议与数字证书原理.pdf

    不过,鉴于标题提到了“SSL协议与数字证书原理”,我可以从这两个方面展开详细的介绍,以满足您的要求。 SSL协议(安全套接层协议)是一种位于TCP/IP协议与各种应用层协议之间的安全协议,它最初是由网景(Netscape...

    电信设备-通信安全加强方法、装置、通信方法及用户终端[1].zip

    本文将深入探讨“电信设备-通信安全加强方法、装置、通信方法及用户终端”这一主题,旨在为保障网络安全提供有效的策略和手段。 首先,我们来理解通信安全的重要性。在电信设备中,数据传输的安全性直接关系到用户...

    数据安全解决方案.docx

    一个加密通信过程的演化 加密通信过程通常经历以下四个阶段: 1. **第一阶段**:双方交换公钥,确保对方能够识别自己的身份。 2. **第二阶段**:使用公钥加密会话密钥,保证通信的安全性。 3. **第三阶段**:使用...

    RFC5246(TLS协议)

    - 证书交换(ServerCertificate、ClientCertificate):服务器和客户端可以互相交换数字证书,用于身份验证。 - 密钥交换(ServerKeyExchangeMessage、ClientKeyExchangeMessage):用于在双方之间交换密钥信息。 - ...

    电子商务原理培训讲义.pptx

    SET通过复杂的加密算法、数字证书和签名技术,确保了交易的匿名性、完整性和不可否认性,成为电子商务安全交易的重要规范。 然后,讲义中提到了第三方支付的发展情况,如快钱和支付宝。第三方支付平台作为商家和...

    B2C网上支付系统研究与设计

    SET协议利用对称加密和非对称加密技术,以及数字证书、数字签名、数字信封等,确保了交易的保密性、完整性、不可否认性和身份验证。SET协议特别强化了安全措施,以应对电子支付过程中可能遇到的安全风险。 在实际...

    架构师学习整理.pdf

    - **抵抗攻击**:身份验证(动态/一次性密码、数字证书、生物识别)、授权控制、数据加密、完整性保护。 - **检测攻击**:入侵检测系统、通信模式过滤。 - **从攻击中恢复**:未详细说明。 **1.0.1.1.4 软件架构...

    第4章物联网网络层安全ppt课件.ppt

    3. **加密通信**:保护通信内容不被窃取或监听是另一个关键安全需求。采用加密技术,如AES、SSL/TLS等,可确保数据在传输过程中的机密性。 4. **访问控制**:物联网网络层应有严格的访问控制策略,限制不同设备和...

    SPIDlibraryIOS-源码.rar

    9. **版本控制**:作为一个开源项目,源码可能使用Git进行版本控制,通过提交历史可以了解项目的演化过程。 10. **文档与注释**:良好的源码应该包含清晰的注释和文档,解释各个函数、类和模块的作用,以便其他...

Global site tag (gtag.js) - Google Analytics