SSL是否在内部使用哈希(Hashing)?
-
28-09-2019 - |
题
我们正在认证我们的医疗保健产品(HITECH认证)。认证过程的标准之一是,我们的产品在通过网络发送患者信息时应该能够使用“哈希”。我们的产品是一个直接连接到SQL Server 2005数据库的厚客户端。因此,当我们将患者信息从客户发送到DB存储程序时,它应该使用“哈希”来确保不会在运输中更改信息。
现在,我们计划使用SSL安全连接将客户端连接到SQL Server。当我阅读有关SSL协议时,SSL似乎在内部使用Hashing。因此,如果是的,我可以通过使用客户端和SQL SVR之间的SSL连接来自动满足哈希要求。
所以这是我的问题
- 当数据通过SSL连接传输时,是否在内部附加了每个消息,以便SSL协议验证数据未经修改吗?
- SSL是否仅在握手的最初步骤中使用哈希机制?因此,握手完成后,它仅加密无需涉及哈希机制的数据吗?
- 如果SSL确实为每条消息附加了哈希,那么使用“公共密钥”来创建哈希?
解决方案
当数据通过SSL连接传输时,是否在内部附加了每个消息,以便SSL协议验证数据未经修改吗?
是的。它将键入的Mac附加到所交换的每个TLS记录。
SSL是否仅在握手的最初步骤中使用哈希机制?
不,它发生在整个过程中。
如果SSL确实为每条消息附加了哈希,那么使用“公共密钥”来创建哈希?
否。共享秘密用于创建哈希。
看 RFC2246 有关详细信息。
其他提示
即使SSL使用哈希,也只能确保SSL处理的部分。客户端应用程序和网络连接之间以及网络连接和服务器应用程序之间仍然存在差距。
您需要创建一个数据哈希,该哈希数据从客户端应用程序内部到服务器应用程序内部。
这取决于。两个谈判方可以协商保护水平和所使用的算法。最常见的情况是谈判使用 TLS, ,不是SSL,请求消息隐私(即加密),并请求篡改保护(即签名)。 TLS根据基于每个消息的使用 HMAC, ,请参见第5章 RFC2246. 。 SSL使用a 苹果电脑, ,它比HMAC稍弱(MAC不包含其摘要中的秘密)。
在10000英尺的执行级别上,答案是“是,SSL哈希每个消息”。在合规部署中通常需要在SQL Server客户端协议上强制执行SSL加密。有关更多详细信息和指导,请检查网络广播和白皮书 SQL Server合规性.
SSL比哈希强。它应该满足您的要求。
我会更清楚:
SSL对传输的所有数据进行加密。这意味着无法读取数据,如果更改了数据,则无法解密。因此,SSL可防止您从屋檐滴管和变化中。
该要求的书写期望大多数沟通都是在清楚的。使用SSL,您可以轻松满足此要求。
重要说明:确保您正确实施了SSL通信 - 这是单点故障。
SSL或TLS(即使在谈论“ SSL”时,您也可能能够使用TLSV1.0),旨在保护AIMS”...]在两个通信应用程序之间提供隐私和数据完整性“ (看 RFC).
RFC 4346继续说:
TLS记录协议提供了具有两个基本属性的连接安全性:
- 连接是私人的。 [...
- 连接是可靠的。消息传输包括使用键入Mac的消息完整性检查。安全哈希功能(例如SHA,MD5等)用于MAC计算。记录协议可以在没有MAC的情况下运行,但通常仅在此模式下使用,而另一个协议将记录协议用作协商安全参数的传输。
因此,是的,它将检测到损坏数据传输(故意或意外)的尝试。