有人说,SSH通常是用来提供安全的登录用的。SSL仅仅是一个在协议层中增加的一层用来提供安全。
SSH工作在TCP之上,能够在启动一个SSH应用后。在其通道里执行其他协议的应用。如邮件。
SSL能够觉得是假设应用程序本身支持SSL,那么他启动后就自己主动使用SSL连接去执行了,我们当然就不是必需再使用SSH了。
SSL 能够觉得是程序代码级是否支持的一种特性
SSH是我们后天能够选择的一种工具,它将我们的连接给包了起来tunnel技术
从名字上看:
SSL :secure socket layer,为程序构建时期为了安全性而增加的一个协议层
SSH :secure shell安全的壳。为已经能正常执行的程序加入的壳
有人建议不要拿着两个东西比較,不是一个范畴,要比的话应该拿telnet和ssh比較
昨天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安全的传输协议,默认地,它使用22port.
以SSL为例,基本上SSL在传输过程中所处的位置例如以下:
---------
| HTTP |
---------
| SSL |
---------
| TCP |
---------
| IP |
---------
假设利用SSL协议来訪问网页。其过程例如以下:
用户:在浏览器的地址栏里输入https://www.sslserver.com
HTTP层:将用户需求翻译成HTTP请求。如
GET /index.htm HTTP/1.1
Host http://www.sslserver.com
SSL层: 借助下层协议的的信道安全的协商出一份加密密钥,并用此密钥来加密HTTP请求。
TCP层:与web server的443port建立连接,传递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原理
http://groups.google.com/group/cn.bbs.comp.ms-windows/browse_thread/thread/e8508d4535c81d2b/2cca1b45b182ceff%232cca1b45b182ceff
[4]What is the difference between SSH and SSL?
http://www.rpatrick.com/tech/ssh-ssl/