Files
kernel_Notes/Zim/Utils/SSH_and_SSL.txt
2012-08-08 15:17:56 +08:00

27 lines
3.6 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.4
Creation-Date: 2011-10-12T18:18:16+08:00
====== SSH and SSL ======
Created Wednesday 12 October 2011
ssl是通讯链路的附加层。可以包含很多协议。https, ftps, .....
ssh只是加密的shell最初是用来替代telnet的。通过port forward也可以让其他协议通过ssh的隧道而起到加密的效果。
SSL是一种国际标准的加密及身份认证通信协议您用的浏览器就支持此协议。SSLSecure Sockets Layer最初是由美国Netscape公司研究出来的后来成为了Internet网上安全通讯与交易的标准。SSL协议使用通讯双方的客户证书以及CA根证书允许客户/服务器应用以一种不能被偷听的方式通讯,在通讯双方间建立起了一条安全的、可信任的通讯通道。它具备以下基本特征:信息保密性、信息完整性、相互鉴定。 主要用于提高应用程序之间数据的安全系数。SSL协议的整个概念可以被总结为一个保证任何安装了安全套接字的客户和服务器间事务安全的协议它涉及所有TC/IP应用程序。
SSH的英文全称是Secure SHell。通过使用SSH你可以把所有传输的数据进行加密这样“中间人”这种攻击方式就不可能实现了而且也能够防止DNS和IP欺骗。还有一个额外的好处就是传输的数据是经过压缩的所以可以加快传输的速度。
SSH有很多功能它既可以代替telnet又可以为ftp、pop、甚至ppp提供一个安全的“通道”。
SSH是由客户端和服务端的软件组成的有两个不兼容的版本分别是1.x和2.x。
用SSH 2.x的客户程序是不能连接到SSH 1.x的服务程序上去的。OpenSSH 2.x同时支持SSH 1.x和2.x。
SSH的安全验证是如何工作的从客户端来看SSH提供两种级别的安全验证。
第一种级别基于口令的安全验证只要你知道自己帐号和口令就可以登录到远程主机。所有传输的数据都会被加密但是不能保证你正在连接的服务器就是你想连接的服务器。可能会有别的服务器在冒充真正的服务器也就是受到“__中间人__”这种方式的攻击。
第二种级别基于密匙的安全验证需要依靠密匙也就是你必须为自己创建一对密匙并把__公用密匙__放在需要访问的服务器上。如果你要连接到SSH服务器上客户端软件就会向服务器发出请求请求用你的密匙进行安全验证。服务器收到请求之后先在你在该服务器的家目录下寻找你的公用密匙然后把它和你发送过来的公用密匙进行比较。如果两个密匙一致服务器就用公用密匙加密“__质询__”challenge并把它发送给客户端软件。客户端软件收到“质询”之后就可以用你的私人密匙解密再把它发送给服务器。用这种方式你必须知道自己密匙的口令。但是与第一种级别相比第二种级别不需要在网络上传送口令。第二种级别不仅加密所有传送的数据而且“中间人”这种攻击方式也是不可能的因为他没有你的私人密匙。但是整个登录的过程可能需要10秒。
sftp有特殊的通讯端口和命令集尽管和ftp命令类似是和ssh平行的协议。建立连接的部分和ssh类似。一般情况下带有ssh服务器端也带有sftp服务当然你也可以不开。ftp over ssh就是建立连接时使用ssh协议然后利用ssh的转发使用ftp的命令集来传输文件。也就是说是建立在ssh协议上的ftp.