隨著《中華人民共和國密碼法》《中華人民共和國數據安全法》等法律法規(guī)的正式實施,密碼作為解決網絡與信息安全問題最有效、最可靠、最經濟的手段, 在經濟生活和網絡安全領域的作用越來越大,密碼技術的應用場景也越來越廣泛。在網絡安全層面,基于安全套接字層虛擬專用網(Secure Socket Layer Virtual Private Network,SSL VPN)、安全網絡協議層虛擬專用網(Internet Protocol SecurityVirtual Private Network,IPSec VPN)等密碼技術的網絡安全措施已比較成熟,也得到了廣泛的應用。但隨著云計算、大數據等新型信息技術的發(fā)展,網絡安全的邊界越來越模糊,應用安全和數據安全逐漸成為安全保障的核心。在應用安全和數據安全實現層面,目前采用的主要方式還是應用系統調用密碼服務的方式來集成密碼技術。
由于密碼技術具有專業(yè)性強、技術門檻高、應用和管理復雜度大等特點,出現了很多誤用密碼、用錯密碼的情況,密碼對信息系統和重要數據的安全保障遠未能達到實際設想的效果。此外,由于密碼系統通常晚于應用系統進行建設實施,部署密碼技術時,通常要求對現有應用系統進行額外的改造,這也對密碼技術的普及和泛在化帶來了不利的影響。因此,需要一種對應用系統“透明化”、對信息化人員“無感知”的密碼保障技術,降低密碼使用的復雜度、屏蔽密碼管理的專業(yè)度,實現密碼保障技術無處不在且不被感知的泛在化應用,為國民經濟的健康發(fā)展和國家網絡空間安全保駕護航。
1 密碼應用的價值
1.1 密碼保障的場景
在信息系統的應用安全和數據安全方面,密碼的保障能力主要體現在機密性、完整性、真實性和不可否認性4個方面。其中,依賴的密碼關鍵技術主要包括對稱加密、數字信封、數據摘要、數字簽名等。
機密性保障主要面向信息系統的數據傳輸、數據存儲等應用場景,主要基于對稱加密、數據信封等密碼技術實現。例如,在電子郵件發(fā)送場景中,利用數字信封技術對郵件附件進行機密性保護;在即時通信、視頻通話等場景中,利用通信雙方共享密鑰對聊天信息進行加密保護,防止第三方竊聽。
完整性保障主要面向信息系統的關鍵信息標識的防篡改場景,主要基于雜湊算法提取數據摘要、消息鑒別碼(Message authentication code,MAC)摘要等方式實現。例如,網絡上下載的軟件通常會標識該軟件的信息摘要算法5(Message-Digest Algorithm 5,MD5)值,防止被病毒或木馬破壞。
真實性保障主要面向信息系統認證鑒權、消息來源的可靠性驗證等場景,通常采用數字簽名、雙方共享密鑰的對稱加密、MAC運算等密碼技術實現。例如,在目前應用比較廣泛的電子合同場景中,基于合同簽訂雙方的數字簽名可保證在線簽訂合同的真實可靠,并和紙質合同具備等同的法律效應。
不可否認保障主要面向合同簽訂、責任界定等應用場景,主要采用數字簽名技術實現。例如,在電子蓋章等應用場景中,通常在線簽章中內含了對當前頁面內容的數字簽名,簽章完成也表示對當前合同條款的認可、確認和不可抵賴。
綜上所述,密碼技術對信息系統實現的保障能力以及常見應用場景如表1所示。
表 1? 保障場景與密碼技術
1.2 密碼保障系統的組成
一個常見的密碼保障系統至少要包括密碼服務和密鑰管理兩個部分。
密碼服務主要面向信息系統提供對稱、非對稱、雜湊等密碼運算能力,通常以軟件開發(fā)工具包 (Software Development Kit,SDK)形式供信息系統調用。密碼服務的物理形態(tài)可以為硬件設備或軟件系統。
密鑰管理負責密碼服務所用密鑰的產生、分發(fā)、更新、歸檔、銷毀等密鑰生命周期的管理,確保密碼服務保障過程中密鑰的安全性、有效性、可靠性。密碼管理的物理形態(tài)通常也可以為硬件設備或軟件系統。
信息系統在集成密碼過程中出現的密碼應用問題也主要體現在密碼服務和密鑰管理兩個方面。在密碼服務方面主要為密碼使用過程中的技術復雜度、改造適配工作等方面的問題。在密碼管理方面主要體現為密鑰分配、密鑰管理等密碼管理方面的問題。
2 密碼應用的問題
2.1 密碼應用的技術問題
在應用密碼服務層面,密碼服務能力通常以SDK接口形式提供給信息系統調用,SDK開發(fā)商通常為密碼技術和密碼產品廠商,其提供的接口通常從密碼技術的維度進行分類和定義,與應用廠商實際的信息保護需求不匹配,往往還需要應用系統開發(fā)商將多個服務接口組合調用后才能滿足其保護要求。例如,國密標準中的GM/T 0018—2012《密碼設備應用接口規(guī)范》、GM/T 0016—2012《智能密碼鑰匙密碼應用接口規(guī)范》,通常從密碼技術的維度將接口分為設備管理、密鑰管理、對稱算法、非對稱算法等,但應用廠商實際需要的通常為存儲加密、傳輸加密等服務接口。此外,應用廠商為實現數據存儲加密的功能,需要了解具體的密碼知識和理解各個接口的定義,再將多個接口組合后才能實現所需要的密碼保護功能。在密碼服務SDK接口層面,目前主流的密碼服務接口仍然以C接口的形式提供,但目前應用系統主流為Java語言開發(fā)的瀏覽器/服務器(Browser/Server B/S)架構,對密碼服務SDK的實際需求是服務器端Java接口、客戶端Java Script(JS)接口。密碼服務需求與實際供給的不匹配,給應用廠商帶來大量額外的二次封裝工作。
在密碼技術實現過程中,由于應用系統廠商專業(yè)密碼知識的不足,也出現了一些用錯密碼、濫用密碼的典型情況。例如,采用序列算法保護存儲數據;大數據量的文件數據采用電碼本(Electronic Code Book,ECB)模式保護;網絡包加密未采用認證加密(Authenticated Encryption with Associated Data,AEAD)模式且未自行處理網絡包校驗,導致無法驗證解密后數據的完整性;采用非對稱算法加密存儲數據等。以上情況雖然使用了密碼技術,但由于加密強度不足也帶來了一定的數據安全風險。還有部分應用因為采用了不合適的算法模式導致加解密性能低下,嚴重影響應用系統性能。
信息系統建設通常早于密碼保障系統建設,在實際生產環(huán)境中通常也存在大量存量應用需要采用密碼技術進行安全性改造。在新建應用系統方面,行業(yè)主流的應用系統基本上也沒有預留密碼保障擴展機制,需要應用廠商針對密碼技術進行適配改造。這些適配和改造的復雜性和工作量也是影響密碼技術推進的重要阻礙之一。
2.2 密碼應用的管理問題
在現代密碼體制中,加密算法是可以公開的,但一旦密鑰丟失,密碼算法保護的信息則面臨較大的被竊取的風險,密鑰管理對于信息系統的安全和機密至關重要。信息系統在集成密碼技術過程中的主要管理問題也集中在應用密鑰的產生、使用、更新等密鑰管理方面。
首先,密鑰的產生必須保證具備較強的隨機性和足夠的長度,否則密鑰的強度難以保障,采用該密鑰保護的信息也存在被暴力破解的風險。其次,針對密鑰的使用過程,也需要根據應用場景設計合理的密鑰管理體系來保障加密密鑰的安全。例如,針對網盤文件的加密場景,通常采用數據保護密鑰、密鑰保護密鑰兩級密鑰體系,金融行業(yè)采用三級密鑰體系等。最后,在密鑰更新管理方面,也必須根據實際的應用場景設計合理的密鑰更新策略,例如,即時通信場景,通常采用一次一密的會話密鑰保障通信的安全性。
以上密鑰的管理問題通常涉及實體認證、密鑰體制、通信加密等多種有關密碼協議和密鑰管理等領域的專業(yè)知識,對應用廠商來說專業(yè)性過強、難度較大,這也對應用廠商使用密碼技術帶來了極大的挑戰(zhàn)。
綜上所述,密碼技術和密碼管理的專業(yè)性和復雜度問題、密碼技術與信息系統的融合度不足等問題,導致密碼技術出現“不好用、用不好、用不對”等情況,嚴重阻礙了密碼技術對網絡空間安全泛在化保障的推進。
3 密碼泛在化保障方案
3.1 密碼中間件技術
中間件是位于系統軟件之上,連接不同軟件實體的支撐軟件。它是獨立的系統級軟件,連接操作系統層和應用程序層,將不同操作系統提供應用的接口標準化,協議統一化,屏蔽具體操作的細節(jié)。
為解決上述密碼技術應用的問題,本文借鑒中間件技術,將密碼保障以密碼中間件的形式提供給信息系統。一方面,屏蔽具體的密碼算法、密碼協議和密鑰管理細節(jié),讓信息系統使用密碼技術時無須關心具體的專業(yè)知識;另一方面,將獨立的中間件模塊與信息系統進行透明化集成,減少信息系統額外的適配改造工作。從而讓密碼技術真正成為信息系統網絡與信息安全的基礎支撐。
按照信息系統軟件架構層次,本文將密碼中間件由下至上分為文件加密中間件、數據庫加密中間件、傳輸加密中間件、密碼服務中間件。密碼中間件橫向接受密碼中間件管理系統的密碼服務調度、密鑰管理和狀態(tài)監(jiān)管?;诿艽a中間件的密碼泛在化保障體系設計如圖1所示。
圖1 基于中間件的密碼泛在化保障設計
3.1.1 文件加密中間件
文件加密中間件位于文件系統層次,它作為獨立的中間件模塊為應用系統存儲的電子文件提供透明化存儲加解密能力。
文件加密中間件可基于Linux內核提供的用戶空間文件系統(Filesystem in User Space,FUSE)框架實現?;贔USE擴展文件加密模塊,插入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)面向業(yè)務場景的高層次保護接口。密碼服務中間件作為承上啟下的模塊,對下銜接密碼設備,對上服務應用系統。它面向應用系統提供“傻瓜式”密碼保障接口,例如存儲加密、郵件附件加密、即時消息加密等接口,屏蔽具體密碼技術和密鑰管理細節(jié),實現“一行代碼”的密碼服務調用。
(2)跨語言和平臺支撐能力。密碼服務中間件針對現有主流軟件,直接提供C、Java、JS等多種開發(fā)語言接口,讓應用系統使用密碼技術時更方便、直接。
密碼服務中間件對接密碼中間件管理系統,由密碼中間件管理系統實現場景化服務接口中密碼服務調度、密鑰分配等密碼技術細節(jié)管理功能。
3.1.5 密碼中間件管理系統
密碼中間件管理系統主要針對應用系統使用密碼過程中的密碼管理問題提供解決措施。它通過集中統一的管理策略為文件加密中間件、數據庫加密中間件、傳輸加密中間件、密碼服務中間件提供密碼服務分配、密鑰管理、中間件管理等功能。
密碼服務分配功能主要針對中間件所需的密碼服務能力實現策略化配置和動態(tài)調度機制,包括各類中間件所調用的密碼機、算法類型、算法模式等。
密鑰管理功能主要實現各類中間件所需數據保護密鑰的管理,包括密鑰全局唯一、系統唯一、文件唯一性等密鑰分配策略,以及密鑰保護的方式、密鑰更新的周期等,保障數據加密密鑰的安全性、可靠性、可維護性。
中間件管理功能主要實現各類密碼中間件的狀態(tài)監(jiān)控、參數配置等管理功能。
此外,密碼中間件管理可綜合密碼服務和密鑰管理規(guī)則,依照應用場景維度產生具體的管理模板,簡化密碼管理。例如,密碼中間件管理可針對電子郵件、即時通信、網盤等常見應用實現常用密碼管理模板,從而為新建信息系統提供密碼服務的一鍵化分配和實施。
3.2 效能分析
通過獨立的密碼中間件軟件為信息系統各個層面的應用和數據安全提供密碼保障能力,將具體的密碼實現和密碼管理細節(jié)進行封裝,為應用系統提供透明化數據保護能力、便捷易用的密碼服務接口,減少和避免應用系統改造,從而解決了信息系統使用密碼過程中的復雜性、專業(yè)性問題,讓密碼技術真正“用起來、用得對、用得好”,有效提升了密碼泛在化保障能力。
4 結 語
本文分析了密碼技術在信息系統應用和數據安全方面的保障作用和典型場景,通過深入分析密碼應用中的典型密碼技術和密碼管理問題后提出解決方案,設計了基于密碼中間件的密碼泛在化保障體系,并按照軟件架構層級分別闡述了各類密碼中間件的關鍵技術,以及集中統一的中間件管理系統。從而為密碼泛在化保障提供解決思路,讓密碼技術作為網絡空間安全DNA能夠無縫融入信息系統建設過程,成為構筑網絡信息系統安全體系和信任體系的基石。
近期, Imperva 發(fā)布的《2024 年 API 安全狀…
近年來,大數據、人工智能等技術高速發(fā)展,為信息系統的賦能增效
由于傳統的郵件傳輸協議(SMTP)并沒有內置安全防護元素,因
隨著《中華人民共和國密碼法》《中華人民共和國數據安全法》等法
5月4日,代碼托管平臺GitHub 宣布了一項新的賬戶保護機