1.数字签名
1.1概念
也称为公钥数字签名
1.2作用
用来验证数据的真实性,防止被仿造和篡改
1.3使用的算法
非对称加密 和 数字摘要
1.4怎么做
是一套互补的运算,一个用来签名(加密),一个用来验证(解密)
每个人都有一对“钥匙”(数字身份),也就是私钥和公钥。私钥签名,公钥验证。
2.网络加密
即使使用非对称加密进行网络通信,但仍有被中间人攻击的可能性
3.为什么需要数字证书?
因为任何人都可以落款声称她/他就是你。
解决方案:公钥必须向接受者信任的人(身份认证机构)来注册。注册后身份认证机构给你发一数字证书。对文件签名后,你把此数字证书连同文件及签名一起发给接受者,接受者向身份认证机构求证是否真地是用你的密钥签发的文件。
为什么数字证书不能被劫持或伪造?
CA把自己的CA证书集成在了浏览器和操作系统里面。A拿到浏览器或者操作系统的时候,已经有了CA证书,没有必要通过网络获取,那自然也不存在劫持的问题。
4.SSL/TLS工作过程
由于非对称加密要比对称加密更加复杂,处理时间也相对较长,如果每次网络通信都使用非对称加密,则效率就会降低很多。
实际的网络通信中,非对称加密只用于加密通信的对称密钥来确保密钥的安全性,之后就通过对称加密进行网络通信。
SSL/TLS的基本工作过程:
通过CA体系交换公钥
非对称密钥加密:使用非对称加密,交换用于对称加密的密钥
对称内容交换:使用对称加密的密钥进行正常的网络通信
5.HTTPS
HTTPS全称是HTTP over SSL,也就是通过SSL/TLS加密HTTP数据,这或许是SSL最广泛的应用。
前面提到了CA作为一个公证机构,能确保数字证书的真实性。但是在实际使用中,CA认证一般是要收费的,普通人不会去做CA认证,进而获得属于自己的数字证书。更多的是,一些大的机构,例如银行,网店,金融机构,它们去获得自己的数字证书。
那这种情况如何保证网络通信的安全呢?
这些机构获取到CA授予的数字证书之后,将数字证书加到自己的web服务器上。当用户要去访问它们的网页,例如https://domain.com,会经过下图所示的步骤。
现在用户知道自己访问的网站是正规的网站,否则用户浏览器会报错说不能用CA证书解析。服务器通过CA授予的数字证书自证了身份。
那服务器怎么知道访问者就是真用户呢?
之前介绍的双向认证是可以通过数字证书验明用户的正身,现在用户为了省钱没有数字证书。这种情况下一般是通过用户名密码来确认用户。所以,大家要保管好自己的密码。