SSH原理及应用
2018-03-09 本文已影响0人
tency小七
加密方法分类
- 单钥加密
1.1 加密解密同一套密码 - 双钥加密
2.1 公钥私钥一一对应,公钥公开,私钥私密,公钥可以解开私钥加密的信息
2.2 通用的双钥加密算法是RSA
2.3 在双钥系统中,公钥用来加密信息,私钥用来数字签名
什么是数字签名
小明有两把钥匙,一把是公钥,一把是私钥,任何人都可以拿到小明的公钥,但是私钥只要他自己知道。
小红,小军,小黑都知道了小明的公钥。
小红把“你好啊”这段信息发给小明时,用小明的公钥进行加密,变成了“SNEUIENEEJNDPDJDKDNSO303J"。
此时小明收到了“SNEUIENEEJNDPDJDKDNSO303J"用自己的私钥进行解密,也就收到了小红发过来的”你好啊“。
如果小红发给小明的信息被小军所拦截,但是小军没有小明公钥对应的私钥,他收到的“SNEUIENEEJNDPDJDKDNSO303J"是没有办法解密出来的。
也就是说只要私钥在小明手里,信息就是安全的。
此时,小明要回信给小红,对信件的内容用hash函数生成摘要。
然后使用私钥对这个摘要进行加密,也就是”数字签名”。然后将信件和数字签名发给小红,注意,不用解密就能看到信件内容。
小红收到信件后,用小明的公钥对数字签名进行解密,可以得到摘要1,证明,这封信确实是小明发出来的。
然后小红再对信件内容用hash函数生成摘要2,如果摘要1内容与摘要2内容相同,则说明信件内容没被篡改。
SSH原理
SSH是一种加密协议,用于计算机与计算机之间的加密登陆
其步骤为(在linux shell中的用法)
- 远程主机收到用户的登陆请求,将自己的公钥发给用户
- 用户用收到的公钥给自己的登陆密码加密,然后发送
- 主机用自己的私钥给用户的密码进行解密,得到登陆密码,若登陆密码正确,就可以登陆。
注意:SSH的证书都是没有CA认证的,都是自己签发的。存在以下危险情况:
当不法分子小龙把自己的公钥冒充主机的公钥,那么用户就用小龙公钥给自己的登陆密码加密,小龙用自己手上的私钥解密就能破解用户的密码了。
用用户名user登陆主机host
$ ssh user@host
如果用户名跟主机名一样
$ ssh host
SSH默认22端口,你的登陆请求会送进host的22端口,当然,你可以用p参数来改变这个端口
$ ssh -p 222 user@host