Skip to content

Security: Worthy-Wang/offerMachine

Security

Security.md



信息安全的四个特性是什么?

机密性:防止信息被窃听,对应的技术有对称加密算法和非对称加密算法。

完整性:防止信息被篡改,对应的技术有散列算法,数字签名。

身份认证性:防止黑客伪装成发送者,对应的技术有数字签名。

不可否认性:防止发送者事后否认自己发送过,对应的技术有数字签名。



简述有哪些加密算法?

在如今的信息安全领域,加密算法可以分为以下四类:

  • 哈希算法
  • 对称加密算法
  • 非对称加密算法
  • 数字签名算法
  1. 哈希算法

哈希算法也称为信息摘要算法(或散列算法)。常见的哈希算法有MD5算法SHA算法

  • MD5算法 原理是将任何信息(不论大小,格式,数量)经过处理后,用一个定长的散列值表示。

  • SHA算法 与MD5算法类似,将任何信息处理后以某一个散列值表示。例如linux系统用户的密码就是使用SHA-512算法进行加密后放在 /etc/shadow 文件中。


  1. 对称加密算法

对称加密算法也就是加密和解密采用同一个密钥。 这种加密方式由于需要传输密钥,所以有很大的安全性问题。常见的对称加密算法有DESAES在这里插入图片描述

  1. 非对称加密算法

非对称加密算法也就是加密和解密使用的并不是同一个密钥。 通常有两个密钥,分别称为公钥私钥,公钥可以对外公布,私钥只能持有人自己所拥有不能对外公开。非对称加密算法有效的避免了密钥的传输安全性问题。常见的非对称加密算法有RSA

在这里插入图片描述

  1. 数字签名算法

准确的来说,数字签名算法也属于非对称加密算法中的一种。

  • 数字签名

对于明文信息先进行哈希算法求得信息摘要,后再用自身私钥进行加密后求得数字签名。数字签名的作用是证明该信息是否为本人所写

  • 数字证书

将自身的公钥和一些相关信息,交给CA(certificate authority 认证机构)并利用CA的私钥进行加密后得到数字证书。数字证书的作用是传递公钥

  • 举例

发送方A:A对明文进行数字签名,并向CA求得自己的数字证书,将数字证书+数字签名+明文 打包,一同发送给B。

接收方B:B利用CA公钥解开A的数字证书,求得A的公钥;再用A的公钥解开A的数字签名,求得A的明文数字摘要;最后对明文用同样的哈希算法求得数字摘要,并判断两次数字摘要是否相同。

注意:CA证书(包含了CA的公钥)一开始就已经存放在了浏览器或者操作系统中,没必要通过网络获取,也就不存在网络劫持的问题。

在这里插入图片描述


HTTPS协议是什么?为什么要使用HTTPS?

HTTP协议在使用过程中,由于并不满足信息安全的四个特性:安全性,完整性,身份认证性,不可否认性

于是有了HTTPS协议来帮助解决上述问题,HTTPS协议的全称是HTTP Over SSLSSL协议对浏览器与Web服务器之间的通信进行了加密,SSL/TLS具体的工作过程如下:

  1. 用户向Web服务器发起访问请求;
  2. Web服务器将自己的CA认证的数字证书发给用户;
  3. 用户拿到数字证书,并用自己浏览器内置的CA证书解密得到Web服务器的公钥;
  4. 用户使用服务器的公钥对于对称加密算法的密钥进行加密,发送给Web服务器;
  5. 服务器收到后,用自己的私钥解密,得到对称加密算法的密钥;
  6. 双方使用对称加密算法开始通信。 在这里插入图片描述

总结一下SSL层工作的原理

  1. 通过CA体系发送公钥(或者说是数字证书);

  2. 通过非对称加密算法确定对称加密的密钥;

  3. 通过对称加密算法进行网络通信。

补充: 由于非对称加密算法比对称加密算法复杂很多,同时处理效率也会低很多,所以在实际的SSL/TLS层工作中,非对称加密算法只用于传输对称加密的密钥,真正在通信的过程中使用的是对称加密算法。



There aren’t any published security advisories