基于.NET的云授权保护机制解决方案的探究

2013-08-15 00:43杜宗福
电子测试 2013年20期
关键词:私钥加密算法公钥

杜宗福

(陕西广播电视大学宝鸡市分校,陕西宝鸡,721001)

0 引言

网络安全中传统的用户授权方式一般采用的都是本地授权技术,为了保证数据的安全可靠,我们利用远程服务器端技术,利用云授权的方式进行数据安全的保护,并与传统的使用方式授权技术有效的结合。

云授权是将客户端软件授权技术与服务器认证技术相结合的保护及授权方案。服务器根据每一个软件用户的使用许可,为其自动发放授权,并在今后定期更新和验证。由于并非所有的客户端用户电脑都能保持在线状态,采用云授权技术也可以实现本地的离线授权定期或在条件许可的条件下与服务器进行连接、同步,实现“云验证”功能。

1 NET保护机制的研究方案

云授权技术支持.Net应用程序的API和外壳保护方式。应用软件可以通过API调用的方法将应用程序与客户端安全库(DLL)进行集成,也可以使用外壳工具对 .Net 开发的模块(EXE和DLL)进行加壳保护。

1.1 加密方式

外壳工具支持对.Net 模块的Native 加密和 Managed加密方式。所谓Native加密方式就是加密后被加密文件将变成纯Win32的文件(PE)格式;Managed 加密方式是加密后被加密文件还是.Net 格式,但需要额外的运行时库的支持。

1.2 云授权模式

系统开发中应用程序采用云授权模式,被保护软件与互联网授权服务器应该始终保持网络连接,并调用服务器上的API实现。本地运行库只作为数据传输通道和网络通讯模块而存在。所有应用程序和授权服务器之间的通讯数据都经过了类似于网上银行系统的高安全性加密协议的保护,任何第三方都不可能获取通讯内容,或通过“记录并重发”(Record and Replay)的方式伪造通讯数据。

程序员将软件的一部分功能和数据部署在授权服务器上,客户端通过API使用这些功能和数据。应用程序可以获取服务器时间进行任何与时间相关的判断和操作;可以实现应用程序配置信息和数据的云存储,使用户在任何一台计算机上获得一致的使用环境。程序员通过这些API向软件用户发送即时通知。

1.3 非对称加密算法在云授权中的应用

非对称加密(公钥加密)指加密和解密使用不同密钥的加密算法。假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以通过信息发送者的公钥来验证信息的来源是否真实,还可以确保发送者无法否认曾发送过该信息。非对称加密的缺点是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比对称加密慢上1000倍。

云计算算法的部分实现代码如下:

DSACryptoServiceProviderRSACryptoServiceProvid er

//加密

U n i c o d e E n c o d i n g e n c o d i n g = n e w UnicodeEncoding();

b y t e[] P a s s w o r d B y t e s = e n c o d i n g. GetBytes(password);//将 密 码 转 换 为 字 节数 组 RSACryptoServiceProvider crypt=new RSACryptoServiceProvider();//RSA加密算法,非对称PasswordBytes=crypt.Encrypt(password ,false);//加密字节数组,这是加密后的密码值,放入数据库中的表字段中。

string key=crypt.ToXmlString(true);//输出密钥为XML格式的字符串,且包含私钥,这个字符串要作为数据库表中的一个字段同用户的密码放在一起。

//解密

R S A C r y p t o S e r v i c e P r o v i d e r c r y p t=n e w RSACryptoServiceProvider();//已随机生成了一个密钥对

crypt.Clear();//毁掉当前密钥对

crypt.FromXmlString(key)//输入密钥对,key是从数据库表字段中读取的那个XML格式的字符串,即密钥字段PasswordBytes=crypt.Decrypt(password ,false);//解密字节数组,返回原始密码给用户。

该方法的优势是每个用户对应一个密钥(包含公钥和私钥),它们都是随机生成的,所以各不相同。还有另外一个方法就是依照上面方法随机生成一个密钥对(包含公钥和私钥),通过ToXmlString(true)方法导出,然后把这个XML字符串格式的密钥放到你的Web程序的Web.config文件的AppSetting节点里面,然后通过FromXmlString(key)方法读入密钥,这样就意味着所有的用户密码都用同一个密钥对加密和解密。

2 结论

文中针对云授权安全技术,提出了基于.NET的云授权保护机制解决方案,并对云授权系统开发中的保护机制,比如加密方式、代码混淆技术、云授权模式进行分析,同时也给出了非对称加密算法在云授权中的基本应用。该方案的提出与分析,为进一步提高网络安全技术提供参考依据。

[1] 张国鸣 严体华.网络管理员教程(第2版)[M].清华大学出版社,2007:375-378.

[2] 孙 禄,卢 潇,张 强.基于Java Bean组件技术的模型表示研究[J].电子设计工程,2010,(10):9.

[3] 朱文生.基于Kad的BT客户端的设计与实现[D].江西师范大学,2006.

[4] 王魁生,卢梦侨,王晓波 .一种基于网络状况的多线程下载调度算法 [J].软件导刊,2011(4):36-38.

[5] 苗文健,杨雅辉.面向视频播放的BT协议下载算法的改进[J].计算机工程与应用,2010(18):68-70.

猜你喜欢
私钥加密算法公钥
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
基于改进ECC 算法的网络信息私钥变换优化方法
一种基于混沌的公钥加密方案
一种基于虚拟私钥的OpenSSL与CSP交互方案
混沌参数调制下RSA数据加密算法研究
P2X7 receptor antagonism in amyotrophic lateral sclerosis
HES:一种更小公钥的同态加密算法
SM2椭圆曲线公钥密码算法综述
基于小波变换和混沌映射的图像加密算法