DSML及其加密与签名
5)反抵赖性: 保证信息的发送者不能抵赖或否认对信息的发送,当然信息发送前需要对发送者进行安全认证。要在信息的传输过程中为参与交易的个人、企业或国家提供可靠的标识。
目前网络存在的威胁主要表现在以下几个方面:
1)非授权访问:没有预先经过同意,就使用网络或计算机资源被看作非授权访问。它主要有以下几种形式:假冒、身份攻击、非法用户进入网络系统进行违法操作、合法用户以未授权方式进行操作等。
2)信息遗漏丢失:指敏感数据有意或无意被泄漏出去或丢失。
3)破坏数据完整性:以非法手段窃得对数据的使用权,删除、修改、插入或重发某些重要信息,以取得有益于攻击者的响应;恶意添加,修改数据,以干扰用户的正常使用。
4)拒绝服务攻击:是一种比较简单,但又日益流行的攻击和禁用企业信息资源的方法。在拒绝服务攻击中,作恶者发送大量的信息流量,使 Web 服务器、主机、路由器和其它网络设备负担过重。通过这种方式发送的信息流量非常之大,致使企业的用户、客户和合作伙伴都在好长一段时间内无法访问网络。
基于以上的安全威胁以及网络安全的迫切要求,所采取的安全措施有加密技术(对称加密、非对称加密、不可逆加密等)、数字签名和认证技术、VPN技术、IPSec技术等。
由于还没有专门用于DSML安全的规范,因此本文采用W3C的XML规范(如XML Digital Signature, XML encryption)[5,6,7]来解决DSML安全问题。
3 DSML的加密和签名
XML 加密语法的核心元素是 EncryptedData元素,它是从 EncryptedType 抽象类型派生的。要加密的数据可以是任意数据、XML 文档、XML 元素或 XML 元素内容;加密数据的结果是一个包含或引用密码数据的 XML 加密元素。当加密元素或元素内容,EncryptedData 元素替换 XML 文档加密版本中的该元素或内容。当加密的是任意数据时,EncryptedData 元素可能成为新 XML 文档的根,或者可能成为一个子代元素。当加密整个 XML 文档时,EncryptedData 元素可能成为新文档的根。此外,EncryptedData 不能是另一个 EncryptedData 元素的父代或子代元素。
清单2 表示对清单1中modifyRequest和addRequest子元素进行加密的结果
<batchRequest xmlns:xsd=”http://www.w3.org/2001/XMLSchema”
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns="urn:oasis:names:tc:DSML:2:0:core">
<EncryptedData Type=”http://www.w3.org/2001/04/xmlenc#Element”
xmlns=” http://www.w3.org/2001/04/xmlenc”>
<CipherData><CipherValue>C86B12D79</CipherValue></CipherData>
</EncryptedData>
<delRequest dn="CN=Lisi,OU=HR,DC=Testdomain,DC=Com">
<control>...</control>
<control>...</control>
</delRequest>
<searchRequest>
<control>...</control>
...
</searchRequest>
</batchRequest>
清单3为对清单1中batchRequest元素进行加密的结果。
<EncryptedData xmlns=” http://www.w3.org/2001/04/xmlenc”>
Type=”http://www.isi.edu/in-notes/iana/assignments/media-types/text/xml”
<CipherData><CipherValue>C86B12D79</CipherValue></CipherData>
</EncryptedData>
清单4为对清单1中batchRequest元素进行签名的结果。
<Signature xmlns=”http://www.w3.org/2000/09/xmldsig#”>
<SignedInfo>
<CanonicalizationMethod Algorithm=”http://www.w3.org/TR/2001/REC-xml-c14n-20010315”/>
<SignatureMethod Algorithm=”http://www.w3.org/2000/09/xmldsig#dsa-sha1”/>
<Reference URI=”#batchRequest”>
<Transforms>
<Transform Algorithm=”http://www.w3.org/TR/2001/REC-xml-c14n-20010315”/>
</Transforms>
<DigestMethod Algorithm=”http://www.w3.org/2000/09/xmldsig#sha1”/>
<DigestValue>p26wx3rvEP00vKtMup4NcdUv5jil=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>MC0CFFrVLtRlk=…</ SignatureValue>
<KeyInfo>
<KeyValue>
<DSAKeyValue>
<p>…</p><Q>…</Q><G>…</G><Y>…</Y>
< /DSAKeyValue>
</KeyValue>
</KeyInfo>
<object>
<SignatureProperties>
<SignatureProperty Id="AMadeUpTimeStamp" >
<timestamp xmlns="http://www.ietf.org/rfc1889.txt";>
<date>20020305</date>
<time>12:55:34:34</time>
</timestamp>
</SignatureProperty>
</SignatureProperties>
</Object>
</Signature>
SignedInfo 元素是实际签名的信息。CanonicalizationMethod 标识了一种算法,该算法用来规范化 SignedInfo 元素。SignatureMethod 用于将已规范化的 SignedInfo 转换成 SignatureValue 的算法。Reference 的URI 属性标识要签名的数据对象。Transforms 可以包括规范化、编码/解码、XSLT 和 XPath 等操作。DigestMethod 是在应用 Transforms之后对数据应用以产生 DigestValue 的算法。DigestValue 的签名是将资源内容与签名者密钥绑定的机制。KeyInfo 表示用于验证签名的密钥,标识机制可以包括证书、密钥名称和密钥协议算法。SignatureProperties表示签名的属性,包括日期、时间等。
4 结束语
本文简要介绍了DSML语言,并讨论了用XML加密和签名的方法,并对其进行加密和签名。还可进一步对加密后的DSML进行XML签名,以及对SOAP请求和响应进行XML签名。限于篇幅,本文没作讨论。
参考文献
1. Michael Donnelly, An Introduction to LDAP, http://ldapman.org/articles/intro_to_ldap.html, 28 april 2000
2. Directory Services Markup Language v2.0, OASIS Directory Services TC, http://www.oasis-open.org/committees/dsml/docs/DSMLv2.doc,December 18,2001
3. 段智华,SOAP技术及其安全性研究. http://www-900.ibm.com/developerWorks/xml/x-soapsec/index.shtml , 2001 年 11 月
4.网络系统安全综合解决方案,php>http://us.cns911.com/docs/firewall/0010.php,2001年8月
5. Larry Loeb, XML signatures: Behind the curtain http://www-106.ibm.com/developerworks/security/library/s-digsig.html ,December 2001.
6. XML Encryption Syntax and Processing, W3C Candidate Recommendation ,http://www.w3.org/TR/xmlenc-core/, 04 March 2002
7. XML-Signature Syntax and Processing, W3C Recommendation, http://www.w3.org/TR/xml
dsig-core/, 12 February 2002
Tags:
作者:佚名评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论