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

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

SQL Server 2005數(shù)據(jù)加密技術(shù)應(yīng)用研究

瀏覽:184日期:2023-11-01 11:20:44

摘要 數(shù)據(jù)加密是SQL Server 2005新增的數(shù)據(jù)安全特性,這對應(yīng)用程序開發(fā)者來說是非常重要的改進(jìn)。本文從程序開發(fā)者角度,探討SQL Server 2005數(shù)據(jù)加密特性以及如何運(yùn)用該特性保證系統(tǒng)的數(shù)據(jù)安全。

關(guān)鍵詞 SQL Server 2005、數(shù)據(jù)加密、數(shù)據(jù)安全

SQL Server 2005是微軟開始實(shí)施其“可信賴計(jì)算” 計(jì)劃以來的第一個(gè)主要的產(chǎn)品,它提供了豐富的安全特性,為企業(yè)數(shù)據(jù)提供安全保障。對開發(fā)人員來說,最關(guān)注的是如何在程序設(shè)計(jì)過程中應(yīng)用這些特性來保護(hù)數(shù)據(jù)庫中的數(shù)據(jù)安全。本文將從應(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)在特性解決了這個(gè)問題。它除了提供多層次的密鑰和豐富的加密算法外,最大的好處是用戶可以選擇數(shù)據(jù)服務(wù)器管理密鑰。SQL Server 2005服務(wù)器支持的加密算法如下:

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

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

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

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

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

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

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

SQL Server 2005數(shù)據(jù)加密技術(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í)例時(shí)自動(dòng)產(chǎn)生和安裝,用戶不能刪除此密鑰,但數(shù)據(jù)庫管理員能對它進(jìn)行基本的維護(hù),如備份該密鑰到一個(gè)加密文件,當(dāng)其危及到安全時(shí)更新它,恢復(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)生該密鑰時(shí),提供一個(gè)口令,所以它用口令和服務(wù)主密鑰來加密。如果有足夠的權(quán)限,用戶可以在需要時(shí)顯式地或自動(dòng)地打開該密鑰。下面是產(chǎn)生數(shù)據(jù)庫主密鑰的T-SQL代碼示例:USE EncryptionDBCREATE MASTER KEY ENCRYPTION BY PASSWORD = 'UTY6%djzZ8S7RyL' 每個(gè)數(shù)據(jù)庫只有一個(gè)數(shù)據(jù)庫主密鑰。可以用ALTER MASTR KEY語句來刪除加密,更改口令或刪除數(shù)據(jù)庫主密鑰。通常這由數(shù)據(jù)庫管理員來負(fù)責(zé)做這些。有了數(shù)據(jù)庫主密鑰,就可以著手加密數(shù)據(jù)。T-SQL有置于其內(nèi)的加密支持。使用CREATE語句創(chuàng)建各種密碼,ALTER語句修改他們。例如要?jiǎng)?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 User1SymmetricKeyCertAUTHORIZATION User1 WITH ALGORITHM = TRIPLE_DES ENCRYPTION BY CERTIFICATE User1Certificate ② 打開密鑰:對稱式密鑰使用前必須顯式打開,所以接下來打開它,重新找回密碼,解密它,并放它在受保護(hù)的服務(wù)器內(nèi)存中,準(zhǔn)備使用。OPEN SYMMETRIC KEY User1SymmetricKeyCertDECRYPTION 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 以上是整個(gè)的數(shù)據(jù)加密的操作過程。它沒有混亂的密碼管理,也不用調(diào)用特別的算法。儲存加密數(shù)據(jù)的字段是varbinary類型數(shù)據(jù),其長度足以儲存擴(kuò)展的數(shù)據(jù)(加密數(shù)據(jù)比明文需要更多的空間,有時(shí)候多很多)。下圖為對Customer 表運(yùn)行正常的SELECT * 語句顯示的帶有加密數(shù)據(jù)的結(jié)果:圖2 加密后的數(shù)據(jù)的查詢結(jié)果⑵ 數(shù)據(jù)解密要解密已加密的數(shù)據(jù),你需要重新打開對稱式加密。使用DecryptByKey函數(shù)讀數(shù)據(jù),然后關(guān)閉對稱式加密。結(jié)果及相應(yīng)的代碼如下。OPEN SYMMETRIC KEY User1SymmetricKeyCertDECRYPTION BY CERTIFICATE User1CertificateSELECT CustID, Name, City,CONVERT(VARCHAR, DecryptByKey(CreditCardType)) AS CardType,CONVERT(VARCHAR, DecryptByKey(CreditCardNumber))AS CardNumber,CONVERT(VARCHAR, DecryptByKey(Notes)) AS NotesFROM Customer WHERE CustID = 4CLOSE SYMMETRICKEYUser1SymmetricKeyCert 圖3 對加密數(shù)據(jù)進(jìn)行解密后的結(jié)果這個(gè)例子顯示了讓SQL Server 2005為你管理密鑰的一種方法。但實(shí)際上,用戶總是選擇自己提供一個(gè)口令的方式,用RC4算法產(chǎn)生對稱密碼。代碼如下:CREATE SYMMETRIC KEY User2SymmetricKeyPwdAUTHORIZATION User2WITH ALGORITHM = RC4ENCRYPTION BY PASSWORD = 'sdylvxF&imeG3FP' SQL Server 2005產(chǎn)生一個(gè)基于用戶提供的口令的密鑰來加密數(shù)據(jù)。除非明確指定,否則口令不保存在SQL Server 2005中,用戶必須保護(hù)好自己的口令,否則任何一個(gè)知道口令的人都可以解密數(shù)據(jù)。如果認(rèn)為對存儲在數(shù)據(jù)庫中的數(shù)據(jù)加密完全是浪費(fèi)處理器時(shí)間和存儲空間那就錯(cuò)了。SQL Server 2005中的數(shù)據(jù)加密是一個(gè)非凡的特性,它為客戶的數(shù)據(jù)提供了一個(gè)重要的保護(hù)層。但應(yīng)用時(shí)要注意,只對那些敏感機(jī)密的數(shù)據(jù)進(jìn)行保護(hù),因?yàn)榧用芟姆?wù)器處理器大量的資源,如果對一個(gè)有一千萬條記錄的表的每個(gè)字段都加密的話,運(yùn)行一條沒有Where 子句的SELECT 就可能導(dǎo)致服務(wù)器性能的崩潰。
標(biāo)簽: Sql Server 數(shù)據(jù)庫
主站蜘蛛池模板: TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 全屋整木定制-橱柜,家具定制-四川峨眉山龙马木业有限公司 | 环球电气之家-中国专业电气电子产品行业服务网站! | SMC-ASCO-CKD气缸-FESTO-MAC电磁阀-上海天筹自动化设备官网 | 聚合甘油__盐城市飞龙油脂有限公司| 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 航空障碍灯_高中低光强航空障碍灯_民航许可认证航空警示灯厂家-东莞市天翔航天科技有限公司 | 硅胶管挤出机厂家_硅胶挤出机生产线_硅胶条挤出机_臣泽智能装备 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | (中山|佛山|江门)环氧地坪漆,停车场地板漆,车库地板漆,聚氨酯地板漆-中山永旺地坪漆厂家 | 地埋式垃圾站厂家【佳星环保】小区压缩垃圾中转站转运站 | 食药成分检测_调料配方还原_洗涤剂化学成分分析_饲料_百检信息科技有限公司 | 临朐空调移机_空调维修「空调回收」临朐二手空调 | 四川成人高考_四川成考报名网| 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 耐磨陶瓷,耐磨陶瓷管道_厂家-淄博拓创陶瓷科技 | 液压中心架,数控中心架,自定心中心架-烟台恒阳机电设计有限公司 行星搅拌机,双行星搅拌机,动力混合机,无锡米克斯行星搅拌机生产厂家 | 济南宣传册设计-画册设计_济南莫都品牌设计公司 | 自恢复保险丝_贴片保险丝_力特保险丝_Littelfuse_可恢复保险丝供应商-秦晋电子 | 一体化隔油提升设备-餐饮油水分离器-餐厨垃圾处理设备-隔油池-盐城金球环保产业发展有限公司 | 青海电动密集架_智能密集架_密集架价格-盛隆柜业青海档案密集架厂家 | 不锈钢散热器,冷却翅片管散热器厂家-无锡市烨晟化工装备科技有限公司 | 不锈钢螺丝 - 六角螺丝厂家 - 不锈钢紧固件 - 万千紧固件--紧固件一站式采购 | 洗砂机械-球磨制砂机-洗沙制砂机械设备_青州冠诚重工机械有限公司 | 众品家具网-家具品牌招商_家具代理加盟_家具门户的首选网络媒体。 | 压接机|高精度压接机|手动压接机|昆明可耐特科技有限公司[官网] 胶泥瓷砖胶,轻质粉刷石膏,嵌缝石膏厂家,腻子粉批发,永康家德兴,永康市家德兴建材厂 | 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | 同步带轮_同步带_同步轮_iHF合发齿轮厂家-深圳市合发齿轮机械有限公司 | 江苏大隆凯科技有限公司| 河南凯邦机械制造有限公司| 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 盘式曝气器-微孔曝气器-管式曝气器-曝气盘-斜管填料 | 郑州市前程水处理有限公司 | Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 路斯特伺服驱动器维修,伦茨伺服驱动器维修|万骏自动化百科 | 长沙网站建设制作「网站优化推广」-网页设计公司-速马科技官网 | 飞歌臭氧发生器厂家_水处理臭氧发生器_十大臭氧消毒机品牌 | 气胀轴|气涨轴|安全夹头|安全卡盘|伺服纠偏系统厂家-天机传动 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 视觉检测设备_自动化检测设备_CCD视觉检测机_外观缺陷检测-瑞智光电 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 全自动过滤器_反冲洗过滤器_自清洗过滤器_量子除垢环_量子环除垢_量子除垢 - 安士睿(北京)过滤设备有限公司 |