首先,分析了密碼在信息系統應用安全和數據安全方面的保障作用和應用場景,并從技術和管理兩個維度歸納總結了密碼技術在實際應用過程中面臨的復雜度高、專業性強等問題。其次,為解決密碼技術應用問題,借鑒中間件技術,提出了基于密碼中間件的密碼泛在化保障體系。再次,分層次介紹了密碼中間件體系各組成部分的軟件形態、核心功能和技術路線。最后,對密碼中間件進行效能分析。研究表明,密碼中間件讓密碼技術能夠無縫融入信息系統建設過程,可有效促進密碼技術的廣泛應用,使密碼成為構筑網絡信息系統免疫體系和網絡信任體系的基石。
1、密碼應用的價值
1.1密碼保障的場景
在信息系統的應用安全和數據安全方面,密碼的保障能力主要體現在機密性、完整性、真實性和不可否認性4個方面。其中,依賴的密碼關鍵技術主要包括對稱加密、數字信封、數據摘要、數字簽名等。
機密性保障主要面向信息系統的數據傳輸、數據存儲等應用場景,主要基于對稱加密、數據信封等密碼技術實現。例如,在電子郵件發送場景中,利用數字信封技術對郵件附件進行機密性保護;在即時通信、視頻通話等場景中,利用通信雙方共享密鑰對聊天信息進行加密保護,防止第三方竊聽。
完整性保障主要面向信息系統的關鍵信息標識的防篡改場景,主要基于雜湊算法提取數據摘要、消息鑒別碼(Message authentication code,MAC)摘要等方式實現。例如,網絡上下載的軟件通常會標識該軟件的信息摘要算法5(Message-Digest Algorithm 5,MD5)值,防止被病毒或木馬破壞。
真實性保障主要面向信息系統認證鑒權、消息來源的可靠性驗證等場景,通常采用數字簽名、雙方共享密鑰的對稱加密、MAC運算等密碼技術實現。例如,在目前應用比較廣泛的電子合同場景中,基于合同簽訂雙方的數字簽名可保證在線簽訂合同的真實可靠,并和紙質合同具備等同的法律效應。
不可否認保障主要面向合同簽訂、責任界定等應用場景,主要采用數字簽名技術實現。例如,在電子蓋章等應用場景中,通常在線簽章中內含了對當前頁面內容的數字簽名,簽章完成也表示對當前合同條款的認可、確認和不可抵賴。
綜上所述,密碼技術對信息系統實現的保障能力以及常見應用場景如表1所示。
表 1? 保障場景與密碼技術
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所示。
圖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能夠無縫融入信息系統建設過程,成為構筑網絡信息系統安全體系和信任體系的基石。
審核編輯:郭婷
-
Linux
+關注
關注
87文章
11312瀏覽量
209702 -
服務器
+關注
關注
12文章
9203瀏覽量
85528
原文標題:基于中間件的密碼泛在化保障技術研究
文章出處:【微信號:AI智勝未來,微信公眾號:AI智勝未來】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論