一種Linux身份認證系統及方法
2023-09-21 10:44:00 1
專利名稱:一種Linux身份認證系統及方法
技術領域:
本發明涉及一種信息安全技術領域,具體地說是一種Linux身份認證系統及方法。
背景技術:
Linux作業系統具有多用戶、多任務、圖形用戶界面、網絡連接和多應用程式支持,同時具有性價比高和高可靠性等優點,因此越來越受到用戶青睞,Linux作業系統下應用程式使用的安全問題成為用戶關注的重點。Linux應用程式的訪問和使用往往需要身份認證安全要求,傳統的應用程式在編寫時加入身份認證代碼,使用用戶名和密碼的方式進行用戶身份驗證,用戶名和密碼通過軟體形式的資料庫存儲,容易遭到破解,安全性低。USBKey作為用戶的身份認證硬體設備已經成為普遍採用的安全訪問控制方式,通過USBKey的雙因子認證由於要求訪問者要擁有訪問的認證硬體USBkey,同時還要知曉USBKey PIN碼,因此提高了安全性,同時用戶PIN碼的驗證在USBKey內部完成比傳統密碼驗證更安全。可信計算技術通過在計算機主板上接入可信密碼模塊(TCM,TrustedCryptography Module )來植入安全可信根,TCM具備密碼學算法運算器和受保護的內部存儲器,內嵌密碼學算法,能夠為用戶提供密碼服務來進行身份認證的應用。TCM內部存儲器包括非易失性存儲器可以保存用戶私密信息,並具有完備的內部安全結構保護用戶信息。Linux PAM (Linux可插式認證模塊)是一組共享庫,通過Linux PAM,系統管理員可以自由選擇應用程式使用的 認證機制,通過Linux PAM提供的PAM API (應用編程接口),應用程式可以調用PAM提供的認證服務模塊,系統管理者可以根據需要給出不同的服務配置和不同的認證方式,基本上無需更改應用程式。
發明內容
本發明的技術任務是針對以上不足之處,提供一種安全性高、減小軟體複雜度、有效防止了用戶信息洩漏、杜絕了密碼被破解的可能性、減少了應用程式開發工作量的一種Linux身份認證系統及方法。本發明解決其技術問題所採用的技術方案是:
一種Linux身份認證系統結合TCM和USBKey設備,應用在計算機上,一種Linux身份認證系統包括:
用戶信息獲取模塊:用於獲取用戶名和用戶USBKey PIN碼;
用戶信息存儲模塊:用於調用TCM散列算法計算用戶USBKey設備屬性信息度量值,並將用戶名信息和上述度量值進行綁定存儲於TCM非易失性存儲器中;
身份認證模塊:用於將用戶USBKey設備屬性信息計算度量值並與TCM非易失性存儲器中的度量值進行比對驗證,同時傳輸用戶PIN碼給用戶USBKey設備進行內部驗證,最後返回上述兩種驗證成功或者失敗的結果;
USBKey設備:用來作為用戶身份認證設備驗證訪問者身份;
TCM:即可信密碼模塊,用來存儲用戶信息和USBKey設備屬性信息,內置密碼算法提供散列計算密碼學服務;
一種Linux身份認證方法,通過TCM散列算法計算用戶USBKey設備信息的度量值,TCM非易失性存儲器存儲用戶信息及其用戶USBKey設備屬性信息度量值實現綁定,用戶訪問Linux應用程式時既要輸入PIN碼認證,又要通過TCM對用戶USBkey設備屬性信息進行度量驗證,具體方法分為用戶註冊步驟和身份認證步驟。所述TCM通過PCIE、LPC接口與計算機的主板相連。所述用戶USBKey設備通過USB接口與計算機的主板相連。所述用戶USBKey設備屬性信息包括USBKey設備VID、PID及序列號。所述TCM散列算法採用SHA1、SHA256、MD5算法以及符合國家相關標準的雜湊密碼算法;所述度量值為TCM散列算法對USBKey設備屬性信息計算的散列值。所述系統的Linux應用程式為編譯運行在計算機的Linux作業系統中的可執行程序;所述身份認證模塊為編寫的Linux PAM認證服務模塊,所述系統的Linux應用程式通過調用計算機的Linux作業系統中的PAM API和配置PAM配置文件來調用身份認證模塊。用戶註冊步驟如下:
(1)、將用戶USBKey設備與計算機相連,所述用戶信息獲取模塊獲取用戶名和PIN碼;
(2)、所述用戶USBKey設備根據所述獲取的PIN碼驗證用戶合法身份,如果合法則執行步驟(3),否則提示錯誤信息並作異常處理;
(3)、所述用戶信息存儲模塊將所述用戶名存儲於TCM非易失性存儲器中,所述用戶信息存儲模塊讀取用戶USBKey設備屬性信息,所述用戶信息存儲模塊調用TCM散列算法計算所述用戶USBKey設備屬性信息的度量值,並存儲於TCM非易失性存儲器中,存儲位置位於用戶名之後,實現用戶名與用戶USBKey設備屬性信息的註冊綁定。身份認證步驟如下:
(1)、將用戶USBKey設備與計算機相連,所述用戶信息獲取模塊獲取用戶名和PIN碼;
(2)、所述用戶USBKey設備根據PIN碼驗證用戶合法身份,如果合法則執行步驟(3),否則提示錯誤信息並作異常處理
(3),Linux應用程式啟動所述身份認證模塊根據所述的獲取用戶名在TCM非易失性存儲器中讀取相應用戶名位置後的用戶USBKey設備屬性信息度量值,所述身份認證模塊讀取USBKey設備屬性信息並調用TCM散列算法計算所述用戶USBKey設備屬性信息度量值,將所述從TCM非易失性存儲器中讀取的度量值進行對比,如果對比相等則繼續執行Linux應用程式,否則停止執行Linux應用程式,提示錯誤信息並做異常處理。本發明的一種Linux身份認證系統及方法和現有技術相比,有益效果為:
1、通過採用綁定TCM和用戶USBKey設備實現硬體增強的多因子認證方式,比傳統單純採用用戶名和密碼進行軟體認證的方式相比大大調高了安全性;
2、採用TCM存儲用戶名、用戶USBKey設備屬性信息的度量值,通過TCM散列算法來實現USBKey和TCM結合的身份認證,與傳統軟體形式資料庫存儲用戶名密碼相比,不需要安裝資料庫軟體,減小軟體複雜度,用戶名和用戶身份認證設備私密信息存儲在TCM中,受TCM硬體保護,有效防止了用戶信息洩漏;
3、認證過程不給用戶設置密碼,不在硬碟中存儲密碼,用戶只需要輸入用戶名和PIN碼驗證,PIN碼驗證過程在USBKey內部計算完成,計算細節不外洩,杜絕了密碼被破解的可倉生;
4、身份認證模塊與用戶應用程式分開,更改應用程式認證機制時只需要更改LinuxPAM配置文件,不需要更改應用程式源程序,減少了應用程式開發工作量。
下面結合附圖對本發明進一步說明。附圖1為一種Linux身份認證系統的結構框 附圖2為一種Linux身份認證方法的用戶註冊步驟流程 附圖3為一種Linux身份認證方法的身份認證步驟流程圖。
具體實施例方式下面結合附圖和具體實施例對本發明作進一步說明。實施例1:
如圖1所示,本發明的一種Linux身份認證系統及方法,一種Linux身份認證系統結合TCM和USBKey設備,應用在計算機上,一種Linux身份認證系統包括:
用戶信息獲取模塊:用於獲取用戶名和用戶USBKey PIN碼;
用戶信息存儲模塊:用於調用TCM散列算法計算用戶USBKey設備屬性信息度量值,並將用戶名信息和上述度量值進行綁定存儲於TCM非易失性存儲器中;
身份認證模塊:用於將用戶USBKey設備屬性信息計算度量值並與TCM非易失性存儲器中的度量值進行比對驗證,同時傳輸用戶PIN碼給用戶USBKey設備進行內部驗證,最後返回上述兩種驗證成功或者失敗的結果;
USBKey設備:用來作為用戶身份認證設備驗證訪問者身份;
TCM:即可信密碼模塊,用來存儲用戶信息和USBKey設備屬性信息,內置密碼算法提供散列計算密碼學服務;
一種Linux身份認證方法,通過TCM散列算法計算用戶USBKey設備信息的度量值,TCM非易失性存儲器存儲用戶信息及其用戶USBKey設備屬性信息度量值實現綁定,用戶訪問Linux應用程式時既要輸入PIN碼認證,又要通過TCM對用戶USBkey設備屬性信息進行度量驗證,具體方法分為用戶註冊步驟和身份認證步驟。所述TCM通過PCIE、LPC接口與計算機的主板相連。所述用戶USBKey設備通過USB接口與計算機的主板相連。所述用戶USBKey設備屬性信息包括USBKey設備VID、PID及序列號。所述TCM散列算法採用SHA1、SHA256、MD5算法以及符合國家相關標準的雜湊密碼算法;所述度量值為TCM散列算法對USBKey設備屬性信息計算的散列值。所述系統的Linux應用程式為編譯運行在計算機的Linux作業系統中的可執行程序;所述身份認證模塊為編寫的Linux PAM認證服務模塊,所述系統的Linux應用程式通過調用計算機的Linux作業系統中的PAM API和配置PAM配置文件來調用身份認證模塊。
用戶註冊步驟如下:
(1)、將用戶USBKey設備與計算機相連,所述用戶信息獲取模塊獲取用戶名和PIN碼;
(2)、所述用戶USBKey設備根據所述獲取的PIN碼驗證用戶合法身份,如果合法則執行步驟(3),否則提示錯誤信息並作異常處理;
(3)、所述用戶信息存儲模塊將所述用戶名存儲於TCM非易失性存儲器中,所述用戶信息存儲模塊讀取用戶USBKey設備屬性信息,所述用戶信息存儲模塊調用TCM散列算法計算所述用戶USBKey設備屬性信息的度量值,並存儲於TCM非易失性存儲器中,存儲位置位於用戶名之後,實現用戶名與用戶USBKey設備屬性信息的註冊綁定。身份認證步驟如下:
(1)、將用戶USBKey設備與計算機相連,所述用戶信息獲取模塊獲取用戶名和PIN碼;
(2)、所述用戶USBKey設備根據PIN碼驗證用戶合法身份,如果合法則執行步驟(3),否則提示錯誤信息並作異常處理
(3),Linux應用程式啟動所述身份認證模塊根據所述的獲取用戶名在TCM非易失性存儲器中讀取相應用戶名位置後的用戶USBKey設備屬性信息度量值,所述身份認證模塊讀取USBKey設備屬性信息並調用TCM散列算法計算所述用戶USBKey設備屬性信息度量值,將所述從TCM非易失性存儲器中讀取的度量值進行對比,如果對比相等則繼續執行Linux應用程式,否則停止執行Linux應用程式,提示錯誤信息並做異常處理。實施例2:
本發明結合TCM和USBKey設備,提供了一種Linux身份認證系統,參見圖1,所述系統包括:
1、用戶信息獲取模塊:用於獲取用戶名和用戶USBKey PIN碼。2、用戶信息存儲模塊:用於調用TCM散列算法計算用戶信息和用戶USBKey設備屬性信息度量值,並將用戶信息和上述度量值進行綁定存儲於TCM非易失性存儲器中。3、身份認證模塊:用於將用戶USBKey設備屬性信息計算度量值並與TCM非易失性存儲器中的度量值進行比對驗證,同時傳輸用戶PIN碼給USBKey設備進行內部驗證,最後返回上述兩種驗證成功或者失敗的結果。4、USBKey設備:用來作為用戶身份認證設備驗證訪問者身份。5、TCM:即可信密碼模塊,用來存儲用戶信息和USBKey設備屬性信息,內置密碼算法提供散列計算等密碼學服務。本發明還提供了一種Linux身份認證方法,通過TCM散列算法計算用戶USBKey設備信息的度量值,TCM非易失性存儲器存儲用戶信息及其用戶USBKey設備屬性信息度量值實現綁定,用戶訪問Linux應用程式時既要輸入PIN碼認證,又要通過TCM對用戶USBkey設備屬性信息進行度量驗證,具體方法分為用戶註冊步驟和身份認證步驟。一種Linux身份認證系統需要將TCM通過PCIE、LPC等接口與計算機主板相連,Linux應用程式為編譯運行在Linux作業系統中的可執行程序,用戶註冊步驟是通過編寫的包括用戶信息獲取模塊和用戶信息存儲模塊的可執行程序來完成。參見圖2,—種Linux身份認證方法的用戶註冊步驟如下:
步驟IlOl:首先將用戶USBKey設備與計算機相連,具體方法為通過USB接口與計算機主板相連; 步驟1102:用戶信息獲取模塊獲取用戶名和PIN碼,用戶名和PIN碼用戶通過軟體界面接口輸入;
步驟1103:用戶USBKey設備根據所述獲取的PIN碼驗證用戶合法身份,如果合法則執行步驟1104,否則提示錯誤信息並作異常處理;
步驟1104:用戶信息存儲模塊將用戶名存儲於TCM非易失性存儲器中;
步驟1105:用戶信息存儲模塊讀取用戶USBKey設備屬性信息,用戶USBKey設備屬性信息包括用戶USBKey設備VID、PID及序列號;
步驟106:用戶信息存儲模塊調用TCM散列算法計算用戶USBKey設備屬性信息的度量值,並存儲於TCM非易失性存儲器中,存儲位置位於用戶名之後TCM散列算法採用SHA1、SHA256、MD5算法以及符合國家相關標準的雜湊密碼算法。USBKey設備屬性信息的度量值為TCM散列算法對用戶USBKey設備屬性信息計算的散列值。—種Linux身份認證方法身份認證步驟是通過按照Linux PAM規定接口編寫的身份認證模塊即Linux PAM認證服務模塊來完成,Linux應用程式通過調用PAM API和配置PAM配置文件來調用身份認證模塊。參見圖3,—種Linux身份認證方法的身份認證步驟如下:
步驟VlOl:首先將用戶USBKey設備與計算機相連,具體方法為通過USB接口與計算機主板相連;
步驟V102:用戶信息獲取模塊獲取用戶名和PIN碼,用戶名和PIN碼用戶通過軟體界面接口輸入;
步驟V103:用戶USBKey設備根據所述獲取的PIN碼驗證用戶合法身份,如果合法則執行步驟V104,否則提示錯誤信息並作異常處理;
步驟V104 =Linux應用程式啟動身份認證模塊根據所述的獲取用戶名在TCM非易失性存儲器中讀取相應用戶名位置後的USBKey設備屬性信息度量值;
步驟V105:身份認證模塊讀取用戶USBKey設備屬性信息,用戶USBKey設備屬性信息包括USBKey設備VID、PID及序列號;
步驟V106:身份認證模塊調用TCM散列算法計算用戶USBKey設備屬性信息度量值,USBKey設備屬性信息包括USBKey設備VID、PID及序列號,TCM散列算法採用SHA1、SHA256、MD5算法以及符合國家相關標準的雜湊密碼算法。USBKey設備屬性信息的度量值為TCM散列算法對USBKey設備屬性信息計算的散列值;
步驟V107:身份認證模塊從TCM非易失性存儲器中讀取的度量值與計算所得的度量值進行對比,如果對比相等則繼續執行Linux應用程式,否則停止執行Linux應用程式,提示錯誤信息並做異常處理。本發明的一種Linux身份認證系統及方法,除說明書所述的技術特徵外,均為本專業技術人員的已知技術。
權利要求
1.一種Linux身份認證系統及方法,其特徵在於一種Linux身份認證系統結合TCM和USBKey設備,應用在計算機上,一種Linux身份認證系統包括: 用戶信息獲取模塊:用於獲取用戶名和用戶USBKey PIN碼; 用戶信息存儲模塊:用於調用TCM散列算法計算用戶USBKey設備屬性信息度量值,並將用戶名信息和上述度量值進行綁定存儲於TCM非易失性存儲器中; 身份認證模塊:用於將用戶USBKey設備屬性信息計算度量值並與TCM非易失性存儲器中的度量值進行比對驗證,同時傳輸用戶PIN碼給用戶USBKey設備進行內部驗證,最後返回上述兩種驗證成功或者失敗的結果; USBKey設備:用來作為用戶身份認證設備驗證訪問者身份; TCM:即可信密碼模塊,用來存儲用戶信息和USBKey設備屬性信息,內置密碼算法提供散列計算密碼學服務; 一種Linux身份認證方法,通過TCM散列算法計算用戶USBKey設備信息的度量值,TCM非易失性存儲器存儲用戶信息及其用戶USBKey設備屬性信息度量值實現綁定,用戶訪問Linux應用程式時既要輸入PIN碼認證,又要通過TCM對用戶USBkey設備屬性信息進行度量驗證,具體方法分為用戶註冊步驟和身份認證步驟。
2.根據權利要求1所述的一種Linux身份認證系統及方法,其特徵在於所述TCM通過PCIE、LPC接口與計算機的主板相連。
3.根據權利要求1所述的一種Linux身份認證系統及方法,其特徵在於所述用戶USBKey設備通過USB接口與計算機的主板相連。
4.根據權利要求1所述的一種Linux身份認證系統及方法,其特徵在於所述用戶USBKey設備屬性信息包括USBKey設備VID、PID及序列號。
5.根據權利要求1所述的一種Linux身份認證系統及方法,其特徵在於所述TCM散列算法採用SHA1、SHA256、MD5算法以及符合國家相關標準的雜湊密碼算法;所述度量值為TCM散列算法對USBKey設備屬性信息計算的散列值。
6.根據權利要求1所述的一種Linux身份認證系統及方法,其特徵在於所述系統的Linux應用程式為編譯運行在計算機的Linux作業系統中的可執行程序;所述身份認證模塊為編寫的Linux PAM認證服務模塊,所述系統的Linux應用程式通過調用計算機的Linux作業系統中的PAM API和配置PAM配置文件來調用身份認證模塊。
7.根據權利要求1所述的一種Linux身份認證系統及方法,其特徵在於用戶註冊步驟如下: (1)、將用戶USBKey設備與計算機相連,所述用戶信息獲取模塊獲取用戶名和PIN碼; (2)、所述用戶USBKey設備根據所述獲取的PIN碼驗證用戶合法身份,如果合法則執行步驟(3),否則提示錯誤信息並作異常處理; (3)、所述用戶信息存儲模塊將所述用戶名存儲於TCM非易失性存儲器中,所述用戶信息存儲模塊讀取用戶USBKey設備屬性信息,所述用戶信息存儲模塊調用TCM散列算法計算所述用戶USBKey設備屬性信息的度量值,並存儲於TCM非易失性存儲器中,存儲位置位於用戶名之後,實現用戶名與用戶USBKey設備屬性信息的註冊綁定。
8.根據權利要求1所述的一種 Linux身份認證系統及方法,其特徵在於身份認證步驟如下:(1)、將用戶USBKey設備與計算機相連,所述用戶信息獲取模塊獲取用戶名和PIN碼; (2)、所述用戶USBKey設備根據PIN碼驗證用戶合法身份,如果合法則執行步驟(3),否則提示錯誤信息並作異常處理 (3) ,Linux應用程式啟動所述身份認證模塊根據所述的獲取用戶名在TCM非易失性存儲器中讀取相應用戶名位置後的用戶USBKey設備屬性信息度量值,所述身份認證模塊讀取USBKey設備屬性信息並調用TCM散列算法計算所述用戶USBKey設備屬性信息度量值,將所述從TCM非易失性存儲器中讀取的度量值進行對比,如果對比相等則繼續執行Linux應用程式,否則停止執行Linux應用程式,提示錯誤信息並做異常處理。
全文摘要
本發明公開了一種Linux身份認證系統及方法,屬於信息安全技術領域,一種Linux身份認證系統包括用戶信息獲取模塊、用戶信息存儲模塊、身份認證模塊、USBKey設備、TCM;一種Linux身份認證方法,通過TCM散列算法計算用戶USBKey設備信息的度量值,TCM非易失性存儲器存儲用戶信息及其用戶USBKey設備屬性信息度量值實現綁定,用戶訪問Linux應用程式時既要輸入PIN碼認證,又要通過TCM對用戶USBkey設備屬性信息進行度量驗證,具體方法分為用戶註冊步驟和身份認證步驟。本發明安全性高、減小軟體複雜度、有效防止了用戶信息洩漏、杜絕了密碼被破解的可能性、減少了應用程式開發工作量。
文檔編號H04L9/32GK103200008SQ20131006346
公開日2013年7月10日 申請日期2013年2月28日 優先權日2013年2月28日
發明者趙斌, 馮磊 申請人:山東超越數控電子有限公司