加密与证书

加密与证书

一、概念

1 对称加密与不对称加密

1.对称加密
对称加密即加密解密都用同一个秘钥,安全程度较低,现在除了为了兼容老程序的情况以外都不用对称加密。
常见的对称加密DES(Data Encryption Standard)、3DES(3次DES加密)、AES(Advanced Encryption Standard)。其中AES加密效果较好,因为它使用了密码分组技术。
2.不对称加密
不对称加密PKI(Public Key Infrastructure)是现在最常用的。这种加密有两个秘钥,分别是公钥和私钥。公钥进行加密和验证,私钥进行解密和签名。

2 秘钥、公钥与私钥

在公私钥体系中,秘钥=公钥+私钥。生成时是成对生成的。其中一个作为公钥,可以发到公共的地方。私钥要自己保存好,不要泄露。

3 数字签名、证书、CA

数字签名是用私钥来对信息的摘要进行签名,这样另外一方(拥有公钥者)就可以进行解密,并用同样的摘要算法进行对比。若摘要相同,则信息没有被篡改。

4 密码分组

密码分组可以增加密码的破解难度。
AES使用了密码分组技术。
常见的包括电子密码本-ECB(Electronic Codebook Book)、密码分组链接-CBC(Cipher Block Chaining)。其中,ECB模式可以被重复攻击,因为其各段密码若有重复值的话,可以用这个重复值作为已知的密码用来进行攻击,尝试破解密码。CBC模式由于是链状的,它会根据前一块的密码值作为本块密码值的盐,进行再次加密,所以不能被重复攻击。

5 加盐

6 指纹与签名

指纹:是指证书所有信息的hash值,用指纹可以验证数据是否被篡改。
签名:是对指纹进行私钥加密(即签名),签名后验证方需要用公钥验签。

  • 一般来说,签名是CA来做的,CA用CA的私钥加密指纹,验证方要用CA的公钥进行解密,之后将证书的其他信息HASH后与指纹进行比对。
  • 公钥拥有者发送的信息是保密的,外界无法截取信息。
  • 私钥拥有者发送的信息则不保密(因为公钥谁都能获取到)。
  • PKI体系中,保密的数据是单向的,即公钥持有方->私钥持有方的数据是保密的。
  • 一般来说,会用这种单向的保密来约定另一个对称加密的秘钥(DH算法),用于之后的通信(对称加密的秘钥效率高,且双向保密)。
  • 私钥持有方可以签名,但不是谁的签名都可以被其他人信任。一般来说只有CA的签名才能被信任。

二、过程

1.百度资料

1.Alice 准备好要传送的数字信息(明文);
2.Alice 对数字信息进行哈希运算,得到一个信息摘要;
3.Alice 用自己的私钥对信息摘要进行加密得到 Alice 的数字签名,并将其附在数字信息上;
4.Alice 随机产生一个加密密钥,并用此密码对要发送的信息进行加密,形成密文;
5.Alice 用 Bob 的公钥对刚才随机产生的加密密钥进行加密,将加密后的 DES 密钥连同密文一起传送给Bob;
6.Bob 收到 Alice 传送来的密文和加密过的 DES 密钥,先用自己的私钥对加密的 DES 密钥进行解密,得到 Alice随机产生的加密密钥;
7.Bob 然后用随机密钥对收到的密文进行解密,得到明文的数字信息,然后将随机密钥抛弃;
8.Bob 用 Alice 的公钥对 Alice 的数字签名进行解密,得到信息摘要;
9.Bob 用相同的哈希算法对收到的明文再进行一次哈希运算,得到一个新的信息摘要;
10.Bob 将收到的信息摘要和新产生的信息摘要进行比较,如果一致,说明收到的信息没有被修改过。

2.其他资料

引用自:https://www.zhihu.com/question/52493697

第一步:浏览器与某宝建立TCP连接

第二步:服务器会弹出一个页面提醒安装数字证书,如果不安装,接下来一切都不会顺利进行

第三步:浏览器需要认证某宝是真实的服务器(不是山寨的),服务器发来了自己的数字证书。插一句:某宝的数字证书从哪里来?某宝自己的认证中心简称CA(Certificate Authority),CA给某宝颁发了一个证书,这个证书有:签发者证书用途某宝的公钥某宝的加密算法某宝用的HASH算法证书的到期时间等如果证书就这样给某宝了,那传输过程中如果有人篡改这个证书,那这个证书还有什么权威性?简单的很,把以上内容做一次HASH,得到一个固定长度(比如128位的HASH,然后再用CA的私钥加密,就得到了数字签名,附在以上证书的末尾,一起传输给某宝。设想一下,如果不加密那个HASH,任何人都可以先篡改证书,然后再计算HASH,附在证书的后面,传给某宝时,某宝无法发现是否有人篡改过。而用CA私钥加密后,就生成了类似人体指纹的签名,任何篡改证书的尝试,都会被数字签名发现。

第四步:浏览器接到某宝的数字证书,从第二步得到的CA公钥值,可以解密数字证书末尾的数字签名(CA私钥加密,可以用CA公钥解密,此为非对称加密),得到原始的HASHs然后自己也按照证书的HASH算法,自己也计算一个HASHc,如果HASHc== HASHs,则认证通过,否则认证失败。假设认证成功,否则故事无法编下去了…

第五步:双方会运行 Diffie Hellman 算法,简称 DH算法。通俗地说:双方会协商一个master-key,这个master-key 不会在网络上传输、交换,它们独立计算出来的,其值是相同的,只有它们自己双方知道,任何第三方不会知道,俗称的天不知,地不知,你知,我知。然后以master-key推导出 session-key,用于双方SSL数据流的加密/解密,采用对称加密,保证数据不被偷窥,加密算法一般用AES。以master-key推导出 hash-key,用于数据完整性检查(Integrity Check Verification)的加密密钥,HASH算法一般有:MD5、SHA,通俗滴说,保证数据不被篡改。

第六步:然后就可以正常发送订单了,用HASH key 生成一个MAC( Message Authentication Code),附在HTTP报文的后面,然后用session key 加密所有数据(HTTP + MAC),然后发送出去

第七步:服务器先用session key 解密数据,得到HTTP + MAC,然后自己用相同的算法计算自己的MAC,如果两个MAC相等,则数据没有被篡改。第八步:所有购物安全无误地完成,手下给马老板买了一件神秘礼物,一件COS Play装

3.自己的理解

加密与证书_第1张图片

你可能感兴趣的:(安全)