在阅读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长