数字签名、数字证书、https这三个词,是我们在购买SSL证书时最经常看到的词语,他们到底是什么意思?三者之间有什么关系吗?
小科普
为了理解这三个名词,我们首先要理解以下几个概念:明文、密文、密钥、对称加密、非对称加密。
明文、密文和密钥
明文和密文比较容易理解,明文就是我们可以直接看到的内容,而密文就是需要解密才能被看到的内容。比如“123”是明文,能被直接看到,将123加密,乘以2得到246就是密文,如果另外一个人只看到246这个数字,是无法知道被加密前的数字是多少的。
在这个例子中“2”被用来加密“123”,“2”就是密钥。
对称加密和非对称加密
在上面的例子中,加密数字“123”的密钥是“2”,解密246的密钥也是“2”,加密和解密都使用同一把密钥,这种加密方式被称为对称加密。
反之,如果加密和解密使用的密钥不同,就是非对称加密。非对称加密的原理比对称加密复杂得多,这里我们不再深入。
数字证书
当用户在浏览器地址栏输入网址,敲下回车键以后,会发生一系列连锁反应。
首先,浏览器会与网站建立TCP连接
网站提示浏览器安装数字证书,否则将无法继续进行。
紧接着,浏览器要验证网站的服务器是否是真实的,而不是其他冒充的。这时服务器会发过来自己的数字证书。
网站的数字证书哪里来的呢?
答案是CA(数字证书颁发机构)发的。CA会给网站发一张证书,证书包含了许多信息:
- 签发者
- 证书用途
- 网站的公钥
- 网站的加密算法
- 网站用的HASH算法
- 证书到期时间等等
数字签名
CA会将数字证书发给网站,但这其中存在一个问题。CA在将数字证书发给网站的过程中,如果被第三人篡改,证书的存在也就没有意义了,因为第三人可以利用这一点,肆无忌惮的篡改数据。
为了保证这一过程能顺利进行,不被篡改。CA把数字证书的内容再进行一次HASH,就得到了数字证书。
最后,CA会将数字证书附在证书的末尾,一起传输给网站。这样一来,任何试图篡改证书的操作,都会被数字签名发现。
不严谨地说,数字签名和我们在合同上签的字、盖的印章本质上没什么区别,都是为了验证真实性。
https
https的出现,是为了解决http明文传输不安全的问题,给http协议加上了一层SSL,就变成了https。
https解决明文传输的方式涉及到数字证书和数字签名。数字证书确保浏览器与服务器之间数据传输的安全。数字签名则确保数字证书在传输过程中不被篡改,一环扣一环,环环相扣。
随着互联网的发展,数字证书的应用也越来越广泛。在近几年,百度、淘宝、知乎等各大平台纷纷全站启用https以确保数据传输的安全。除了出于安全需要,数字证书的价格逐年下降,也是https得到普及的主要原因。