1. 对称加密:
假设A要将信息M传给B:则B先将加密的秘钥e传给A,A用秘钥e加密后得到C,将C传给B后,B再解密后可以得到M;
这种过程被拦截后,很容易被破解,比如B给A传递秘钥的过程中,秘钥被拦截;或者当截取的C很多时,可以根据常见字出现的频率去破解等
2. 非对称加密:
同样是A将信息M传给B:B生成公钥e和私钥d,并将e传给A,A用公钥e加密后得到C,将C传给B(此时用e无法解密,只能用d才能解密),B得到C后用d来解密就得到M(再次ps:用e和C无法得到M)
3. RSA算法:
3.1 RSA原理:
1)、先取两个质数:p、q
2)、n=p*q
3)、φ(n)=(p-1)*(q-1)
4)、取公钥(e):1<e<φ(n),并且e和φ(n)互质
5)、取私钥(d):d=(φ(n)+1)/e
3.2 RSA安全性:
加密算法:
解密算法:
RSA加密过程中传递的参数(A→B):n、e、C
RSA解密所需要的参数:n、d、C
可以看出解密需知道d→φ(n)→(p-1)、(q-1)→p、q,即破解出n质因数分解得到的p和q。但是目前1024位质因数分解普通计算机需要几年时间,量子计算机也需要几周时间。所以这类算法是安全的。
4. 非对称加密场景举例:ssh-keygen
4.1 ssh属于应用层的一种网络协议,常见的应用层协议还有FTP、HTTP等
ssh常用命令:ssh -p 22 root@192.168.0.103
4.2 中间人攻击
4.2.1 正常用户登录虚拟机的过程如下:
4.2.2 中间人攻击是指:ssh协议公钥时自己签发的,不像https,没有证书中心(CA)的公证;
当第一步发送登录请求时,请求被截取,黑客将伪造的公钥发给用户,就会轻易的获取用户的登录密码。
4.2.3 所以现在当你第一次登录远程主机时,会提示如下信息:
意思大概是第一次登录,确认ECDSA key(该认证可以确认主机),看网上介绍也有RSA key,感觉类似的,输入yes确认其远程主机的后才能输密码。
4.3 如果嫌两台虚拟机之前来回输入密码麻烦,可以通过虚拟机之间创建信任的方式(ssh-keygen),使两台虚拟机不需要输入密码就能互相跳转。
具体操作请出门右转:
https://blog.csdn.net/angle_time/article/details/82620813
下面的博客里~~~