S/Key:物美價廉的身份驗證解決方案
身份認證,是任何網(wǎng)絡(luò)安全方案的一個基礎(chǔ)。如在大部分情況下,需要認證的實體是通信的發(fā)送者,即需要確定訪問者的合法性問題。在特定的情況下,還需要對接收者進行認證,即要被訪問者的真實性問題。在安全性
身份認證,是任何網(wǎng)絡(luò)安全方案的一個基礎(chǔ)。如在大部分情況下,需要認證的實體是通信的發(fā)送者,即需要確定訪問者的合法性問題。在特定的情況下,還需要對接收者進行認證,即要被訪問者的真實性問題。在安全性級別比較高的時候,往往需要進行雙向認證。同時,還要考慮只認證終端設(shè)備即可,還是需要在認證終端設(shè)備的時候,同時去認證用戶的合法性問題。這些都牽涉到身份驗證方案。
現(xiàn)在可行的身份驗證方案有很多。如基于安全口令的身份驗證或者基于數(shù)字證書的身份驗證等等。不過有些方案要么過于簡單,存在比較多的漏洞。如雖然很多人喜歡利用口令來作為用戶認證或者設(shè)備證明,但是如果口令設(shè)置很簡單,或者不經(jīng)常更改的話,甚至以明文形式在網(wǎng)絡(luò)上傳輸,則很容易被人破解。另外一些解決方案就是過濾復(fù)雜,實施成本比較高。如基于數(shù)字證書的身份驗證,則實施起來有一定的難度。
筆者現(xiàn)在在企業(yè)中部署的是一種物美價廉的身份驗證解決方案。其也許不是一種最安全的身份驗證方法,但是它是一種性價比比較高的解決方法。它就是S/Key一次性口令系統(tǒng)。
S/Key一次性口令系統(tǒng)是一個基于MD4 和MD5的一次性口令生成方案。他可以對訪問者的身份與設(shè)備進行綜合驗證。S/Key協(xié)議的操作時基于客戶端/服務(wù)器端模式。客戶端可以是任何設(shè)備,如普通的PC或者是有移動商務(wù)功能的手機。而服務(wù)器一般都是運行Unix系統(tǒng)。
筆者之所以向大家推薦這個解決方案,主要有兩個方面的原因。一是這個身份認證解決方案,可以有效解決重放攻擊。重放攻擊是指攻擊者通過某種方式在網(wǎng)絡(luò)連接中獲取他人的登陸賬戶與口令,然后利用它多某個網(wǎng)絡(luò)資源的訪問權(quán)限。而現(xiàn)在S/Key協(xié)議分配給訪問者的口令每次都不同,所以,就可以有效解決口令泄漏問題。因此,可以避免重放攻擊。
其次,現(xiàn)在有不少基于這個解決方案的免費工具,也非常的實用。所以,有一定基礎(chǔ)的安全管理人員,可以非常方便的掌握這個解決方案。如此的話,這個S/Key解決方案對于企業(yè)來說,可能是免費的。或者只需要添加一些硬件方面的投資即可。
一、三步實現(xiàn)S/Key身份認證。
其實從理論上說,S/Key身份認證很容易實現(xiàn),只要通過三個步驟就可以輕易實現(xiàn)。
第一步:連接請求人在客戶端上,往往就是用戶自己的主機,輸入賬戶名。若利用S/Key的專業(yè)術(shù)語,這個用戶名又叫做通行短語。當(dāng)用戶打開這個客戶端,S/Key服務(wù)器也同時傳送過來一個種子。這個種子往往是以明文的形式傳輸。
第二步:客戶端會多次應(yīng)用安全哈希函數(shù),產(chǎn)生一個64位的安全性口令。通常情況下,客戶端會進行多達98次的哈希函數(shù)運算,以提高口令的安全性,增加其破譯難度。哈希是一種加密校驗和或消息完整性代碼 (MIC) ,每一方都必須通過計算才能驗證消息。例如,發(fā)送計算機使用哈希函數(shù)和共享密鑰計算消息的校驗和,并在數(shù)據(jù)包中將其包含進來。接收計算機必須對接收的消息和共享密鑰執(zhí)行同樣的哈希函數(shù),并將其與原始消息(包含在發(fā)送方的數(shù)據(jù)包中)加以比較。如果消息已經(jīng)在傳輸過程中更改,哈希值會不同,將拒收數(shù)據(jù)包。所以,哈希運算本身就是一種安全的口令計算方法。若通過98次的運算而得出的口令,可以說,其安全程度是非常高的。
第三步:輸出函數(shù)會把這個64位的一次性口令以明文的形式顯示給用戶。然后用戶在登陸界面中輸入這個一次性口令。登陸程序就會把這個口令傳遞給登陸服務(wù)器,服務(wù)器就會對此進行驗證。若一致的話,用戶則就可以進行正常的訪問。否則的話,服務(wù)器就會拒絕用戶登陸。不過讓用戶手工輸入64位的密碼可能會比較吃力。所以,有些S/Key工具,提供了直接復(fù)制粘貼的功能,避免了用戶手工輸入的麻煩。
二、缺陷:需要手工進行初始化。
一般在S/KEY服務(wù)器上有一個文件,它存儲著每個用戶上一次成功登陸的一次性口令。服務(wù)器端在進行驗證的時候,會把接收到的一次性口令輸入到安全哈希函數(shù)中進行運算。如果運算出來的結(jié)果跟上一次的一次性口令一致的話,認證就成功了。然后服務(wù)器就會把這個一次性口令存入到這個表中,等待下一次驗證。
但是,當(dāng)用戶沒進行一次登陸,則客戶端執(zhí)行哈希函數(shù)應(yīng)用程序的個數(shù)就會減少一個。也就是說,在客戶端上生成的一次性口令是有限的,而不是無限制的。S/Key就是通過這種方式保證口令的唯一性。可是,這也會造成用戶的困擾,如當(dāng)一次性口令用完時,就需要用戶對S/Key服務(wù)進行初始化,以避免用戶不能夠重復(fù)登陸的情況。
當(dāng)在客戶端計算一次性口令時,客戶端通行短語可以是任意長度,不過為了安全起見,我們建議最好長度超過8個字符。這些內(nèi)容都可以在初始化的時候進行設(shè)置。若要把設(shè)備認人證與身份認證結(jié)合,則可以把設(shè)備的一個序列好,如MAC地質(zhì)等當(dāng)作通行短語。如此的話,就只有在特定的設(shè)備上才能夠登陸企業(yè)的某個網(wǎng)絡(luò)應(yīng)用。
三、建議:根據(jù)企業(yè)的安全需求選擇不同的商業(yè)化產(chǎn)品。
以上只是S/Key 的基本解決方案。若采用免費產(chǎn)品的話,基本上只能夠?qū)崿F(xiàn)如上的一些基本功能。企業(yè)若在安全方面還有比較高的要求,則可以購買一些商業(yè)化的產(chǎn)品,來強化S/Key一次性口令在企業(yè)中的使用價值。
如有時候管理員會覺得每次要輸入一次性口令會比較麻煩,而且也不想通過復(fù)制占鐵的方式。則企業(yè)就可以購買一些商業(yè)的軟件,他們可以實現(xiàn)自動登陸。也就是說,會自動把這個哈希函數(shù)計算所得的長達64位的一次性口令輸入登陸框中,以減少用戶輸入的工作量。這在實際應(yīng)用中,是很受歡迎的一個功能。
另外,根據(jù)使用頻率的不同,每次都需要手工的對客戶端進行初始化,也是一件很讓人懊惱的事情。在一些商業(yè)的S/Key解決方案中,也實現(xiàn)了客戶端的自動初始化功能。如可以每隔一個月或者半年,讓系統(tǒng)自動進行初始化。這個頻率就要企業(yè)根據(jù)自己的使用情況來確定。當(dāng)然,也可以讓系統(tǒng)在一次性密碼用完之后自動初始化。
現(xiàn)在可行的身份驗證方案有很多。如基于安全口令的身份驗證或者基于數(shù)字證書的身份驗證等等。不過有些方案要么過于簡單,存在比較多的漏洞。如雖然很多人喜歡利用口令來作為用戶認證或者設(shè)備證明,但是如果口令設(shè)置很簡單,或者不經(jīng)常更改的話,甚至以明文形式在網(wǎng)絡(luò)上傳輸,則很容易被人破解。另外一些解決方案就是過濾復(fù)雜,實施成本比較高。如基于數(shù)字證書的身份驗證,則實施起來有一定的難度。
筆者現(xiàn)在在企業(yè)中部署的是一種物美價廉的身份驗證解決方案。其也許不是一種最安全的身份驗證方法,但是它是一種性價比比較高的解決方法。它就是S/Key一次性口令系統(tǒng)。
S/Key一次性口令系統(tǒng)是一個基于MD4 和MD5的一次性口令生成方案。他可以對訪問者的身份與設(shè)備進行綜合驗證。S/Key協(xié)議的操作時基于客戶端/服務(wù)器端模式。客戶端可以是任何設(shè)備,如普通的PC或者是有移動商務(wù)功能的手機。而服務(wù)器一般都是運行Unix系統(tǒng)。
筆者之所以向大家推薦這個解決方案,主要有兩個方面的原因。一是這個身份認證解決方案,可以有效解決重放攻擊。重放攻擊是指攻擊者通過某種方式在網(wǎng)絡(luò)連接中獲取他人的登陸賬戶與口令,然后利用它多某個網(wǎng)絡(luò)資源的訪問權(quán)限。而現(xiàn)在S/Key協(xié)議分配給訪問者的口令每次都不同,所以,就可以有效解決口令泄漏問題。因此,可以避免重放攻擊。
其次,現(xiàn)在有不少基于這個解決方案的免費工具,也非常的實用。所以,有一定基礎(chǔ)的安全管理人員,可以非常方便的掌握這個解決方案。如此的話,這個S/Key解決方案對于企業(yè)來說,可能是免費的。或者只需要添加一些硬件方面的投資即可。
一、三步實現(xiàn)S/Key身份認證。
其實從理論上說,S/Key身份認證很容易實現(xiàn),只要通過三個步驟就可以輕易實現(xiàn)。
第一步:連接請求人在客戶端上,往往就是用戶自己的主機,輸入賬戶名。若利用S/Key的專業(yè)術(shù)語,這個用戶名又叫做通行短語。當(dāng)用戶打開這個客戶端,S/Key服務(wù)器也同時傳送過來一個種子。這個種子往往是以明文的形式傳輸。
第二步:客戶端會多次應(yīng)用安全哈希函數(shù),產(chǎn)生一個64位的安全性口令。通常情況下,客戶端會進行多達98次的哈希函數(shù)運算,以提高口令的安全性,增加其破譯難度。哈希是一種加密校驗和或消息完整性代碼 (MIC) ,每一方都必須通過計算才能驗證消息。例如,發(fā)送計算機使用哈希函數(shù)和共享密鑰計算消息的校驗和,并在數(shù)據(jù)包中將其包含進來。接收計算機必須對接收的消息和共享密鑰執(zhí)行同樣的哈希函數(shù),并將其與原始消息(包含在發(fā)送方的數(shù)據(jù)包中)加以比較。如果消息已經(jīng)在傳輸過程中更改,哈希值會不同,將拒收數(shù)據(jù)包。所以,哈希運算本身就是一種安全的口令計算方法。若通過98次的運算而得出的口令,可以說,其安全程度是非常高的。
第三步:輸出函數(shù)會把這個64位的一次性口令以明文的形式顯示給用戶。然后用戶在登陸界面中輸入這個一次性口令。登陸程序就會把這個口令傳遞給登陸服務(wù)器,服務(wù)器就會對此進行驗證。若一致的話,用戶則就可以進行正常的訪問。否則的話,服務(wù)器就會拒絕用戶登陸。不過讓用戶手工輸入64位的密碼可能會比較吃力。所以,有些S/Key工具,提供了直接復(fù)制粘貼的功能,避免了用戶手工輸入的麻煩。
二、缺陷:需要手工進行初始化。
一般在S/KEY服務(wù)器上有一個文件,它存儲著每個用戶上一次成功登陸的一次性口令。服務(wù)器端在進行驗證的時候,會把接收到的一次性口令輸入到安全哈希函數(shù)中進行運算。如果運算出來的結(jié)果跟上一次的一次性口令一致的話,認證就成功了。然后服務(wù)器就會把這個一次性口令存入到這個表中,等待下一次驗證。
但是,當(dāng)用戶沒進行一次登陸,則客戶端執(zhí)行哈希函數(shù)應(yīng)用程序的個數(shù)就會減少一個。也就是說,在客戶端上生成的一次性口令是有限的,而不是無限制的。S/Key就是通過這種方式保證口令的唯一性。可是,這也會造成用戶的困擾,如當(dāng)一次性口令用完時,就需要用戶對S/Key服務(wù)進行初始化,以避免用戶不能夠重復(fù)登陸的情況。
當(dāng)在客戶端計算一次性口令時,客戶端通行短語可以是任意長度,不過為了安全起見,我們建議最好長度超過8個字符。這些內(nèi)容都可以在初始化的時候進行設(shè)置。若要把設(shè)備認人證與身份認證結(jié)合,則可以把設(shè)備的一個序列好,如MAC地質(zhì)等當(dāng)作通行短語。如此的話,就只有在特定的設(shè)備上才能夠登陸企業(yè)的某個網(wǎng)絡(luò)應(yīng)用。
三、建議:根據(jù)企業(yè)的安全需求選擇不同的商業(yè)化產(chǎn)品。
以上只是S/Key 的基本解決方案。若采用免費產(chǎn)品的話,基本上只能夠?qū)崿F(xiàn)如上的一些基本功能。企業(yè)若在安全方面還有比較高的要求,則可以購買一些商業(yè)化的產(chǎn)品,來強化S/Key一次性口令在企業(yè)中的使用價值。
如有時候管理員會覺得每次要輸入一次性口令會比較麻煩,而且也不想通過復(fù)制占鐵的方式。則企業(yè)就可以購買一些商業(yè)的軟件,他們可以實現(xiàn)自動登陸。也就是說,會自動把這個哈希函數(shù)計算所得的長達64位的一次性口令輸入登陸框中,以減少用戶輸入的工作量。這在實際應(yīng)用中,是很受歡迎的一個功能。
另外,根據(jù)使用頻率的不同,每次都需要手工的對客戶端進行初始化,也是一件很讓人懊惱的事情。在一些商業(yè)的S/Key解決方案中,也實現(xiàn)了客戶端的自動初始化功能。如可以每隔一個月或者半年,讓系統(tǒng)自動進行初始化。這個頻率就要企業(yè)根據(jù)自己的使用情況來確定。當(dāng)然,也可以讓系統(tǒng)在一次性密碼用完之后自動初始化。
責(zé)任編輯:和碩涵
免責(zé)聲明:本文僅代表作者個人觀點,與本站無關(guān)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實,對本文以及其中全部或者部分內(nèi)容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關(guān)內(nèi)容。
我要收藏
個贊
-
發(fā)電電力輔助服務(wù)營銷決策模型
2019-06-24電力輔助服務(wù)營銷 -
電力線路安全工作的組織措施和技術(shù)措施分別是什么?
-
兩會保電進行時丨陜西電力部署6項重點任務(wù)
-
發(fā)電電力輔助服務(wù)營銷決策模型
2019-06-24電力輔助服務(wù)營銷 -
繞過安卓SSL驗證證書的四種方式
-
網(wǎng)絡(luò)何以可能
2017-02-24網(wǎng)絡(luò)