Oracle網路傳輸的加密和完整性驗證

來源:互聯網
上載者:User

標籤:class   2.4   介紹   解密   edr   tle   伺服器   抓取   jdb   

轉自 http://blog.itpub.net/24052272/viewspace-2129175/

測試環境:

11.2.0.4 winodows  單機

應用情境:

對oracle伺服器和用戶端之間的網路傳輸資料進行加密和完整性校正。

預設是使用明文方式傳輸資料,舉例可以通過wireshark、sniffer等網路抓包工具抓取到傳輸的具體資訊。

對于敏感資訊是很不安全的。

舉例:

對於漢字可以通過很多線上轉換工具將HEX編碼轉換成可讀漢字。

對於瞭解業務的人來說,這些資訊是很有價值的。

 

用戶端存在兩種模式:

1、通過oracle用戶端軟體串連資料庫

2、通過jdbc驅動串連oracle資料庫

通過oracle用戶端的情況:

啟用傳輸加密和校正的主要方法是通過伺服器端和用戶端的sqlnet.ora檔案實現。

配置方法:
理論上需要在資料庫server端和oracle用戶端都修改sqlnet.ora檔案,但因為client端預設傳輸加密層級是ACCEPTED,預設一致性校正層級是ACCEPTED,所以只需要在伺服器端設定如下參數就可以開啟傳輸加密和一致性校正功能,而不需要再對client端的sqlnet.ora進行設定(知識拓展部分介紹)。

在oracle伺服器端編輯sqlnet.ora檔案,添加參數:
SQLNET.ENCRYPTION_SERVER = REQUIRED               ----加密層級
SQLNET.ENCRYPTION_TYPES_SERVER = RC4_256      ----密碼編譯演算法
SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED     --- 一致效能校正

設定參數後對建立立的session起作用。

加密後抓取的包不再是明文的:


對於jdbc串連的情況:
需要寫代碼,不是很懂,不做驗證,大體格式如下:
For example:

DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());Properties props = new Properties();props.put("oracle.net.encryption_client", "accepted");props.put("oracle.net.encryption_types_client", "RC4_128");
props.put("oracle.net.crypto_checksum_client", "REQUIRED");                //此行根據官方文檔寫,未作驗證
props.put("oracle.net.crypto_checksum_types_client","MD5");             //此行根據官方文檔格式寫,未作驗證
props.put("user", "XXX"); props.put("password", "YYY"); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@myhost:1521:mySID", props);



知識拓展:
server端和client端的加密層級參數SQLNET.ENCRYPTION_SERVER|CLIENT
層級分

  • REQUESTED

  • REQUIRED

  • ACCEPTED

  • REJECTED

 server和client  要配合使用才能確保進行傳輸加密,簡單概括如下表格:

Table 4-2 Encryption and Data Integrity Negotiations

Client Setting Server Setting Encryption and Data Negotiation

REJECTED

REJECTED

OFF

ACCEPTED

REJECTED

OFF

REQUESTED

REJECTED

OFF

REQUIRED

REJECTED

Connection fails

REJECTED

ACCEPTED

OFF

ACCEPTED

ACCEPTED

OFFFoot 1 

REQUESTED

ACCEPTED

ON

REQUIRED

ACCEPTED

ON

REJECTED

REQUESTED

OFF

ACCEPTED

REQUESTED

ON

REQUESTED

REQUESTED

ON

REQUIRED

REQUESTED

ON

REJECTED

REQUIRED

Connection fails

ACCEPTED

REQUIRED

ON

REQUESTED

REQUIRED

ON

REQUIRED

REQUIRED

ON


一致性校正也分四中層級:
 SQLNET.CRYPTO_CHECKSUM_SERVER|CLIENT

  • REQUESTED

  • REQUIRED

  • ACCEPTED

  • REJECTED

同樣需要配合使用。

參數解釋:
SQLNET.CRYPTO_CHECKSUM_CLIENT。預設設定為ACCEPTED。


參數


    ACCEPTED - 用戶端不請求使用校正和,但是如果伺服器請求校正和,則請求。相容的伺服器參數為REJECTED,REQUESTED和REQUIRED。
    REJECTED - 用戶端不支援使用校正和。相容的伺服器參數為REJECTED,ACCEPTED和REQUESTED。
    REQUESTED - 用戶端喜歡使用校正和,但是如果伺服器拒絕它們的使用,則不強制該問題。相容的伺服器參數是ACCEPTED,REQUESTED和REQUIRED。
    REQUIRED - 用戶端要求使用校正和,否則不串連。相容的伺服器參數是ACCEPTED,REQUESTED和REQUIRED。

 


SQLNET.CRYPTO_CHECKSUM_SERVER。預設設定為ACCEPTED。


參數


    ACCEPTED - 伺服器不請求使用校正和,但如果用戶端請求它們,請繼續。相容的伺服器參數有:REJECTED,REQUESTED和REQUIRED。
    REJECTED - 伺服器根本不支援使用校正和。相容的用戶端參數為REJECTED,ACCEPTED和REQUESTED。
    REQUESTED - 伺服器更喜歡使用校正和,但是如果用戶端拒絕它們的使用,則不強制該問題。相容的用戶端參數是ACCEPTED,REQUESTED和REQUIRED。
    REQUIRED - 伺服器要求使用校正和,否則不串連。相容的用戶端參數是ACCEPTED,REQUESTED和REQUIRED。

對效能的影響:

既然要 加密和解密就勢必會佔用一定的效能資源,但影響不大,是一個測試結果,摘自http://www.orafaq.com/wiki/Network_Encryption  

Algorithm None MD5 SHA-1
Time %None Time %None Time %None
None 79.6 s   80.5 s 101% 82.4 s 104%
DES 104.7 s 132% 107.1 s 135% 108.2 s 136%
3DES168 151.8 s 191% 153.9 s 193% 155.6 s 196%
AES128 88.8 s 112% 90.5 s 114% 92.1 s 116%
AES256 91.8 s 115% 93.5 s 117% 94.2 s 118%
RC4_128 81.6 s 103% 82.5 s 104% 85.0 s 107%
RC4_256 81.7 s 103% 82.8 s 104% 85.0 s 107%


參考文檔:
http://docs.oracle.com/cd/B19306_01/network.102/b14268/asoconfg.htm#BBJBIECD

http://docs.oracle.com/cd/B19306_01/network.102/b14268/asojbdc.htm#i1006209

http://www.orafaq.com/wiki/Network_Encryption

http://www.toadworld.com/platforms/oracle/w/wiki/1719.sqlnet-ora-parameters 

Oracle網路傳輸的加密和完整性驗證

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.