熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL語言 >> 正文

SQL實戰新手入門:操作系統集成安全性(3)

2013-11-13 12:42:52  來源: SQL語言 

   操作系統集成安全性(

  可以在很多層面上防止SQL注入攻擊第一條防線就是對所要求的權限設置最嚴格的許可權在上面的例子中如果用戶在BOOKS表上沒有執行DELETE操作的權限就可以避免惡意地刪除記錄但是對於應對第一種情形依然是無效的為了確保RDBMS僅僅執行那些計劃的語句開發人員可以在應用程序層上實現檢查的邏輯或者求助於使用存儲過程(在存儲過程中添加一些額外的檢查實現)另外RDBMS還可以執行一個快速的解析以檢測任何意料之外的布爾表達式

   數據加密

  加密是轉換信息的方法它將直接可用的信息轉換為另外一種格式如果沒有解密就無法使用這些信息通常情況下可以使用與加密數據相同的過程(算法)來解密這些被加密過的數據加密並不是SQL標准的一部分因此每一種RDBMS都提供了不同的與加密有關的服務通常將這些服務作為一組內置的函數

  在RDBMS中數據是以純文本(ASCIIUnicode)或二進制(BLOBSIMAGE和類似的數據類型)形式來存儲的為了避免未經授權的用戶(碰巧被授予了權限可以訪問包含這些數據的表)查看到這些數據或者要通過一個不安全的網絡傳送數據時可以對數據進行加密在將數據輸入到數據庫之前可以通過一些客戶端軟件對數據進行加密或者也可以在RDBMS中使用自身的加密功能對數據進行加密處理

  從用於創建數據庫對象的SQL代碼中可以學習到很多東西在絕大多數數據庫中這些代碼通常都是以公開的文本形式來存儲的可以通過查詢特殊的INFORMATION_SCHEMA視圖(將在本章後面討論)來獲取這些信息為了避免出現這種情況某些RDBMS允許對用於創建數據庫對象(表視圖和存儲過程)的源代碼進行加密

  加密數據提供了另外一層安全性為了以人類可讀的格式來查看數據(文本圖片音頻文件或可執行文件)用戶需要具有密碼和解密工具解密工具可以由RDBMS提供或者包含在用戶的客戶端軟件中

  試一試使用IBM DB內置函數加密和解密數據

  IBM DB LUW提供了內置函數ENRYPT和DECRYPT_CHAR用於數據的加密和解密

  () 打開IBM DB命令編輯器或使用命令行工具連接到LIBRARY數據庫

  () 執行下面的SQL查詢

  SELECT ENCRYPT(bk_title PASSWORD) AS encrypted

  FROM books

  加密後的圖書名稱為

  ENCRYPTED

  

  xEAFFEADCCCACEBA

  

  xDCFFEADFCAADDDEBE

  要對上面這個看起來毫無意義的字符串進行解密可以使用DECRYPT_CHAR函數(因為這裡處理的是字符數據)和一個完全相同的密碼(PASSWORD解密之後的數據將恢復到原來的格式

  示例說明

  內置的ENCRYPT函數接受兩個參數第一個參數是從表中獲得的字符數據第二個參數是用於對字符串進行加密處理的密碼加密的結果是人類不可讀的雜亂數據使用DECRYPT_CHAR函數和相同的密碼可以對加密後的數據進行解密使之恢復為圖書名稱

  實際上存在著數百種數據加密算法既有自定義的算法也有公有算法要發明並實現一種數據加密算法要求熟悉程序設計的原理還需要一些高級數學知識目前已經廣泛使用的加密算法包括DES(在年由IBM設計並於年被NIST采用用於非保密數據)RC(來自於RSA Data Security)CMEA(由電信工業協會開發用於加密數字蜂窩電話的數據)FEAL(由日本電話電報公司開發)TEAMDTiger和CAST等

  很長時間以來Oracle使用DBMS_OBFUSCATION_TOOLKIT包來加密數據從Oracle g版本開始引入了一個新的DBMS_CRYPTO包它彌補了前任加密包的不足最終的加密辦法就是Oracle的透明數據加密(Transparent DataEncryption)特性它基於Oracle Wallet Manager創建的公共/主加密密鑰請參考Oracle的文檔以獲得更詳細的信息

  在RDBMS與客戶端應用程序之間發送的數據也可以加密處理它在傳輸控制協議/Internet協議(TCP/IP)通信協議(絕大多數網絡和Internet連接所使用的協議)的基礎上使用安全套接字層(Secure Sockets LayerSSL)或Secure Shell(SSH)進行加密在RDBMS中實現了一些加密函數可以提供工業強度的加密服務在任何時候當需要對數據進行加密時都應該使用這些函數進行處理

   數據庫審計

  審計提供了跟蹤數據庫中信息流的功能包括連接企圖數據更新刪除插入和選取執行的功能等對於事後檢查的情形和實時監視以檢測未經授權的行為數據庫審計都是非常有用的

  審計與SQL標准並沒有任何關系它在功能實現細節等方面是完全依賴於RDBMS的

   安全標准

  盡管並非與SQL直接有關但SQL采用了安全標准所定義的基礎結構因此SQL用戶對這些安全標准很感興趣通常RDBMS軟件遵循這些標准中的某一層級要麼是數據庫廠商自願地采用這些標准要麼是出於政府部門對軟件的可接受度的強制要求的壓力

  美國國家計算機安全中心(NCSC)在年開始標准化計算機系統的安全規程這被認為是政府的一項要求RDBMS必須通過監督測試保證它們的數據庫產品達到某一級別的安全性為了能將產品銷售給政府部門數十種RDBMS通過了為期幾年的測試規程(測試過程平均為年)世紀年代諸如SunOracle和Novell這些數據庫廠商都獲得了相應的認證(C級或者B級)隨後官方指示要求所有存儲敏感信息的計算機都必須達到C級認證

  很多質量監管法規已經啟用例如用於金融數據的SarabanesOxley和BASEL II用於醫療信息的HIPAA以及用於信用卡信息的PCI標准等

       返回目錄SQL實戰新手入門

       編輯推薦

       Oracle索引技術

       高性能MySQL

       數據倉庫與數據挖掘培訓視頻教程


From:http://tw.wingwit.com/Article/program/SQL/201311/16438.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.