1. 程式人生 > >SSL、TLS、HTTPS、SSH綜述

SSL、TLS、HTTPS、SSH綜述

1.Secure Socket Layer (SSL)
SSL是傳輸層之上,對Socket連線的加密協議。
SSL多用於在Internet上,在瀏覽器和伺服器之間的安全傳輸。

SSL最初是由Netscape研發,版本演變如下:

  • SSLv1(1994)未正式釋出
  • SSLv2(1995)
  • SSLv3(1996,RFC6101)
2014年,人們發現POODLE攻擊會造成SSL 3.0的block ciphers和RC4不安全,2015年SSL3.0過時了。
SSL協議可以分為兩個層次:
  • SSL Record Protocol,對資料進行壓縮、加密等操作後的報文格式;
  • SSL Handshake Protocol,基於SSL Record Protocol,在實際傳輸資料之前進行身份認證、協商加密演算法和交換金鑰
SSL建立安全通道之前的handshake過程是明文,報文鑑別預設使用MAC演算法。
2.Transport Layer Security (TLS)
TLS也是傳輸層之上的加密協議。
TLS可用於任何兩個應用程式之間的安全傳輸。
TLS是基於SSLv3的後續發展,版本演變如下:
  • TLS1.0,1999年開始定義
  • TLS1.1(RFC4346,2006)
  • TLS1.2(RFC5246,2008)
  • TLS1.2重構(RFC6176,2011),不再向後相容
  • TLS1.3草案(2016)
TLS協議可以分為兩個層次:
  • TLS Record Protocol,對資料進行壓縮、加密等;
  • TLS Handshake Protocol,在實際傳輸資料之前進行身份認證、協商加密演算法和交換金鑰

TLS建立安全通道之前的handshake過程是明文,報文鑑別預設使用HMAC演算法。

OpenSSL是SSL/TLS的開源實現。

3.HTTPS是在傳輸層使用SSL/TLS加密的HTTP

與HTTP類似,HTTPS本身是應用層的協議。

同一臺Web伺服器,往往同時支援HTTP和HTTPS,這是分別通過80埠和443埠實現的。

4.Secure SHell (SSH)
SSH是應用層的通訊加密協議,往往用於遠端登入的會話。

OpenSSH是SSH的開源實現。