❶ 对称密钥加密技术的工作流程
SQL Server 2005一个令人激动的特性是内置了加密的功能。在这个新版的SQL Server中,开发团队直接在T-SQL中加入了加密工具、证书创建和密钥管理的功能。对于因为法律要求或商业需求而需要加密表中的数据的人来说,这是一个好礼物。对于犹豫是否用加密来保证数据安全的人来说,做决定也更容易了。这篇文章介绍新的加密功能是怎么工作,怎么使用。
TSQL现在支持使用对称密钥和非对称密钥,证书和密码。本文介绍如何创建、管理和使用对称密钥和证书。
根据涉及的内容,我决定把本文分为三节:
第一部分:服务主密钥和数据库主密钥
第二部分:证书
第三部分:对称密钥
1. 服务主密钥和数据库主密钥
图:SQL Server 2005加密层次结构
1.1 服务主密钥
当第一次需要使用服务主密钥对链接服务器密码、凭据或数据库主密钥进行加密时,便会自动生成服务主密钥。服务主密钥为 SQL Server 加密层次结构的根。服务主密钥直接或间接地保护树中的所有其他密钥和机密内容。使用本地计算机密钥和 Windows 数据保护 API 对服务主密钥进行加密。该 API 使用从 SQL Server 服务帐户的 Windows 凭据中派生出来的密钥。
因为服务主密钥是自动生成且由系统管理的,它只需要很少的管理。服务主密钥可以通过BACKUP SERVICE MASTER KEY语句来备份,格式为:
BACKUP SERVICE MASTER KEY TO FILE = 'path_to_file' ENCRYPTION BY PASSWORD = 'password'
'path_to_file' 指定要将服务主密钥导出到的文件的完整路径(包括文件名)。此路径可以是本地路径,也可以是网络位置的 UNC 路径。
'password' 用于对备份文件中的服务主密钥进行加密的密码。此密码应通过复杂性检查。
应当对服务主密钥进行备份,并将其存储在另外一个单独的安全位置。创建该备份应该是首先在服务器中执行的管理操作之一。
如果需要从备份文件中恢复服务主密钥,使用RESTORE SERVICE MASTER KEY语句。
RESTORE SERVICE MASTER KEY FROM FILE = 'path_to_file'
DECRYPTION BY PASSWORD = 'password' [FORCE]
'path_to_file' 指定存储服务主密钥的完整路径(包括文件名)。path_to_file 可以是本地路径,也可以是网络位置的 UNC 路径。
PASSWORD = 'password' 指定对从文件中导入的服务主密钥进行解密时所需的密码。
FORCE 即使存在数据丢失的风险,也要强制替换服务主密钥。
注:如果你在使用RESTORE SERVICE MASTER KEY时不得不使用FORCE选项,你可能会遇到部分或全部加密数据丢失的情况。
如果你的服务主密钥泄露了,或者你想更改SQL Server服务帐户,你可以通过ALTERSERVICE MASTER KEY语句重新生成或者恢复服务主密钥。它的用法请参考联机丛书。
因为服务主密钥是SQL Server自动生成的,所以,它没有对应的CREATE和DROP语句。
1.2 数据库主密钥
正如每个SQL Server有一个服务主密钥,每个数据库有自己的数据库主密钥。数据库主密钥通过CREATE MASTER KEY语句生成:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password'
这个语句创建数据库主密钥,使用指定的密码加密它,并保存在数据库中。同时,数据库主密钥也被使用服务主密钥加密之后保存在master数据库中,这就是所谓的“自动密钥管理”。这个特性我们待会再讲。
象服务主密钥一样,你可以备份和恢复数据库主密钥。使用BACKUP MASTER KEY备份数据库主密钥。语法类似于备份服务主密钥:
BACKUP MASTER KEY TO FILE = 'path_to_file'
ENCRYPTION BY PASSWORD = 'password'
恢复数据库主密钥使用RESTORE MASTER KEY语句,它需要使用DECRYPTION BY PASSWORD子句提供备份时指定的加密密码,还要使用ENCRYPTION BY PASSWORD子句,SQL Server使用它提供的密码来加密数据库主密钥之后保存在数据库中。
RESTORE MASTER KEY FROM FILE = 'path_to_file'
DECRYPTION BY PASSWORD = 'password'
ENCRYPTION BY PASSWORD = 'password'
[ FORCE ]
同样,FORCE表示你将忽略在解密过程中的错误。
建议你在创建了数据库主密钥之后立即备份数据库主密钥,并把它保存到一个安全的地方。同样,使用FORCE语句可能导致已加密数据的丢失。
要删除数据库主密钥,使用DROP MASTER KEY语句,它删除当前数据库的主密钥。在执行之前,确定你在正确的数据库上下文中。
1.3 自动密钥管理
当创建数据库主密钥时,它被使用提供的密码加密然后被保存到当前数据库中。同时,它被使用服务主密钥加密并保存到master数据库中。这份保存的数据库主密钥允许服务器在需要的时候解密数据库主密钥,这就是自动密钥管理。没有自动密钥管理的话,你必须在每次使用证书或密钥加密或解密数据(它需要使用数据库主密钥)时使用OPEN MASTER KEY语句同时提供加密的密码。使用自动密钥管理,你不需要执行OPEN MASTER KEY语句,也不需要提供密码。
自动密钥管理的缺点就是每个sysadmin角色的成员都能够解密数据库主密钥。你可以通过ALTER MASTER KEY语句的DROP ENCRYPTION BY SERVICE MASTER KEY子句,从而不使用自动密钥管理。ALTER MASTER KEY的使用方法参见联机丛书。
❷ 对称密钥与非对称密钥的定义是什么
对称密钥加密也叫秘密/专用密钥加密(Secret
Key
Encryption),即发送和接收数据的双方必须使用相同的/对称的密钥对明文进行加密和解密运算。
非对称密钥加密也叫公开密钥加密(Public
Key
Encryption),是指每个人都有一对唯一对应的密钥:公开密钥和私有密钥,公钥对外公开,私钥由个人秘密保存;用其中一把密钥来加密,就只能用另一把密钥来解密。发送数据的一方用另一方的公钥对发送的信息进行加密,然后由接受者用自己的私钥进行解密。公开密钥加密技术解决了密钥的发布和管理问题,是目前商业密码的核心。使用公开密钥技术,进行数据通信的双方可以安全地确认对方身份和公开密钥,提供通信的可鉴别性。
❸ 简述对称密钥密码体制与非对称密钥密码体制
对称密钥密码:对称密钥加密又称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据。它的最大优势是加/解密速度快, 适合于对大数据量进行加密,但密钥管理困难。
非对称密钥密码:非对称密钥加密又称公钥密钥加密。它需要使用一对密钥 来分别完成加密和解密操作,一个公开发布,即公开密钥,另一 个由用户自己秘密保存,即私用密钥。信息发送者用公开密钥去 加密,而信息接收者则用私用密钥去解密。公钥机制灵活,但加密和解密速度却比对称密钥加密慢得多。
❹ 哪一种存储服务提供了对传输的数据和静态数据的加密服务
主要有两种方式:“对称式”和“非对称式”。
对称式加密就是加密和解密使用同一个密钥,通常称之为“Session Key ”这种加密技术目前被广泛采用,如美国政府所采用的DES加密标准就是一种典型的“对称式”加密法,它的Session Key长度为56Bits。
非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为“公钥”和“私钥”,它们两个必需配对使用,否则不能打开加密文件。这里的“公钥”是指可以对外公布的,“私钥”则不能,只能由持有人一个人知道。它的优越性就在这里,因为对称式的加密方法如果是在网络上传输加密文件就很难把密钥告诉对方,不管用什么方法都有可能被别窃听到。而非对称式的加密方法有两个密钥,且其中的“公钥”是可以公开的,也就不怕别人知道,收件人解密时只要用自己的私钥即可以,这样就很好地避免了密钥的传输安全性问题。
一般的数据加密可以在通信的三个层次来实现:链路加密、节点加密和端到端加密。(3)
链路加密
对于在两个网络节点间的某一次通信链路,链路加密能为网上传输的数据提供安全证。对于链路加密(又称在线加密),所有消息在被传输之前进行加密,在每一个节点对接收到消息进行解密,然后先使用下一个链路的密钥对消息进行加密,再进行传输。在到达目的地之前,一条消息可能要经过许多通信链路的传输。
由于在每一个中间传输节点消息均被解密后重新进行加密,因此,包括路由信息在内的链路上的所有数据均以密文形式出现。这样,链路加密就掩盖了被传输消息的源点与终点。由于填充技术的使用以及填充字符在不需要传输数据的情况下就可以进行加密,这使得消息的频率和长度特性得以掩盖,从而可以防止对通信业务进行分析。
尽管链路加密在计算机网络环境中使用得相当普遍,但它并非没有问题。链路加密通常用在点对点的同步或异步线路上,它要求先对在链路两端的加密设备进行同步,然后使用一种链模式对链路上传输的数据进行加密。这就给网络的性能和可管理性带来了副作用。
在线路/信号经常不通的海外或卫星网络中,链路上的加密设备需要频繁地进行同步,带来的后果是数据丢失或重传。另一方面,即使仅一小部分数据需要进行加密,也会使得所有传输数据被加密。
在一个网络节点,链路加密仅在通信链路上提供安全性,消息以明文形式存在,因此所有节点在物理上必须是安全的,否则就会泄漏明文内容。然而保证每一个节点的安全性需要较高的费用,为每一个节点提供加密硬件设备和一个安全的物理环境所需要的费用由以下几部分组成:保护节点物理安全的雇员开销,为确保安全策略和程序的正确执行而进行审计时的费用,以及为防止安全性被破坏时带来损失而参加保险的费用。
在传统的加密算法中,用于解密消息的密钥与用于加密的密钥是相同的,该密钥必须被秘密保存,并按一定规则进行变化。这样,密钥分配在链路加密系统中就成了一个问题,因为每一个节点必须存储与其相连接的所有链路的加密密钥,这就需要对密钥进行物理传送或者建立专用网络设施。而网络节点地理分布的广阔性使得这一过程变得复杂,同时增加了密钥连续分配时的费用。
节点加密
尽管节点加密能给网络数据提供较高的安全性,但它在操作方式上与链路加密是类似的:两者均在通信链路上为传输的消息提供安全性;都在中间节点先对消息进行解密,然后进行加密。因为要对所有传输的数据进行加密,所以加密过程对用户是透明的。
然而,与链路加密不同,节点加密不允许消息在网络节点以明文形式存在,它先把收到的消息进行解密,然后采用另一个不同的密钥进行加密,这一过程是在节点上的一个安全模块中进行。
节点加密要求报头和路由信息以明文形式传输,以便中间节点能得到如何处理消息的信息。因此这种方法对于防止攻击者分析通信业务是脆弱的。
端到端加密
端到端加密允许数据在从源点到终点的传输过程中始终以密文形式存在。采用端到端加密,消息在被传输时到达终点之前不进行解密,因为消息在整个传输过程中均受到保护,所以即使有节点被损坏也不会使消息泄露。
端到端加密系统的价格便宜些,并且与链路加密和节点加密相比更可靠,更容易设计、实现和维护。端到端加密还避免了其它加密系统所固有的同步问题,因为每个报文包均是独立被加密的,所以一个报文包所发生的传输错误不会影响后续的报文包。此外,从用户对安全需求的直觉上讲,端到端加密更自然些。单个用户可能会选用这种加密方法,以便不影响网络上的其他用户,此方法只需要源和目的节点是保密的即可。
端到端加密系统通常不允许对消息的目的地址进行加密,这是因为每一个消息所经过的节点都要用此地址来确定如何传输消息。由于这种加密方法不能掩盖被传输消息的源点与终点,因此它对于防止攻击者分析通信业务是脆弱的。
❺ 对称密钥加密的缺点和公开密钥加密的缺点是什么急!!!!
一、对称密钥加密和解密时使用的密钥是同一个密钥,其优点是加密速度快,缺点是不能作为身份验证,密钥发放困难。常见的对称加密算法有RC2,RC4,DES,3DES,IDEA,SDBI等。
二、公开密钥加密和解密使用的密钥是不同的密钥,分别称为公钥和私钥,公钥可以公开,私钥则必须保密只能归密钥所有者拥有。其缺点是对大容量的信息加密速度慢,优点是可以作为身份认证,而且密钥发送方式比较简单安全。常见的公开密钥加密算法有RSA,DSA,ECA等。
❻ 简要说说对称加密和非对称加密的原理以及区别是什么
对称加密的原理是数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。
非对称加密的原理是甲方首先生成一对密钥同时将其中的一把作为公开密钥;得到公开密钥的乙方再使用该密钥对需要加密的信息进行加密后再发送给甲方;甲方再使用另一把对应的私有密钥对加密后的信息进行解密,这样就实现了机密数据传输。
对称加密和非对称加密的区别为:密钥不同、安全性不同、数字签名不同。
一、密钥不同
1、对称加密:对称加密加密和解密使用同一个密钥。
2、非对称加密:非对称加密加密和解密所使用的不是同一个密钥,需要两个密钥来进行加密和解密。
二、安全性不同
1、对称加密:对称加密如果用于通过网络传输加密文件,那么不管使用任何方法将密钥告诉对方,都有可能被窃听。
2、非对称加密:非对称加密因为它包含有两个密钥,且仅有其中的“公钥”是可以被公开的,接收方只需要使用自己已持有的私钥进行解密,这样就可以很好的避免密钥在传输过程中产生的安全问题。
三、数字签名不同
1、对称加密:对称加密不可以用于数字签名和数字鉴别。
2、非对称加密:非对称加密可以用于数字签名和数字鉴别。
❼ 对称加密算法的加密算法
基于“对称密钥”的加密算法主要有DES、TripleDES、RC2、RC4、RC5和Blowfish等。
对称密钥:DES TripleDES算法
DES算法把64位的明文输入块变为数据长度为64位的密文输出块,其中8位为奇偶校验位,另外56位作为密码的长度。首先,DES把输入的64位数据块按位重新组合,并把输出分为L0、R0两部分,每部分各长32位,并进行前后置换,最终由L0输出左32位,R0输出右32位,根据这个法则经过16次迭代运算后,得到L16、R16,将此作为输入,进行与初始置换相反的逆置换,即得到密文输出。
DES算法具有极高的安全性,到目前为止,除了用穷举搜索法对DES算法进行攻击外,还没有发现更有效的办法,而56位长密钥的穷举空间为2^56,这意味着如果一台计算机的速度是每秒种检测100万个密钥,那么它搜索完全部密钥就需要将近2285年的时间,因此DES算法是一种很可靠的加密方法。
对称密钥:RC算法
RC4算法的原理是“搅乱”,它包括初始化算法和伪随机子密码生成算法两大部分,在初始化的过程中,密钥的主要功能是将一个256字节的初始数簇进行随机搅乱,不同的数簇在经过伪随机子密码生成算法的处理后可以得到不同的子密钥序列,将得到的子密钥序列和明文进行异或运算(XOR)后,得到密文。
由于RC4算法加密采用的是异或方式,所以,一旦子密钥序列出现了重复,密文就有可能被破解,但是目前还没有发现密钥长度达到128位的RC4有重复的可能性,所以,RC4也是目前最安全的加密算法之一。
对称密钥:BlowFish算法
BlowFish算法是一个64位分组及可变密钥长度的分组密码算法,该算法是非专利的。
BlowFish算法使用两个“盒”:pbox[18]和sbox[4256],BlowFish算法有一个核心加密函数。该函数输入64位信息,运算后以64位密文的形式输出。用BlowFish算法加密信息,需要密钥预处理和信息加密两个过程。BlowFish算法的原密钥pbox和sbox是固定的,要加密一个信息,需要选择一个key,用这个key对pbox和sbox进行变换,得到下一步信息加密所用到的key_pbox和key_sbox。
BlowFish算法解密,同样也需要密钥预处理和信息解密两个过程。密钥预处理的过程和加密时完全相同。信息解密的过程就是把信息加密过程的key_pbox逆序使用即可。
❽ 简述对称加密算法的基本原理
对称加密是计算机加密领域最古老也是最经典的加密标准。虽然对称加密被认为不再是安全的加密方式,但是直到现在,还看不到它被淘汰的迹象。在很多非网络化的加密环境中,对称加密足以满足人们的需要。
对称加密采用单密钥加密方式,不论是加密还是解密都是用同一个密钥,即“一把钥匙开一把锁”。对称加密的好处在于操作简单、管理方便、速度快。它的缺点在于密钥在网络传输中容易被窃听,每个密钥只能应用一次,对密钥管理造成了困难。对称加密的实现形式和加密算法的公开性使它依赖于密钥的安全性,而不是算法的安全性。
一个对称加密系统由五个部分组成,可以表述为
S={M,C,K,E,D}
各字母的含义如下:
M:明文空间,所有明文的集合。
C:密文空间,全体密文的集合。
K:密钥空间,全体密钥的集合。
E:加密算法。
D:解密算法。
❾ 如何:用对称密钥对 XML 元素进行加密
使用
XML
加密,您可以存储或传输敏感
XML,而无需担心数据被轻易读取。
此过程使用高级加密标准
(AES)
算法(又称为
Rijndael)对
XML
元素进行解密。
当使用诸如
AES
这样的对称算法对
XML
数据进行加密时,必须使用相同的密钥对
XML
数据进行加密和解密。
此过程中的示例假定加密的
XML
将使用相同密钥进行解密,并且加密方和解密方对使用的算法和密钥达成了一致。
此示例不在加密的
XML
中存储或加密
AES
密钥。
此示例适合于以下情形:单个应用程序需要基于存储在内存中的会话密钥,或基于从密码派生的加密强密钥对数据进行加密。
❿ 对称密钥加密是如何进行的
对称密钥加密也叫秘密/专用密钥加密(Secret Key Encryption),即发送和接收数据的双方必须使用相同的/对称的密钥对明文进行加密和解密运算。
非对称密钥加密也叫公开密钥加密(Public Key Encryption),是指每个人都有一对唯一对应的密钥:公开密钥和私有密钥,公钥对外公开,私钥由个人秘密保存;用其中一把密钥来加密,就只能用另一把密钥来解密。发送数据的一方用另一方的公钥对发送的信息进行加密,然后由接受者用自己的私钥进行解密。公开密钥加密技术解决了密钥的发布和管理问题,是目前商业密码的核心。使用公开密钥技术,进行数据通信的双方可以安全地确认对方身份和公开密钥,提供通信的可鉴别性。