2006年5月14日星期日

加密技术在企业数据安全中的应用

  随着大型企业管理软件的发展,其应用越来越广泛,企业数据平台涉及局域网、广域网、Internet等,在各类系统中保存的企业关键数据量也越来越大,许多数据需要保存数十年以上,甚至是永久性保存。于是关键业务数据成了企业生存的命脉和宝贵的资源,数据安全性问题越来越突出。如何增强企业软件系统的安全性、保密性、真实性、完整性,成为每一位软件开发人员关注的焦点。

  为了解决关键业务的数据安全问题,首先对数据系统进行全面、可靠、安全和多层次的备份是必不可少的,除此以外,各种安全产品,无论防火墙、防病毒、防黑客、防入侵等等,都或多或少地肩负着一些保护数据的责任。从保护数据的角度讲,对数据安全这个广义概念,可以细分为三部分:数据加密、数据传输安全和身份认证管理。

  l 数据加密就是按照确定的密码算法将敏感的明文数据变换成难以识别的密文数据,通过使用不同的密钥,可用同一加密算法将同一明文加密成不同的密文。当需要时,可使用密钥将密文数据还原成明文数据,称为解密。这样就可以实现数据的保密性。数据加密被公认为是保护数据传输安全惟一实用的方法和保护存储数据安全的有效方法,它是数据保护在技术上最重要的防线。

  l 数据传输安全是指数据在传输过程中必须要确保数据的安全性,完整性和不可篡改性。

  l 身份认证的目的是确定系统和网络的访问者是否是合法用户。主要采用登录密码、代表用户身份的物品(如智能卡、IC卡等)或反映用户生理特征的标识鉴别访问者的身份。

  数据加密

  数据加密技术是最基本的安全技术,被誉为信息安全的核心,最初主要用于保证数据在存储和传输过程中的保密性。它通过变换和置换等各种方法将被保护信息置换成密文,然后再进行信息的存储或传输,即使加密信息在存储或者传输过程为非授权人员所获得,也可以保证这些信息不为其认知,从而达到保护信息的目的。该方法的保密性直接取决于所采用的密码算法和密钥长度。

  根据密钥类型不同可以将现代密码技术分为两类:对称加密算法(私钥密码体系)和非对称加密算法(公钥密码体系)。在对称加密算法中,数据加密和解密采用的都是同一个密钥,因而其安全性依赖于所持有密钥的安全性。对称加密算法的主要优点是加密和解密速度快,加密强度高,且算法公开,但其最大的缺点是实现密钥的秘密分发困难,在大量用户的情况下密钥管理复杂,而且无法完成身份认证等功能,不便于应用在网络开放的环境中。目前最著名的对称加密算法有数据加密标准DES和欧洲数据加密标准IDEA等,目前加密强度最高的对称加密算法是高级加密标准AES。

  对称加密算法、非对称加密算法和不可逆加密算法可以分别应用于数据加密、身份认证和数据安全传输。

  l 对称加密算法

  对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。对称加密算法的特点是算法公开、计算量小、加密速度快、加密效率高。不足之处是,交易双方都使用同样钥匙,安全性得不到保证。此外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的惟一钥匙,这会使得发收信双方所拥有的钥匙数量成几何级数增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要是因为密钥管理困难,使用成本较高。在计算机专网系统中广泛使用的对称加密算法有DES、IDEA和AES。

  传统的DES由于只有56位的密钥,因此已经不适应当今分布式开放网络对数据加密安全性的要求。1997年RSA数据安全公司发起了一项“DES挑战赛”的活动,志愿者四次分别用四个月、41天、56个小时和22个小时破解了其用56位密钥DES算法加密的密文。即DES加密算法在计算机速度提升后的今天被认为是不安全的。

  AES是美国联邦政府采用的商业及政府数据加密标准,预计将在未来几十年里代替DES在各个领域中得到广泛应用。AES提供128位密钥,因此,128位AES的加密强度是56位DES加密强度的1021倍还多。假设可以制造一部可以在1秒内破解DES密码的机器,那么使用这台机器破解一个128位AES密码需要大约149亿万年的时间。(更深一步比较而言,宇宙一般被认为存在了还不到200亿年)因此可以预计,美国国家标准局倡导的AES即将作为新标准取代DES。

  l 不对称加密算法

  不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信方必须首先知道收信方的公钥,然后利用收信方的公钥来加密原文;收信方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。

  l 不可逆加密算法

  不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。显然,在这类加密过程中,加密是自己,解密还得是自己,而所谓解密,实际上就是重新加一次密,所应用的“密码”也就是输入的明文。不可逆加密算法不存在密钥保管和分发问题,非常适合在分布式网络系统上使用,但因加密计算复杂,工作量相当繁重,通常只在数据量有限的情形下使用,如广泛应用在计算机系统中的口令加密,利用的就是不可逆加密算法。近年来,随着计算机系统性能的不断提高,不可逆加密的应用领域正在逐渐增大。在计算机网络中应用较多不可逆加密算法的有RSA公司发明的MD5算法和由美国国家标准局建议的不可逆加密标准SHS(Secure Hash Standard:安全杂乱信息标准)等。

  传输安全

  数据传输加密技术目的是对传输中的数据流加密,以防止通信线路上的窃听、泄漏、篡改和破坏。数据传输的完整性通常通过数字签名的方式来实现,即数据的发送方在发送数据的同时利用单向的不可逆加密算法Hash函数或者其它信息文摘算法计算出所传输数据的消息文摘,并将该消息文摘作为数字签名随数据一同发送。接收方在收到数据的同时也收到该数据的数字签名,接收方使用相同的算法计算出接收到的数据的数字签名,并将该数字签名和接收到的数字签名进行比较,若二者相同,则说明数据在传输过程中未被修改,数据完整性得到了保证。

  Hash算法也称为消息摘要或单向转换,是一种不可逆加密算法,称它为单向转换是因为:

  1)双方必须在通信的两个端头处各自执行Hash函数计算;

  2)使用Hash函数很容易从消息计算出消息摘要,但其逆向反演过程以目前计算机的运算能力几乎不可实现。

  Hash散列本身就是所谓加密检查,通信双方必须各自执行函数计算来验证消息。举例来说,发送方首先使用Hash算法计算消息检查和,然后将计算结果A封装进数据包中一起发送;接收方再对所接收的消息执行Hash算法计算得出结果B,并将B与A进行比较。如果消息在传输中遭篡改致使B与A不一致,接收方丢弃该数据包。

  有两种最常用的Hash函数:

  ·MD5(消息摘要5):MD5对MD4做了改进,计算速度比MD4稍慢,但安全性能得到了进一步改善。MD5在计算中使用了64个32位常数,最终生成一个128位的完整性检查和。

  ·SHA 安全Hash算法:其算法以MD5为原型。 SHA在计算中使用了79个32位常数,最终产生一个160位完整性检查和。SHA检查和长度比MD5更长,因此安全性也更高。

  身份认证

  身份认证要求参与安全通信的双方在进行安全通信前,必须互相鉴别对方的身份。保护数据不仅仅是要让数据正确、长久地存在,更重要的是,要让不该看到数据的人看不到。这方面,就必须依靠身份认证技术来给数据加上一把锁。数据存在的价值就是需要被合理访问,所以,建立信息安全体系的目的应该是保证系统中的数据只能被有权限的人访问,未经授权的人则无法访问到数据。如果没有有效的身份认证手段,访问者的身份就很容易被伪造,使得未经授权的人仿冒有权限人的身份,这样,任何安全防范体系就都形同虚设,所有安全投入就被无情地浪费了。

  在企业管理系统中,身份认证技术要能够密切结合企业的业务流程,阻止对重要资源的非法访问。身份认证技术可以用于解决访问者的物理身份和数字身份的一致性问题,给其他安全技术提供权限管理的依据。所以说,身份认证是整个信息安全体系的基础。

  由于网上的通信双方互不见面,必须在交易时(交换敏感信息时)确认对方的真实身份; 身份认证指的是用户身份的确认技术,它是网络安全的第一道防线,也是最重要的一道防线。

  在公共网络上的认证,从安全角度分有两类:一类是请求认证者的秘密信息(例如:口令)在网上传送的口令认证方式,另一类是使用不对称加密算法,而不需要在网上传送秘密信息的认证方式,这类认证方式中包括数字签名认证方式。

  l 口令认证方式

  口令认证必须具备一个前提:请求认证者必须具有一个 ID,该ID必须在认证者的用户数据库(该数据库必须包括ID和口令)中是唯一的。同时为了保证认证的有效性必须考虑到以下问题:

  · 求认证者的口令必须是安全的。

  · 在传输过程中,口令不能被窃看,替换。

  ·请求认证者在向认证者请求认证前,必须确认认证者的真实身份。否则会把口令发给冒充的认证者。

  口令认证方式还有一个最大的安全问题就是系统的管理员通常都能得到所有用户的口令。因此,为了避免这样的安全隐患,通常情况下会在数据库中保存口令的Hash值,通过验证Hash值的方法来认证身份。

  l 使用不对称加密算法的认证方式 (数字证书方式)

  使用不对称加密算法的认证方式,认证双方的个人秘密信息(例如:口令)不用在网络上传送,减少了认证的风险。这种方式是通过请求认证者与认证者之间对一个随机数作数字签名与验证数字签名来实现的。

  认证一旦通过,双方即建立安全通道进行通信,在每一次的请求和响应中进行,即接受信息的一方先从接收到的信息中验证发信人的身份信息,验证通过后才根据发来的信息进行相应的处理。

  用于实现数字签名和验证数字签名的密钥对必须与进行认证的一方唯一对应 。

  在公钥密码(不对称加密算法)体系中,数据加密和解密采用不同的密钥,而且用加密密钥加密的数据只有采用相应的解密密钥才能解密,更重要的是从加密密码来求解解密密钥在十分困难。在实际应用中,用户通常将密钥对中的加密密钥公开(称为公钥),而秘密持有解密密钥(称为私钥)。利用公钥体系可以方便地实现对用户的身份认证,也即用户在信息传输前首先用所持有的私钥对传输的信息进行加密,信息接收者在收到这些信息之后利用该用户向外公布的公钥进行解密,如果能够解开,说明信息确实为该用户所发送,这样就方便地实现了对信息发送方身份的鉴别和认证。在实际应用中通常将公钥密码体系和数字签名算法结合使用,在保证数据传输完整性的同时完成对用户的身份认证。

  目前的不对称加密算法都是基于一些复杂的数学难题,例如目前广泛使用的RSA算法就是基于大整数因子分解这一著名的数学难题。目前常用的非对称加密算法包括整数因子分解(以RSA为代表)、椭园曲线离散对数和离散对数(以DSA为代表)。公钥密码体系的优点是能适应网络的开放性要求,密钥管理简单,并且可方便地实现数字签名和身份认证等功能,是目前电子商务等技术的核心基础。其缺点是算法复杂,加密数据的速度和效率较低。因此在实际应用中,通常将对称加密算法和非对称加密算法结合使用,利用AES、DES或者IDEA等对称加密算法来进行大容量数据的加密,而采用RSA等非对称加密算法来传递对称加密算法所使用的密钥,通过这种方法可以有效地提高加密的效率并能简化对密钥的管理。

  结束语:数据安全问题涉及到企业的很多重大利益,发展数据安全技术是目前面临的迫切要求,除了上述内容以外,数据安全还涉及到其他很多方面的技术与知识,例如:黒客技术、防火墙技术、入侵检测技术、病毒防护技术、信息隐藏技术等。一个完善的数据安全保障系统,应该根据具体需求对上述安全技术进行取舍。