安全HTTP需要提供的功能:
- 服務器認證
- 客戶端認證
- 完整性
- 加密
- 效率
- 普適性
- 管理的可擴展性
- 適應性
- 在社會上的可行性
HTTPS
HTTPS方案的URL以https://
開頭,區別于https://
。
HTTPS在HTTP的基礎上使用SSL
或者TLS
(傳輸層安全)進行加密。
HTTPS是位于安全層之上的HTTP,這個安全層位于TCP之上:
數字加密
密碼
密碼是一套編碼方案——一種特殊的報文編碼方式和一種稍后使用的相應解碼方式的結合體。
三字符循環移位密碼示例;
循環移位N字符中的N(密碼參數)由密鑰
控制。
數字密碼
使用不同密鑰的旋轉N字符密碼:
加密過程:編碼函數E使用明文P通過密鑰e編碼生成密文C
對稱密鑰加密技術
對稱密鑰指的是加密密鑰值和解密密鑰值相等。使用對稱密鑰加密技術,需要發送端和接收端共享相同的密鑰值。
對稱密鑰的解密過程:解密函數D對密文C通過密鑰d進行解密,生成明文P
密鑰長度和枚舉攻擊
用暴力去嘗試所有的密鑰值稱為枚舉攻擊
。
公開密鑰加密技術
公開密鑰加密技術使用了兩個非對稱密鑰:一個用于主機報文編碼,一個用于主機報文解碼。
所有人都可以用同一個密鑰對發給服務器X的報文進行編碼,但除了服務器X本身,其他人無法解碼,只有X有解碼私有密鑰。
數字證書
因特網上的“ID卡”——數字證書。數字證書(通常被稱作certs
)包含了由某個受信任組織擔保的用戶或公司的相關信息。
驗證簽名
HTTPS細節
HTTP和HTTPS端口號
HTTP和HTTPS事務
簡化版SSL握手
服務器證書
站點證書的有效性
日期檢測、簽名頒發者(CA)的可信度檢測、簽名檢測、站點身份檢測。
HTTPS客戶端實例
OpenSSL
OpenSSL是SSL和TLS最常見的開源實現。