We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
在上篇文章中,我们了解到HTTP在通信过程中,存在以下问题:
HTTP
而HTTPS的出现正是解决这些问题,HTTPS是建立在SSL之上,其安全性由SSL来保证
HTTPS
SSL
在采用SSL后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能
SSL(Secure Sockets Layer 安全套接字协议),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议
SSL 的实现这些功能主要依赖于三种手段:
对称加密指的是加密和解密使用的秘钥都是同一个,是对称的。只要保证了密钥的安全,那整个通信过程就可以说具有了机密性
非对称加密,存在两个秘钥,一个叫公钥,一个叫私钥。两个秘钥是不同的,公钥可以公开给任何人使用,私钥则需要保密
公钥和私钥都可以用来加密解密,但公钥加密后只能用私钥解 密,反过来,私钥加密后也只能用公钥解密
在HTTPS通信过程中,采用的是对称加密+非对称加密,也就是混合加密
在对称加密中讲到,如果能够保证了密钥的安全,那整个通信过程就可以说具有了机密性
而HTTPS采用非对称加密解决秘钥交换的问题
具体做法是发送密文的一方使用对方的公钥进行加密处理“对称的密钥”,然后对方用自己的私钥解密拿到“对称的密钥”
这样可以确保交换的密钥是安全的前提下,使用对称加密方式进行通信
网站秘密保管私钥,在网上任意分发公钥,你想要登录网站只要用公钥加密就行了,密文只能由私钥持有者才能解密。而黑客因为没有私钥,所以就无法破解密文
上述的方法解决了数据加密,在网络传输过程中,数据有可能被篡改,并且黑客可以伪造身份发布公钥,如果你获取到假的公钥,那么混合加密也并无多大用处,你的数据扔被黑客解决
因此,在上述加密的基础上仍需加上完整性、身份验证的特性,来实现真正的安全,实现这一功能则是摘要算法
实现完整性的手段主要是摘要算法,也就是常说的散列函数、哈希函数
可以理解成一种特殊的压缩算法,它能够把任意长度的数据“压缩”成固定长度、而且独一无二的“摘要”字符串,就好像是给这段数据生成了一个数字“指纹”
摘要算法保证了“数字摘要”和原文是完全等价的。所以,我们只要在原文后附上它的摘要,就能够保证数据的完整性
比如,你发了条消息:“转账 1000 元”,然后再加上一个 SHA-2 的摘要。网站收到后也计算一下消息的摘要,把这两份“指纹”做个对比,如果一致,就说明消息是完整可信的,没有被修改
数字签名能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名
原理其实很简单,就是用私钥加密,公钥解密
签名和公钥一样完全公开,任何人都可以获取。但这个签名只有用私钥对应的公钥才能解开,拿到摘要后,再比对原文验证完整性,就可以像签署文件一样证明消息确实是你发的
和消息本身一样,因为谁都可以发布公钥,我们还缺少防止黑客伪造公钥的手段,也就是说,怎么判断这个公钥就是你的公钥
这时候就需要一个第三方,就是证书验证机构
数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场
CA 对公钥的签名认证要求包括序列号、用途、颁发者、有效时间等等,把这些打成一个包再签名,完整地证明公钥关联的各种信息,形成“数字证书”
流程如下图:
接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,则证明:
可以看到,HTTPS与HTTP虽然只差一个SSL,但是通信安全得到了大大的保障,通信的四大特性都以解决,解决方式如下:
同时引入第三方证书机构,确保公开秘钥的安全性
The text was updated successfully, but these errors were encountered:
加密形式:
HTTPS = HTTP + SSL
SSL采用混合加密(对称加密+非对称加密),主要原因是因为非对称加密性能代价比较高,而对称加密较少,那么
如何解决完整性问题?使用摘要! 发送把 正文M 经过某种算法X 生成摘要G,正文M+摘要G 加密发给接收方 接收方解密生成 正文N+摘要G,正文经过算法X生成 摘要F,如果F==G,则正文N==M相同
如何解决身份认证?使用数字签名! 数字签名很简单,就是把私钥加密,公钥解密,其核心思想是,『只有真正的通信方才拥有这把私钥』,黑客不可能拥有这把私钥,这样就起到了身份认证。 发送方生成摘要G后,用私钥加密,生成数字签名,数字签名和正文M一起发过去 接收方收到后,用公钥解密出数字签名,在经过算法X生成摘要F,如果F==G,则正文相同
衍生一个问题,私钥是由真正通信方拥有,公钥也是由它发布,如何防止黑客发布假的公钥?CA数字证书认证机构! CA采用的是非对称性加密,私钥由CA持有,公钥由浏览器持有,但是会事先内嵌在浏览器当中 通信方向CA申请公钥A,通过后CA把公钥A做数字签名,数字签名和公钥A绑定在一起,就是一份证书 通信方进行通信的时候会把这份证书传给接收方,这样接收方会对证书上的数字签名进行认证,如果认证通过,就能够表明该通信方的身份。
Sorry, something went wrong.
No branches or pull requests
一、安全特性
在上篇文章中,我们了解到
HTTP
在通信过程中,存在以下问题:而
HTTPS
的出现正是解决这些问题,HTTPS
是建立在SSL
之上,其安全性由SSL
来保证在采用
SSL
后,HTTP
就拥有了HTTPS
的加密、证书和完整性保护这些功能二、如何做
SSL
的实现这些功能主要依赖于三种手段:对称加密
对称加密指的是加密和解密使用的秘钥都是同一个,是对称的。只要保证了密钥的安全,那整个通信过程就可以说具有了机密性
非对称加密
非对称加密,存在两个秘钥,一个叫公钥,一个叫私钥。两个秘钥是不同的,公钥可以公开给任何人使用,私钥则需要保密
公钥和私钥都可以用来加密解密,但公钥加密后只能用私钥解
密,反过来,私钥加密后也只能用公钥解密
混合加密
在
HTTPS
通信过程中,采用的是对称加密+非对称加密,也就是混合加密在对称加密中讲到,如果能够保证了密钥的安全,那整个通信过程就可以说具有了机密性
而
HTTPS
采用非对称加密解决秘钥交换的问题具体做法是发送密文的一方使用对方的公钥进行加密处理“对称的密钥”,然后对方用自己的私钥解密拿到“对称的密钥”
这样可以确保交换的密钥是安全的前提下,使用对称加密方式进行通信
举个例子:
网站秘密保管私钥,在网上任意分发公钥,你想要登录网站只要用公钥加密就行了,密文只能由私钥持有者才能解密。而黑客因为没有私钥,所以就无法破解密文
上述的方法解决了数据加密,在网络传输过程中,数据有可能被篡改,并且黑客可以伪造身份发布公钥,如果你获取到假的公钥,那么混合加密也并无多大用处,你的数据扔被黑客解决
因此,在上述加密的基础上仍需加上完整性、身份验证的特性,来实现真正的安全,实现这一功能则是摘要算法
摘要算法
实现完整性的手段主要是摘要算法,也就是常说的散列函数、哈希函数
可以理解成一种特殊的压缩算法,它能够把任意长度的数据“压缩”成固定长度、而且独一无二的“摘要”字符串,就好像是给这段数据生成了一个数字“指纹”
摘要算法保证了“数字摘要”和原文是完全等价的。所以,我们只要在原文后附上它的摘要,就能够保证数据的完整性
比如,你发了条消息:“转账 1000 元”,然后再加上一个 SHA-2 的摘要。网站收到后也计算一下消息的摘要,把这两份“指纹”做个对比,如果一致,就说明消息是完整可信的,没有被修改
数字签名
数字签名能确定消息确实是由发送方签名并发出来的,因为别人假冒不了发送方的签名
原理其实很简单,就是用私钥加密,公钥解密
签名和公钥一样完全公开,任何人都可以获取。但这个签名只有用私钥对应的公钥才能解开,拿到摘要后,再比对原文验证完整性,就可以像签署文件一样证明消息确实是你发的
和消息本身一样,因为谁都可以发布公钥,我们还缺少防止黑客伪造公钥的手段,也就是说,怎么判断这个公钥就是你的公钥
这时候就需要一个第三方,就是证书验证机构
CA验证机构
数字证书认证机构处于客户端与服务器双方都可信赖的第三方机构的立场
CA 对公钥的签名认证要求包括序列号、用途、颁发者、有效时间等等,把这些打成一个包再签名,完整地证明公钥关联的各种信息,形成“数字证书”
流程如下图:
接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,则证明:
三、总结
可以看到,
HTTPS
与HTTP
虽然只差一个SSL
,但是通信安全得到了大大的保障,通信的四大特性都以解决,解决方式如下:同时引入第三方证书机构,确保公开秘钥的安全性
参考文献
The text was updated successfully, but these errors were encountered: