技术交流

基于中间件的密码泛在化保障技术研究


    随着《中华人民共和国密码法》《中华人民共和国数据安全法》等法律法规的正式实施,密码作为解决网络与信息安全问题最有效、最可靠、最经济的手段, 在经济生活和网络安全领域的作用越来越大,密码技术的应用场景也越来越广泛。在网络安全层面,基于安全套接字层虚拟专用网(Secure Socket Layer Virtual Private Network,SSL VPN)、安全网络协议层虚拟专用网(Internet Protocol SecurityVirtual Private Network,IPSec VPN)等密码技术的网络安全措施已比较成熟,也得到了广泛的应用。但随着云计算、大数据等新型信息技术的发展,网络安全的边界越来越模糊,应用安全和数据安全逐渐成为安全保障的核心。在应用安全和数据安全实现层面,目前采用的主要方式还是应用系统调用密码服务的方式来集成密码技术。

    由于密码技术具有专业性强、技术门槛高、应用和管理复杂度大等特点,出现了很多误用密码、用错密码的情况,密码对信息系统和重要数据的安全保障远未能达到实际设想的效果。此外,由于密码系统通常晚于应用系统进行建设实施,部署密码技术时,通常要求对现有应用系统进行额外的改造,这也对密码技术的普及和泛在化带来了不利的影响。因此,需要一种对应用系统“透明化”、对信息化人员“无感知”的密码保障技术,降低密码使用的复杂度、屏蔽密码管理的专业度,实现密码保障技术无处不在且不被感知的泛在化应用,为国民经济的健康发展和国家网络空间安全保驾护航。

1 密码应用的价值

1.1 密码保障的场景

在信息系统的应用安全和数据安全方面,密码的保障能力主要体现在机密性、完整性、真实性和不可否认性4个方面。其中,依赖的密码关键技术主要包括对称加密、数字信封、数据摘要、数字签名等。

机密性保障主要面向信息系统的数据传输、数据存储等应用场景,主要基于对称加密、数据信封等密码技术实现。例如,在电子邮件发送场景中,利用数字信封技术对邮件附件进行机密性保护;在即时通信、视频通话等场景中,利用通信双方共享密钥对聊天信息进行加密保护,防止第三方窃听。

完整性保障主要面向信息系统的关键信息标识的防篡改场景,主要基于杂凑算法提取数据摘要、消息鉴别码(Message authentication code,MAC)摘要等方式实现。例如,网络上下载的软件通常会标识该软件的信息摘要算法5(Message-Digest Algorithm 5,MD5)值,防止被病毒或木马破坏。

真实性保障主要面向信息系统认证鉴权、消息来源的可靠性验证等场景,通常采用数字签名、双方共享密钥的对称加密、MAC运算等密码技术实现。例如,在目前应用比较广泛的电子合同场景中,基于合同签订双方的数字签名可保证在线签订合同的真实可靠,并和纸质合同具备等同的法律效应。

不可否认保障主要面向合同签订、责任界定等应用场景,主要采用数字签名技术实现。例如,在电子盖章等应用场景中,通常在线签章中内含了对当前页面内容的数字签名,签章完成也表示对当前合同条款的认可、确认和不可抵赖。

综上所述,密码技术对信息系统实现的保障能力以及常见应用场景如表1所示。

表 1  保障场景与密码技术

image.png

1.2 密码保障系统的组成

一个常见的密码保障系统至少要包括密码服务和密钥管理两个部分。

密码服务主要面向信息系统提供对称、非对称、杂凑等密码运算能力,通常以软件开发工具包 (Software Development Kit,SDK)形式供信息系统调用。密码服务的物理形态可以为硬件设备或软件系统。

密钥管理负责密码服务所用密钥的产生、分发、更新、归档、销毁等密钥生命周期的管理,确保密码服务保障过程中密钥的安全性、有效性、可靠性。密码管理的物理形态通常也可以为硬件设备或软件系统。

信息系统在集成密码过程中出现的密码应用问题也主要体现在密码服务和密钥管理两个方面。在密码服务方面主要为密码使用过程中的技术复杂度、改造适配工作等方面的问题。在密码管理方面主要体现为密钥分配、密钥管理等密码管理方面的问题。

2 密码应用的问题

2.1 密码应用的技术问题

在应用密码服务层面,密码服务能力通常以SDK接口形式提供给信息系统调用,SDK开发商通常为密码技术和密码产品厂商,其提供的接口通常从密码技术的维度进行分类和定义,与应用厂商实际的信息保护需求不匹配,往往还需要应用系统开发商将多个服务接口组合调用后才能满足其保护要求。例如,国密标准中的GM/T 0018—2012《密码设备应用接口规范》、GM/T 0016—2012《智能密码钥匙密码应用接口规范》,通常从密码技术的维度将接口分为设备管理、密钥管理、对称算法、非对称算法等但应用厂商实际需要的通常为存储加密、传输加密等服务接口。此外,应用厂商为现数存储加密的功能,需要了解具体的密码知识理解各个接口的定义,再将多个接口组合后才能实现所需要的密码保护功能。在密码服务SDK层面,目前主流的密码服务接口仍然以C接口的式提供,但目前应用系统主流为Java语言开发的浏览/服务器(Browser/Server B/S)架构,对密码服务SDK的实际需求是服务器端Java接口、客户Java Script(JS)接口。密码服务需求与实际供给的不匹配,给应用厂商带来大量额外的二次封作。

在密码技术实现过程中,由于应用系统厂商专业密码知识的不足,也出现了一些用错密码、滥用密码的典型情况。例如,采用序列算法保护存储数据;大数据量的文件数据采用电码本(Electronic Code Book,ECB)模式保护;网络包加密未采用认证加密(Authenticated Encryption with Associated Data,AEAD)模式且未自行处理网络包校验,导致无法验证解密后数据的完整性;采用非对称算法加密存储数据等。以上情况虽然使用了密码技术,但由于加密强度不足也带来了一定的数据安全风险。还有部分应用因为采用了不合适的算法模式导致加解密性能低下,严重影响应用系统性能。

信息系统建设通常早于密码保障系统建设,在实际生产环境中通常也存在大量存量应用需要采用密码技术进行安全性改造。在新建应用系统方面,行业主流的应用系统基本上也没有预留密码保障扩展机制,需要应用厂商针对密码技术进行适配改造。这些适配和改造的复杂性和工作量也是影响密码技术推进的重要阻碍之一。

2.2 密码应用的管理问题

在现代密码体制中,加密算法是可以公开的,但一旦密钥丢失,密码算法保护的信息则面临较大的被窃取的风险,密钥管理对于信息系统的安全和机密至关重要。信息系统在集成密码技术过程中的主要管理问题也集中在应用密钥的产生、使用、更新等密钥管理方面。

首先,密钥的产生必须保证具备较强的随机性和足够的长度,否则密钥的强度难以保障,采用该密钥保护的信息也存在被暴力破解的风险。其次,针对密钥的使用过程,也需要根据应用场景设计合理的密钥管理体系来保障加密密钥的安全。例如,针对盘文件的加密场景,通常采用数据保护密钥、钥保护密钥两级密钥体系,金融行业采用三级密钥体系等。最后,在密钥更新管理方面,也必须根据实际的应用场景设计合理的密钥更新策略,例如,即时通信场景,通常采用一次一密的会话密钥保障通的安全性。

以上密钥的管理问题通常涉及实体认证、密钥体制、通信加密等多种有关密码协议和密钥管理等领域的专业知识,对应用厂商来说专业性过强、难度较大,这也对应用厂商使用密码技术带来了极大的挑战。

综上所述,密码技术和密码管理的专业性和复杂度问题、密码技术与信息系统的融合度不足等问题,导致密码技术出现“不好用、用不好、用不对”等情况,严重阻碍了密码技术对网络空间安全泛在化保障的推进。
3 密码泛在化保障方案

3.1 密码中间件技术

中间件是位于系统软件之上,连接不同软件实体的支撑软件。它是独立的系统级软件,连接操作系统层和应用程序层,将不同操作系统提供应用的接口标准化,协议统一化,屏蔽具体操作的细节。

为解决上述密码技术应用的问题,本文借鉴中间件技术,将密码保障以密码中间件的形式提供给信息系统。一方面,屏蔽具体的密码算法、密码协议和密钥管理细节,让信息系统使用密码技术时无须关心具体的专业知识;另一方面,将独立的中间件模块与信息系统进行透明化集成,减少信息系统额外的适配改造工作。从而让密码技术真正成为信息系统网络与信息安全的基础支撑。

按照信息系统软件架构层次,本文将密码中间件由下至上分为文件加密中间件、数据库加密中间件、传输加密中间件、密码服务中间件。密码中间件横向接受密码中间件管理系统的密码服务调度、密钥管理和状态监管。基于密码中间件的密码泛在化保障体系设计如图1所示。

image.png

图1 基于中间件的密码泛在化保障设计

3.1.1 文件加密中间件

文件加密中间件位于文件系统层次,它作为独立的中间件模块为应用系统存储的电子文件提供透明化存储加解密能力。

文件加密中间件可基于Linux内核提供的用户空间文件系统(Filesystem in User Space,FUSE)框架实现。基于FUSE扩展文件加密模块,插入FUSE框架逻辑内,在电子文件读取、写入过程中实现加解密逻辑,达到写入加密和读取解密的效果。

文件加密中间件对接密码中间件管理系统,由中间件管理系统实现电子文件加解密过程中的密码服务调度和密钥分配功能。

3.1.2 数据库加密中间件

数据库加密中间件位于数据库驱动层次,它作为独立的中间件模块寄存到应用软件内部逻辑中,为应用系统存储到数据库的数据提供透明化加解密能力。

数据库加密中间件可基于面向切面加密(Aspect Oriented Encryption,AOE)数据库的切面式加密技术,面向Java数据库的连接(Java Data Base Connectivity,JDBC)、开放数据库互联(Open Database Connectivity,ODBC)驱动实现数据库加密插件。通过数据库加密中间件拦截结构化查询语言 (Structure Query Language,SQL)语句,针对数据库表、列等数据库操作提供细粒度数据加解密服务。

数据库加密中间件以数据库驱动形式寄存到软件系统服务器侧,实现的安全防护路径更短、更靠近应用侧,整体安全性更好,对数据库数据保护的粒度更细,可到字段、行级别。

数据库加密中间件对接密码中间件管理系统,由中间件管理系统实现对数据库加密中间件的加密粒管控、密码服务调度和密钥分配功能。

3.1.3 传输加密中间件

传输加密中间件位于传输协议层次,它作为独立的中间件模块代理应用系统web服务,基于安全套接字层/传输层安全(Secure Socket Layer/Transport Layer Security,SSL/TLS)协议构建应用层传输加密通道,为web应用提供传输加密保护能力。

传输加密中间件可基于web服务反向代理实现,它包括部署在应用系统服务器侧的服务端模块和部署在终端软件侧的客户端模块两部分,通过在服务端模块和客户端模块之间构建传输加密通道,为应用系统提供透明化传输加密功能。针对B/S应用,客户端可直接通过安全浏览器与服务端模块建立安全通道,不再单独部署客户端模块。

传输加密中间件对接密码中间件管理系统,由中间件管理系统实现传输中间件所保护的web服务配置,以及所需密码服务调度和密钥分配功能。

3.1.4 密码服务中间件

密码服务中间件作为最上层中间件,位于软件接口层次,作为独立SDK为应用系统提供更加灵活、通用的密码运算服务能力。

相对于通用的密码服务SDK,密码服务中间件主要实现两个方面的能力。

(1)面向业务场景的高层次保护接口。密码服务中间件作为承上启下的模块,对下衔接密码设备,对上服务应用系统。它面向应用系统提供“傻瓜式”密码保障接口,例如存储加密、邮件附件加密、即时消息加密等接口,屏蔽具体密码技术和密钥管理细节,实现“一行代码”的密码服务调用。

(2)跨语言和平台支撑能力。密码服务中间件针对现有主流软件,直接提供C、Java、JS等多种开发语言接口,让应用系统使用密码技术时更方便、直接。

密码服务中间件对接密码中间件管理系统,由密码中间件管理系统实现场景化服务接口中密码服务调度、密钥分配等密码技术细节管理功能。

3.1.5 密码中间件管理系统

密码中间件管理系统主要针对应用系统使用密码过程中的密码管理问题提供解决措施。它通过集中统一的管理策略为文件加密中间件、数据库加密中间件、传输加密中间件、密码服务中间件提供密码服务分配、密钥管理、中间件管理等功能。

密码服务分配功能主要针对中间件所需的密码服务能力实现策略化配置和动态调度机制,包括各类中间件所调用的密码机、算法类型、算法模式等。

密钥管理功能主要实现各类中间件所需数据保护密钥的管理,包括密钥全局唯一、系统唯一、文件唯一性等密钥分配策略,以及密钥保护的方式、密钥更新的周期等,保障数据加密密钥的安全性、可靠性、可维护性。

中间件管理功能主要实现各类密码中间件的状态监控、参数配置等管理功能。

此外,密码中间件管理可综合密码服务和密钥管理规则,依照应用场景维度产生具体的管理模板,简化密码管理。例如,密码中间件管理可针对电子邮件、即时通信、网盘等常见应用实现常用密码管理模板,从而为新建信息系统提供密码服务的一键化分配和实施。

3.2 效能分析

通过独立的密码中间件软件为信息系统各个层面的应用和数据安全提供密码保障能力,将具体的密码实现和密码管理细节进行封装,为应用系统提供透明化数据保护能力、便捷易用的密码服务接口,减少和避免应用系统改造,从而解决了信息系统使用密码过程中的复杂性、专业性问题,让密码技术真正“用起来、用得对、用得好”,有效提升了密码泛在化保障能力。

4 结 语

本文分析了密码技术在信息系统应用和数据安全方面的保障作用和典型场景,通过深入分析密码应用中的典型密码技术和密码管理问题后提出解决方案,设计了基于密码中间件的密码泛在化保障体系,并按照软件架构层级分别阐述了各类密码中间件的关键技术,以及集中统一的中间件管理系统。从而为密码泛在化保障提供解决思路,让密码技术作为网络空间安全DNA能够无缝融入信息系统建设过程,成为构筑网络信息系统安全体系和信任体系的基石。

    服务热线

    029-63648670

    邮 箱

    zoyink@zoyink.com

关注
官方微信

广州电气设备有限公司 | 4K会议摄像机 | 环保 | 哈尔滨机电设备有限公司 | 安徽环保设备科技有限公司 | 碳纤维公路车 |