您现在的位置:主页 > 网络编程 > XML编程 >

网络传输中XML敏感信息的加密

来源:建站吧 责任编辑:Jzq8 发表时间:2011-10-24 点击:

  假设有如下场景: 文件需要在客户端和端进行传输,文件的内容分为两类:敏感信息 ( 如密码,证书内容 ) 和普通信息。客户端和服务器端都可以独立获得应用程序的 USERID 和 PSWORD。传输方式不限 (SSL 通常建立在 TCP 之上 )。

  AES 加密算法数据的安全性跟一个好的密码算法是紧密相连的。一般的,加密算法有两种:对称加密算法和非对称加密算法。前者使用同一个密钥进行加解密,而后者则使用不同的加解密钥。根据我们的场景,客户端和服务器端都可以获得类似的信息,再通过计算可以得到相同的加密密钥,而无需通过不安全的网络进行直接传输,这样入侵者就无法直接利用网络监听来破获加密密钥,所以本文使用对称加密算法。

  在过去的 20 多年中,国际上最常用的对称加密算法是数据加密标准 (data encryption standard,DES), 该算法已经被美国国家标准和技术协会 (NIST) 采用。但是,到 2001 年 4 月为止,DES 在许多应用领域中被认为是不安全的,因为它采用的密钥长度为 56 位,许多拥有中等计算资源的计算机就可以用穷尽法搜索出正确的密钥。因此,NIST 采用了另一种新的加密算法来代替 DES,该算法被称为高级加密标准 (advanced encryption standard,AES)。AES 一般具有 128 位的分组长度,密钥长度可分别为 128,192,256 位, 单就安全性而言,AES 的 128 位密钥比 DES 的 56 位密钥强 1021 倍还多。AES 是基于代替 - 置换网络的,不管用软 件还是硬件实现都非常高效。AES 算法的具体实现并不是本文的重点,上已经存在了很多用各种语言实现的可用代码。 关于各种对称加密算法的比较分析可以参见参考文献中秦志光教授的《密码算法的现状和发展研究》。

  敏感信息的加密方案需要传输的 XML 文件如下,其中包含了敏感信息和普通信息。为了简单易懂,这里敏感信息仅以 password 为例。

  清单 1. 需要传输的 XML 内容双击代码全选 123456789    <?xml version="1.0" encoding="UTF-8"?>   <app>   <!-- non sensitive data-->   <userid>USERID</userid>   <!-- sensitive data-->   <password>PASSW0RD</password>  </app>

  清单 1是我们需要传输的原始数据。如果直接传输敏感信息,是非常危险的,所以需要采用加密机制。为了在客户端和服务器端达成统一,我们在 xml 文件中需要指定目前双方所采用的加密算法。同时,我们设计这样的加密密钥:其只在一次传输操作中有效,而一旦离开当前会话立即失效。这样保证了密钥的安全,使数据得到进一步保障。经过加密机制处理后,XML 将呈现为如 清单 2所示的形式。其中,SeonID 用于标识本次会话,cher 属性表示客户端和服务器端一致认可的加密算法。

  清单 2. 加密机制处理后的 XML 文件双击代码全选 1234567891011    <?xml version="1.0" encoding="UTF-8"?>   <app ID="App-001e3751a6e6-00000d34-000000004ba7589e-0">  <!-- non sensitive data-->  <userid>USERID</userid>  <!-- sensitive data-->  <password cipher="aes128">78DFC347E201F24742030E4E03B8A034C83A4F072EA78DF6C6  3A9AF8DF06E57D42D73DC00D3A01773D1AB8A9DBCE759CACC324BD23D141A0CE4F68FA   E6332970FD272250014A1C1CC82EB1637487A430</password>  </app>

  这样,经过加密机制的处理,敏感信息 password 的内容以加密后的形式呈现。 现在开始,将分步介绍本文对敏感信息的加密和解密机制,以了解上述 XML 文件中敏感信息 password 的加密值是如何得到的。主要步骤可分为数据对齐及初步保护,加密算法的密钥选取,加密内容的十六进制字符串呈现,以及相应的解密方法。下面以客户端加密、服务器端解密为例进行说明。因为加密和加密过程在客户端和服务器端是一致的 , 所以逆向加解密,即服务器端加密、客户端解密的过程与此类似。

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    评价:
    表情:
    验证码:点击我更换图片

    今日头条

    更多>>

    推荐图文

    • XML和实体序列化和反序列化
    • XML数据读取方式性能比较(一)
    • 给XML初学者的教程
    • 解析XML (很给力)
    • XML轻松学习手册(2)XML概念
    • XML文件的生成基本方式(代码+注释)
    • 读取XML为行记录
    • 如何使用XML实现多渠道接入网站的构架
    • JSON是什么?它能带来什么?
    Alexa - 客户服务 - 联系方法 - 招聘信息 - 友情链接 - 网站地图 - TAG标签 - RSS订阅
    Copyright © 2010-2012 JZQ8.COM. 建站吧|建站去吧 版权所有
    冀ICP备09002514号
    冀ICP备09002514号 网络报警 企业法人营业执照 中国互联网协会 支付宝付款 网银在线付款