前面几篇博客聊了HTTP的相关东西,今天就来聊一聊HTTPS的东西。因为HTTP协议本身存在着明文传输、不能很好的验证通信方的身份和无法验证报文的完整性等一些安全方面的确点,所以才有了HTTPS的缺陷。HTTPS确切的的说不是一种协议,而是HTTP + SSL (TSL)的结合体。HTTP报文经过SSL层加密后交付给TCP层进行传输。SSL(安全套节层)主要采取的是RSA(非对称加密)与AES(对称加密)结合的加密方式。先通过RSA交互AES的密钥,然后通过AES进行报文加密和解密。本篇博客主要聊的就是HTTPS具体的工作过程。
一、RSA与AES简述
在本篇博客的第一部分呢,先聊一下RAS与AES这两个加密策略,如果你在公司做过支付相关的东西,对数据传输的安全性要求比较高,这时候就得采取一些加密措施将传输的报文进行加密,必要时再进行MD5验签。当然本部分聊的RAS与AES是比较简洁的,关于这两者具体的内容,请自行Google吧。因为HTTPS在传输的过程中使用到了RSA与AES加密算法,所以在聊HTTP+SSL之前呢,我们先简单的聊一下AES与RSA。
1、Advanced Encryption Standard (AES: 高级加密标准)
AES,全称:Advanced Encryption Standard----高级加密标准。该加密算法有一个密钥,该密钥可以用来加密,也可以用来解密,所以AES是对称加密算法。下方这个就是AES加密和解密的过程。Client端与Server端有一个共同的Key, 这个Key是用来加密和解密的。如果报文在传输的过程中被窃取了,没有这个key, 对加密的内容进行破解是非常困难的,当然窃取者如果有key的话,也是可以轻而易举的解密的。所以在AES中,key是关键。这也就相当于你们家的门钥匙,谁拿到钥匙后都可以打开你们家的门。即使门锁再结实,再安全,在钥匙面前也是不行呢。
所以对于AES加密策略来说这个Key的保密措施要做足一些,如果之后有时间的话可以分享一些具体的AES加密策略。比如每次加密的Key都是从一个密码本中动态生成的,而这个
延伸阅读
学习是年轻人改变自己的最好方式