信息摘要 秘钥签名 数字签名 数字证书 数字验证 数字信封 这都是什么东西?
一下遇见这么多相近的名词,实在是难以区分理解,还是从这些概念产生的缘由理解吧
先看需求:如何保证 数据 在网络中传输时正确的?有没有被篡改?
一、信息摘要
dijest
就是做hash ,拿到唯一值,信息摘要可以防止信息传输途中的正确性
一段信息,经过摘要算法得到一串哈希值,就是摘要(dijest)。
常见的摘要算法有MD5、SHA1、SHA256、SHA512等。
摘要算法,是把任意长度的信息,映射成一个定长的字符串。
摘要算法,两个不同的信息,是有可能算出同一个摘要值的。
摘要算法与加密算法不同,不存在解密的过程。
摘要算法不用于数据的保密,而是用于数据的完整性校验。
也正因hash算法的安全性较低,因此只能做完整性校验,不能保证没有被篡改。
被信息摘要篡改的原理
增强碰撞攻击:尽管哈希算法具有不可逆性,但仍然可能存在两个不同的文本具有相同的摘要结果,这被称为碰撞。通过增强碰撞攻击,攻击者可以有意地查找具有相同摘要结果的两个文本,并将其中一个文本作为伪造的信息摘要。选择弱哈希算法:某些哈希算法可能存在安全漏洞,使其更容易受到碰撞攻击或其他攻击方式的影响。攻击者可以利用这些弱点来伪造信息摘要。
那么如何解决信息摘要的缺点的?
二、数字签名
digital signature 也叫 秘钥签名
信息是明文传输,但是对digital 做非对称加密
这样,攻击者就不能知道 hash的值了,就不能做digital的篡改
问题又来了,如果A的公钥被掉包了,B接收方不知道
三、数字证书
那么就需要对A的公钥也做一次认证加密 , 数字证书(digital certificate)就诞生了
又称 公开密钥认证(英语:Public key certificate),或身份证书(identity certificate)
攻击者也能做公钥的加密啊,谁来做认证?
这就要牵扯公信力了,有人专门做这个:CA机构(Certificate Authority)
发送方A,明文发给CA机构 csr文件,包括
- 将A的公钥
- A的各种信息
- A的域名
发送给CA机构,CA确定你就是你之后,打包:
- CA私钥(hash(csr))
- csr
这就是数字证书了,那么接收方如何使用?
这样就能保证 接收方B用的是A的公钥了
3.2数字证书详情
扩展名
- .crt证书文件:在unix中常见
- .cer证书:Win中常见
- .csr证书签名请求文件:请求方发给CA机构的
- .key公钥私钥的扩展名
- .p12证书文件:X509证书和一个被密码保护的私钥
3.2.1 证书种类
DV SSL
10min快速申请的认证,所有权简易Class1级别的SSL证书
能起到加密传输的作用,但是不能像用户证明真实身份
CA机构直接不做验证,所以这个证书 只提供了数据的加密
OV SSL
提供了对个人或者机构的审核,能确认对方的身份,安全性更高
CA收费
EV SSL
超安EV,最严格、最安全的证书
遵循全球统一的严格身份验证标准,是目前业界安全级别最高的顶级 (Class 4级)SSL证书
金融证券、银行、第三方支付、网上商城等,都需要这个等级的数字证书
3.2.2 本地的证书
设置 -> 隐私设置与安全性 -> 安全 -> 管理证书
四、数字信封
和数字签名的不同:
+ 数字签名 信息 是明文传输的,只能保证信息的完整性、来源和真实性
+ 数字信封 信息 对称加密算法加密的,保护数据的机密性和完整性