高性能密码适用性分析

2020-01-16 14:46:10 信息安全与通信保密杂志社 40

  密码技术是保护网络与信息系统安全的核心技术,广泛地应用到金融、交通、通信等各行各业,为国家安全和经济民生发展发挥着重要作用。然而,现在仍有大量的系统在使用MD5、SHA1、RC4 和 DES 这些不安全的算法。此外,部分系统未按照国家相关标准正确规范地使用密码技术及服务,势必给信息系统带来了严重的安全隐患。因此,确保信息系统安全稳定地运行,需要做好商用密码应用安全性评估,以保证商用密码合规、正确、有效地应用。由于国产密码算法自身的性能等原因,使得商用密码算法未大面积地应用,提高商用密码性能也是当前主要任务之一。信息系统密码应用安全性评估,是规范密码应用、维护网络空间安全的基本要求,同时密码测评又可促进国产密码在各个行业的广泛应用。当前,国密算法在系统应用中的推广和普及程度还不够。制约国密算法推广普及的最重要的一个原因就是性能。

  本文列举了密码测评工作对国密算法高性能实现的多种需求,并对各种需求下的密码适用性进行初步分析。

  信息系统密码应用的基本要求

  1.1商用密码安全性评估

  商用密码应用安全性评估,简称密评,是指在釆用商用密码技术、产品和服务集成建设的网络和信息系统中,对其密码应用的合规性、正确性和有效性等进行评估。合规性是指密码算法、密码协议、密钥管理、密码产品和服务使用合规,即按照《商用密码管理条例》等密码法规和行业相关的密码使用要求,使用符合国家密码法规和标准规定的商用密码算法,使用经过国家密码管理局审批的密码产品或服务;按照《信息系统密码应用基本要求》等标准,进行相应的密码应用建设方案设计。正确性是指密码算法、密码协议、密钥管理、密码产品和服务使用正确,即系统中釆用的标准密码算法、协议和密钥管理机制按照相应的密码国家和行业标准进行正确的设计和实现;密码保障系统建设或改造过程中密码产品和服务的部署和应用正确。有效性是指信息系统中釆用的密码协议、密钥管理系统、密码应用子系统和密码安全防护机制不仅设计合理,而且在系统运行过程中能够发挥密码效用,保障信息的机密性、完整性、真实性、抗抵赖性。

  1.2信息系统密码应用的基本要求

  根据 GM/T 0054 《信息系统密码应用基本要求》从 4 个方面对信息系统的密码应用进行评估,即总体要求、密码技术应用要求、密钥管理和安全管理。密码技术应用要求、密钥管理和安全管理从四个不同的安全等级进行要求,总体要求提出了对密码算法、密码协议、密码产品和密码服务要满足相关标准和符合国家密码管理部门的要求。

  1.2.1密码技术应用要求

  GM/T 0054 《信息系统密码应用基本要求》密码技术应用要求分为物理和环境安全、网络和通信安全、计算和设备安全以及应用和数据安全。其中,物理和环境安全实现对信息系统所在机房等重要区域的物理防护,密码应用要求涉及重要区域的物理访问控制,以及电子门禁系统进出记录和视频监控音像记录的存储完整性。网络和通信安全实现对信息系统与经由外部网络连接的实体进行网络通信时的安全防护,密码应用要求主要涉及通信过程中实体身份真实性、数据机密性和数据完整性,以及网络边界访问控制和设备接入控制。计算和设备安全实现对信息系统中各类设备和计算环境的安全防护,密码应用要求主要涉及对登录设备用户的身份鉴别、远程管理通道的建立、可信计算环境的建立、重要可执行程序来源的真实性,以及系统资源访问控制信息、设备的重要信息资源敏感安全标记、重要可执行程序完整性、日志记录的完整性。应用和数据安全实现对信息系统中应用及其数据的安全防护,密码应用主要涉及应用的用户身份鉴别、访问控制,以及应用相关重要数据的存储安全、传输安全和相关行为的不可否认性。其中重要数据应根据密码解决方案以及实际需求来确定,一般地,重要数据包括但不限于鉴别数据、重要业务数据、重要个人信息、重要审计数据、重要配置数据、重要视频数据等。

  1.2.2密钥管理

  信息系统密钥管理应包括对密钥的生成、存储、分发、导入、导出、使用、备份、恢复、归档与销毁等全生命周期进行管理和策略制定的全过程。

  1.2.3安全管理

  安全管理从管理制度、人员管理、建设运行和应急处置四个方面提出了第一级到第四级的密码应用安全管理要求,需要健全责任主体管理机制来确保密码技术被正确、合规和有效地实施。

  密码技术及高性能需求

  随着应用场景的不同,各种应用环境对密码算法的性能及安全性需求出现了不同的要求。下面将从物理和环境、网络和通信、设备和计算和应用和数据四个层面从密评角度分析国密算法在性能方面对其影响。

  2.1物理和环境安全

  物理和环境安全是信息系统安全最基础部分,需要利用密码技术有效地保护进入机房等重要场所的人员身份的真实性以及视频、进出记录数据的完整性。一般采用基于 SM7 算法的非接触式逻辑加密卡或者基于 SM1/SM7算法的非接触式 CPU 卡方式实现一卡一密进行身份鉴别。基于非接触式 IC 卡门禁系统的密码应用包含 3 个子系统:应用系统、密钥管理系统和发卡系统。门禁系统密码应用示意图如图 1 所示:

  图 1 门禁系统密码应用示意图

  对于视频数据的完整性保护一般采用对数据做 MAC 计算或者做数字签名,由于视频数据产生都是动态的、实时的,直接对完整的所有视频数据做 MAC 计算或数字签名效率非常低,影响方案的可实施性。为了提高计算效率,可以采取将视频相关信息,如用户名、设备编号、帧序列号等,隐藏在视频编码压缩域中,在视频解码阶段,计算 MAC 值并与原来 MAC 值对比。

  2.2网络和通信安全

  信息系统中各个部件之间的互联互通需要网络来实现。网络层需要实现以下密码功能: 对通信双方的身份进行鉴别、对通信过程中的数据做完整性保护、通信过程中的敏感数据或整个报文做机密性保护、对网络边界访问控制信息或系统资源访问控制信息的完整性进行保护和建立一条安全信息传输通道对网络中的安全设备进行集中管理。另外,对于四级系统,连接到内部网络的设备需要做认证。保护网络通信完全可以采用 SSL/TLS 协议或者 IPSec 协议。SSL 协议、IPSec 协议都是一种网络层的综合密码协议,为网络通信过程提供了数据的机密性、完整性以及数据源的身份鉴别和抗重放攻击。通常在网络层部署 SSL VPN 或 IPSec VPN 设备。由于我国密码行业标准支持“双证书 + 双中心”机制,即加密证书和签名证书,用于数据加密的密钥对由密钥管理中心生成,用于数字签名的密钥由用户生成。采用符合国密标准双证书机制提高了安全性,另一方面,对于用户和系统而言,带来了一定的效率降低以及管理成本上升,其次,服务器端做签名验证时, SM2 数字签名的验证算法需要做多倍点运算,其算法效率较 RSA 签名验证算法低。对于通信数据的机密性可采用 SM4 算法对数据加密保护,完整性可采用 HMAC-SM3 算法。SM4 算法的性能较 AES 有一定差距,在某些实时性要求高的通信加密应用场景中,SM4 算法可能难以满足需求,此时可考虑采用序列算法,如我国的 ZUC 算法,但目前 TLS/SSL 协议尚不支持 ZUC 算法。为了保证网络边界访问控制信息、系统资源访问控制信息的完整性,可以配置合规的 SSL 或 IPSec VPN 设备,利用设备自身的密码保护机制对访问控制列表的完整性进行保护。然而,一些系统仅仅部署了防火墙等安全产品,市面上这些防火墙等安全产品并未使用密码技术或者使用了未认证的密码模块。首先,未使用或者使用了不合规的密码技术的安全产品会影响到系统通信过程中的安全性;其次,这些安全产品增加密码功能必然对系统的性能有所降低。为了提高性能同时又保证其安全性,自然对密码算法的高性能实现提出了要求。综上所述,为提高系统通信过程的安全性且对系统通信的性能影响不大,就必然对国密算法高性能实现提出了更高的要求。做好国密算法的高性能实现,可以帮助国密算法更好地普及。

  2.3设备和计算安全

  设备和计算层面主要利用密码技术保证终端设备、服务器、安全设备和操作系统等算法运行及计算环境安全。计算与设备层需要实现以下密码功能:对系统中登录设备的用户进行身份鉴别、对系统日志、访问控制信息、重要程序或文件、重要信息资源敏感标记进行完整性保护以及远程管理时身份鉴别信息需做机密性保护。设备与计算层面的用户登录认证中的用户一般是指登录到设备的管理员、运维人员等,实现身份鉴别常用的方法利用智能密码钥匙对管理员进行身份鉴别,远程管理时,鉴别信息的机密性通过 https 协议登录到堡垒机,然后由SSH 协议加密传输到目标服务器。目前,SSH 协议不支持国密算法,所以,急需兼容国密算法的 SSH 协议及相关产品和标准,以保证用户登录安全。设备与计算层面的完整性保护实现方式有两种:一种是使用内置的密码模块如加密卡、密码芯片、软件密码模块等;另外一种是通过在外部部署密码机或者智能密码钥匙等密码产品,尤其是外部部署的加密设备,一般对性能要求较高。当前,操作系统、芯片等领域在国产化方面还有所欠缺,使用合规的密码技术才能有效地弥补系统的安全性,同时也对国产密码算法的性能提出了更高的要求。

  2.4应用和数据安全

  应用和数据层面主要是对信息系统中业务应用以及系统的业务数据、用户身份鉴别数据、系统资源访问控制信息、重要资源信息敏感标记和日志等安全提出基于密码技术的要求。应用与数据层需要实现以下密码功能:对登录的用户进行身份鉴别、保证系统资源访问控制信息和重要资源信息敏感标记和日志的完整性、对传输和存储过程中数据的机密性和完整性进行保护、重要程序的安装及卸载进行安全控制,对于四级信息系统,需要实现抗抵赖性。在某些对数据源头需要利用密码技术提供保护的应用场景下,仅仅依赖于网络层和设备层提供的密码技术是不够的,仍需要在应用和数据层提供密码技术进行保护。例如,网络层的密码算法的不安全实现导致系统不安全,如“OpenSSL 心脏出血”漏洞,此时如果数据在应用层也是加密处理的,数据传输过程中的机密性依然有保证。反之,数据经网络层和应用层面的两次加密,显然对通信的性能有所降低,同时增加了成本。故而,只有提高国密算法的性能才能降低这些不利的影响。系统的应用涉及各行各业,每种应用需求都不一样,所需要保护的数据也不同。在该层面所涉及的密码技术及实现方式与上述两个层面基本相同,所面临的问题也类似,如用户身份鉴别、访问控制信息完整性保护等。重要数据存储加密和重要程序加载卸载的安全控制这部分需求是上述层面所没有的。存储的机密性一般可以采用内置的密码模块对数据加密保护或者将重要的数据传输到服务器密码机中,利用服务器密码机进行加密,将密文存储在数据库中,部分用户直接利用数据库自带的加密功能进行机密性保护。

  对于业务用户特别多的行业或场景,其加密存储对算法的性能要求非常高,此时,SM4 算法性能与 AES 算法相比有一定差距,特别是 AES 算法利用英特尔芯片指令集—AES-NI 加速优化后差距更加明显。重要程序加载卸载的安全一般可以借助数字签名技术对其代码签名或者做 MAC 运算保护其完整性。

  其他应用场景

  随着信息技术的飞速发展,智能手机等电子产品随处可见,方便了人们的生活、办公,如手机银行、移动办公等,带来便利的同时也引入了新的安全问题。近年来,对移动终端及其 APP 的软硬件攻击层出不穷。

  为了保护智能终端的数据安全,可以采用白盒加密或者协同签名等技术。密码算法的白盒实现可以有效地保护密钥在算法运行过程中被攻击,但是其实现的查找表的规模非常大,较算法的标准实现所需要的存储空间较大、运行效率较低,不适合资源受限的场景下应用。协同签名技术的基本思想是用户的签名私钥不再仅由用户产生,其子私钥分别由用户和后台服务器各自生成,对文件的签名需要双方利用各自的私钥对文件交互式计算,最终生成签名结果,实现方式如图 2 所示。林等提出的方案在产生协同签名的密钥对时,客户端和服务器端分别需要做一次模逆运算和一次点乘运算,计算各自的子密钥对,且服务器端与客户端要做两次交互。协同签名产生过程中客户端与服务器端需要交互两次,其中客户端需要计算一次点乘运算,服务器端需要计算两次点乘运算,较标准的 SM2 数字签名算法效率下降不少。Lindell 提出基于同态加密函数 Paillier 实现了的协同签名方案,其实现方法与林的方案相似,不同的是签名过程中的随机数借助同态函数保护。客户端需要计算一次点乘计算、一次Paillier 加密运算和一次解密运算,服务器端需要计算一次点乘、一次加法同态运算和一次乘法同态运算,其效率相对更低。

  图 2 协同签名示意图

  结语

  密码技术是保护网络与信息系统安全的核心技术。信息系统安全稳定的运行离不开商用密码应用安全性评估,以确保商用密码合规、正确、有效地应用。

  由于国产密码算法自身的性能等原因,使得商用密码未大面积应用,还需提高商用密码性能以便更好地推广商密算法,实现信息系统的安全自主可控。

  来源:信息安全与通信保密杂志社