可信身份认证系统 可信网站验证

可信网站验证(可信身份认证系统)
为什么HTTPS比HTTP更安全?安全可靠的通信应该包含什么?我将在本文中尝试解释清楚这些细节 。
与爱丽丝·鲍勃的通信我们用爱丽丝和鲍勃之间的一段对话来贯穿全文 。起初 , 它们都是用明文在网络上传输通信内容 。
嗅探和篡改如果黑客出现在他们的通信链路中,由于通信内容都是明文可见的 , 黑客可以嗅出并看到这些内容,或者篡改这些内容 。
微信官方账号的文章之前有很多人被绑架,篡改内容 , 插入广告 。
加密和解密既然明文有问题 , 就要对明文加密 , 让中间人看不懂内容 , 就要把原来的内容变成看不懂的内容 , 这就叫加密,反之亦然 。本质其实是一种数学运算的逆运算 , 类似于加减法 。比如发送方可以把abcd…xyz的每个字母+1映射到bcd…yza , 这样就使得原文的字母变成了无法理解的序列,而接收方只需要把每个字母-1还原成原来的序列 。当然这种做法的规律太容易* *了 , 后面还会有案例图 。
对称加密如果两个二进制数A和B进行异或得到结果C , 那么C和B的异或会再次返回A,所以异或也可以作为加密和解密 。
操作数A作为明文,操作数B作为* *,结果C作为密文 。可以看出,加密和解密用的是同一个**B,同一个* *方法叫做对称加密 。
可以看到简单的XOR加密/解密操作,要求* *与明文位数相同 。为了克服这个缺点,我们需要对其进行改进,将明文分组 。每组长度与* *相同 。我们可以分别通过异或运算得到密文片段,然后合并在一起得到密文 。
不过这种简单的分组方式也很容易找到规律 。从下图可以看出,中间采用了DES对原图的ECB模式加密(也就是上面说的简单分组模式)
显然,加密后原始图像的某些特征仍然暴露 , 因此需要改进 。总的思路是把上一次分组操作的结果/中间结果牵扯到下一次分组操作中,使其更具随机性和迷惑性 , 难度更高* * 。以下图片来自维基百科:
改进后,如果Alice和Bob能提前得到一个对称加密的* *就可以对明文进行加密 , 保证他们说的话不会被黑客看到 。
不对称加密只是引起了另一个问题 。怎么才能把这个对称加密用的* *告诉对方呢?如果在真实数据传输之前传输* *的话,黑客还是可以嗅到的,然后就没有秘密了 。所以还有另一种手段:
这是不对称加密 。任何人都可以通过获得Bob的公共公钥对内容进行加密,然后只有Bob自己的私钥可以解密和恢复原始内容 。
RSA就是这样一种算法,数学证明它很难被大素数相乘和费马小定理分解 。与之前的对称加密相比,需要乘法和模除 , 性能效率比对称加密差很多 。
由于非对称加密的性能较低,我们可以先用它协商对称加密,再用对称加密来提高整体性能 。
证明虽然上面已经解决了* *发货的问题,但是中间人还是可以欺骗双方 。只要Alice向Bob要公钥,黑客就把她的公钥给Alice , Alice不知道这件事,以为Bob一直在和她通信 。
你现在怎么证明Bob给了公钥?在危险的网络环境下,这个问题还没有得到解决 。
现实生活中我们一般怎么证明鲍勃就是鲍勃?一般政府给我们每个人发一张身份证(假设身份证不能伪造) 。只要我看到鲍勃的身份证,就证明鲍勃就是鲍勃 。网络也可以做到这一点 。如果有一个大家都信任的机构,CA,给大家一个证书,那么爱丽丝只要拿到这个证书,检查是不是CA做的鲍勃证书 , 就可以证明鲍勃就是鲍勃 。所以这个证书里面有两个重要的东西:Bob的公钥+CA做的数字签名 。
当使用公钥加密时,只有拥有私钥的人才能解密 。数字证书有点颠倒:用私钥加密 , 用公钥解密 。CA用自己的私钥加密Bob的信息(包括Bob的公钥) 。由于Alice无条件信任CA,所以她已经提前知道了CA的公钥 。当她收到Bob的证书时,只需要用CA的公钥解密Bob的证书内容,就能知道是否能成功解密(完整性仍需检查) 。此时意味着Bob就是Bob,之后使用证书中Bob的公钥走前面的流程 , 就解决了中间人欺骗的问题 。这种方法也是一种反否认方法 。让对方对消息进行数字签名 。我一收到消息,就用对方的公钥成功解锁并验证签名 , 也就是说消息一定是对方发给我的 。对方不能否认这种行为,因为只有他有数字签名的私钥 。
其实CA是多级关系,最顶层有一个根CA 。只要他信任B,B信任C,C信任D,那么我们基本可以认为D是值得信任的 。

推荐阅读