数字签名
- 防止数据在传输过程中被恶意篡改
- 在数字签名技术中,有以下2种行为
- 生成签名:由消息的发送者完成,通过“签名密钥”生成
- 验证签名:由消息的接收者完成,通过“验证密钥”验证
如何能保证这个签名是消息发送者自己签的?
-
用消息发送者的私钥进行签名
在公钥密码中,任何人都可以使用公钥进行加密

数字签名和公钥密码
-
数字签名,其实就是将公钥密码反过来使用
数字签名的过程

数字签名的过程-改进


数字签名 – 疑惑
- 如果有人篡改了文件内容或者签名内容,会是什么结果?
结果是:签名验证失败,证明内容会篡改 - 数字签名不能保证机密性?
数字签名的作用不是为了保证机密性,仅仅是为了能够识别内容有没有被篡改 - 数字签名的作用:
- 确认消息的完整性
- 识别消息是否被篡改
- 防止消息发送人否认
数字签名无法解决的问题
- 要正确使用签名,前提是: 用于验证签名的公钥必须属于真正的发送者
- 如果遭遇了中间人攻击,那么
- 公钥将是伪造的
- 数字签名将失效
- 所以在验证签名之前,首先得先验证公钥的合法性
- 如何验证公钥的合法性?
- 证书

证书(Certificate)
- 证书,联想的是驾驶证、毕业证、英语四六级证等等,都是由权威机构认证的
- 密码学中的证书,全称叫公钥证书(Public-key Certificate,PKC),跟驾驶证类似
- 里面有姓名、邮箱等个人信息,以及此人的公钥
- 并由认证机构(Certificate Authority,CA)施加数字签名
- CA就是能够认定“公钥确实属于此人”并能够生成数字签名的个人或者组织
- 有国际性组织、政府设立的组织
- 有通过提供认证服务来盈利的企业
- 个人也可以成立认证机构
证书的利用

证书的注册和下载

网友评论