1、安全和算法
1-1、传输数据时的四个问题
1、篡改 2、假冒 3、窃听 4、事后否认
1-2、解决
窃听(加密技术)
假冒、篡改(消息认证码或数字签名)
事后否认(数字签名)
2、加密的基础知识
加密就是数据经过某种运算后,变成计算机无法理解的数的过程
3、哈希函数
哈希函数可以把给定的数据转换成固定长度的无规律数值
哈希函数的特点: 1、哈希值相同,不会根据文件大小改变 2、不可根据哈希值逆向推导原数值 3、相同的数字会有相同的输出,不相同的数字偶尔也会输出相同的哈希,叫哈希冲突,只是概率很低
使用哈希函数可以更安全的基于密码的用户认证 MD5 SHA-1 SHA-2等
4、共享密钥加密
共享密钥加密是加密和解密都是用相同密钥的一种加密方式,由于使用的密钥相同,所有这种算法也称为对称加密 (凯撒密码、AES、DES、动态密码等)
对称加密存在的问题是,必须保证双方都有密钥。但是密钥再传输过程中也会被窃取
5、公开密钥加密
公开密钥加密是加密和解密使用不容密钥的一种加密方式,由于使用的密钥不同,所有这种算法也称为‘非对称加密’ 。 加密用的密钥叫做“公开密钥”, 解密用的叫做“私有密钥” (RSA、椭圆曲线加密)
公开加密的特点是:公开加密特点是,数据接收方会生成一个密钥、一个公钥,将公钥公开出去。数据发送方会根据这个公钥进行加密,然后只有存在该私钥的接收方可以破解
这种方式存在两个问题:
- 加密解密都比较耗时,不适合零碎数据
- 存在中间人攻击,A无法判断公钥是否真的来自于B(中间劫持公钥替换给发送方,在劫持发送方数据解析后,通过接收方的公钥再加密给接收方)
6、混合加密
背景: 共享密钥加密存在无法安全传输密钥分配的问题, 公开密钥加密又存在加密解密速度较慢的问题。结合两种方法实现互补的一种加密方法就是混合加密
思路是: 在加密时用速度较快的共享加密技术(对称加密), 然后通过公钥对A的私钥进行加密, 传输给B, B
混合加密的过程
A给B传数据为例,A通过私钥进行加密,然后需要将私钥给B进行解密, 但是为了私钥的安全,所有需要B的公钥来加密A的私钥和数据。 然后加密后传给B,只有B的私钥才可以解开这组数据,拿到里面的A的私钥和加密的数据。再用A的私钥进行解密。
达到又快又安全的目的。 SSL就是使用的这种对称非对称的方式进行加密的。
