`
netxdiy
  • 浏览: 679070 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL Server 2008中的代码安全(六):对称密钥加密

 
阅读更多

SQL Server 2008中SQL应用系列--目录索引

证书和非对称密钥使用数据库级的内部公钥加密数据,并且使用数据库级内部私钥解密数据。而对称密钥相对简单,它们包含一个同时用来加密和解密的密钥。困此,使用对称密钥加密数据更快,并且用在大数据时更加合适。尽管复杂度是考虑使用它的因素,但它仍然是一个很好的加密数据的选择。

我们看一组例子:

示例一、创建对称密钥

对称密钥的特性是:在数据库会话中使用它对数据进行加密和解密前必须首先打开。

创建对称密钥使用如下命令:

CREATE SYMMETRIC KEY 创建对称密钥。(http://msdn.microsoft.com/en-us/library/ms188357.aspx

示例二、查看当前数据库中的对称密钥

使用目录视图sys.symmetric_keys(http://msdn.microsoft.com/en-us/library/ms189446.aspx)来查看。

示例三、修改非对称密钥的加密方式

你可以使用ALTER SYMMETRIC KEY(http://technet.microsoft.com/en-us/library/ms189440.aspx)命令修改对称密钥的加密方式。但执行前必须使用OPEN SYMMETRIC KEY(http://msdn.microsoft.com/en-us/library/ms190499.aspx)命令打开它。

示例四、使用对称密钥对数据进行加密和解密

1、为了使用对称密钥对数据进行加密,必须首先打开它,然后使用函数EncryptByKey 加密数据。(http://msdn.microsoft.com/zh-cn/library/ms174361.aspx)

2、使用DecryptByKey来解密使用对称密钥加密的数据。注意DecryptByKey不像甩EncryptByKey,无须使用对称密钥GUID。因此,为了解密,必须打开正确的对称密钥会话,否则会显示null。

下面是一个例子:

查看未加密的数据:

邀月工作室

邀月工作室

至此,好像已经大功告成了,别,千万别高兴得太早!

这里有个问题,如果恶意用户不知道CustomerID=13的PasswordHintAnswer列的真实值,但知道CustomerID=14的PasswordHintAnswer列的真实值,则完全可以通过恶意替换PasswordHintAnswer列而绕过加密!!3w@live.cn此时,我们索性连CustomerID列作为验证列也一起加密,以绝后患 !

注意:加密的验证列也可以由另一个相关表的列作为参数传入。

看一个完整的例子:

恶意替换开始:

此时,我们再查看:

邀月工作室

郎勒个郎!爽吧!虽然复制了相同的二进制数据,可是读取结果令攻击者大失所望啊!

示例五、删除对称密钥

命令:DROP SYMMETRIC KEY 删除指定的对称密钥( http://technet.microsoft.com/en-us/library/ms182698.aspx)

例子:

注意:如果加密密钥打开没有关闭,则drop失败。

小结:

1、本文主要介绍对称密钥的创建、删除、查看以及用它来修改加密方式、进行数据的加密和解密。

2、对称密钥的特性是:在数据库会话中使用它对数据进行加密和解密前必须首先打开。

3、对称密钥可用于大数据的加密。

下文将主要介绍证书加密(Certificate Encryption)

邀月注:本文版权由邀月和CSDN共同所有,转载请注明出处。
助人等于自助! 3w@live.cn

分享到:
评论

相关推荐

    SQLServer 2008中的代码安全(五) 非对称密钥加密

    非对称密钥对于数据库加密属于高安全选项,因而需要更多的SQL Server资源。 我们看一组例子: 示例一、创建非对称密钥 创建非对称密钥使用如下命令: CREATE ASYMMETRIC KEY 创建非对称密钥。...

    SQL Server 2008中的代码安全(六) 对称密钥加密

    困此,使用对称密钥加密数据更快,并且用在大数据时更加合适。尽管复杂度是考虑使用它的因素,但它仍然是一个很好的加密数据的选择。  我们看一组例子: 示例一、创建对称密钥 对称密钥的特性是:在数据库会话中...

    SQLSERVER加密解密函数(非对称密钥 证书加密 对称密钥)使用方法代码

    代码如下:–SQLSERVER中的加密函数 2013-7-11ENCRYPTBYASYMKEY() –非对称密钥ENCRYPTBYCERT() –证书加密ENCRYPTBYKEY() –对称密钥ENCRYPTBYPASSPHRASE() –通行短语(PassPhrase)加密 ——————————...

    SQLServer 2008中的代码安全(七) 证书加密

    因为可以备份然后从文件中载入它们,证书比非对称密钥更易于移植,而非对称密钥却做不到。这意味着可以在数据库中方便地重用同一个证书。 注意:证书和非对称密钥同样的消耗资源。 我们看一组例子: 示例一、创建...

    SQL 非对称密钥 示例代码

    SQL 非对称密钥 创建、删除、加密、解密、全部密匙查看等。

    sql server 2012非对称密钥加解密详细.docx

    sql server 2012非对称密钥加解密方法概述,本人亲自尝试成功,分享给大家看看。

    SQL Server 2008中的代码安全(三) 通过PassPhrase加密

    SQL Server也拥有创建非对称密钥和对称密钥对象的能力。非对称密钥(asymmetric key)与证书相似,公钥用来加密数据库,私钥用来解密数据。非对称密钥和证书都提供了强大的加密强度。但在完成复杂的加密|解密过程中...

    SQLServer 2008中的代码安全(四) 主密钥

    如果必须改变SQL Server服务账号,微软建议使用SQL Server配置管理器,因为这个工具将执行生成新服务主密钥需要的合适的解密和加密方法,而且可以使加密层次结构保持完整。服务主密钥也用于加密其下的数据库主密钥。...

    Microsoft SQL Server 2005 Express Edition SP3

    Windows 加密服务提供程序 (CSP) 是执行身份验证、编码和加密服务的代码,基于 Windows 的应用程序通过 Windows Server 2003 中的 CryptoAPI 访问这些服务。如果停止或禁用 CSP 服务,则 SQL Server 安装程序会失败...

    SQL Server 2008高级程序设计 4/6

     19.7书和非对称密钥  19.8 小结 第20章 设计性能卓越的数据库  20.1 优化时机  20.2 选择索引  20.3 客户端和服务器端处理的对比  20.4 策略上的反规范化  20.5 合理组织存储过程  20.6 使用临时表...

    SQL Server数据加密功能解析

    数据加密是数据库被破解、物理介质被盗、备份被窃取的后一道...因此,折中的方法是使用对称密钥加密数据,使用非对称密钥加密对称密钥。这样既保证高性能,又提高密钥的可靠性。  同样,SQL Server 使用了折中的方

    SQL Server 2008高级程序设计 2/6

     19.7书和非对称密钥  19.8 小结 第20章 设计性能卓越的数据库  20.1 优化时机  20.2 选择索引  20.3 客户端和服务器端处理的对比  20.4 策略上的反规范化  20.5 合理组织存储过程  20.6 使用临时表...

    SQL Server 2008高级程序设计 1/6

     19.7书和非对称密钥  19.8 小结 第20章 设计性能卓越的数据库  20.1 优化时机  20.2 选择索引  20.3 客户端和服务器端处理的对比  20.4 策略上的反规范化  20.5 合理组织存储过程  20.6 使用临时表...

    SQL Server 2008高级程序设计 5/6

     19.7书和非对称密钥  19.8 小结 第20章 设计性能卓越的数据库  20.1 优化时机  20.2 选择索引  20.3 客户端和服务器端处理的对比  20.4 策略上的反规范化  20.5 合理组织存储过程  20.6 使用临时表...

    SQL Server 2008高级程序设计 6/6

     19.7书和非对称密钥  19.8 小结 第20章 设计性能卓越的数据库  20.1 优化时机  20.2 选择索引  20.3 客户端和服务器端处理的对比  20.4 策略上的反规范化  20.5 合理组织存储过程  20.6 使用临时表...

    SQL Server 2008高级程序设计 3/6

     19.7书和非对称密钥  19.8 小结 第20章 设计性能卓越的数据库  20.1 优化时机  20.2 选择索引  20.3 客户端和服务器端处理的对比  20.4 策略上的反规范化  20.5 合理组织存储过程  20.6 使用临时表...

    AES对称密钥加密

    本说明中有一个示例和有关高级加密标准(也称为AES)的对称密钥加密的一些观察。

    SQLserver数据库管理系统需求分析.doc

    3、SQL Server 2008的新功能及知识介绍 (一)、可信任的 保护你的信息 在过去的SQL Server 2005的基础之上,SQL Server 2008做了以下方面的增强来扩展它的安全性: * 简单的数据加密 SQL Server 2008可以对整个...

Global site tag (gtag.js) - Google Analytics