之前很少对网络安全的基础技术有深入的了解,今天在项目中涉及到了公钥和私钥的一些知识,于是索性在网上找了资料来系统了解一下。
1. 网络安全技术的目的
互联网最初的设计是基于网络透明性的,一开始并没有考虑到网络安全的问题,但是随着互联网的快速发展,安全问题日益突出,网络安全技术也应运而生。个人理解,虽然网络安全技术众多,但是其最核心的目的是:
- 发给正确的对方:保证数据传输给正确的通信对方(认证用户、服务器等)
- 不被第三方看到:保证数据在传输过程中不被窃取
- 确保对方拿到的信息完整可靠:保证数据的完整性,防止在传输过程中被修改
有了以上的认识,我们就能够对整个网络安全技术的体系有一个清晰的理解。我将按照以上三点来对一些典型的安全技术进行说明,不过在此之前,我们要先理解网络安全中一个重要的理念(或者是说技术)——加密。
2. 加密
参照维基百科的解释,加密是指将明文信息(可直接阅读)通过一定的算法转换成难以读取的密文信息(不可读)的过程,所使用的算法则称为加密算法,而解密则是加密的逆过程。加密的目的是在其他人拿到密文信息后,除非经过正确的解密过程,否则无法获取信息的具体内容。加密和解密是保证网络传输过程中信息安全的基础,形象地理解为给信息加了一把“锁”,锁上和打开这把“锁”的“钥匙”则称之为密钥。密钥可以理解为加密算法(解密算法)在对信息进行加密(解密)过程中所需要输入的一种参数,分为加密密钥和解密密钥。他们的关系简要如图所示
而加密算法可以分为两类:对称加密算法和非对称加密算法
对称加密算法中加密密钥和解密密钥相等或者说加密密钥和解密密钥可以通过简单的推算相互得出(维基百科)。常见的对称加密算法是早期的DES(Data Encryption Standard,数据加密标准)和替代DES的3DES和AES(高级加密标准)等。对称加密算法的优点是使用起来简单快捷,密钥短,加密过程比较快,加密性也比较高,但是其缺点也比较明显: