HTTPS
HTTPS 其实是一个“非常简单”的协议,RFC 文档很小,只有短短的 7 页,里面规定了新的协议名“https”,默认端口号 443,至于其他的什么请求 - 应答模式、报文结构、请求方法、URI、头字段、连接管理等等都完全沿用 HTTP,没有任何新的东西。
也就是说,除了协议名“http”和端口号 80 这两点不同,HTTPS 协议在语法、语义上和 HTTP 完全一样,优缺点也“照单全收”(当然要除去“明文”和“不安全”)。
SSL/TLS是位于TCP、IP7层协议中的会话层,用于认证用户和服务端,加解密数据以及维护数据的完整性,确保数据传输过程中不会被修改。
SSL 有 v2 和 v3 两个版本,而 v1 因为有严重的缺陷从未公开过。SSL 发展到 v3 时已经证明了它自身是一个非常好的安全通信协议,于是互联网工程组 IETF 在 1999 年把它改名为 TLS(传输层安全,Transport Layer Security),正式标准化,版本号从 1.0 重新算起,所以 TLS1.0 实际上就是 SSLv3.1
到今天 TLS 已经发展出了三个版本,分别是 2006 年的 1.1、2008 年的 1.2 和去年(2018)的 1.3,每个新版本都紧跟密码学的发展和互联网的现状,持续强化安全和性能,已经成为了信息安全领域中的权威标准。
目前应用的最广泛的 TLS 是 1.2,而之前的协议(TLS1.1/1.0、SSLv3/v2)都已经被认为是不安全的,各大浏览器即将在 2020 年左右停止支持,所以接下来的讲解都针对的是 TLS1.2。
TLS由记录协议、握手协议、警告协议、变更密码规范协议、扩展协议等几个子协议组成,综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术。浏览器和服务器在使用TLS建立连接时需要选中一组恰当的加密算法来实现安全通信,这些算法的组合被称为“密码套件”(也叫加密条件)。
SSL/TLS分为对称加密和非对称加密两种方式。
对称加密
对称加密是指加密和解密都用同一份秘钥。
AES(Adavanced Encryption Standard),秘钥长度可以是128.192或256.它是DES算法替代者,安全强度很高
非对称加密对应于一对秘钥,称为私钥和公钥,用私钥加密后需要用公钥解密,用公钥加密后需要用私钥解密
对称加密看上去好像完美地实现了机密性,但其中有一个很大的问题&#