电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

SQL Server 2005數(shù)據(jù)加密技術(shù)的實(shí)際應(yīng)用

瀏覽:165日期:2023-11-05 12:10:10
本文將從應(yīng)用程序開發(fā)者的角度探討基于SQL Server 2005數(shù)據(jù)加密特性的應(yīng)用。

SQL Server 2005數(shù)據(jù)加密技術(shù)

數(shù)據(jù)用數(shù)字方式存儲在服務(wù)器中并非萬無一失。實(shí)踐證明有太多的方法可以智取SQL Server 2000認(rèn)證保護(hù),最簡單的是通過使用沒有口令的sa賬號。盡管SQL Server 2005遠(yuǎn)比它以前的版本安全,但攻擊者還是有可能獲得存儲的數(shù)據(jù)。因此,數(shù)據(jù)加密成為更徹底的數(shù)據(jù)保護(hù)戰(zhàn)略,即使攻擊者得以存取數(shù)據(jù),還不得不解密,因而對數(shù)據(jù)增加了一層保護(hù)。

SQL Server 2000以前的版本沒有內(nèi)置數(shù)據(jù)加密功能,若要在SQL Server 2000中進(jìn)行數(shù)據(jù)加密,不得不買第三家產(chǎn)品,然后在服務(wù)器外部作COM調(diào)用或者是在數(shù)據(jù)送服務(wù)器之前在客戶端的應(yīng)用中執(zhí)行加密。這意味著加密的密鑰或證書不得不由加密者自己負(fù)責(zé)保護(hù),而保護(hù)密鑰是數(shù)據(jù)加密中最難的事,所以即使很多應(yīng)用中數(shù)據(jù)已被很強(qiáng)的加密過,數(shù)據(jù)保護(hù)仍然很弱。

SQL Server 2005通過將數(shù)據(jù)加密作為數(shù)據(jù)庫的內(nèi)在特性解決了這個問題。它除了提供多層次的密鑰和豐富的加密算法外,最大的好處是用戶可以選擇數(shù)據(jù)服務(wù)器管理密鑰。SQL Server 2005服務(wù)器支持的加密算法如下:

⑴ 對稱式加密(Symmetric Key Encryption):

對稱式加密方式對加密和解密使用相同的密鑰。通常,這種加密方式在應(yīng)用中難以實(shí)施,因?yàn)橛猛环N安全方式共享密鑰很難。但當(dāng)數(shù)據(jù)儲存在SQL Server中時,這種方式很理想,你可以讓服務(wù)器管理它。SQL Server 2005 提供RC4、RC2、DES 和 AES 系列加密算法。

⑵ 非對稱密鑰加密(Asymmetric Key Encryption):

非對稱密鑰加密使用一組公共/私人密鑰系統(tǒng),加密時使用一種密鑰,解密時使用另一種密鑰。公共密鑰可以廣泛的共享和透露。當(dāng)需要用加密方式向服務(wù)器外部傳送數(shù)據(jù)時,這種加密方式更方便。SQL Server 2005 支持 RSA 加密算法以及 512 位、1,024 位和 2,048 位的密鑰強(qiáng)度。

⑶ 數(shù)字證書(Certificate):

數(shù)字證書是一種非對稱密鑰加密,但是,一個組織可以使用證書并通過數(shù)字簽名將一組公鑰和私鑰與其擁有者相關(guān)聯(lián)。SQL Server 2005 支持“因特網(wǎng)工程工作組”(IETF) X.509 版本 3 (X.509v3) 規(guī)范。一個組織可以對 SQL Server 2005 使用外部生成的證書,或者可以使用 SQL Server 2005 生成證書。

SQL Server 2005 采用多級密鑰來保護(hù)它內(nèi)部的密鑰和數(shù)據(jù),如下圖所示:

SQL Server 2005數(shù)據(jù)加密技術(shù)的實(shí)際應(yīng)用

圖1 SQL Server 2005采用多級密鑰保護(hù)它內(nèi)部的密鑰和數(shù)據(jù)

圖中引出箭頭的密鑰或服務(wù)用于保護(hù)箭頭所指的密鑰。所以服務(wù)主密鑰(service master key)保護(hù)數(shù)據(jù)庫主密鑰(database master keys),而數(shù)據(jù)庫主密鑰又保護(hù)證書(certificates)和非對稱密鑰(asymmetric keys)。而最底層的對稱性密鑰(symmetric keys)被證書、非對稱密鑰或其他的對稱性密鑰保護(hù)(箭頭又指回它本身)。用戶只需通過提供密碼來保護(hù)這一系列的密鑰。

圖中頂層的服務(wù)主密鑰,安裝SQL Server 2005新實(shí)例時自動產(chǎn)生和安裝,用戶不能刪除此密鑰,但數(shù)據(jù)庫管理員能對它進(jìn)行基本的維護(hù),如備份該密鑰到一個加密文件,當(dāng)其危及到安全時更新它,恢復(fù)它。

服務(wù)主密鑰由DPAPI(Data Protection API)管理。DPAPI在Windows 2000 中引入,建立于Windows的Crypt32 API之上。SQL Server 2005 管理與DPAPI的接口。服務(wù)主密鑰本身是對稱式加密,用來加密服務(wù)器中的數(shù)據(jù)庫主密鑰。

數(shù)據(jù)庫主密鑰與服務(wù)主密鑰不同,在加密數(shù)據(jù)庫中數(shù)據(jù)之前,必須由數(shù)據(jù)庫管理員創(chuàng)建數(shù)據(jù)庫主密鑰。通常管理員在產(chǎn)生該密鑰時,提供一個口令,所以它用口令和服務(wù)主密鑰來加密。如果有足夠的權(quán)限,用戶可以在需要時顯式地或自動地打開該密鑰。下面是產(chǎn)生數(shù)據(jù)庫主密鑰的T-SQL代碼示例:

USE EncryptionDB

CREATE MASTER KEY

ENCRYPTION BY PASSWORD = 'UTY6%djzZ8S7RyL'

每個數(shù)據(jù)庫只有一個數(shù)據(jù)庫主密鑰。可以用ALTER MASTR KEY語句來刪除加密,更改口令或刪除數(shù)據(jù)庫主密鑰。通常這由數(shù)據(jù)庫管理員來負(fù)責(zé)做這些。

有了數(shù)據(jù)庫主密鑰,就可以著手加密數(shù)據(jù)。T-SQL有置于其內(nèi)的加密支持。使用CREATE語句創(chuàng)建各種密碼,ALTER語句修改他們。例如要創(chuàng)建對稱式加密,可以通過一對函數(shù)EncryptByKey 和 DecryptByKey來完成。

數(shù)據(jù)加密技術(shù)應(yīng)用解析

下面通過實(shí)例來探討SQL Server 2005數(shù)據(jù)加密與解密技術(shù)的實(shí)現(xiàn)。

假設(shè)有一張Customer 表,表中有字段 customer ID、 name、 city 和各種信用卡細(xì)節(jié)。其中信用卡細(xì)節(jié)需要加密而其他數(shù)據(jù)不需要。假設(shè)User1有對稱式密鑰,并用該密鑰登錄,運(yùn)行相應(yīng)的代碼加密數(shù)據(jù)。

⑴ 數(shù)據(jù)加密

① 產(chǎn)生密鑰:在含有Customers 表的數(shù)據(jù)庫中使用Triple DES作為加密算法,生成對稱式密鑰。本例中,密鑰本身由已經(jīng)存在在數(shù)據(jù)庫中的證書保護(hù),如圖一所示,對稱密碼受非對稱密碼和存在的其他對稱式密鑰保護(hù)。

CREATE SYMMETRIC KEY User1SymmetricKeyCert

AUTHORIZATION User1

WITH ALGORITHM = TRIPLE_DES

ENCRYPTION BY CERTIFICATE User1Certificate

② 打開密鑰:對稱式密鑰使用前必須顯式打開,所以接下來打開它,重新找回密碼,解密它,并放它在受保護(hù)的服務(wù)器內(nèi)存中,準(zhǔn)備使用。

OPEN SYMMETRIC KEY User1SymmetricKeyCert

DECRYPTION BY CERTIFICATE User1Certificate

③ 加密數(shù)據(jù):在下面的代碼中,使用正常的T-SQL INSERT語句將一行數(shù)據(jù)插入表中,id、name和city 用明文保存,信用卡類型、號碼以及有潛在機(jī)密的客戶注釋用加密方式儲存,用Triple DES加密算法加密數(shù)據(jù)。

INSERT INTO Customer

VALUES (4, 'John Doe', 'Fairbanks',

EncryptByKey(Key_GUID(

'User1SymmetricKeyCert'), 'Amex'),

EncryptByKey(Key_GUID(

'User1SymmetricKeyCert'),

'1234-5678-9009-8765'),

EncryptByKey(Key_GUID(

'User1SymmetricKeyCert'),

'Window shopper. Spends $5 at most.'))

加密完成后,關(guān)閉它,釋放內(nèi)存,以防它被誤用。

CLOSE SYMMETRIC KEY User1SymmetricKeyCert

以上是整個的數(shù)據(jù)加密的操作過程。它沒有混亂的密碼管理,也不用調(diào)用特別的算法。儲存加密數(shù)據(jù)的字段是varbinary類型數(shù)據(jù),其長度足以儲存擴(kuò)展的數(shù)據(jù)(加密數(shù)據(jù)比明文需要更多的空間,有時候多很多)。

下圖為對Customer 表運(yùn)行正常的SELECT * 語句顯示的帶有加密數(shù)據(jù)的結(jié)果:

SQL Server 2005數(shù)據(jù)加密技術(shù)的實(shí)際應(yīng)用

圖2 加密后的數(shù)據(jù)的查詢結(jié)果

⑵ 數(shù)據(jù)解密

要解密已加密的數(shù)據(jù),你需要重新打開對稱式加密。使用DecryptByKey函數(shù)讀數(shù)據(jù),然后關(guān)閉對稱式加密。結(jié)果及相應(yīng)的代碼如下。

OPEN SYMMETRIC KEY User1SymmetricKeyCert

DECRYPTION BY CERTIFICATE User1Certificate

SELECT CustID, Name, City,

CONVERT(VARCHAR, DecryptByKey(CreditCardType))

AS CardType,

CONVERT(VARCHAR, DecryptByKey(CreditCardNumber))

AS CardNumber,

CONVERT(VARCHAR, DecryptByKey(Notes))

AS Notes

FROM Customer WHERE CustID = 4

CLOSE SYMMETRICKEYUser1SymmetricKeyCert

SQL Server 2005數(shù)據(jù)加密技術(shù)的實(shí)際應(yīng)用

圖3 對加密數(shù)據(jù)進(jìn)行解密后的結(jié)果

這個例子顯示了讓SQL Server 2005為你管理密鑰的一種方法。但實(shí)際上,用戶總是選擇自己提供一個口令的方式,用RC4算法產(chǎn)生對稱密碼。代碼如下:

CREATE SYMMETRIC KEY User2SymmetricKeyPwd

AUTHORIZATION User2

WITH ALGORITHM = RC4

ENCRYPTION BY PASSWORD = 'sdylvxF&imeG3FP'

SQL Server 2005產(chǎn)生一個基于用戶提供的口令的密鑰來加密數(shù)據(jù)。除非明確指定,否則口令不保存在在SQL Server 2005數(shù)據(jù)庫中,用戶必須保護(hù)好自己的口令,否則任何一個知道口令的人都可以解密數(shù)據(jù)。

假如認(rèn)為對存儲在數(shù)據(jù)庫中的數(shù)據(jù)加密完全是浪費(fèi)處理器時間和存儲空間那就錯了。SQL Server 2005中的數(shù)據(jù)加密是一個非凡的特性,它為客戶的數(shù)據(jù)提供了一個重要的保護(hù)層。但應(yīng)用時要注意,只對那些敏感機(jī)密的數(shù)據(jù)進(jìn)行保護(hù),因?yàn)榧用芟姆?wù)器處理器大量的資源,如果對一個有一千萬條記錄的表的每個字段都加密的話,運(yùn)行一條沒有Where 子句的SELECT 就可能導(dǎo)致服務(wù)器性能的徹底崩潰。

標(biāo)簽: Sql Server 數(shù)據(jù)庫
主站蜘蛛池模板: 真空干燥烘箱_鼓风干燥箱 _高低温恒温恒湿试验箱_光照二氧化碳恒温培养箱-上海航佩仪器 | 东莞工厂厂房装修_无尘车间施工_钢结构工程安装-广东集景建筑装饰设计工程有限公司 | 小型气象站_车载气象站_便携气象站-山东风途物联网 | 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | 2-羟基泽兰内酯-乙酰蒲公英萜醇-甘草查尔酮A-上海纯优生物科技有限公司 | 混合气体腐蚀试验箱_盐雾/硫化氢/气体腐蚀试验箱厂家-北京中科博达 | 高楼航空障碍灯厂家哪家好_航空障碍灯厂家_广州北斗星障碍灯有限公司 | 济南网站建设|济南建网站|济南网站建设公司【济南腾飞网络】【荐】 | 广州各区危化证办理_危险化学品经营许可证代办 | 便携式高压氧舱-微压氧舱-核生化洗消系统-公众洗消站-洗消帐篷-北京利盟救援 | 定坤静电科技静电消除器厂家-除静电设备| 济南画室培训-美术高考培训-山东艺霖艺术培训画室 | 电车线(用于供电给电车的输电线路)-百科 | 道达尔润滑油-食品级润滑油-道达尔导热油-合成导热油,深圳道达尔代理商合-深圳浩方正大官网 | 奥因-光触媒除甲醛公司-除甲醛加盟公司十大品牌 | 医用空气消毒机-医用管路消毒机-工作服消毒柜-成都三康王 | 粉碎机_塑料粉碎机_塑料破碎机厂家-星标机械 | 合肥宠物店装修_合肥宠物美容院装修_合肥宠物医院设计装修公司-安徽盛世和居装饰 | 冷水机,风冷冷水机,水冷冷水机,螺杆冷水机专业制造商-上海祝松机械有限公司 | 青岛成人高考_山东成考报名网| 医学模型生产厂家-显微手术模拟训练器-仿真手术模拟训练系统-北京医教科技 | 法钢特种钢材(上海)有限公司 - 耐磨钢板、高强度钢板销售加工 阀门智能定位器_电液动执行器_气动执行机构-赫尔法流体技术(北京)有限公司 | 步进_伺服_行星减速机,微型直流电机,大功率直流电机-淄博冠意传动机械 | 100_150_200_250_300_350_400公斤压力空气压缩机-舰艇航天配套厂家 | 电销卡_北京电销卡_包月电话卡-豪付网络 | NBA直播_NBA直播免费观看直播在线_NBA直播免费高清无插件在线观看-24直播网 | 重庆网站建设,重庆网站设计,重庆网站制作,重庆seo,重庆做网站,重庆seo,重庆公众号运营,重庆小程序开发 | LCD3D打印机|教育|桌面|光固化|FDM3D打印机|3D打印设备-广州造维科技有限公司 | 锂电池砂磨机|石墨烯砂磨机|碳纳米管砂磨机-常州市奥能达机械设备有限公司 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 乙炔气体报警装置|固定式氯化氢检测仪|河南驰诚电气百科 | 媒介云-全网整合营销_成都新闻媒体发稿_软文发布平台 | 深圳离婚律师咨询「在线免费」华荣深圳婚姻律师事务所专办离婚纠纷案件 | 中红外QCL激光器-其他连续-半导体连续激光器-筱晓光子 | AR开发公司_AR增强现实_AR工业_AR巡检|上海集英科技 | 烟台条码打印机_烟台条码扫描器_烟台碳带_烟台数据采集终端_烟台斑马打印机-金鹏电子-金鹏电子 | 自动焊锡机_点胶机_螺丝机-锐驰机器人 | 深圳APP开发公司_软件APP定制开发/外包制作-红匣子科技 | 广西绿桂涂料--承接隔热涂料、隔音涂料、真石漆、多彩仿石漆等涂料工程双包施工 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 粘弹体防腐胶带,聚丙烯防腐胶带-全民塑胶 |