汉语大全>计算机理论>Linux下的网络层加密解密的实现(一)

Linux下的网络层加密解密的实现(一)

详细内容

摘 要
随着网络技术在各行各业中的广泛应用,网络安全逐渐成为一个重要的问题。Linux是一个优秀的、开源的操作系统,非常适合作为一些新技术的测试平台。本文修改Linux操作系统内核的网络协议,以实现对网络通信数据的加密。先介绍了网络数据加密的发展和现状。接着分析了网际协议、DES加密算法和Linux下的网际协议的实现和套接字结构。然后,实现了DES算法,对内核进行了修改,添加了一些功能性内核模块。在此基础上设计和实现了一个位于IP层的端到端加密的系统,整个系统嵌入到Linux内核中,可以通过内核模块对其进行操作,来实现其功能。该系统的主要特点是针对IP地址判断是否进行加密操作。最后,通过测试验证了系统设计的正确性。

关键字:网络层;Linux内核;端到端;加密;模块;网络通信

引言
随着网络技术的发展,网络安全也就成为当今网络社会的焦点中的焦点,几乎没有人不在谈论网络上的安全问题,病毒、黑客程序、邮件炸弹、远程侦听等这一切都无不让人胆战心惊。病毒、黑客的猖獗使身处今日网络社会的人们感觉到谈网色变,无所适从。
但我们必需清楚地认识到,这一切一切的安全问题我们不可一下全部找到解决方案,况且有的是根本无法找到彻底的解决方案,如病毒程序,因为任何反病毒程序都只能在新病毒发现之后才能开发出来,目前还没有哪能一家反病毒软件开发商敢承诺他们的软件能查杀所有已知的和未知的病毒,所以我们不能有等网络安全了再上网的念头,因为或许网络不能有这么一日,就象“矛”与“盾”,网络与病毒、黑客永远是一对共存体。
现代的网络加密技术就是适应了网络安全的需要而应运产生的,它为我们进行一般的电子商务活动提供了安全保障,如在网络中进行文件传输、电子邮件往来和进行合同文本的签署等。其实加密技术也不是什么新生事物,只不过应用在当今电子商务、电脑网络中还是近几年的历史。
当今网络社会选择加密已是我们别无选择,其一是我们知道在互联网上进行文件传输、电子邮件商务往来存在许多不安全因素,特别是对于一些大公司和一些机密文件在网络上传输。而且这种不安全性是互联网存在基础――TCP/IP协议所固有的,包括一些基于TCP/IP的服务;另一方面,互联网给众多的商家带来了无限的商机,互联网把全世界连在了一起,走向互联网就意味着走向了世界,这对于无数商家无疑是梦寐以求的好事,特别是对于中小企业。为了解决这一对矛盾、为了能在安全的基础上大开这通向世界之门,我们只好选择了数据加密和基于加密技术的数字签名。
2 网络数据加密技术
2.1 链路加密
对于在两个网络节点间的某一次通信链路, 链路加密能为网上传输的数据提供安全保证。对于链路加密(又称在线加密), 所有消息在被传输之前进行加密, 在每一个节点对接收到的消息进行解密, 然后先使用下一个链路的密钥对消息进行加密, 再进行传输。在到达目的地之前, 一条消息可能要经过许多通信链路的传输。
由于在每一个中间传输节点消息均被解密后重新进行加密, 因此, 包括路由信息在内的链路上的所有数据均以密文形式出现。这样, 链路加密就掩盖了被传输消息的源点与终点。由于填充技术的使用以及填充字符在不需要传输数据的情况下就可以进行加密,这使得消息的频率和长度特性得以掩盖, 从而可以防止对通信业务进行分析。
尽管链路加密在计算机网络环境中使用得相当普遍, 但它并非没有问题。链路加密通常用在点对点的同步或异步线路上, 它要求先对在链路两端的加密设备进行同步, 然后使用一种链模式对链路上传输的数据进行加密。这就给网络的性能和可管理性带来了副作用。
在线路/信号经常不通的海外或卫星网络中,链路上的加密设备需要频繁地进行同步, 带来的后果是数据丢失或重传。另一方面, 即使仅一小部分数据需要进行加密, 也会使得所有传输数据被加密。