加密方式
如今流行的加密主要分为对称加密和不对称加密两种.
对称加密
对称加密指的是通信双方加密解密使用事先约定好的同一个密钥.常用的算法有AES,DES等.
其优点是加密解密速度快,运算开销低.
但缺点也很明显,安全的将这个密钥传输到另一方的手中可能会是一个很困难的事情.在不安全的环境中,有可能是一件高风险的事情.事实上,密钥一旦暴露,整个加密系统也就随之失效.
不对称加密
由于对称加密的这个缺点,密码学专家又研究了不对称加密.
公钥 私钥
通信双方各持有一个密钥对,每一个密钥对由公钥和私钥组成.公钥是可以被公开的,你可以任意的将它放在网络上供别人下载.而私钥则是绝对不能公开的,必须妥善保存在一个安全的位置.
它们具有以下重要的性质:
- 公钥即身份.这个结论对于理解后续证书的意义有非常大的帮助.你出示了A的公钥,就相当于你拥有了A的身份.别人想要冒充A是无意义的,因为你没有A的私钥,解不开任何用A的公钥加密过的信息.
- 私钥可以导出公钥,但是反之则不行.
- 公钥加密过的东西,可以用对应的私钥解开.私钥加密过的东西,可以用对应的公钥解开.
结合以上几点,不难知道,每一次通信的流程通常如下所示:
- 通信双方AB互换公钥.由于公钥本身是可以公开的信息,因此即使在不安全的网络环境中,这套系统也可以工作.
- A -> B传输时,A将消息用B的公钥加密得到密文.
- A将密文发送给B.
- B收到密文后,用自己的私钥解密,获取A发送的消息.
这个过程看似很完美,但存在着一个漏洞.我在前面写了,公钥即身份,问题是,有的时候很难验证这个公钥对应的身份.这也就引出了后面的中间人攻击以及CA签发证书.
签名
签名意为对某些东西的承诺.