在SSL/TLS中,我们使用对称密钥和非对称密钥对数据进行加密。这是否意味着密钥被用来加密数据(保持完整性)或为要发送的数据提供安全通道?
据我所知,哈希算法-- SSL握手协议中的哈希算法--用于提供数据完整性。因此,当数据通过SSL/TLS加密时,它们是否:
发布于 2014-09-03 08:18:22
第一个问题的答案是两者都是。
TLS使用基于HMAC的自定义PRF从共享秘密生成对称密钥和MAC密钥。共享秘密是在客户端和服务器之间的非对称密钥交换过程中创建的,作为握手的一部分。
PRF生成所需长度的关键材料。该长度由键大小和键量决定。这些都与选择的密室有关。如果加密算法同时提供机密性和完整性(如AES-GCM),则每个方只生成一个密钥。如果使用HMAC来提供完整性,则生成2个密钥。PRF还可以生成初始化向量。
为客户端和服务器生成不同的密钥,因此为认证加密算法生成2个密钥,为完整性需要MAC的算法生成4个密钥。用于加密传输中数据的密钥与对称算法一起使用。对于由TLS保护的数据,在MAC中使用哈希算法,而不是加密过程的一部分。
发布于 2014-09-03 09:26:28
SSL/TLS是否用于维护数据机密性的问题,实际上并不像人们想象的那样直接。那得看情况。
我们可能会忽略那些用空批量加密算法提供真实性和完整性的不推荐的SSL密码套件。即使您只考虑加密大量内容的密码套件,这也不一定意味着您获得了机密性。
原因很简单: SSL/TLS服务器可能允许匿名客户端连接。如果有人被允许连接和下载内容,内容不是很机密,是吗?
因此:- SSL/TLS通常不会保护服务器提供的数据的机密性。仅仅在服务器上安装SSL/TLS是不够的,不能确保只有经过授权的客户端才能访问服务器发布的内容。- SSL/TLS将保护客户端提供的数据的机密性。一旦客户端验证了服务器标识并建立了经过身份验证和加密的通道,除了服务器之外,没有人能够读取通信的内容。这包括客户端可能希望向服务器提供的任何身份验证令牌。
因此,只有在客户端对服务器进行身份验证之后,您才能从两个方向(客户端到服务器以及服务器到客户端)获得机密性。
https://crypto.stackexchange.com/questions/18935
复制相似问题