保護(hù)字段級(jí)數(shù)據(jù):
SQL Server不能加密字段級(jí)數(shù)據(jù)。存取數(shù)據(jù)就是獲準(zhǔn)登入數(shù)據(jù)庫(kù)。當(dāng)您負(fù)責(zé)保護(hù)特別敏感的數(shù)據(jù)(如信用卡、健康信息等)時(shí),必須信心十足。
保護(hù)Stored Procedures, Triggers, UDF等程序代碼:
SQL Server可讓開發(fā)者在數(shù)據(jù)庫(kù)執(zhí)行邏輯。此邏輯被儲(chǔ)存為Stored Procedures, Triggers, User Defined Functions(UDF)。閣下需要加密此邏輯的原因有兩種:
首先,強(qiáng)調(diào)智慧財(cái)產(chǎn)權(quán)。如果有人看到您的指令文件邏輯,就如同看到您的原始程序代碼。這意味著他們可以洞悉您的「機(jī)密」內(nèi)部工作,從而使得執(zhí)行反向工程十分容易。
其次,如果有人能夠洞察您的Stored Procedures,他們就可以輕易地編輯這些Procedures。這意味著他們可以改寫您下的Stored Procedures,并在其中置入特殊邏輯,從而影響數(shù)據(jù)庫(kù)。其后果如何?他們可能會(huì)刪除數(shù)據(jù)、中斷您的數(shù)據(jù)庫(kù),甚至還有諸如竊取之類的惡意行為。也就是說(shuō),如果「提交」特殊令牌成功,就可寫入或取得機(jī)密醫(yī)學(xué)數(shù)據(jù),或者可能在電子商務(wù)應(yīng)用程序中,在每次購(gòu)物時(shí)貸記某個(gè)人的賬戶金額,使之與借記金額不相等。
解決方法 – 如何成功保護(hù) SQL 程序代碼
開啟 SQL Server 中的說(shuō)明檔案,您將迅速了解到 SQL Server 可對(duì)Stored Procedures和SQL Statement 進(jìn)行加密。但您還未來(lái)得及松一口氣,就會(huì)發(fā)現(xiàn)在網(wǎng)絡(luò)上竟然可以可免費(fèi)下載解密「微軟加密」Stored Procedures的多種程序。這意味著即使使用 SQL Servers 的「自有」加密功能加密,任何稍有經(jīng)驗(yàn)的人都有能力侵入您的SQL程序代碼,為所欲為。
SQL Shield 為您的Stored Procedures提供加密算法,目前已知的黑客程序均無(wú)法解密。這意味著當(dāng)黑客看到您的指令文件已被加密時(shí),無(wú)論使用現(xiàn)有黑客工具包嘗試多少次,都無(wú)法解密閣下的 SQL 指令文件程序代碼,從而讓您倍感安全。
解決方法 – 如何加強(qiáng)保護(hù) SQL 數(shù)據(jù)
您可以采用許多不同的算法來(lái)加密數(shù)據(jù)。XP_CRYPT 包括 RSA(非對(duì)稱算法)、AES、Triple DES、DESX 和 RC4(對(duì)稱算法)。您可以視乎需要選擇一種算法。
但請(qǐng)注意,非對(duì)稱算法與對(duì)稱算法相比,其加密速度相對(duì)緩慢。
有了 XP_CRYPT,加密數(shù)據(jù)域位簡(jiǎn)易而快速,它使用 XP_CRYPT GUI,這基本上是一種程序,可輕易將其注入您的數(shù)據(jù)庫(kù)。
XP_CRYPT GUI 會(huì)自動(dòng)處理紛繁蕪雜的工作,它增加了全部接口和支持程序代碼,并將其應(yīng)用于您的數(shù)據(jù)庫(kù)。您可輕易地增加多種算法,每種算法都有自己的密鑰。由于一些功能非常強(qiáng)大的算法需要額外管理,因此,視乎字段的長(zhǎng)度和類型,以及安全程度,不同的字段類型需要不同類型的加密方法,這一點(diǎn)應(yīng)謹(jǐn)慎對(duì)待。