分类:
2008-11-07 18:06:11
昨天Jim突然问我,SSH和SSL有什么不一样吗?我一听,是啊,有什么区别吗?...实事求是得告诉他我不知道:(
晚上回来查了查,呵呵,了解啦.
在OSI七层模型中,这两个安全传输协议其实都是建立在应用层上的:
(图片来源:Wikipedia)
在最初的设计意图中,SSL(Secure Sockets Layer (SSL) and Transport Layer Security (TLS))被设计为加强Web安全传输(HTTP/HTTPS/)的协议(事实上还有SMTP/NNTP等),SSH(Secure Shell)更多的则被设计为加强Telnet/FTP安全的传输协议,默认地,它使用22端口.
以SSL为例,基本上SSL在传输过程中所处的位置如下:
---------
| HTTP |
---------
| SSL |
---------
| TCP |
---------
| IP |
---------
如果利用SSL协议来访问网页,其步骤如下:
用户:在浏览器的地址栏里输入
HTTP层:将用户需求翻译成HTTP请求,如
GET /index.htm HTTP/1.1
Host
SSL层: 借助下层协议的的信道安全的协商出一份加密密钥,并用此密钥来加密HTTP请求。
TCP层:与web server的443端口建立连接,传递SSL处理后的数据。
接收端与此过程相反。
SSL在TCP之上建立了一个加密通道,通过这一层的数据经过了加密,因此达到保密的效果。
SSL协议分为两部分:Handshake Protocol和Record Protocol,。其中Handshake Protocol
用来协商密钥,协议的大部分内容就是通信双方如何利用它来安全的协商出一份密钥。 Re
cord Protocol则定义了传输的格式。
参考文章:
[1]Secure Shell
http://en.wikipedia.org/wiki/Secure_Shell
[2]Transport Layer Security
http://en.wikipedia.org/wiki/Transport_Layer_Security
[3]SSL/TLS/WTLS原理
[4]What is the difference between SSH and SSL?