<p id="nxp5x"><big id="nxp5x"><noframes id="nxp5x">

    <var id="nxp5x"><video id="nxp5x"></video></var>

          <em id="nxp5x"></em>

              首 頁 本刊概況 出 版 人 發行統計 在線訂閱 歡迎投稿 市場分析 1 組織交流 1 關于我們
             
            1
               通信短波
            1
               新品之窗
            1
               優秀論文
            1
               通信趨勢
            1
               特別企劃
            1
               運營商動態
            1
               技術前沿
            1
               市場聚焦
            1
               通信視點
            1
               信息化論壇
            1
            當前位置:首頁 > 優秀論文
            基于USBKey的網絡身份認證與管理技術研究
            作者:劉海燕 蔡紅柳 金龍 裝甲兵工程學院信息工程系 北京
            來源:不詳
            更新時間:2009/9/19 19:29:00
            正文:

            Study on Identity Authentication and Management
            Technique Based On USB Key
            Liu Hai-yan, Cai Hong-liu, Jin Long
            (Department of Information Engineering, Armored Force Engineering Institute, Beijing, 100072)
            Abstract: Digital Certificate is an effective authentication method in network applications, and USB Key is a device to store secret data, so if they are combined together, they will provide a more secure authentication method. This paper first analyzes the theory of digital certificate and the technical features of USB Key, then designs an identity register and management system, Which can make certificates for users and store the certificate into an USB key. This system can used as an subsystem of an network application system.
            Keywords:Digital Certificate, Identity authentication, USB Key

            身份認證是指證實被認證對象是否屬實和是否有效的一個過程。身份認證在網絡應用中的地位極其重要,是其他許多安全措施的基礎。一旦身份認證系統被攻破,那么系統的所有安全措施將形同虛設。
            在網絡系統中,目前應用較多的是基于公開密鑰密碼算法的符合X.509規范的數字證書身份認證協議。X.509證書是由可信的第三方權威機構——CA頒發的符合X.509規范的公鑰證書。證書中包含了用戶的身份信息、公鑰信息、頒發證書的CA的信息以及CA對證書的簽名信息。CA的簽名確保了證書的可信性,而私鑰則確定了用戶的身份。
            USBKey是一種基于USB接口的安全設備,他將口令或者證書等秘密數據保存在內部的存儲器上,并提供一定的加密手段。本文分析了USBKey的技術特點,在Openssl函數庫的基礎上研究設計了一個基于USBKey的網絡身份注冊與管理系統,通過USBKey的使用,提供軟硬件一體化的網絡身份注冊管理與認證系統。
            1 X.509數字證書
            X.509標準是國際標準化組織和CCITT/ITU-T制定的X.500系列標準中的一部分,它定義了一個通用的證書格式;赬.509證書的認證技術適用于開放式網絡環境下的身份認證,其核心是公開密鑰密碼體制。每個用戶擁有一個公鑰和私鑰對,私鑰不在網上傳輸,CA中心為用戶的公鑰等公開信息用自己的私鑰進行簽名,保證這些公開信息的可信性。用戶可以憑借證書訪問那些信任該CA的服務器。
            Openssl[1]是一個開放源代碼的密碼算法庫和SSL協議的實現庫。它提供命令行處理程序,可以完成密鑰對的生成、證書的創建、各種加解密算法。此外,它還以函數庫的形式,提供了豐富的數據加解密、數字簽名和驗證、X509證書的創建和驗證等函數,可以在此函數庫的基礎上開發各種加解密軟件以及SSL/TLS的通信程序。
            2 USBKey技術和功能
            USBKEY 是結合了密碼學技術、智能卡技術和USB 技術的身份認證產品,是一種秘密數據存儲設備[2]。盡管數字證書可以用來確認用戶的身份和保護用戶數據的有效性,但是,數字證書本質上表現為帶有用戶信息和密鑰的一個數據文件,如何保護數字證書本身又成為開放式網絡環境中的最薄弱的環節。一旦證書被非法復制,整個系統的安全性就降低到僅僅靠密碼保護證書的級別。所以,專門用于存儲秘密信息的USBKey成為數字證書的最佳載體。
            每一個USBKey 都具有硬件PIN 碼,PIN 碼和硬件構成了用戶使用USBKey 的兩個必要因素,即所謂的“雙因素認證”。用戶只有同時取得了USBKey 和PIN 碼,才可以使用USBKey中的秘密信息。而且USBKey內部的信息不能直接導出,硬件不可復制,因此更安全可靠。
            目前,USBKey廠家將USBKey與PKI技術相結合[3],開發出了符合PKI標準的安全中間件,利用USBKey來保存數字證書和用戶私鑰,并提供符合PKI標準的編程接口,以便于開發基于PKI的應用程序。使用這類USBKey,只要存儲了符合標準的證書,就可以在通用的網絡系統中使用USBKey中的數字證書。所以,USBKey的應用領域已經不限于確認用戶身份,已經推廣到了使用數字證書的所有領域,包括需要文件加解密、郵件加解密、SSL協議、VPN以及數字簽名等等。
            3網絡身份注冊管理系統的設計
            現有的許多信息系統都是網絡應用系統,其中客戶端和服務器端通過網絡相互通信。為了采取必要的安全措施,雙方必須首先對對方的身份進行確認。所以,可以將網絡應用看作是由身份注冊管理子系統和網絡應用子系統組成,他們之間通過數字證書關聯,如圖1所示。其中,身份注冊管理子系統負責驗證用戶的真實身份,并為其頒發數字證書。在網絡應用子系統中,用戶用數字證書作為身份標識,通過瀏覽器訪問網站,或者通過專用客戶端軟件訪問專用服務器。身份注冊管理子系統和網絡應用子系統可以共享同一個數據庫服務器。如果使用USBKey作為數字證書的載體,則可以提供更高的安全性。
            我們基于openssl函數庫[4]設計實現了一個通用的身份注冊管理系統。該系統為那些不便使用通用證書頒發機構的網絡應用系統提供身份注冊、證書頒發和管理功能。系統可以頒發符合X.509標準的數字證書并保存到USBKey中。此外,系統還提供了讀取證書、獲取密鑰的函數接口,便于用戶開發相應的網絡應用程序。
            身份注冊管理系統采用了客戶/服務器模式,注冊管理客戶端與注冊管理服務器之間使用SSL協議進行認證和通信。認證通過之后,進入管理主界面,執行用戶管理、管理員管理、服務器日志管理和服務器系統管理四項管理功能,身份注冊管理系統的組成如圖2所示。
            管理員認證登錄模塊:管理員輸入管理服務器的IP地址、服務器名以及自己的PIN碼,建立與服務器之間的SSL連接。連接建立之后雙方還將進一步檢查證書的相關信息,確定是否準許登錄。認證成功則進入管理主界面,失敗則顯示失敗信息,退出系統。
            用戶管理:對用戶的身份信息進行管理,它能列出所有已注冊的用戶、為新用戶頒發證書、修改用戶信息、查詢用戶信息等。
            管理員管理:對身份注冊管理系統本身的管理員進行管理,它能列出所有的管理員、為管理員頒發證書、修改管理員信息和刪除管理員等;
            服務器日志管理模塊:對系統的日志進行管理,包括日志的列表、查詢日志、清空日志、新建日志等;
            服務器管理:對注冊管理系統的服務器進行管理,如更新服務器證書、數據庫參數設置、管理參數設置、恢復初始設置、系統重啟等。
            在上述各模塊中,用戶管理和管理員管理模塊是系統的核心,它收集管理員和用戶的各種信息,為他們生成密鑰對,使用服務器的根證書簽發證書,將證書保存到USBKey中,同時將用戶的各種信息存入數據庫。
            4 身份注冊管理系統的實現
            我們使用openssl-0.9.8e函數庫,使用飛天誠信的epass1000ND USBKey?蛻舳嗽赪indows平臺上使用VC6開發,提供圖形用戶界面的登錄和管理界面。服務器端在Linux平臺上,使用標準C開發。
            客戶端和服務端的程序流程以及二者的交互過程如圖3所示?蛻舳伺c服務器端完成SSL握手,認證通過之后,客戶端員進入管理主界面,而服務器端則進入循環接收并處理命令的狀態?蛻舳烁鶕芾韱T的選擇和輸入信息,將管理信息發送到服務器端;服務器接受命令后,根據命令號進行相應的處理,并將處理的結果以及要返回的信息發送給客戶端。管理過程持續到客戶端發出退出命令為止。
            1.1客戶端程序的主要代碼
            1.1.1初始化
            首先初始化openssl函數庫,這樣才能使用openssl提供的各種函數。為了進行SSL握手,需要讀取ca根證書、管理員的公鑰證書以及管理員的私鑰證書:
            ctx = SSL_CTX_new(SSLv23_client_method());
            SSL_CTX_load_verify_locations(ctx, "cacert.pem", NULL)) ;
            SSL_CTX_use_certificate_file(ctx, "clientpem", SSL_FILETYPE_PEM) ;
            SSL_CTX_use_PrivateKey_file(ctx, "clientkey", SSL_FILETYPE_PEM) ;
            1.1.2執行SSL握手
            bio = BIO_new_ssl_connect(ctx);
            BIO_get_ssl(bio, &ssl);
            BIO_set_conn_hostname(bio, hostname, port);
            1.1.3進一步驗證對方身份
            首先獲取對方的數字證書:
            peerCertificate = SSL_get_peer_certificate(ssl);
            然后對證書中某些域的信息進行驗證,如subjectname域等。
            1.1.4接收對方發送數據
            SSL_read(ssl, buf, BUFSIZE); buf是接收緩沖區,BUFSIZE是緩沖區大小。
            1.1.5向對方發送數據:
            SSL_write(ssl,buf,size); buf中是要發送的數據,size是要發送的數據的大小。
            1.2服務器端程序的主要代碼
            1.2.1初始化
            ctx = SSL_CTX_new(SSLv23_server_method());
            SSL_CTX_load_verify_locations(ctx, "cacert.pem", NULL)
            SSL_CTX_use_certificate_file(ctx, "certificate.pem", SSL_FILETYPE_PEM)
            SSL_CTX_use_PrivateKey_file(ctx, "private.key", SSL_FILETYPE_PEM)
            服務器端的初始化與客戶端的類似,但加載的是服務器的公鑰證書和私鑰證書
            1.2.2指定端口等待SSL連接
            abio = BIO_new_accept("1234"); //服務器監聽端口1234
            BIO_do_accept(abio) //兩次調用BIO_do_accept進入監聽狀態
            BIO_do_accept(abio)
            1.2.3 SSL握手
            out = BIO_pop(abio);
            ssl=SSL_new(ctx)
            SSL_set_accept_state(ssl);
            SSL_set_bio(ssl,out,out);
            1.2.4與客戶端通信,接收和發送數據
            服務器端發送和接收數據使用與客戶端相同的函數SSL_write和SSL_read
            1.2.5處理客戶端命令
            使用switch語句,根據客戶端的命令號,進行不同的處理。
            5 結論
            該身份注冊管理系統已經作為子系統用于數字媒體管理系統和車輛管理系統中,這兩個網絡應用系統都采用的是B/S與C/S共存的系統,身份注冊管理子系統能夠與應用子系統通過USBKey和接口函數無縫結合。
            本文在分析相關技術的基礎上,設計實現了一個身份注冊管理管理系統,能夠為用戶頒發符合X509標準的數字證書,并使用USBKey存儲證書。系統將數字證書技術與USBKey技術有機結合,從而可以為網絡應用提供更高的安全性保障。


            參考文獻
            [1] 王志海 童新海 沈寒輝,OpenSSL與網絡信息安全—基礎、結構和指令,清華大學出版社/北京交通大學出版社,2007.5
            [2] 徐遠航 USB Key身份認證產品的產生與發展,計算機安全,2004年08期 44-45。
            [3] 何麗,蔡小剛,周利華,基于USBKey的X_509身份認證,計算機與現代化,2003年第4期,58-60
            [4]中國OpenSSL專業網站, http://www.openssl.cn

            作者簡介:
            劉海燕,(1970-)女,博士,教授,從事計算機網絡、信息安全、網絡攻防等課程的教學和相關方向的科研工作多年,主要研究方向為信息安全、網絡應用。

             
             
               
            《通信市場》 中國·北京·復興路49號通信市場(100036) 點擊查看具體位置
            電話:86-10-6820 7724, 6820 7726
            京ICP備05037146號-8
            建議使用 Microsoft IE4.0 以上版本 800*600瀏覽 如果您有什么建議和意見請與管理員聯系
            欧美成人观看免费全部欧美老妇0