SSL通常使用MAC然后加密技术,而不是加密MAC(通常认为这在大多数情况下是理想的)。我自己并不完全了解这两种技术的优点和缺点,但根据我目前所读到的和理解的内容,我认为在SSL情况下使用加密和MAC可能会更有意义。
我还认为,这将保护SSL免受过去的许多攻击。例如,在谈到防止Oracle对SLL的填充攻击时,@Tomas引用在他的答案之一中:
必须注意的是,如果SSL使用了加密时的MAC,这些问题就可以避免(错误的记录在MAC级别上会被拒绝,甚至在考虑解密之前)。
而且,即使在过去的所有这些攻击之后,SSL仍然没有使用加密-然后-MAC!那么,我的问题是,为什么我们仍然在SSL中使用MAC然后加密呢?为什么不简单地使用加密-然后-MAC来解决问题,而不是每次使用小的补丁带辅助?是什么阻止了我们在SSL情况下使用它?
发布于 2014-03-23 03:09:13
应用于SSL/TLS的各种“补丁”具有不改变在线协议的优点:它们是针对MAC-然后加密所隐含的问题而工作的实现技巧。一种说法是,可以安全地实现和使用MAC-然后加密,但这并不容易。
这种与现有协议的向后兼容性使得补丁可以立即实现、分发和使用,而新的协议需要数年才能被广泛采用。例如,TLS 1.0中的CBC模式(“猛兽攻击”所利用的功能)的问题自2006年以来已经被一个新的协议版本(TLS 1.1)解决了,但是浏览器在大约两年前才开始支持它,而且大部分Web服务器仍然不支持它。解决问题的新协议如果不能使用就没有任何好处,因为它在连接的另一端不受支持.
除了等待一个尚未定义的TLS1.3(这可能需要一些时间来指定,更不用说实现和支持)之外,您还可以使用支持GCM的TLS1.2。GCM是一种将对称加密和MAC结合在一起的加密方式,并进行了适当的加密(即MAC-然后加密,粗略地说)。当然,目前还没有很多浏览器和服务器支持它,但至少规范/批准部分是针对这些密码套件完成的。
https://security.stackexchange.com/questions/53852
复制相似问题