在阅读RabbitMQ数据传输安全的章节时,提到了ssl协议,用了很大篇幅介绍了使用openssl生成一些列秘钥和证书,如果没有相关基础,会不太好理解,本篇就来总结下数据安全相关的概念以及浏览器HTTPS的应用。
通过介绍,你会了解到:
数据安全的基本概念
加密算法
数字证书和证书机构
ssl和openssl基本介绍
https应用
数据安全的基本概念
数据要在网络中传输,就会存在安全问题,因为任何人都可以获得你发送的数据包,从而获得你的数据,需要对数据进行加密,对于数据发送者,也可能被伪造,需要对双方身份做验证,另外,数据的完整性也需要考虑。
总结下安全的定义:
保密性:只有自己和允许的人能看到或看懂数据;
完整性:数据没有被破坏或篡改;
可信任性:确保消息是对方发的,不是伪造者发的;
加密算法
加密是保证数据安全的常用手段,已经有很多现成的加密算法了,这些算法都是经过验证和考验的,想要破解非常困难,所以,一般不需要设计算法,可以直接使用,这里只会介绍常见算法的基本概念和特性,不涉及算法实现细节。
散列
散列就是hash算法,把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值,常见的hash算法有MD5和SHA。
MD5即Message-Digest Algorithm 5,称为信息-摘要算法5,主要用于确保信息传输的完整性,输入是不定长度信息,输出固定长度128比特的串。
SHA即Secure Hash Algorithm,称为安全哈希算法,和MD5一样,也是从MD4发展而来,与MD5的最大区别在于其摘要比MD5长32比特。
还有很重要的一点是,任意两个文档得到相同字符串的概率几乎等于0。
对称加密
加密就是把原始数据通过某种变换变成看不懂的东西,对于对称加密,这个操作是可逆的,另外,加密算法不能单独工作,必须有密钥配合,加密和解密的密钥是同一个,目前流行的对称加密算法有DES,AES。
DES即Data Encryption Standard,称为数据加密标准,是美国政府采纳IBM公司设计的方案作为非机密数据的正式数据加密标准,DES算法的入口参数有三个:Key、Data、Mode:
Key为8个字节,是DES算法的工作密钥;
Data也为8个字节,是要被加密或被解密的数据;
Mode为DES的工作方式:加密或解密;
如Mode为加密,用Key把Data进行加密,生成Data的密码形式(64位)作为DES的输出结果,如Mode为解密,用Key把密码形式的Data解密,还原为Data的明码形式(64位)作为DES的输出结果。
AES即Advanced Encryption Standard,称为高级加密标准,是下一代的加密算法标准,速度快,安全级别高,它可以使用128、192和256位密钥。
对称加密算法的优点是速度快,缺点是密钥管理不方便,要求共享密钥。
非对称加密
相对于对称加密,非对称加密和解密不是同一个密钥,一个称为公钥,另一个称为私钥。公钥就是公开的,大家都知道,而私钥只有你自己知道。
用公钥加密的内容只能由相应的私钥来解密,反过来,用私钥加密的内容只能由相应的公钥来解密,常用的非对称加密算法有RSA、ECC。
RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作,应用比较广泛。
非对称加密算法的优点是密钥管理很方便,缺点是速度慢。
数字签名
数字签名主要保证可信任性,不可伪造,所用的技术是前面介绍的散列和非对称加密。
首先为要签名的数据生成一个Hash字串hash1,然后用你的私钥加密得到encrypted(hash1),这就是数据的数字签名。当别人需要验证数据是否是你发送的时候,只需要用你的公钥解密你的签名得到hash1,并和数据计算出来的hash2对比,查看是否一致。
领取专属 10元无门槛券
私享最新 技术干货