3.6. 一种混合系统:数字签名

未匹配的标注

一种混合系统:数字签名

到目前为止,己经介绍了许多不同的系统:对称加密、非对称加密和哈希。尚未进行的是说明具体如何基于这些不同系统构建更复杂的解决方案。通过集成这些不同的技术可创建多种密码系统;事实上,将这些技术组合运用来共同构建不同的通常统称为混合密码系统的解決方案是一种通用做法。本节中介绍的则是其中之一:数字签名。

作为一个渗透测试者,会遇到驱动程序、日志文件、数据和其他项的数字签名。需要知道的是,对于使用了数字签名的目标,改变或扰乱其内容将使签名无效,并可能给行为留下事后证据。

为说明数字签名,可分析传统的墨水纸张签名的特征,以借鉴该知识帮助更好地理解数字签名。设想一下在纸张上签名的行为。当你在一张纸上签上名字时,由于签名应当是你独有的,因此你提供了一种验证身份的方式和一种实现不可否认性的手段。因为在理论上任何人都无法创建与你完全相同的签名(不考虑伪造签名的情况)。此外,这种类型的签名附在纸质文件上时,表明你认同的是放置在你面前的文档,而不是此文档在签署前后的其他版本,这提供了确保文档完整性的方法,因为对文档所做的任何更改都有在更改过程中丢失你的签名的风险。

将其与电子版本的签名对比,后者通过向文档加入一个唯一的签名,可以快速实现不可否认性、身份验证和完整性检查。需要使用何种前文讨论的技术以达成该目标应该很明显。如果此时你想到了公钥或非对称加密系统以及哈希,请你给自己打个高分,因为它们正是用于构建数字签名的技术。

举例来说,设想需要通信的双方需要在文档中附加一个签名,以确保它来源于其中一方,而不是试图进行欺诈或窃取信息的人。为便于叙述,在此将双方分别称为Samus和Ridley。 在本场景中,Sarmus要Ridley发送一份数字签名的文件,Ridley将使用签名对文档进行检查,以确保其符合所需的安全要求。

首先,Samus创建一条消息:为便于叙述,假设这是一封电子邮件。当她创建消息并决定创建数字签名时,她必领遵循一系列步骤。她需要执行的第一步是使用哈希算法为邮件生成一个哈希值。该哈希值将作为电子邮件的唯一不可复制的指纹,以确保其他文档无法冒充原始文件。在生成哈希值后,即可执行第二步,其中Samus使用她的私钥加密该哈希值,并在将邮什发送给Ridley之前,将此加密后的哈希值捆绑或绑定到电子邮件中。需要注意的是在这个时间点,使用的密钥是Samus自己的私钥,因为她需要一种方式来证明该文档是来自于她而不是其他人,而私钥则是唯一一个她且只有她独有的事物。

在Samus完成上述过程并将文档发送给Ridley后,将进行下一步,即由Ridley验证文档。Ridley的验证方法是,首先检查消息来源,在本例中是Samus,然后获取她的公钥。取得她的公钥后,Ridley将使用该公钥解密传输的签名部分。如果签名正常,解密未出现任何问题,则Ridley即可基于公钥密码学的特性,确认文档源自Samus,而不是任何其他人。执行此步骤后,Ridley已经进行了身份验证和不可否认性验证。接下来Ridley要做的则是证明该文件没有被恶意或意外修改,或是没有在传输过程中损坏。为了执行此操作,现在Ridley需要用到解密后的哈希值,然后使用相同的操作(即同一个哈希算法)计算电子邮件的哈希值。在Ridley使用相同算法重新对文档进行哈希操作后,只需要将签名中的哈希值部分与Ridley得出的哈希值进行简单比较即可。如果它们匹配,则文档末被更改;如果不匹配,则文档己更改,这样即可确认/否决消息的完整性。

加密过程只用于哈希值:它并不应用于邮件本身。这一事实很重要的原因是,你需要记住数字签名本身并不能为传输息提供保密性。和传统墨水签名一样,这方面并不是它关注的内容。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~