开始行文之前提出几个问题,相信大家在看完本文后一定可以回答。在互联网中传播的数据怎么确保信息被截获后数据不泄露?怎么确保我发送给对方的数据是完整的? SSL 安全套接字层 SSL Security Socket Layer 定义 SSL是一种安全协议,目的是为互联网通信提供安全、数据完整性、身份验证保障。 第一个问题对应于数据安全,第二个问题对应于数据完整性。早期的HTTP协议中数据是明文传输的,什么是明文传输?举个例子,假设你喜欢一个女孩子,你俩第一次见面你就大声的对着这个女孩子说:“我们结婚吧”,那么多半都会黄,看吧,明文传输多么的不安全。正确的做法是,穿的精神点,你走到女子跟前,礼貌又绅士的说:“美女,今天我能请你吃个饭吗?”,然后慢慢接触,最后再求婚啥的。前面的请客吃饭、慢慢接触什么的就像一个保护套一样,保护和隐藏了你的真实意图,最后不就成功了吗。而SSL就是上面的保护套,保护了你的数据在网络中正确,完整的传输。数据安全 本文介绍两种加密算法,对称加密,非对称加密对称加密 对称加密是最简单,方便快捷的加密方式。对称加密的锁只需要一把钥匙就可以打开。但是如果公钥在传输的过程中被坏人截获的话,数据就会泄露。 对称加密非对称加密 很久很久以前,小男孩有一把钥匙,小女孩也有一把钥匙,他们一起买了一把锁,这把锁使用其中一把钥匙锁住后,必须使用另外一把钥匙才可以打开。他们玩的很开心,慢慢的女孩喜欢上了男孩,但是有一天男孩对女孩说:“再见了,明天不能陪你玩了,我要去其他城市了”,女孩拉着男孩的手说:“如果我们长大了还能遇到,我们俩就在一起”。很多年后,女孩男孩都长大了,女孩没嫁,男孩没娶,有一天女孩拿着一把锁去参加相亲大会,很多男生来到了她的面前,只有一个男生打开了那把锁,其他的都没有打开,女孩激动的说:“我就知道是你”。 上面那个悲伤的故事介绍的就是非对称加密算法,男孩的钥匙叫做私钥,女孩的钥匙叫做公钥,那个锁里锁着的就是我们在网络中传输的数据。非对称加密优点是,哪怕公钥和数据被坏人截获,如果坏人没有私钥是没有办法解密信息的。非对称加密算法需要使用公钥对数据进行加密,使用私钥进行解密,或者相反,加密解密花费时间长,这是非对称加密算法的缺点。 非对称加密数据完整性验证 当我们采用对称加密算法的时候,发送方和接收方都有一把钥匙,叫作公钥。 数据完整性 发送方,公钥加计算方法算出来一个数字和数据一起发送给接受方。 接收方,公钥加计算方法算出来一个数字,这个数字和接受到的数字对比,如果一致,则数据完整。总结 我们使用非对称加密算法保证,哪怕当我们的数据被截获后,我们还是可以保证数据的安全性 我们使用对称加密算法保证数据传输的完整性。 当然这里还有一种算法是对称加密算法和非对称加密算法的混合使用,在该算法中我们使用对称加密算法在网络中传输私钥,接收方接受到私钥后再配合公钥完成数据的解密。 |