密码技术之数字签名

前面我们总结过:

密码技术之消息认证码

密码技术之单向散列函数

我们知道,散列函数解决了消息的完整性防止篡改,消息认证码解决的是消息发送者是否被伪装的问题,但是消息的防抵赖性如何保证呢?因为发送接收双方都共享一个密钥,因为对于第三方来说,无法防止信息发送者的否认!那怎么办呢?引出本节主题:数字签名。

数字签名用一句话来说,只有用你自己独一无二的别人不知道的密钥签名,代表了一种只有持有该密钥的人才能够生成的信息,才能防抵赖。甲发送信息的时候用自己的私钥进行签名,乙接收信息的时候用甲的公钥进行验证,这就是数字签名。公钥密码和数字签名的密钥使用如下:

私钥

公钥

公钥密码

接收者解密时使用

发送者加密时使用

数字签名

签名者生成签名时使用

验证者验证签名时使用

密钥在哪?

私有

公开

数字签名的方法有直接对消息签名的方法和对消息散列值签名的方法。因为对整个消息进行签名效率低下,特别是公钥密码算法计算效率不高,实际使用后者,也就是对消息的散列值进行签名。因为前面说过,单向散列函数能对无论多长的消息生成固定的散列值,因此对其签名效率很高。

数字签名不能保证消息机密性!

数字签名的作用本来就不是信息机密性的保证,有一种攻击“请对消息签名”等同于“请解密消息“,我们要记住,绝对不要对意思不清楚的消息进行签名,从签名的目的来说,这一点应该是理所当然的,因为谁也不会在自己看不懂的合同上签字盖章!

数字签名可以随意复制吗?

数字签名可以随意复制。签名可以复制并不意味着签名就没有意义,因为签名表达的意义是特定的签名者对特定的消息进行的签名,即使被复制也并不会改变签名者和消息的内容。无论将签名复制了多少份,都不会改变“是谁对这条消息进行了签名”这一事实!

消息内容会不会被修改?

数字签名是识别消息被修改并不防止被修改,修改后,验证签名失败。

签名会不会被重复利用?

不会,数字签名是消息和签名相对应,将签名部分提取出来附加到别的消息后面,验证签名会失败。

删除签名也无法“作废合同”吗?

的确,删除了带有数字签名的借据也无法保证确实已经作废,因为你不知道是否还保留有副本,那么要作废带有数字签名的借据,可以重新创建一份相当于收据的文书,并让对方在这份文书上数字签名。或者在消息中声明该消息的有效期并加上数字签名,证书部分内容就是如此。

数字签名能够替代签名吗?

当然,我国《中华人民共和国电子签名法》,美国也有E-SIGN法案,日本有《电子签名及其认证业务的相关法律》,这些法律为将电子手段实现的签名与手写的签名和盖章同等处理提供了法律基础。

数字签名的应用实例

安全信息公告,比如一些信息安全组织会发布一些漏洞警告,通过数字签名确认是否是该组织发布的漏洞。

比如软件下载能够检测软件是否被篡改。

以及在公钥证书中,我们要获取合法的公钥,使用公钥+数字签名,后面会介绍。

SSL/TLS服务器认证时也会用到。

对数字签名的攻击

除了之前介绍的利用数字签名攻击公钥密码之外,对单向散列函数的攻击,以及中间人攻击。

中间人攻击,就是对发送者伪装成接收者,对接收者伪装成发送者,如何对公钥进行认证,这就引出即将介绍的“证书”。

潜在伪造:在用RSA来解密的数字签名算法中,潜在伪造时可能的,用随机比特序列S用RSA的公钥进行加密生成密文M,那么S就是M的合法数字签名,由于攻击者是可以获取公钥的,因此对数字签名进行潜在伪造就可以实现了。为了应对人们改进成了RSA-PSS签名算法。

数字签名可以识别出篡改和伪装还可以防止否认,然而,这一切是在一个大前提下的,那就是用于验证签名的公钥必须属于真正的发送者。为了确认自己得到的公钥是否合法,我们需要使用证书。

所谓证书,就是将公钥当成一条消息,由一个可信的第三方对其签名后所得到的公钥。为了对证书施加的数字签名进行验证,我们必定需要另一个公钥,那么如何才能构筑一个可信的数字签名链条呢?又由谁来颁发可信的证书呢?我们必须用社会学的领域思考,需要让公钥及其数字签名技术成为一种社会性的基础设施,也就是PKI公钥基础设施。

原文发布于微信公众号 - 安智客(china_safer)

原文发表时间:2018-06-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

Openssl加密解密原理+CA自建实现

前言 互联网的惊人发展使企业和消费者都感到非常兴奋,它正改变着我们的生活和工作方式。但是,互联网的安全程度如何——尤其是在通过它发送机密信息时的安全性——已...

3816
来自专栏FreeBuf

破解之美:利用ECB加密缺陷突破cookie加密

密码学诞生于古人类社会,例如古希腊斯巴达的密码棒、欧洲中世纪时期的密码栏、阿伯提发明的密码盘等。古代的密码学是一门加密隐蔽的学科,而现代密码学定义为加密与解密,...

3338
来自专栏菜鸟计划

HTTPS科普(转) 为什么需要https

为什么需要https HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。 举个最常...

3775
来自专栏Java学习网

也许,这样理解HTTPS更容易

 摘要:本文尝试一步步还原HTTPS的设计过程,以理解为什么HTTPS最终会是这副模样。但是这并不代表HTTPS的真实设计过程。在阅读本文时,你可以尝试放下已有...

3645
来自专栏java一日一条

最详细的 HTTPS 科普扫盲帖

HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。

1553
来自专栏枕边书

再谈加密-RSA非对称加密的理解和使用

前言 随着互联网越来越渗透入我们生活的方方面面,各种私密信息在网络中传播,为了保证信息的真实可靠,在我们对其安全性的要求也越来越高,对此,加密是一个永远不过时的...

4359
来自专栏Keegan小钢

读《图解密码技术》(二):认证

原创文章,转载请注明:转载自Keegan小钢 并标明原文链接:http://keeganlee.me/post/reading/20160705 微信订阅号:k...

1012
来自专栏北京马哥教育

加密传输原理

数字签名,就是通过在数据单元上附加数据,或对数据单元进行秘密变换,从而使接收者可以确认数据来源和完整性。简单说来,数字签名是防止他人对传输的文件进行破坏,以及确...

36210
来自专栏云加头条

浅析 HTTPS 与 SSL 原理

HTTPS 是指结合 HTTP 和 SSL 来实现网络浏览器和服务器之间的安全通信。HTTPS 被融合到当今网络操作系统和网络浏览器中,它依赖于网络服务器是否支...

2.7K1
来自专栏北京马哥教育

大型网站的HTTPS实践(一)---HTTPS协议和原理

1前言 百度已经于近日上线了全站HTTPS的安全搜索,默认会将HTTP请求跳转成HTTPS。本文重点介绍HTTPS协议,并简单介绍部署全站HTTPS的意义。 ...

3326

扫码关注云+社区

领取腾讯云代金券