很高兴回答这个问题。
有什么区别?
最近一直在做安全开发。我来回答一下。
)。两者的区别在于一个网络传输不安全,另一个网络传输安全。
为什么要用协议明文传输?传输的消息容易泄露和被篡改,消息的可靠性和完整性无法验证。例如,传输到服务器的数据带有自己的银行帐户和密码。如果使用明文,只要第三方在传输过程中截获数据包,账号和明文就很容易被他人窃取。或者服务器给你一个指令,这个指令被截取篡改为他的内容。当你的客户端收到后,会跟着篡改的内容走,非常不安全。然后,服务器向客户端发送消息。因为网络的原因,一半的数据丢失了。客户怎么知道这个情况?
如何实现数据的安全传输?先简单介绍一些概念。
密钥是在将明文转换为密文或密文转换为明文的算法中输入的参数。它分为两部分,公钥和私钥。有了私钥,就可以导出公钥,反之亦然。可以简单理解为钥匙和锁的关系,即锁可以和钥匙匹配,但钥匙和锁很难匹配。
证书是公钥的载体,公钥包含证书有效性、颁发者信息等其他内容。除了公钥。
Abstract就是它的字面意思,对一个段落做一个简短的抽象。
加密和解密是指使用公钥将一段内容转换成另一段无法识别的内容,解密是指使用私钥将加密的内容恢复成原始内容。
签名验证签名可以理解为另一种形式的加密,使用私钥将原始内容转换为无法识别的内容。签名验证是持有原始内容和签名内容,并使用公钥验证它们是否一致。
先说安检流程。
生成消息摘要后,对摘要进行签名,以便客户端可以验证消息源的可靠性和完整性。服务器在向客户端发送消息之前,会先生成消息的摘要,然后用自己的私钥对摘要进行签名,最后将签名和私钥对应的证书附在消息的末尾发送给客户端。客户端收到消息后,首先验证证书的有效性,如果证书无效,则直接通过,保证消息的可靠性。然后对消息进行汇总,再将证书中的公钥与汇总结合起来验证签名是否有效,这样即使消息被篡改或破坏,签名也会因为生成的摘要不同而不同,可以保证消息的完整性,不被篡改。
通过加密消息,可以防止消息内容被他人解读。在传输消息之前,服务器和客户端交换双方的密钥,然后在传输过程中,一方用密钥加密消息,另一方用密钥解密消息。而且即使第三方截获了数据包,也会因为没有密钥而无法解读消息,避免具体内容的泄露。
简而言之,处理逻辑要复杂得多,但在互联网安全日益重要的今天,它已经成为最常用的网络传输协议。
以上是一些概念性的介绍,但更复杂、更详细的实现原理这里就不展开了。希望对你有帮助。谢谢你。