本篇是关于HTTP Security的介绍和用途.
攻略模板
学习后总结
一般我们是通过TLS或者SSL来进行加密连接。
最简单的方式为:
1 2 3 4
| A端 Secret Key Secret Key B端 "String" =============> "dfafdalf4311" ==============> "String" 加密 Encrypt 解密 Decrypt
|
弊端:Secret Key can be stolen. 因为密钥是public的,任何人拥有key都可以解密知晓内容,安全性得不到保证。
因此,出现以下方法:
1 2 3 4
| B端 / \ / \ public key private key
|
1 2 3 4
| A端 B's public key B's private key B端 "String" =============> "dfafdalf4311" ===============> "String" 加密 Encrypt 解密 Decrypt
|
好处:所有人都可以拥有public key来进行加密,但是只有拥有private key的人才可以解密,从而达到安全目的。
所谓的 数字签名:
引用上面的例子
1 2 3 4
| B端 B's private key B's public key A端 "String" ===============> "dfafdalf4311" ===================> "String" Sign and Encrypt Verify and Decrypt
|
使用B的private key 给自己的信息加密贴上标签,只要是拥有B的public key的人都可以使用公开的public key来试一下解密,如果可以解开则表明这条信息一定是来自于B端发出,以此达到数字签名的目的。