当前位置:首页 > Web开发 > 正文

ssh加密与https安全

2024-03-31 Web开发

非对称加密算法:RSA,DSA/DSS
对称加密算法:AES,RC4,3DES
HASH算法:MD5,SHA1,SHA256

hash就是找到一种数据内容和数据存放地址之间的映射关系
(1) 文件校验
有奇偶校验和CRC校验,这2种校验并没有抗数据篡改的能力,它们一定程度上能检测并纠正数据传输中的信道误码,但却不能防止对数据的恶意破
MD5 Hash算法的"数字指纹"特性,应用最广泛的一种文件完整性校验和(Checksum)算法,不少Unix系统有提供计算md5 checksum的命令
(2)?数字签名
?Hash 值,又称"数字摘要" 进行数字签名
其中非对称加密算法用于在握手过程中加密生成的密码,对称加密算法用于对真正传输的数据进行加密,而HASH算法用于验证数据的完整性。由于浏览器生成的密码是整个数据加密的关键,因此在传输的时候使用了非对称加密算法对其加密。非对称加密算法会生成公钥和私钥,公钥只能用于加密数据,因此可以随意传输,而网站的私钥用于对数据进行解密,所以网站都会非常小心的保管自己的私钥,防止泄漏。

为什么需要https

http存在三个弊端:
1)无法保证消息的保密性;
2)无法保证消息的完整性和准确性;
3)无法保证消息来源的可靠性。

对称加密(共享密匙加密)

客户端和服务器公用一个密匙用来对消息加解密,这种方式称为对称加密。客户端和服务器约定好一个加密的密匙。客户端在发消息前用该密匙对消息加密,发送给服务器后,服务器再用该密匙进行解密拿到消息

对称加密的优点:对称加密解决了http中消息保密性的问题 对称加密的缺点:对称加密虽然保证了消息保密性,但是因为客户端和服务器共享一个密匙,这样就使得密匙特别容易泄露。 因为密匙泄露风险较高,所以很难保证消息来源的可靠性、消息的完整性和准确性。

非对称加密(公有密匙加密)

采用非对称加密时,客户端和服务端均拥有一个公有密匙和一个私有密匙。公有密匙可以对外暴露,而私有密匙只有自己可见。
使用公有密匙加密的消息,只有对应的私有密匙才能解开。反过来,使用私有密匙加密的消息,只有公有密匙才能解开。这样客户端在发送消息前,先用服务器的公匙对消息进行加密,服务器收到后再用自己的私匙进行解密。

非对称加密的优点:
1)非对称加密采用公有密匙和私有密匙的方式,解决了http中消息保密性问题,而且使得私有密匙泄露的风险降低;
2)因为公匙加密的消息只有对应的私匙才能解开,所以较大程度上保证了消息的来源性以及消息的准确性和完整性。
非对称加密的缺点:

技术图片

1)非对称加密时需要使用到接收方的公匙对消息进行加密,但是公匙不是保密的,任何人都可以拿到,中间人也可以。那么中间人可以做两件事,第一件是中间人可以在客户端与服务器交换公匙的时候,将客户端的公匙替换成自己的。这样服务器拿到的公匙将不是客户端的,而是服务器的。服务器也无法判断公匙来源的正确性。第二件是中间人可以不替换公匙,但是他可以截获客户端发来的消息,然后篡改,然后用服务器的公匙加密再发往服务器,服务器将收到错误的消息;
2)非对称加密的性能相对对称加密来说会慢上几倍甚至几百倍,比较消耗系统资源。正是因为如此,https将两种加密结合了起来。

数字签名
为了解决非对称加密中公匙来源的不安全性。我们可以使用数字证书和数字签名来解决

有一些专门的权威机构用来颁发数字证书,我们称这些机构为认证中心(CA Certificate Authority)

证书的签发(Signing)和认证(Verification)的过程

签发证书的步骤:

Signing阶段,首先撰写证书的元信息:签发人(Issuer)、地址、签发时间、过期失效等;当然,这些信息中还包含证书持有者(owner)的基本信息,例如owner的DN(DNS Name,即证书生效的域名),owner的公钥等基本信息。

通过通用的Hash算法将信息摘要提取出来;

Hash摘要通过Issuer(CA)私钥进行非对称加密,生成一个签名密文;

将签名密文attach到文件证书上,使之变成一个签名过的证书。
验证证书的步骤:

Verification阶段,浏览器获得之前签发的证书;

将其解压后分别获得“元数据”和“签名密文”;

将同样的Hash算法应用到“元数据”获取摘要;

将密文通过Issuer(CA)的公钥(非对称算法,私钥加密,公钥解密)解密获得同样的摘要值。

比对两个摘要,如果匹配,则说明这个证书是被CA验证过合法证书,里面的公钥等信息是可信的。

技术图片

技术图片

证书有3类:

end-user :baidu.com 包含用来加密传输数据的公钥的证书,是HTTPS中使用的证书

intermediates:CA用来认证公钥持有者身份的证书,即确认HTTPS使用的end-user证书是属于baidu.com的证书。这类intermediates证书甚至可以有很多级。

root:用来认证intermediates证书是合法证书的证书。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/8641.html