对HTTPS的一些理解
你对HTTPS是怎么理解的?
HTTPS是一个应用于应用层的超文本传输协议,它可以理解是HTTP的基础上加入了SSL层,SSL(安全套接字层层)是HTTPS的安全基础。
你怎么理解SSL
SSL的工作就是对在客户端和服务器端之间来回传递的数据进行加密。
好处: 防止数据信息的泄露,保证了双方传递信息的安全性,还能验证他所访问的网站是否是真实可靠。
关于SSL证书的一些认识:
证书级别: EV(增强型)证书 、 OV(企业型)证书、 .DV(域名型)证书
证书品牌: GeoTrust 、 Symantec、Thawte
HTTPS的工作流程
-
协商加密算法:浏览器A向服务器B发送浏览器的SSL版本,以及一些可选的非非对称加密算法;B从中选择自己所支持的算法(如RSA),并告知A;
-
服务器鉴别:服务器B向浏览器A发送包含其RSA公钥的数字证书;A使用该证书的认证机构CA公开发布的RSA公钥对该证书进行验证;
-
会话**计算:由浏览器A随机产生一个随机数;用服务器B的RSA公钥进行加密后发送给B;双方根据协商的算法产生共享的对称会话**
-
安全数据传输:双方用会话**加密和解密他们这间传送的数据并验证其完整性。
解析:
-
浏览器第一次发送的一些可选的加密算法是为什么?
“非对称加密”的加密算法,特点是私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。私钥只有一个人有,而公钥可以发给所有的人。
由于客户端和服务器并不是一对一的方式,为了安全,第个客户与服务器之前都会用不同的对称加密算法;到底用什么对称加密算法呢,在这之前要进行协商,所以使用非对称加密算法进行对称加密算法协商过程
-
B为什么会有数字证书?
B作为服务器,是可以提前向CA机构去申请属于他的数字证书的,每个数字证书都会有一个编号。
-
A客户端本地是怎么去验证B的证书是不是假的?
答案是证书本身就已经告诉客户端怎么验证证书的真伪。
也就是证书上写着如何根据证书的内容生成证书编号。客户端拿到证书后根据证书上的方法自己生成一个证书编号,如果生成的证书编号与证书上的证书编号相同,那么说明这个证书是真实的。
同时,为避免证书编号本身又被调包,所以使用第三方的私钥进行加密。
浏览器和操作系统都会维护一个权威的第三方机构列表(包括它们的公钥)。因为客户端接收到的证书中会写有颁发机构,客户端就根据这个颁发机构的值在本地找相应的公钥。
-
随机数是用来做什么的呢?
使用随机数,就是使用随机数来生成对称加密算法。这样就可以做到服务器和客户端每次交互都是新的加密算法、只有在交互的那一该才确定加密算法。 第三者就不知道这个对称加密算法。