加密是通过特定的算法把可读或可处理的信息转换为不可读信息的技术。加密技术可以有效的保护存储在存储媒体上或在不可信通讯路线上传输的敏感数据,同时,它也可以保护敏感数据不被未经授权者访问。当然,任何技术都有其局限性,加密技术也一样,只要有足够时间、足够资源和充分决心,攻击者可以破解大部分的加密算法,还原出加密过的信息。因此,我们应该认识到,要使加密过的信息不可破解是不现实的,使用加密技术是为了使破解加密信息所需的资源和时效性远远超过被加密信息本身的价值。
加密系统的定义和用途:
提供加密解密功能,有硬件或软件实现的系统,称为加密系统。加密系统可以提供以下服务:
1、 信息保密(confidentiality):防止未授权者访问敏感信息
2、 身份验证(authenticity):确认信息的来源、检测伪造信息
3、 完整性校验 ( integrity ):校验信息的完整性,检查信息是否曾被有意或无意修改
4、 不可否认性 (non-repudiation):确保发送者不能否认信息来自于其
企业使用加密系统提供的前三个服务比较多,因此可根据企业实际需要,确定加密系统所提供服务的优先度,并选择合适的加密系统产品。而身份验证和不可否认性通常是用数字签名的形式来实现的。
加密系统的组成:
加密系统是一个复杂的系统,以企业中常用的PGP软件为例,一个加密系统通常包括四个组件:软件组件、加密算法、协议和加密密钥组成,软件组件负责各功能子系统的协调、和用户交互;加密算法根据一定规则对输入信息进行加密处理;协议为加密系统和运行环境及其他应用程序通讯所需;而加密密钥就是用户加解密信息所需的钥匙。其中,和加解密操作关系最大的就是加密算法和加密密钥,这两者的属性——加密算法强度和加密密钥长度也是衡量一个加密系统功能强弱的重要指标。
加密系统常用的加密算法:
常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法,其中:
对称加密,指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共需要n×(n-1) 个密钥,密钥的生成和分发将成为企业信息部门的恶梦。对称加密算法的安全性取决于加密密钥的保存情况,但要求企业中每一个持有密钥的人都保守秘密是不可能的,他们通常会有意无意的把密钥泄漏出去——如果一个用户使用的密钥被入侵者所获得,入侵者便可以读取该用户密钥加密的所有文档,如果整个企业共用一个加密密钥,那整个企业文档的保密性便无从谈起。
常见的对称加密算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES
非对称加密,指加密和解密使用不同密钥的加密算法,也称为公私钥加密。假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者无法否认曾发送过该信息。非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比对称加密慢上1000倍。
常见的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)
还有一类比较特别的算法,Hash算法。Hash算法特别的地方在于它是一种单向算法,用户可以通过Hash算法对目标信息生成一段特定长度的唯一的Hash值,却不能通过这个Hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。
常见的Hash算法有MD2、MD4、MD5、HAVAL、SHA
加密算法的效能通常可以按照算法本身的复杂程度、密钥长度(密钥越长越安全)、加解密速度等来衡量。上述的算法中,除了DES密钥长度不够、MD2速度较慢已逐渐被淘汰外,其他算法仍在目前的加密系统产品中使用。
企业中常见的加密系统
加密系统在企业中有三个基本的部署方向,分别是存储、传输和认证。因为互联网并非可信传输渠道,有可能存在监听、拦截和恶意修改等多种威胁,因此传输方向为企业对加密系统需求最大的方向。随着企业内部对本地数据安全的日益重视,存储方面尤其是移动设备的存储加密市场也越来越热,大有后来居上的势头。
存储方面,加密系统的主要作用是通过加密来保证敏感数据不被未授权者访问和通过Hash算法保证数据的完整性,加密常用的算法是3DES/Blowfish/AES,在操作的数据量比较小时,也常常采用RSA等分对称加密算法,校验常用的算法是MD5。目前市场上常见的产品包括软件实现的对特定目标(文件、文件夹、数据库等)和全盘加密,如商业的PGP、开源的TrueCrypt、GPG等,及集成加密芯片的加密存储设备,如Seagate等厂商的产品。
传输方面,加密系统的主要作用是保证用户传输的数据在非可信传输渠道传输时不受攻击者的威胁,并保证传输数据的完整性和真实性。应用在这方面的加密系统比用在存储方面的更复杂一些,还需要考虑密钥的分发问题,所以传输方面的加密系统的一种常见形式是同时使用对称加密和非对称加密算法,先通过非对称加密来加密分发对称加密的密钥,再用对称加密的方法来保证数据处理和传输的速度。另外,用在传输方面的加密系统还按连接加密的网络层次分为连接加密和端对端加密,连接加密会把特定数据连接的所有数据进行加密,通常用在有较高安全级别的通讯中,端对端加密则只加密数据本身,包括路由信息等网络数据并不进行加密,它更适合用在互联网等安全级别较低的场合。用在传输方面的加密系统包括软件实现的各种加密隧道如SSH、IPsec、VPN等、应用级别的端对端加密如PGP、HTTPS、SMIME、PEM等,硬件方面则有各种带VPN功能的防火墙、带加密功能的网卡等。
认证方面,加密系统的主要作用是确认信息发送者的身份、校验收到信息的完整性以及提供不可否认性。这些功能的实现依赖于非对称加密和Hash算法的结合使用,以公钥对比对方私钥的签名来确认信息发送者的身份,用Hash算法对信息进行校验。目前认证方面的加密系统以软件实现为主,如各种PKI、PGP、GPG等,少量的加密系统实现中还使用写入私钥或安全证书的智能卡、闪存等来增加加密系统的安全性。
企业如何选择最合适的加密技术?
市场上加密产品的种类繁多,各产品的技术指标和功能实现也千差万别,企业应该如何选择最合适自己的加密技术?企业在选择时应该要结合自身的业务流程、信息处理需要及面对的安全威胁,并综合考虑产品的实现、性价比、部署后能产生的积极影响等因素。以下提供几点供参考的意见:
1、 加密系统主要用在业务的什么方面? 企业面临什么安全威胁?这个问题决定了企业采购时对加密系统性能优先考虑的方向,例如,电子商务企业需要安全保存客户数据和防止在线交易时被监听,因此它可以考虑使用数据库加密或全盘加密产品来安全存储数据,使用HTTPS来加固在线交易时的数据传输;而一个非盈利机构则可能更注重所有收发信息的真实性,但对加密产品的采购/维护成本比较敏感,那它可以选择使用成本较低的PGP/GPG软件或公共的PKI服务来进行保证信息的完整性;在外地有分支机构的企业,可以选择各种VPN或加密传输产品来保护在互联网上传输的数据的安全。总之,满足业务需要,能够加固业务上各薄弱环节是选择加密系统产品的首要考虑因素。
2、 硬件加密系统还是软件加密系统? 硬件加密系统的处理速度远超软件实现,但较高的采购成本限制了它的应用范围,只适用于对加解密性能要求敏感的使用环境。软件加密系统的优点在于实现的灵活性和采购维护成本。
3、 加密系统的实现和性能:加密系统的实现主要使用什么加密算法,该加密算法的强度如何,密钥长度是多少都需要考虑,相对来说,密钥长度越长加密也就越安全,但加解密操作所耗时间也越长。在处理数据量巨大或时间敏感性强的情况下,加密系统的性能也成为一个决定性的因素。
4、 加密系统安全性: 企业在选择时除了要考虑加密系统所实现的加密功能的安全性之外,还应该考虑加密系统自身的安全性,例如对一个硬件VPN网关来说,由于其暴露在有可能受外界攻击的网络环境中,它对各种攻击的抵抗能力将是整个加密系统的使用环境最薄弱的环节。
5、 密钥的生成、分发和保存方式:密钥的生成和分发方式是选择、部署加密系统的重要环节,如果密钥的分发保存环节不安全,那整个加密系统的功能实现都将受到威胁。对于用户数量较多,数据处理量又较大的企业来说,应该考虑选用对称加密和非对称加密结合的加密系统,用非对称加密来生成用户密钥和分发加密密钥,并用对称加密来完成数据的加解密操作。如果企业预算比较多,也可以考虑部署PKI。
6、 加密系统维护成本: 任何系统的部署使用都不是一劳永逸的活动,加密系统也不例外,维护成本包括设备、软件的维护、人员培训等,一个需要复杂的维护的加密系统必定会成为企业信息部门的噩梦,而运行不稳定,缺少维护的加密系统也会使企业的加密保护策略形同虚设。因此,加密系统的维护成本也是企业选择加密系统时的重要考虑因素。
企业在选择加密系统时可以制作多个文档,包括业务流程调查、加密系统需求、待选加密系统产品的技术指标等,充分的考察市场上现有产品,然后再慎重选择购买。否则,不说这浪费了企业的资金,它给企业带来的虚假安全感才是最致命最隐蔽的威胁。