1.网络安全技术概述
目前,有关计算机系统安全的定义并不统一。国际标准化组织(ISO)是这样定义的:“为数据处理系统建立和采取的技术和管理的安全保护,保护计算机硬件、软件数据不因偶然和恶意的原因而遭到破坏、更改和显露。”此概念偏重于静态信息保护。而我国网络安全侧重于动态意义描述,给出如下定义:“计算机的硬件、软件和数据受到保护,不因偶然的和恶意的原因而遭到破坏、更改和显露,系统连续正常运行。”
鉴于信息数据的重要性,在设计计算机网络系统的安全时,参照美国国防部C2标准在网络环境下的解释,我们将努力通过相应的手段达到6项安全目标:
保密性:是指静态信息防止非授权访问和动态信息防止被截取解密。
完整性:是指信息在存储或传输时不被修改、破坏,或信息包的丢失、乱序等。信息的完整性是信息安全的基本要求,破坏信息的完整性是影响信息安全的常用手段。目前,对于动态传输的信息,许多协议确保信息完整性的方法大多是收错重传、丢弃后续包的方法,但黑客的攻击可以改变信息包内部的内容。
可靠性:是指信息的可信度,包括信息的完整性、准确性和发送人的身份证实等方面,可靠性也是信息安全性的基本要素。
实用性:即信息加密密钥不可丢失(不是泄密),丢失了密钥的信息也就丢失了信息的实用性,成为垃圾。
可用性:一般是指主机存放静态信息的可用性和可操作性。病毒就常常破坏信息的可用性,使系统不能正常运行,数据文件面目全非。
占有性:是指存储信息的主机、磁盘等信息载体被盗用,导致对信息的占用权的丧失。保护信息占有性的方法有使用版权、专利、商业秘密性,提供物理和逻辑的存取限制方法;维护和检查有关盗窃文件的审记记录、使用标签等。
2.网络安全系统应具备的功能
在ISO安全框架文件中,定义了开放环境下系统安全功能,对系统内部各对象的保护方法,保证系统间通信规则,都作了详细说明。我们认为:一个安全系统应具备以下功能:
身份识别:是验证通信双方身份的有效手段,用户向其系统请求服务时,要出示自己的身份证明,最简单的方法是输入UserID和Password。而系统应具备查验用户的身份证明的能力。身份判别是安全系统最重要功能之一,UserID和Password是最常用也最方便的身份认证方法,也是最不安全的。原因是用户为了便于记忆而使用了生日、电话号码等Password,使得Password很容易猜出。因此Password的管理也成了安全系统非常重要的工作。关于Password更先进的技术有:系统不接收易破译的Password、Password的期限性、同步即时Password等,但有些方法需要特殊的软、硬件投资。
存取权限控制:防止非法用户进入系统及防止合法用户对系统资源的非法使用是存取控制的基本任务。在开放系统中,网上资源的使用应制订一些规定:一是定义哪些用户可以访问哪些资源,二是定义可以访问的用户各自具备的权限,这是存取权限控制的主要任务。
数字签名:如用RSA等公开密钥算法,生成一对公钥和私钥。信息发送需用发送者私人密钥加密信息,即签名,信息的接收者利用信息发送者的公钥对签名信息解密,以验证发送者身份。在实际应用中,一般是对传送的多个数据包中的一个IP包进行一次签名验证,以提高网络运行效率。保护数据完整性Internet通信协议在数据传输过程中,通常使用数据包排序、控制包、校验码等差错控制机制,防止传输过程中的突发错误,但对网上黑客们的主动攻击(如对信息的恶意增删、修改)则显得无能为力。通过加入一些验证码等冗余信息,用验证函数进行处理,以发现信息是否被非法修改,避免用户或主机被伪信息欺骗。
跟踪审计和信息过滤:网络管理员或系统管理员应不断地收集和积累有关的安全事件记录加以分析,有选择地对其中的某些站点或用户进行跟踪审计,以便对发现或可能产生的破坏性行为提供有力的证据,并定期向互联网相关的安全系统秘密发送有关消息(一般是有害站点地址),其它系统则根据这些消息,更新各自的路由过滤列表,通过信息过滤机制,拒绝接收一切来自过滤列表上IP地址的信息,以杜绝网上的某些站点产生的信息垃圾(如淫秽图片、政治倾向性宣传等)对用户进行信息干扰和信息损坏。
3.常用的安全技术
3.1.信息加密与认证技术(CA)
3.1.1.对称密码体制
对称密钥体制的特点是无论加密还是解密都共用一把密钥(Ke=Kd),或者虽不相同,但可以由其中一个推导出另一个(可形象视于图1)。其中最有影响的是1977年美国国家标准局颁布的DES算法(数据加密标准算法)。其优点是具有很高的保密强度,但它的密钥必须按照安全途径进行传递,根据“一切秘密寓于密钥当中”的公理,密钥管理成为影响系统安全的关键性因素,难于满足开放式计算机网络的需求。
图1 对称加密使用相同的密钥
DES是一种为二进制编码设计的,可对计算机数据进行密码保护的数学算法。它将数据分成长度为64位的数据块,其中8位作为奇偶校验,有效的密码长度为56位。首先,将明文数据进行初始置换,得到64位的混乱明文组,再将其分成两段,每段32位;然后,进行乘积变换,在密钥的控制下,做16次迭代;最后,进行逆初始变换而得到密文。