丁 明,周 林,韓京云,宋慶磊,宋轉玲,李新放,劉海行
(國家海洋局第一海洋研究所 海洋信息與計算中心,山東 青島 266061)
信息化提高了整個社會的運行效率,信息網絡已成為社會發展的重要保證,隨著信息技術的發展,海洋信息化應用日益普及,海洋信息化建設取得了顯著的進展,為實現“數字海洋、生態海洋、安全海洋、和諧海洋”奠定了良好的基礎[1]。數字化網絡化已在海洋信息管理中普遍應用,信息資源已經成為重要的生產要素、無形資產和社會財富[2],而信息的核心是數據,所以保護數據的安全是信息安全最重要的工作。
在海洋科研信息化的過程中,數字化的信息數據必然會吸引各種人為攻擊,數據安全已經成為阻礙海洋信息化深度發展的重要原因之一。如何在盡可能不妨礙信息交流效率的前提下,保證信息的保密性、完整性與不可否認性,已經成為海洋信息管理與應用網絡化過程面臨的主要問題[3]。
密碼學是信息安全的基礎,公鑰密碼技術相對于傳統的對稱密碼學是一個重大的進步,是信息安全技術中的革命性進展,目前公鑰體制廣泛地應用于數字證書認證機構(CA ,Certificate Authority)認證、數字簽名和密鑰交換等領域[4]。CA是整個信息安全的基礎,是PKI(Public Key Infrastructure,公鑰基礎設施)的核心執行機構,負責數字證書的產生、簽發、廢除等工作[5]。基于公鑰密碼技術的CA系統,在信息安全方面具有廣泛的用途,能起到數據保密、數據完整性確認、身份認證、訪問控制、行為不可否認性等作用。Bouncy Castle是一個開源的加密包的API集合,實現了大量的加密算法。通過應用數字證書結合加密技術,能夠有效地保障海洋信息管理網絡化過程中的信息安全。
CA認證系統在多個領域已經得到了廣泛的應用,網上銀行是典型的基于 CA認證體系的電子商務應用系統;電子政務方面,國家電子政務外網的“政務電子認證系統”已擁有最大容量為100萬張證書的數字證書中心CA。目前的中小型海洋信息管理系統在安全方面多側重于身份認證與權限管理,缺乏信息傳輸與存儲的加密功能。由于海洋數據具有多元、多源性、時序性、海量性、異構性、標準性與機密性等特點[6],在中小型海洋信息系統的開發與建設過程使用第三方的CA限制較多,購買與集成成本較高,所以構建一個通用,易于集成與修改、擴展的認證中心是一個很好的選擇。
本文面向海洋信息管理的應用需求,基于開源軟件體系,采用Bouncy Castle加密包、J2EE體系架構,對CA進行設計和開發,能為海洋信息管理系統提供更好的安全保障。
信息系統安全的目的是保證信息系統所支持的業務過程運作的安全[7],本 CA用來保障海洋信息在服務器存儲和網絡傳輸過程中的安全性,對相關人員提供身份驗證并保障其行為不可否認性,同時具備通用性,輕量化的特點,便于各中小型海洋信息管理系統集成。基于以上目標,本CA將實現的功能見圖1。

圖1 面向海洋信息管理的輕量級CA功能結構Fig.1 The functional architecture provided by lightweight CA for marine management information
證書生成與簽發是CA的核心部分,本CA具備生成證書和簽發各種不同用途的數字證書的功能。例如: X.509 V3標準格式的身份證書;具有加密功能的SSL證書;Web Server證書;S/MIME電子郵件證書等。
證書管理功能主要包括: 證書的申請、審核、查詢、撤銷功能。
具備CRL(Certificate Revocation List)的產生、發布、更新、在線查詢功能。CRL的范圍包括所有用戶的作廢證書以及 CA的作廢證書,能夠對CRL有效期進行調整,管理CRL的更新周期。同時將CRL發布至Web頁面,供用戶下載。
用戶管理包括用戶的創建、刪除、更新、歸檔等功能。為證書使用者創建賬號,從而可以對與用戶相關的證書、密鑰等操作進行管理,在用戶注銷時,從數據庫里刪除用戶以及相關的證書、密鑰等信息,將所有用戶歸檔,以便以后對用戶的行為進行追查。
本系統采用模塊化結構設計,由證書注冊審批中心(RA ,Registration Authority)、CA控制認證中心、CA服務中心幾部分構成,系統結構見圖2。
證書申請與發放的主要流程: 用戶使用 RA服務,申請獲得證書。管理員收到請求后使用RA管理系統,審查和批準用戶的證書申請,如果管理員批準證書的申請,CA控制中心將簽發用戶證書。最后用戶獲得自己的證書。

圖2 面向海洋信息管理的輕量級CA系統結構Fig.2 Architecture of lightweight CA for marine management information
證書吊銷流程: 首先用戶提交證書吊銷申請。然后管理員使用CA管理系統審批用戶證書吊銷。最后CA處理系統根據管理員的請求,吊銷指定證書,并將吊銷的證書信息發布到證書吊銷列表(CRL)中,通過LDAP、OCSP等方式進行發布,同時對數據庫中保存的用戶證書的信息進行更新。
針對多數海洋信息管理系統對數據安全的需求,為確保系統具有較好的兼容性、安全性和可擴展性,本系統采用 J2EE平臺進行開發,并采用 Bouncy Castle實現加密設計。
Java平臺具有高度的安全性,Java的安全平臺有兩部分組成: Java安全體系內核與 Java密碼體系。Java安全體系,包括自動內存管理,字節代碼驗證機制,安全類加載方式等。Java的密碼體系設計得很完善: Java Security提供相關類和接口,位于Java編程語言的核心API內的java.security包,可供開發人員實現安全功能。Java的密碼體系依賴于JCA (Java Cryptography Architecture)和JCE(Java Cryptography Extension)。JCA 提供基本的加密框架,如證書、數字簽名、消息摘要和密鑰對產生器;JCE擴展了JCA,提供了更豐富的API,包括對稱分組算法、對稱的流加密算法、非對稱加密算法和信息認證碼等[8]。
加密包Bouncy Castle: 由于JCA/JCE并不執行各種算法,它們只是連接應用和實際算法實現程序的一組接口,所以我們同時需要使用Bouncy Castle加密包。Bouncy Castle是一個不受美國出口控制規定限制的開源的加密包。它功能強大,包括: JAVA和C#版本的輕量級加密API、JCE/JCA的provider以及對X.509,CRLs,PKCS12,S/MIME,OCSP等的支持。
基于CA系統的功能設計和J2EE開發平臺,本文對CA系統進行了設計和實現,下面給出CA的核心實現代碼。


本文面向海洋信息管理的安全需求,對設計實現的 CA系統在數字簽名和信息加密等方面進行了具體的應用。現以某區域海洋數據收集與信息共享系統為例,介紹本CA在海洋信息管理系統中的使用。
該系統通過互聯網實現異地數據采集、傳遞與共享,對數據安全有較高的要求,現結合該系統需求對本CA的使用進行簡要闡述。
異地數據采集,實時發送數據到服務器,數據對采集者和處理者之外的人員保密。針對該需求,系統首先判斷所采集數據文件的大小,如果數據文件較小,就直接使用通過CA服務中心獲得的數據處理者的公鑰,采用 RSA加密算法對數據進行加密,然后將加密后的數據上傳到服務器保存。對于較大的數據文件,采用數字信封(Digital Envelope)技術,采用AES(Advanced Encryption Standard)加密算法生成一個 256位的密鑰,使用該密鑰對大數據文件進行加密,并使用數據處理者的公鑰對該密鑰進行加密,最后將加密后的密鑰和加密后的數據文件打包后通過網絡發送到服務器保存。
用戶需要隨時隨地獲取經授權的數據。服務器收到用戶的數據使用申請后,首先判斷用戶是否有訪問該數據的權限,如果用戶有合法權限,系統將會解密指定數據,然后再使用該用戶的公鑰將數據加密后發送給用戶,數據在網絡傳輸過程中處于加密狀態,所以用戶可以隨時通過網絡下載數據而不必擔心安全問題,下載后使自己的CA證書私鑰解密即可使用。
為保證用戶發布結果數據的可靠性和不可否認性,要求用戶對發布的數據進行簽名。該需求采用數字簽名技術解決: 首先采用SHA1算法獲得要發布的數據的數字摘要值,然后用戶用自己的私鑰對包含數字摘要值與當前時間等信息的文件進行加密處理,實現了對數據的合法“簽名”,最后將要發布的數據和私鑰加密后的數據打包發布。數據使用者通過CA服務中心獲得數據發布用戶的公鑰來解讀收到的“數字簽名”,并將解讀結果與數據的SHA1值進行對比,從而保障接收到的數據是可靠的和完整的。
通過以上設計,使需要保密的數據在傳輸和服務器的存放過程中完全處于加密狀態,只有指定CA證書私鑰的擁有人員才能使用。這樣保證了無論是通過網絡截取數據,還是攻破服務器后獲得數據文件,得到的皆是無法讀取的加密后的數據,從而保證了指定的海洋信息數據的安全。
通過以上所述的設計與實現細節,可以看出本CA具有以下顯著特點:
1)系統采用主流開源軟件、跨平臺語言實現,具有較高的安全性、兼容性和可擴展性,可以通過中間件技術方便地集成到已有的海洋信息管理系統當中[9]。
2)系統與用戶交互采用 B/S模式,通過瀏覽器進行,不受客戶端操作系統及運行環境限制,易于部署和操作。
3)在多數海洋信息管理系統的使用環境下,沒有直接訪問CA注冊審批中心與控制中心的需求,可以對CA控制中心進行物理隔離,從而在不影響正常功能使用的前提下確保系統安全。
4)本系統遵循國際化的X.509 V3標準,以及國家 PKI標準 GB/T19713-2005 GB/T 19714-2005,系統具有很好的開放性,能夠與各種應用結合,成為具有實用價值的真正的安全基礎設施。
隨著海洋信息化、數字化的深入發展,數字化管理的海洋信息具有分布性、數據和信息類型格式的多樣性、數據的海量性特點[10],保護數字化海洋信息安全已經成為海洋信息化過程中的重要任務。針對海洋信息管理快速發展過程中對信息安全的需求,結合當前信息安全技術應用的現狀,本文提出了用開源軟件開發構建CA的一種方法,并給出了具體實現,該CA有必備的功能和較好的安全性,便于不同系統集成,具有較高的應用和理論價值。
[1]國家海洋局.國家海洋事業發展規劃綱要[R].北京:國家海洋局,2008.
[2]朱建明.基于博弈論的信息安全技術評價模型[J].計算機學報,2009,32(4): 828.
[3]劉豐,韓偉.海洋信息系統的安全問題與對策研究[J].海洋開發與管理,2012,7: 60.
[4]張琳.基于PKI的電子商務安全研究[J].電子科技大學學報,2009,38(增刊): 101.
[5]關震勝.公鑰基礎設施 PKI及其應用[M].北京: 電子工業出版社,2008: 69-70.
[6]張明華,黃冬梅,熊中敏,等.多源異構海量海洋數據綜合管理平臺構建研究[J].海洋科學,2012,36(02):110.
[7]余志偉,唐任仲,賈東澆,等.一種基于業務過程的信息系統安全需求分析方法[J].中國機械工程,2007,18(4): 457.
[8]馬臣云,王彥.精通PKI網絡安全認證技術與編程實現[M].北京: 人民郵電出版社,2008: 279.
[9]肖天威,張世永,鐘亦平.基于 PKI/CA的中間件系統的設計與實現[J].計算機工程,2006,32(4): 190.
[10]何亞文,蘇奮鎮,杜云艷,等.海洋信息網格服務平臺的設計與實現[J].地球信息科學學報,2010,12(5): 681.