TOTP的含義
“基于時(shí)間的一次性密碼”是指使用共享密鑰值和系統(tǒng)上的當(dāng)前時(shí)間形成后僅在30-90秒內(nèi)有效的密碼。
密碼幾乎總是由每三十秒更改一次的六位數(shù)序列組成。另一方面,TOTP的某些實(shí)現(xiàn)使用四位數(shù)代碼,這些代碼在90秒后變得無(wú)效。
什么是共享密鑰?
TOTP身份驗(yàn)證使用在客戶端和服務(wù)器之間共享的密鑰形式的共享密鑰。
肉眼看來(lái),共享密鑰似乎是一個(gè)字符串,其表示形式在Base32中類似于以下內(nèi)容:
KRUGS4ZANFZSAYJAONUGC4TFMQQHGZLDOJSXIIDFPBQW24DMMU======
計(jì)算機(jī)能夠理解和理解信息,即使人類無(wú)法以呈現(xiàn)的方式辨認(rèn)信息。
客戶端和服務(wù)器在單次傳輸密鑰后,共享密鑰的副本安全地存儲(chǔ)在各自的系統(tǒng)上。
如果攻擊者能夠發(fā)現(xiàn)共享密鑰的價(jià)值,那么他們將能夠構(gòu)建自己獨(dú)特的合法一次性密碼。因此,TOTP的每個(gè)實(shí)現(xiàn)都需要特別注意以安全的方式安全地存儲(chǔ)共享密鑰。
什么是系統(tǒng)時(shí)間?
每臺(tái)計(jì)算機(jī)和手機(jī)中都有一個(gè)時(shí)鐘,用于測(cè)量所謂的Unix時(shí)間。
Unix時(shí)間是根據(jù)自1年1970月00日00:00:<>UTC 以來(lái)經(jīng)過(guò)的秒數(shù)來(lái)衡量的。
Unix時(shí)間似乎只不過(guò)是一串?dāng)?shù)字:1643788666
然而,這個(gè)小數(shù)字非常適合生成OTP,因?yàn)榇蠖鄶?shù)使用Unix時(shí)鐘的電氣設(shè)備彼此充分同步。
TOTP身份驗(yàn)證協(xié)議的實(shí)現(xiàn)
不建議使用密碼。但是,您可以通過(guò)將傳統(tǒng)密碼與時(shí)間敏感的一次性密碼(TOTP)結(jié)合使用來(lái)提高安全性。這種組合稱為雙因素身份驗(yàn)證或2FA,可用于安全地對(duì)您的帳戶、虛擬專用網(wǎng)絡(luò)(VPN)和應(yīng)用程序進(jìn)行身份驗(yàn)證。
TOTP可以在硬件和軟件令牌中實(shí)現(xiàn):
?TOTP硬件令牌是一種物理鑰匙串,可在小屏幕上顯示當(dāng)前代碼
?TOTP軟令牌是一種移動(dòng)應(yīng)用程序,可在手機(jī)屏幕上顯示代碼
使用軟件令牌還是硬件令牌都沒(méi)有區(qū)別。使用兩種不同形式的身份驗(yàn)證的目的是提高為您的在線帳戶提供的保護(hù)級(jí)別。您可以訪問(wèn)一次性密碼生成器,您可以在雙因素身份驗(yàn)證期間使用該生成器來(lái)訪問(wèn)您的帳戶。無(wú)論您有遙控鑰匙還是帶有身份驗(yàn)證應(yīng)用程序的智能手機(jī),都可以使用此生成器。
基于時(shí)間的一次性密碼如何工作?
共享密鑰的值包含在每個(gè)基于時(shí)間的一次性密碼(TOTP)的生成中,該密碼取決于當(dāng)前時(shí)間。
為了生成一次性密碼,TOTP方法會(huì)同時(shí)考慮當(dāng)前的Unix時(shí)間和共享密鑰值。
基于HMAC的一次性密碼(HOTP)方法中的計(jì)數(shù)器將換成基于時(shí)間的一次性密碼算法(HOTP算法的一個(gè)版本)中的當(dāng)前時(shí)間值。
一次性密碼(TOTP)技術(shù)基于哈希函數(shù),給定不確定長(zhǎng)度的輸入,生成固定長(zhǎng)度的短字符串。這種解釋避免了在技術(shù)語(yǔ)言上陷入困境。如果您只是擁有哈希函數(shù)的結(jié)果,您將無(wú)法重新創(chuàng)建用于生成它的原始參數(shù)。這是哈希函數(shù)的優(yōu)勢(shì)之一。
必須記住,TOTP提供比HOTP更高的安全級(jí)別。每30秒,使用TOTP時(shí)就會(huì)生成一個(gè)全新的密碼。使用HOTP時(shí),只有在輸入和使用前一個(gè)密碼后才會(huì)創(chuàng)建新密碼。事實(shí)上,即使HOTP的一次性密碼已被用于身份驗(yàn)證,它仍然有效,這為黑客提供了成功發(fā)起攻擊的重要機(jī)會(huì)。
使用多因素(MFA)進(jìn)行身份驗(yàn)證
用戶必須先在任何支持基于時(shí)間的一次性密碼的多因素身份驗(yàn)證(MFA)系統(tǒng)中注冊(cè)其 TOTP令牌,然后才能使用設(shè)備連接到其帳戶。
一些TOTP軟代幣需要為每個(gè)帳戶注冊(cè)不同的OTP生成器。這實(shí)際上意味著,如果您將兩個(gè)帳戶添加到身份驗(yàn)證器應(yīng)用程序,程序?qū)⒚?0秒生成兩個(gè)臨時(shí)密碼,每個(gè)帳戶一個(gè)。單個(gè)TOTP軟令牌(身份驗(yàn)證器程序)可以支持無(wú)限數(shù)量的一次性密碼生成器。單個(gè)一次性密碼生成器可在帳戶安全性受到威脅的情況下保護(hù)所有其他帳戶的安全。
要使用2FA,必須創(chuàng)建密鑰并在TOTP令牌和安全系統(tǒng)之間共享。然后,必須將安全系統(tǒng)的機(jī)密傳遞給令牌。
如何將共享機(jī)密發(fā)送到令牌?
通常,安全系統(tǒng)會(huì)創(chuàng)建一個(gè)二維碼,并請(qǐng)求用戶使用身份驗(yàn)證器應(yīng)用程序?qū)ζ溥M(jìn)行掃描。
這種類型的二維碼是對(duì)一長(zhǎng)串字母的視覺(jué)描述。粗略地說(shuō),共享的秘密是這個(gè)冗長(zhǎng)序列的一部分。
當(dāng)用戶使用身份驗(yàn)證器應(yīng)用程序掃描二維碼時(shí),該軟件將串起圖像并提取密鑰。身份驗(yàn)證器程序現(xiàn)在可以利用共享密鑰生成一次性密碼。
注冊(cè)TOTP令牌時(shí),密鑰僅發(fā)送一次。許多關(guān)于竊取私鑰的擔(dān)憂都得到了緩解。對(duì)手仍然可以竊取機(jī)密,但他們必須首先實(shí)際竊取令牌。
即使您沒(méi)有連接到互聯(lián)網(wǎng),它也可以工作!
要使用TOTP技術(shù),您不需要智能手機(jī)上的有效互聯(lián)網(wǎng)連接或物理密鑰。
TOTP令牌只需要獲取一次共享密鑰值。因此,安全系統(tǒng)和OTP生成器可以產(chǎn)生連續(xù)的密碼值,而無(wú)需通信。因此,即使計(jì)算機(jī)關(guān)閉,基于時(shí)間的一次性密碼(TOTP)也會(huì)運(yùn)行。
審核編輯:劉清
-
VPN
+關(guān)注
關(guān)注
4文章
293瀏覽量
29764 -
UNIX
+關(guān)注
關(guān)注
0文章
296瀏覽量
41503 -
OTP
+關(guān)注
關(guān)注
4文章
218瀏覽量
47217 -
生成器
+關(guān)注
關(guān)注
7文章
317瀏覽量
21052
原文標(biāo)題:Passwork:所有關(guān)于基于時(shí)間的一次性密碼 (TOTP)
文章出處:【微信號(hào):哲想軟件,微信公眾號(hào):哲想軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論