李明



摘 要:地震解釋系統是石油上游公司的關鍵信息系統數據庫,也是渤海油田研究院勘探開發一體化流程的研究平臺之一,為由多學科科研人員組成的一體化團隊做數據解釋和分析研究。OpenWorks 軟件是基于Oracle數據庫開發的一款地學解釋數據庫支撐運行在其上的DSG系列勘探開發應用軟件。R5000版本OpenWorks之前版本R2003的升級產品,在產品功能變化的同時,數據庫安全機制(Security Model Change)是其中眾多變化的部分。論文集中討論從R2003到R5000升級后,采用Oracle Wallet認證方式所帶來的安全認證變化。
但是,隨著OpenWorks一體化軟件應用范圍的擴大,R5000版本的應用程DSG的應用環境,已經傳統的登錄單點工作站拓展到了遠程、異地等多點登錄情形。登錄數據庫的用戶也不再僅僅局限于來自局域網內的用戶,最新釋放的運行在微軟云平臺Azuer上的DSG365應用程序,可以實現在全球任意點登錄。由于應用程序適用范圍的變化,基于操作系統認證的適用條件受到了挑戰。遠程登錄的用戶,即使他們是合法的操作系統用戶,也不一定是合法的數據庫用戶。繼續使用基于操作系統認證的方式登錄數據庫,對用戶寶貴的數據安全構成了嚴重的威脅,并存在著重大的安全隱患。
論文分析了使用基于Oracle錢包的機制和為什么用它來代替操作系統認證可以改善安全性的原因,幫助用戶消除原有的安全顧慮。
關鍵詞:Oracle錢包;OpenWorks/DSG,安全模型;共鑰;私鑰;SSL傳輸
中圖分類號: TP393 文獻標識碼:A
Apply Oracle Wallet for Landmark database Authentication in R5000 Release
Li Ming
(Bohai Petroleum Institute, Tianjing Brach of CNOOC, Tianjin300452)
Abstract: Seismic data interpretation system is one of the most key information systems for the upstream petroleum industry; OpenWorks software is part of the system, which is based on Oracle database to support the decision space for geosciences (DSG) application, it serves as an integrated platform for Geology and Geophysical data interpretation and intergradations for multidisciplinary team in the Bohai petroleum institute.
The R5000 release is the latest version of OpenWorks software which replaced the previous R2003 release, a huge change has been made in the R5000 version, from the application functionality to the data model. This paper focus on how and why Oracle data wallet technology is employee to make the security model change in term of the user authentication .The major driver for the security model change is driven by the cloud commuting. The R5000 release has extend the application from the traditional stand alone or client server to cloud environment running on the Microsoft Azure platform , this change enable users to access the system from single point to remote or muti-point login to the system. This make the application access much easier globally but increased the concern of the data security. This paper Try to answer the concern why and how the oracle wallet technology employed in R5000 help to keep the data in a secure environment by replace the operation authentication in R2003 version.
Key words: Oracle Wallet; OpenWorks/DSG; Security Model; Public Key; Private Key; SSL
1 引言
地震解釋系統是石油公司的關鍵信息系統,也是渤海油田研究院勘探開發一體化流程的研究平臺之一,供一體化的科研團隊做數據解釋和分析研究。OpenWorks 軟件是基于Oracle數據庫開發的一款地學數據庫、為運行在其上的DSG系列勘探開發應用軟件提供數據支撐。R5000版本是之前R2003版本的升級換代產品。在產品功能變化的同時,數據庫安全機制(Security Model Change)的變化是其中眾多變化的一部分。本文集中討論了從R2003到R5000升級后,采用Oracle Wallet認證方式代替原來基于操作系統認證所帶來安全認證方式的變化,對信息安全和用戶體驗所帶來的影響。endprint
2 登錄數據庫的認證機制回顧(R2003版本)
為了防止未經授權的用戶非法使用數據庫,每個用戶在連接到數據庫時都需要進行身份認證。基于口令字(Password Authentication)和基于操作系統認證(OS Authentication)是登錄Oracle數據庫的兩種不同認證方式。
基于口令字的認證在登錄數據庫的時候必須同時提供用戶名和口令,由Oracle完成對戶名和口令的認證,用戶的口令存放在數據庫中;基于操作系統認證的數據庫登錄方式,是數據庫委托和授信給操作系統來完成登錄數據庫的認證,用戶的密碼是存放在操作系統的Shadow文件中。也就是說,只要是合法的操作系統用戶,也就是合法數據庫的用戶,Oracle不再做單獨認證。
OpenWorks軟件R2003版采用的就是基于操作系統認證的方式來訪問數據庫。
3 為什么操作系統認證的安全性不高
早期的解釋系統是單機版的用戶(Stand-alone),后來逐步發展成為客戶機/服務器架構。其基本功能都是作為一個信息系統為項目團隊提供地學研究和數據存儲服務。總體而言,無論是在單機版還是在一個小型的網絡環境內,勘探開發研究團隊的成員都是工作在一個相對獨立和封閉的環境中,或者說他們都使用同一種操作系統來登錄數據庫和使用應用程序。在這種情況下,使用基于操作系統認證的方式來訪問數據庫,數據的安全性不是主要的顧慮。相反,由于用戶需要頻繁地在不同的應用程序之間切換來和數據庫做讀寫交互,基于操作系統認證的方式避免了每次和數據庫交互的時候都需要提供認證服務的繁瑣,實現了用戶一旦登錄操作系統,就可以無密碼地訪問數據庫的便捷性。
但是,隨著OpenWorks一體化軟件應用范圍的擴大,R5000版本下的應用程序的應用環境已經由傳統的單點工作站登錄拓展到了遠程、異地等多點登錄的情形,登錄數據庫的用戶也不再僅僅局限于來自局域網內的用戶。最新釋放的運行在微軟云平臺上的DSG365應用程序可以實現在全球任意點登錄。由于應用程序適用范圍的變化,基于操作系統認證的適用條件受到了挑戰。同時,傳統的物理服務器日益被虛擬機所取代,遠程登錄的用戶,即使他們是操作系統合法的用戶,也不一定是合法的數據庫用戶。在新的情況下,繼續使用基于Oracle操作系統認證的模式登錄數據庫的方式,風險大于便利,用戶的數據處于不安全的狀態。
4 用Oracle Wallet代替操作系統認證
為了解決這個問題,從Oracle10gR2開始,用戶的口令存放在一個被稱為Oracle Wallet的容器之中。Oracle Wallet是一個數據結構,其功能是作為一個容器為每一個需要訪問數據庫的實體提供存儲各種口令、密碼和安全證書,同時也為數據庫的各種認證和加密提供檢索服務。
當用戶訪問數據庫的時候,Oracle自動打開Oracle Wallet來提取用戶的密碼提交服務器。如果Oracle拿到了密碼,就可以直接登錄數據庫,完成登錄認證。如果是非授權用戶,則無法登錄,如圖1所示。
在最大限度地不影響用戶體驗的情況下,Oracle Wallet機制成功地將操作系統用戶做了區分和過濾。從用戶的體驗看,使用這個機制登錄數據庫,除了在第一次訪問數據庫時需要自己設定密碼外,以后用戶只要登錄操作系統后,就可以直接訪問數據庫,似乎和以前的操作系統認證沒有什么區別。但是,在表象的背后,卻是完全不一樣的安全機制。
5 Oracle Wallet安全機制分析
本文就Oracle Wallet管理用戶口令的這三個環節做一具體的分析,理解為什么Oracle Wallet提供了比操作系統認證更加安全的口令保護機制。
5.1 Oracle wallet自身安全的保護機制
第一層保護:用戶自己制定Oracle Wallet的存放位置和密碼保護。
我們知道,基于口令的數據登錄方式,其口令是存儲在數據庫中;基于操作系統認證的登錄方式,口令是存放在操作系統的Shadow文件中。Oracle Wallet提供了一個新的容器,這個容器代替Shadow文件來存放用戶的口令,提供了Oracle和用戶共同管理登錄口令的新機制。
這個被稱為Oracle Wallet的容器是一個獨立于數據庫、建立在操作系統上的加密文件,這個文件的位置和密碼都是由用戶自己來設定的, Oracle通過參數配置來找到這個文件并讀取其中的內容。
第一次建立Oracle Wallet使用mkstore命令和 -create 選項來創建,并要輸入和確認以后訪問wallet的口令。
$ mkstore -wrl "/home/myuser/wallet" -create
Enter password:
Enter password again:
$
第二層保護:受操作系統文件讀寫屬性保護。
執行完這條命令后,存放外部口令文件夾的Oracle Wallet就建立好了。這個兩個文件在初始生成的時候只有創立者自己具有讀/寫權限(600),其他任何人無權訪問和修改。如果用戶修改了文件的屬性,Oracle隨后把被修改的文件屬性的強制改回初始狀態。
$ ls -l /home/myuser/wallet
total 48
-rw------- 1 oracle myuser 3973 Jul 20 22:55 cwallet.sso
-rw------- 1 oracle myuser 3896 Jul 20 22:55 ewallet.p12
$
第三層保護:屬地保護(不可移動性)。endprint
文件的讀寫屬性提供了保護Oracle Wallet的必要功能。但是Oracle Wallet有可能被用戶拷貝到不同的機器上,為了避免這種現象發生,保證Oracle Wallet只在建立的當地有效,在11g Release 2版本中,使用了一條新的命令"orapki"代替"mkstore"命令來生成Oracle Wallet文件夾,增加了選項-auto_login_local。
$ orapki wallet create -wallet "/home/myuser/wallet" -pwd "MyPassword1" -auto_login_local
這樣用戶一旦創立了這個Oracle wallet,它就只能在初始創立的位置生效,增新加了不可移動的特性,就像一臺根植于用戶屬地的保險柜一樣安全。
5.2 錢包中存放物的安全:用3DES算法加密用戶口令
Oracle使用三重DES加密算法確保證保存放在這里的口令處于安全狀態。DES算法又被稱為數據加密標準(Data Encryption Standard),是1972年美國IBM公司研制的對稱密碼體制加密算法(Symmetric Encryption),如圖2所示。
到目前為止,除了用窮舉搜索法對DES算法進行強制破解外,還沒有發現更有效的破解辦法。DES算法是對稱密碼算法,也就是加密和解密使用同一套密鑰。密鑰的安全性和密鑰的長度相關,其加密的安全性隨著密鑰的位數的提高而提高。DES算法使用56位密鑰。DES算法的基本原理簡述如下:
設P代表明文,K代表用于加密和解密的56位密鑰,C代表加密后的密文;Ek()和Dk()代表加密和解密函數。這樣,
DES加密過程為:C=E(P,K);
DES解密過程為:P=D(C,K)。
三重DES算法通過使用三組不同的密鑰來提高DES算法的安全性和復雜性。理論上這三組密鑰可以彼此不同,相當于用一個長為168(3×56)位的密鑰進行加密。在平衡安全和效率的情況下,令第一個和第三個密鑰相同(K1 = K3),采用兩個不同的密鑰加密。在這種情況下,密鑰的有效長度為112位(3×56)。三重DES算法把密鑰的長度由初始的56為提高到了112位的高級加密標準(AES)。
DES加密過程為:C=E(D(E(P,K1),K2),K1);
DES解密過程為:P=D(E(D(C,K2),K1),K2)。
對稱加密算法的特點是非常高效,用戶提供口令后感覺不到由于對口令做加密和解密運算帶來的時延效果。
以上兩個機制確保了Oracle Wallet自身的安全和存放其中口令的安全。下面這個措施保證了當用戶的口令在提交服務器做登錄認證時, 傳輸過程也是安全的。
5.3 傳輸環境的安全機制:使用SSL協議傳輸口令
Oracle Wallet在把口令字傳輸給服務器的時候,使用Oracle提供的SSL安全傳輸通道。
SSL(Secure Sockets Layer 安全套接層)是為網絡通信提供安全及 數據完整性的一種安全協議。
在TCP/IP網絡傳輸協議中SSL是運行在傳輸層之上、應用層之下的一種傳輸模式。SSL安全確保傳輸過程中數據的安全和完整,如圖3所示。
(1)傳輸過程使用公鑰加密算法
SSL支持強公鑰加密算法(Strong Public Key Encryption),公鑰加密標準算法是一種不對稱加密算法(Asymmetric Encryption),公加密和解密使用的的密鑰不一樣。在生成密鑰的時候同時生成一對密鑰。只有生成密鑰這自己知道的密鑰稱為私鑰,私鑰來解密信息。對外廣泛散布的密鑰稱為公鑰,公鑰用來加密信息。在公鑰加密算法中,任何人都可以使用公鑰來機密信息,但是被加密的信息只有擁有私鑰的人才能解密。因此,一個完整的加密和解密過程需要一對密鑰共同完成。缺少其中任何一方,流程都無法完成。
在對稱加密算法中,算法的安全性取決于密鑰的位數長度;在向不對稱加密算法中,如公鑰加密加密算法,私鑰的安全程度就是整個算法的安全程度。
(2)SSL傳輸步驟
SSL的傳輸過程分兩步完成,握手階段和信息傳輸階段。 在傳輸數據之前,客戶機和服務器先建立連接,協商在傳輸過程中,需要使用的用于在信息傳輸階段對信息做加密和解密的密鑰。這個過程被稱為“握手”過程。“握手”結束后,加密數據、在安全傳輸通道內傳輸數據,服務器收到密文后,使用在私鑰解密數據,完成對用戶口令的安全傳輸。
6 結束語
通過以上分析,可以看到,Oracle Wallet 提供了一種全新的安全機制:首先,用戶的密碼由用戶和Oracle來共同管理,而不再是委托操作系統來管理;其次,存放在Oracle Wallet中的用戶密碼是加密的;第三,在向服務器提供密碼驗證時是通過安全通道SSL協議傳輸的。這三個環節從機制上保證了用戶口令在整個環節的所有流程中始終處于安全狀態。
今天的聯網設備的運行環境面臨更多的來自數據安全方面的挑戰。一個是傳統的單一操作系統的物理服務器日益被虛擬機所取代,或者至少是一個混合的工作環境。部署虛擬機后,在不同的服務器內部可以調用相同的業務,這就為業務帶來了風險。另外,應用程序應用范圍的擴大導致登錄數據庫的用戶,不再局限于來自NIS網段的小規模用戶,大量的遠程用戶從異地登錄數據庫,良莠難辨。來自網絡的黑客攻擊,由簡單粗暴的傳統拒絕服務攻擊,正被更加復雜的釣魚式攻擊取代。以殺毒軟件和防火墻為手段的數據保護措施,并不能阻擋來自惡意登錄用戶破壞數據的威脅。從這個角度看,登錄認證比傳統的數據防護措施更加重要。提高了訪問數據庫登錄認證的安全級別,就提高了數據的安全等級。因此,Oracle Wallet帶來的登錄機制變化,消除了基于操作系統認證時存在的安全隱患;帶來了安全機制的根本改善,是DSG應用軟件在向云平臺拓展時,保證數據安全的有利措施和工具。
參考文獻
[1] 1. OSH SHAUL. ORACLE安全實踐[M].科學出版社,2009.
[2] Roger, Jennings, Cloud Computing with the windows Azure platform, Mark Stamp(張戈翻譯).信息安全原理與實踐[M].北京:清華大學.
[3] 王昭.信息安全原理與應用[M].北京:電子工業出版社。
[4] 郭涌,金月恒. Oracle數據庫在賬務管理系統中的安全策略研究[J].信息技術與信息化 2010.
[5] http://www.oracle.com/technetwork/database/security/twp-db-security-secure-ext-pwd-stor-133399.pdf.
[6] https://www.rsa.com/en-us/resources.
[7] Oracle? Database Security Guide, 11g Release 1 (11.1),
[8] http://docs.oracle.com/cd/B28359_01/network.111/b28531.pdf.
[9] https://docs.oracle.com/middleware/1221/core/ASADM/wallets.htm#ASADM10224.
[10] Using SSL Combined with Other Oracle Authentication Methods
[11] http://docs.oracle.com/cd/A84870_01/doc/network.816/a76932/09_ssl.htm.
[12] Oracle Database 10g Release 2 Security.
[13] https://oraclenz.files.wordpress.com/2008/06/security_database_10gr21.pdf.endprint