我个人一直认为,在整个网络技术体系最顶端的位置,必定是属于网络安全技术。要想真正搞通网络安全,那非得从硬件到软件、从设备到系统、从理论到实践……,无所不会,无所不能,非真正技术超一流的大牛所不能为。网络安全是一个复杂的体系,即便只是参加如软考网工之类的考试,网络安全方面的相关知识也是大多数考生最头疼的内容。
我个人离技术大牛还差得很远,下面只能结合即将讲到的证书服务器,对网络安全技术的一些基础知识做下介绍,也希望对准备参加网工考试的朋友能有所帮助。

网络安全技术虽然非常复杂,但是单就数据通信传输这个方面而言,归纳起来,无法也就是为了解决以下三个方面的问题:
  • 数据的机密性。即如何令我们发送的数据,即使被其他无关人员截获,他们也无法获知数据的含义。
  • 数据的一致性。即保证数据在传送过程中没有被篡改,接收方收到的数据与发送方发送的数据完全一致。
  • 数据的有效性。指数据不能被否认,一方面我们需要确认收到的数据是由某个确定的用户发出的,另一方面发送方不能对自己发出的数据进行抵赖。
对于这三个问题,分别有相应的解决方法:
  • 数据机密性,通过对数据进行加密实现。
  • 数据一致性,通过消息摘要算法实现。
  • 数据有效性,通过数字签名实现。
以上三点可说是网络通信方面安全技术的总纲,那些名目繁多的协议和算法无非是为了实现这三个解决方法而采用的不同手段而已。以下的博文也就将从这三个方面分别展开,在这篇博文里主要谈一下数据加密。
 
数据加密是为了实现数据的机密性,这也是网络安全技术中最基础和最重要的一个部分。这里面有一些基本概念要先搞明白:
  • 明文,加密之前的数据。
  • 密文,加密之后的数据。
  • 算法,把数据从明文转换成密文的方法。
  • 密钥,在加密算法中所使用的函数。
为了更好地理解这些概念,下面用一种非常古老的加密算法——“凯撒加密”作为范例进行说明。
凯撒加密的算法很简单:将明文中的所有字母后移 k位,就得到了密文,而k就是密钥。具体如下图所示。

 

在这个例子中,加密和解密都是使用相同的密钥,像这类加密算法就称为对称式加密,也称为共享密钥加密。任何人只要知道了密钥,就可以将数据解密。
 
当然,凯撒加密算法非常简单,即使不知道密钥,也很容易将之暴力破解。在实际应用中使用较多的对称式加密算法是 DES。
DES, Data Encryption Standard数据加密标准,是由IBM公司研制的一种加密算法。它的基本原理是采用分组加密,将需要加密的数据分成64KB大小的分组,然后再将每个分组等分为32KB大小的两部分,然后用一个56位数的密钥对每部分进行加密,最后再将经过加密后的两部分数据组合成一个分组,此称之为“1轮”运算。然后将分组再拆分,再加密,再组合,此称之为“2轮”运算,前后共需经过16轮运算,才可得到最终的加密后的数据。
虽然 DES算法非常复杂,但随着计算机运算速度的不断发展,DES加密已经能够被暴力破解,所以后来IBM又推出了升级版本——3DES,它要执行3次常规的DES加密,而且密钥长度也增加了1倍,扩展到了112位。
 
除了 DES和3DES之外,对称式加密算法还有AES、IDEA、RC系列等,这些对称加密算法的优点是加密效率比较高,适合对大数据块的加密。但它们也都存在一个致命的缺点——密钥管理困难,密钥一旦被泄露,再复杂的加密算法也无济于事。
 
那么究竟该如何有效地去管理和分配密钥呢?大家可以做一道软考网规考试的试题:
 
很多通信使用对称密钥加密方法,其中共享密钥的分发过程是保证安全的重要环节之一,可用于在用户甲和乙之间分发共享密钥的方案是             。
  A.甲选取密钥并通过邮件方式告诉乙
  B.甲选取密钥并通过电话告诉乙
  C.甲选取密钥后通过双方事先已有的共享密钥加密后通过网络传送给乙
  D.第三方选取密钥后通过网络传送给甲、乙
 
这道题目中的4个选项哪个算是比较靠谱呢?在实际应用中是采用的这种方案吗?且听下文分解。