SSH简介

本文深入探讨了对称密钥密码体制和公钥密码体制的原理,重点介绍了IDEA、RSA算法及其应用。同时,详细解释了SSH协议在加密通信和远程登录中的作用,包括如何使用SSH替代Telnet和FTP,以及SFTP和FTPS的加密机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先有两类密码体制:

对称密钥密码体制

即加密密钥和解密密钥是相同的密码体制。

典型的DES属于分组加密。即将原文按64位长的二进制数据分组,对每一个分组分别加密。所有加密得到的密文再全部串联起来,得到整个密文。

使用的密钥也是64位。

DES的可靠性来自于密钥长度,而算法是公开的。因此密钥的保密是关键。64位密钥的可能组合是有限的,使用大型计算机在短时间内就可以用穷举法攻破。

因此后来又出现IDES,其不同仅仅是使用了128位长的密钥。理论上已经没有被攻破的可能。


公钥密码体制

IDES虽然在理论上无法用穷举法攻破,但是加密解密双方使用相同的密钥,一是事先双方都约定好,二是加密方通过网络告诉解密方。

第一种方式太麻烦,有时不可行。第二种方式不安全,因为密钥也许会在网络传播过程中被截获。这是对称密钥体制的致命缺陷。

因此出现了另一种体制,公钥密码体制。

RSA是公钥密码体制的一种。它也就是SSH所使用的加密解密方式。该体制的工作原理如下:

该方式需要一对密钥:public key和private key。public key是公开的,private key的保密的。

设定发送者A和接收者B。接收方B需要自己生成这对密钥,private key自己藏起来不让别人知道,public key告诉发送方。


1,A使用public key加密明文后,将密文传送给B。

3,B使用private key解密,得到明文。

结果是,只有B才能解密接收到的密文。

虽然很容易产生成对的public 和 private key,但是却不能用public key推算出private key,二者在数学上有某种关联,但是无法推导出来。

具体产生密钥对的算法可以参考:http://zh.wikipedia.org/wiki/RSA%E5%8A%A0%E5%AF%86%E6%BC%94%E7%AE%97%E6%B3%95

虽然public key可用来加密,但是却不能用来解密。


RSA的一个应用:

数字签名,就是我们在网上下载了比如一个程序,为了防止该程序是伪造的,就使用数字签名来认证真伪。


数字签名很有意思,正好和上面的过程反过来,发送方使用private key加密明文,接收者使用public key解密。

因为数字签名证明的是,该资源是真的而不是冒牌的。使用private key加密明文,因此只有发送方才能加密明文,而别人不能冒充。使用public key解密导致所有人都能解密明文,从而每个下载该程序的人都可以验证它的真伪。

如果有人想伪造一个签名,由于他没有private key,即使加密,B得到密文后,使用public key只能得到一个不可读的明文,从而知道是假冒的。


但是RSA的问题是,如果一个坏蛋自己产生了一对密钥,用其中的公钥,骗A说这就是B的公钥。A很开心的用公钥得到密文,传送给了B,同时也被坏蛋截获了密文。坏蛋就可以使用自己的私钥解密,然后偷看。然后坏蛋用B真正的公钥 (因为是public key所以大家都知道) 得到密文,再传送给B。

理论上A和B都不会知道有人在偷看。


因此密钥的管理和传送及其重要,并从而产生了密码学的另一个分支密钥管理。太复杂就不多说了,我也不懂。

而SSH是建立在RSA之上的。

SSH为Secure Shell的缩写。SSH为创建在应用层和传输层基础上的安全协议。除了SSH外还有其他在不用layer上的安全协议。

SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。通过SSH可以对所有传输的数据进行加密,也能够防止DNS欺骗和IP欺骗。

SSH之另一项优点为其传输的数据是经过压缩的,所以可以加快传输的速度。SSH有很多功能,它既可以代替Telnet,又可以为FTPPOP、甚至为PPP提供一个安全的“通道”。注意并不包括http。http有专门的https作为安全协议 (超文本传输安全协议(缩写:HTTPS,英语:Hypertext Transfer Protocol Secure)是超文本传输协议和SSL/TLS的组合,用以提供加密通讯及对网络服务器身份的鉴定。)。

这点很重要:Users of telnet, rlogin, and ftp may not realize that their password is transmitted across the Internet unencrypted, but it is


因此SSH常常用于加密telnet和ftp:

例如用SSH替代telnet:

像我们在工作中经常会在unxi上使用的ssh命令,就是对ssh的应用:

bash-3.00$ ssh -l root 172.168.1.1

以上命令的意思是用root用户通过ssh连接IP为172.168.1.1的主机。登录后进入目标主机的某目录下,可进行任意操作。

但这种应用需要目标主机有ssh的服务,在linux,unix机器上已经默认安装了。如果是windows机器,则需要在windows主机上安装openSSH才能使用。


使用SSH加密FTP

用SSH封装过的FTP称为SFTP,现在已经有广泛的使用。我们还能见到一种加密的FTP称为FTPS,实际是用SSL封装过的FTP,实际的应用相对少一些。

如果要是用SFTP传输数据,也意味着网络必须打开SSH端口。

还有一种常见的加密ftp称为FTPS,其实是SSL封装过的FTP。Secure Sockets Layer (SSL)

但是目前使用的并不多。

 

在unix上通常默认安装了:

scp: secure copy。也就是ssh over rcp

sftp: secure file transfer program。 也就是ssh over ftp

sshd:  is  the  daemon  that  listens  for  connections  from clients. 也就是ssh的server side




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值