SSL是否在内部使用散列?

时间:2010-11-02 17:27:23

标签: sql-server ssl hash pii

我们正在认证我们的保健产品(Hitech认证)。认证过程的标准之一是我们的产品在通过网络发送患者信息时应该能够使用“哈希”。我们的产品是一个胖客户端,直接连接到Sql Server 2005数据库。因此,当我们从客户端向DB存储过程发送患者信息时,应使用“散列”来确保信息在传输过程中不会被更改。

现在,我们计划使用SSL安全连接将客户端连接到Sql Server。当我阅读有关SSL协议的内容时,SSL似乎在内部使用散列。所以,如果这是真的,我可以通过在客户端和sql svr之间使用SSL连接自动满足散列要求。

所以这是我的问题

  • 当数据通过SSL连接传输时,每条消息是否在内部附加了散列,以便SSL协议验证数据是否未被修改?
  • SSL是否仅在握手的初始步骤中使用散列机制?所以在握手完成后,它只加密/解密数据而不涉及任何散列机制?
  • 如果SSL确实为每条消息附加了一个哈希,那么用于创建哈希的“公钥”是什么?

5 个答案:

答案 0 :(得分:2)

即使SSL使用散列,也只能确保SSL处理的传输部分。客户端应用程序和网络连接之间以及网络连接和服务器应用程序之间仍然存在差距。

您需要创建数据的哈希值,这些数据随客户端应用程序内部的数据一直传输到服务器应用程序内部。

答案 1 :(得分:2)

这取决于。两个谈判方可以协商保护级别和使用的算法。最常见的情况是协商使用TLS而非SSL,请求消息隐私(即加密)并请求篡改保护(即签名)。 TLS使用基于HMAC的每封邮件散列,请参阅RFC2246的第5章。 SSL使用MAC,它比HMAC略弱(MAC在其摘要中不包含秘密)。

在10000英尺的执行级别视图中,答案为“是,SSL会散列每条消息”。在兼容部署中通常需要在SQL Server客户端协议上实施SSL加密。有关详细信息和指导,请查看SQL Server Compliance上的网络广播和白皮书。

答案 2 :(得分:1)

SSL比散列更强大。它应该满足你的要求。

我会更清楚:

SSL加密所有传输的数据。这意味着无法读取数据,如果更改,则无法解密。因此,SSL可以防止您从屋檐下降和更改。

该要求的编写期望大多数沟通都是明确的。通过使用SSL,您可以轻松满足此要求。

重要说明:确保正确实施SSL通信 - 这是单点故障。

答案 3 :(得分:1)

SSL或TLS(至少现在你可能能够使用TLSv1.0,即使在谈论“SSL”时),旨在保护目标“ [...]以提供隐私和两个通信应用程序之间的数据完整性“(参见RFC)。

RFC 4346继续说:

  

TLS记录协议提供   连接安全性有两个基本的   属性:

     
      
  • 连接是私密的。 [...]
  •   
  • 连接可靠。消息传输包括消息完整性   使用键控MAC检查。安全哈希   函数(例如,SHA,MD5等)是   用于MAC计算。记录   协议可以在没有MAC的情况下运行   但通常只用于此   另一种协议正在使用模式   记录协议作为运输工具   谈判安全参数。
  •   

所以,是的,它会检测破坏数据传输的尝试(有意或无意)。

答案 4 :(得分:0)

  

当数据通过SSL连接传输时,每个消息是否在内部附加了散列,以便SSL协议验证数据是否未被修改?

是。它为每个交换的TLS记录附加一个密钥MAC。

  

SSL是否仅在握手的初始步骤中使用散列机制?

不,它贯穿始终。

  

如果SSL确实为每条消息附加了一个哈希,那么用于创建哈希的“公钥”是什么?

没有。共享密钥用于创建哈希。

有关详细信息,请参阅RFC2246