杜宗福
(陜西廣播電視大學寶雞市分校,陜西寶雞,721001)
網絡安全中傳統(tǒng)的用戶授權方式一般采用的都是本地授權技術,為了保證數據的安全可靠,我們利用遠程服務器端技術,利用云授權的方式進行數據安全的保護,并與傳統(tǒng)的使用方式授權技術有效的結合。
云授權是將客戶端軟件授權技術與服務器認證技術相結合的保護及授權方案。服務器根據每一個軟件用戶的使用許可,為其自動發(fā)放授權,并在今后定期更新和驗證。由于并非所有的客戶端用戶電腦都能保持在線狀態(tài),采用云授權技術也可以實現本地的離線授權定期或在條件許可的條件下與服務器進行連接、同步,實現“云驗證”功能。
云授權技術支持.Net應用程序的API和外殼保護方式。應用軟件可以通過API調用的方法將應用程序與客戶端安全庫(DLL)進行集成,也可以使用外殼工具對 .Net 開發(fā)的模塊(EXE和DLL)進行加殼保護。
外殼工具支持對.Net 模塊的Native 加密和 Managed加密方式。所謂Native加密方式就是加密后被加密文件將變成純Win32的文件(PE)格式;Managed 加密方式是加密后被加密文件還是.Net 格式,但需要額外的運行時庫的支持。
系統(tǒng)開發(fā)中應用程序采用云授權模式,被保護軟件與互聯網授權服務器應該始終保持網絡連接,并調用服務器上的API實現。本地運行庫只作為數據傳輸通道和網絡通訊模塊而存在。所有應用程序和授權服務器之間的通訊數據都經過了類似于網上銀行系統(tǒng)的高安全性加密協(xié)議的保護,任何第三方都不可能獲取通訊內容,或通過“記錄并重發(fā)”(Record and Replay)的方式偽造通訊數據。
程序員將軟件的一部分功能和數據部署在授權服務器上,客戶端通過API使用這些功能和數據。應用程序可以獲取服務器時間進行任何與時間相關的判斷和操作;可以實現應用程序配置信息和數據的云存儲,使用戶在任何一臺計算機上獲得一致的使用環(huán)境。程序員通過這些API向軟件用戶發(fā)送即時通知。
非對稱加密(公鑰加密)指加密和解密使用不同密鑰的加密算法。假設兩個用戶要加密交換數據,雙方交換公鑰,使用時一方用對方的公鑰加密,另一方即可用自己的私鑰解密。如果企業(yè)中有n個用戶,企業(yè)需要生成n對密鑰,并分發(fā)n個公鑰。由于公鑰是可以公開的,用戶只要保管好自己的私鑰即可,因此加密密鑰的分發(fā)將變得十分簡單。同時,由于每個用戶的私鑰是唯一的,其他用戶除了可以通過信息發(fā)送者的公鑰來驗證信息的來源是否真實,還可以確保發(fā)送者無法否認曾發(fā)送過該信息。非對稱加密的缺點是加解密速度要遠遠慢于對稱加密,在某些極端情況下,甚至能比對稱加密慢上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);//將 密 碼 轉 換 為 字 節(jié)數 組 RSACryptoServiceProvider crypt=new RSACryptoServiceProvider();//RSA加密算法,非對稱PasswordBytes=crypt.Encrypt(password ,false);//加密字節(jié)數組,這是加密后的密碼值,放入數據庫中的表字段中。
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);//解密字節(jié)數組,返回原始密碼給用戶。
該方法的優(yōu)勢是每個用戶對應一個密鑰(包含公鑰和私鑰),它們都是隨機生成的,所以各不相同。還有另外一個方法就是依照上面方法隨機生成一個密鑰對(包含公鑰和私鑰),通過ToXmlString(true)方法導出,然后把這個XML字符串格式的密鑰放到你的Web程序的Web.config文件的AppSetting節(jié)點里面,然后通過FromXmlString(key)方法讀入密鑰,這樣就意味著所有的用戶密碼都用同一個密鑰對加密和解密。
文中針對云授權安全技術,提出了基于.NET的云授權保護機制解決方案,并對云授權系統(tǒng)開發(fā)中的保護機制,比如加密方式、代碼混淆技術、云授權模式進行分析,同時也給出了非對稱加密算法在云授權中的基本應用。該方案的提出與分析,為進一步提高網絡安全技術提供參考依據。
[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協(xié)議下載算法的改進[J].計算機工程與應用,2010(18):68-70.