安全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最常见的开源实现。