SSL和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安全的傳輸協議,默認地,它使用22端口.
以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的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原理
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/
