https原理
https原理
https是什么
https = http + SSL/TLS
目前,应用最广泛的是TLS 1.0,接下来是SSL 3.0。但是,主流浏览器都已经实现了TLS 1.2的支持。
TLS 1.0通常被标示为SSL 3.1,TLS 1.1为SSL 3.2,TLS 1.2为SSL 3.3。
https基本原理
非对称加密
公钥加密私钥解密,私钥加密公钥解密。
数字证书
为了防止私钥被串改,搞出了一个数字认证中心,数字认证中心是一个权威机构值得信赖(可以理解为人民银行)。
基本原理
web服务器端将公钥提供给数字认证中心,中心将web服务端的公钥用自己的私钥加密,然后将中心的公钥向社会发布
https通信过程
- 浏览器发起往服务器的 443 端口发起请求,请求携带了浏览器支持的加密算法和哈希算法。
- 服务器收到请求,选择浏览器支持的加密算法和哈希算法。
- 服务器下将数字证书返回给浏览器,这里的数字证书可以是向某个可靠机构申请的,也可以是自制的。
浏览器进入数字证书认证环节,这一部分是浏览器内置的 TSL 完成的:
- 首先浏览器会从内置的证书列表中索引,找到服务器下发证书对应的机构,如果没有找到,此时就会提示用户该证书是不是由权威机构颁发,是不可信任的。如果查到了对应的机构,则取出该机构颁发的公钥。
- 用机构的证书公钥解密得到证书的内容和证书签名,内容包括网站的网址、网站的公钥、证书的有效期等。浏览器会先验证证书签名的合法性。签名通过后(用机构的公钥解密证书签名得到的哈希值和证书内容的哈希值匹配),浏览器验证证书记录的网址是否和当前网址是一致的,不一致会提示用户。如果网址一致会检查证书有效期,证书过期了也会提示用户。这些都通过认证时,浏览器就可以安全使用证书中的网站公钥了。
- 浏览器生成一个随机数 R,并使用网站公钥对 R 进行加密。
- 浏览器将加密的 R 传送给服务器。
- 服务器用自己的私钥解密得到 R。
- 服务器以 R 为密钥使用了对称加密算法加密网页内容并传输给浏览器。
- 浏览器以 R 为密钥使用之前约定好的解密算法获取网页内容。
相关推荐
燕哥带你学算法 2020-06-11
natloc 2020-06-10
gongruitao 2020-05-16
STchaoL 2020-05-11
dushine00 2020-02-03
rein0 2020-01-29
yedaoxiaodi 2019-12-29
风吹夏天 2019-12-27
Happyunlimited 2019-12-09
baike 2019-12-05
luohui 2019-11-10
sxyyu 2019-11-08
cyhbrilliant 2019-11-07
风吹夏天 2019-11-03
HeavyIndustry 2019-02-19
wuyindengliu 2018-11-19
明鱼 2011-09-08
算法魔功 2016-04-05
HeavyIndustry 2019-02-19
闫新宇 2011-12-09
ustbfym 2011-11-24
ming00 2013-11-07
tuonioooo 2011-10-08
zhuyonge 2011-07-26
gotea 2011-05-19
微分 2010-08-10
wuxiaosi0 2019-07-01
scuyxi 2015-11-04
Broadview 2019-06-28
ztf 2019-06-26