郭國智,郭湘杰
(交通工程學院 電信學院,衡陽 湖南 421001)
信息技術及“互聯網+”使得單位和個人下線交易、業務辦理、文件傳送等事務處理越來越多地轉接到了網上,無須雙方見面。傳統數字簽名技術[1]確保了網上用戶身份的認證及數據傳輸中的完整、保密、真實,交易不可抵賴,但雙方的運行系統環境、終端設備及文件格式(簽名文件往往不兼容)等因素都制約著簽名文件的發展。架設于云服務器的云端數字簽名技術開發的應用系統,既實現雙方數字簽名,又解決了雙方環境、終端及文件的差異,同時共享及交互服務器現有資源和文本,解決傳統簽名技術存在的上述問題等,實現了數字簽名的方便快捷及簽名文件的跨平臺操作。
數字簽名即電子簽名,對待發數據運用加密算法生成一串數據(即密鑰)與現實中文件的手寫簽名加印章相同,與原文件一并發送給對方,待接收方收到原文件后,用密鑰驗證發送方發來的原文件的真偽。
傳統數字簽名過程是發送者用hash對原文件運算,運算結果是128位散列值(即信息摘要),通過公鑰和私鑰對其進行加密得到密文,即進行了數字簽名操作,將密文與原文一起發送給接收者。接收者利用公鑰算法和公鑰解密收到的簽名文件,得到消息摘要一,再用hash對收到的文件進行一次運算,運算結果與發送者發送時用hash對原文件運算的結果不同,是一串新的128位的散列值(即信息摘要二)。然后接收者對比信息摘要一與信息摘要二的差異,若一致,文件未被篡改,反之被篡改過。
云提供新興的網絡服務需求和動態、易擴展及虛擬化的網絡資源。基于云端安全的數字簽名技術是一種基礎設施,包含以下功能:(1)提供的簽名資源是可靠、便捷及有可塑性。(2)執行加解密操作是申請式數字簽名模式。(3)用戶的簽名私鑰既可存儲,也可恢復。
架設云端服務器的簽名系統是一種服務的形態,托管用戶的簽名私鑰,向外提供服務。云端簽名服務系統的具體實施方案標準化的問題,是借鑒效率、安全性、成本等方面都比較有優勢的成熟數字簽名標準去實施,并結合具體的資源和環境進行適當改進。
(1)統一性。搭建在網上云端簽名系統,用戶先注冊,再以戶名及密碼登錄,最后云端簽名,解決了用戶間的文件不兼容及傳輸環境和設備的差異等問題。
(2)靈活快捷性。云端的數字簽名系統架構為B/S模式,保證原有安全性以及簽名操作跨平臺性和不受終端設備限制的便捷性。
(3)擴展性。傳統簽名技術受制文件格式,而云端簽名系統支持主流的doc,pdf,xls等文件格式,采取二進制簽名以獲取密鑰。將待簽名的文件生成PDF格式,通過云端服務器上的組件和程序實現加載,編輯PDF文件及文件的簽章操作,全程操作既可視化又權威公正,現在各個領域廣泛應用[2]。
依據云端簽名技術[3]的應用要求,可以定義4個基本的協議實體:(1)簽名者。提前將其私鑰存儲在云端加密機中,加密機是云端簽名系統中加解密及管理密鑰的裝置,內部由安全加密處理器組成,確保系統安全可靠。在實際應用系統常用軟件來模擬加密機。(2)視云端數字簽名系統中的簽名者和簽名發起人為同一實體。簽名者或發起人通過B/S模式架構進行交互,加密機則通過外設連接服務器或作為獨立的加密服務器駐留于服務器端進行加解密操作及管理密匙。(3)代理服務器。代理服務器由支持HTTP協議的軟件、數據庫管理系統及各種應用程序構成,負責管理,監控用戶對云端加密機的安全訪問,用戶身份的驗證,收集及規范用戶發送給加密機的數據格式等功能,是云端簽名系統的操作接口。
簽名過程中,用戶注冊后,都會被分配一個非對稱的公私鑰對(Kuser公,Kuser私)作為數字簽名密鑰,其中Kuser私來進行數字簽名,它的保密性關系著整個服務的安全。加密機存儲自己的公私鑰對(Kuser公,Kuser私)、對稱密鑰K和生成動態口令算法的密碼值OTPsecret,在簽名服務過程中負責OTP值的生成與驗證,口令解密,文檔解密及私鑰解密等多種工作(見表1)。

表1 標識符
代理服務器進行用戶的身份驗證,Kuser存儲在加密機中作為用戶的簽名私鑰。其中:
Kuser= SYMenc{SYMenc(Kuser私)}
(1)
OTP= GenOTP(Kuser+OTPsecret)
(2)
doc= SYMenc(doc)
(3)
Pass= ASYMKhsm(pass)
(4)
云端數字簽名的整體流程,如圖1所示。解密驗證Pass,doc和Kuser私:
doc= SYMdec(doc)
(5)
Pass= ASYMKhsm(pass)
(6)
Kuser私= SYMenc{SYMenc(Kuser)}
(7)
驗證通過則加密機調用Kuser私進行文件簽名:
doc=SIGNKuser私(doc)
(8)
在整個簽名服務系統中,文檔、口令都是加密傳輸。用戶注冊口令Pass和加密機發送給簽名者OTP兩者都通過系統驗證后方可調用私鑰進行簽名,而口令和移動設備的擁有者只有簽名者本人,如此,簽名服務確保了簽名的唯一性和簽名操作的可控性。

圖1 云端數字簽名的整體流程
云簽系統[4]以基礎設施即服務(Infrastructure as a Service,IaaS)或軟件即服務(Service as a Service,SaaS)模式構建。加密機購買或者用軟件實現,通過外設接口連接到服務器或再配置服務器一起作業,數據安全又實現數據備份,同時又緩解了云簽系統的運營壓力。
兼顧云架構硬件成本,線路布設的靈活性和擴展性,選用性能穩定、功能強大、安全便利的多用戶多任務Linux操作系統,利用系統自帶的Apache,并整合Tomcat來搭建Web服務器,作為簽名實體中的后臺服務器。利用B/S模式實現用戶身份的認證和用戶原文件的簽名及下載操作[5]。
云簽系統由管理模塊、數字簽名模塊及用戶組成。管理模塊分用戶管理模塊和后臺管理模塊,數字簽名模塊主要分為簽名模塊和驗證模塊,用戶分為審計員和最終用戶(見表2)。

表2 模塊功能
云端系統架構的設計以按需、靈活及易擴展的方式使用戶獲得所需服務,減少了設備維護的成本。云端數字簽名技術確保了信息傳輸的真實可靠、運行安全、系統資源共享,實現了簽名操作的統一性、跨平臺性、兼容性、便捷性及廣泛性等優勢,是當今信息安全傳輸的首先技術。