据我所知,SSL 将在安全的情况下加密消息。但我仍然担心中间人是否可以截获该数据包并将其复制 1000 次
答案1
当然,被动的中间人攻击者可以捕获加密数据包 - 这就是进行加密的原因。但由于每个 SSL 连接都使用唯一的加密密钥,因此攻击者无法稍后使用此嗅探到的加密数据包将其注入另一个连接。只要加密密钥没有泄露(对于 RSA 密钥交换而言,这意味着证书的私钥没有泄露),攻击者就无法解码嗅探到的数据包。
除此之外,主动的中间人攻击者可能会将自己置于双方之间,例如,Alice 不会与 Bob 对话,而是会与 Mallory 对话,Mallory 会与 Bob 对话。要使这种情况无法发生,您需要 SSL 的识别部分,例如证书检查和主机名验证(仅凭一个是不够的)。只有这样才能实现真正的端到端加密。
答案2
加密的有效载荷是否可以重新传输 - 当然可以。稍后会被接受吗 - 不太可能。加密技术的不同逻辑应用具有不同的特征。SSL(现在称为 TLS)旨在提供“防篡改”和“端点身份验证”以及可选的“不透明性”。防篡改可确保如果有人更改了发送的内容,收件人不会发生这种情况。端点身份验证是知道您正在与谁交谈的能力(不一定是与谁交谈,只是使用哪个非对称加密密钥作为身份)。不透明性是大多数人认为的加密。
能够在稍后将 SSL 会话的一部分注入另一个 SSL 会话是一种重放攻击,TLS 的很多特性都会阻止这种攻击。根据设计,防篡改特性将提供此功能,因为客户端(或服务器,取决于您抛出重放包的方式)会注意到它不是对方刚刚发送的内容 - 即数据被篡改了。其背后的数学有点复杂,但您可以通过阅读 IETF [一个跟踪和组织互联网标准化工作的组织] 找到它http://datatracker.ietf.org/wg/tls/charter/或者在维基百科http://en.wikipedia.org/wiki/Transport_Layer_Security。