TOTP Secret 長度?

RFC 6238是TOTP(基於時間的一次性密碼算法)的標準,它建立在HOTP(RFC 4226,基於事件的一次性密碼算法)之上。這些標準設計用於增強在線帳戶的安全性,通過要求用戶提供除了用戶名和密碼之外的第二形式的認證來實現。

在RFC 6238中,關於秘密(secret)的長度沒有一個明確的、硬性規定的最小值或推薦值。然而,從安全的角度來看,秘密應該足夠長,以抵抗各種攻擊,尤其是暴力破解攻擊。

實際上,一個常見的做法是使用一個最小長度為128位(16字節)的秘密,而更高的安全等級則可能要求160位(20字節)或更長。

這是因為基於SHA-1的TOTP實現(如Google Authenticator)通常會使用至少160位的秘密,以與SHA-1哈希函數的輸出大小相匹配。

要實現高安全性,以下是一些關鍵的實踐建議:

使用安全的隨機數生成器:生成秘密時,應該使用符合安全標準的隨機數生成器,以確保秘密的隨機性和不可預測性。

考慮使用更安全的哈希算法:雖然許多TOTP實現默認使用SHA-1,但考慮到SHA-1的潛在安全問題,使用SHA-256或SHA-512哈希算法可以提供更高的安全性。這將要求秘密的長度至少為對應哈希算法輸出的大小。

遵循最新的安全標準和最佳實踐:隨著新的研究和技術的發展,安全社區的建議會隨時間變化。定期審查和更新安全措施以符合當前的最佳實踐是非常重要的。

總之,雖然RFC 6238本身沒有指定秘密的具體長度要求,但選擇一個足夠長(例如至少128位或160位)的秘密,並使用安全的實現方式,對於保護基於TOTP的系統至關重要。

前一篇文章資訊安全,帳號登入,實施雙因素認證(2FA),實作案例-1:2FA 需要分辨 authenticator嗎?
下一篇文章資訊安全,帳號登入,實施雙因素認證(2FA),實作案例-3:安裝endroid/qr-code
學經歷 淡江大學資訊管理研究所 諸銘科技軟體發開部經理與教育事業部總監 專長 網路創業、網路行銷、創業貸款、個資保護、資訊安全、程式設計(ASP.NET VB.NET MVC C# Core 6) 資安與個資證照:CompTia Security+ , ISO 27701。 演講與課程經歷 工研院講師 勞動部微型創業鳳凰貸款顧問 台北市社會局 衛福部中央健保署 新北市政府勞工局 管科會 中國生產力中心 中衛中心 中山管理教育基金會 中華軟協 南科產協 青創會 青創會內訓 臺北青年職涯發展中心 經濟部樂活創業人才班 中小企業總會 外貿協會 高雄醫學大學 雲林科技大學 台北醫學大學 銘傳大學 明新科大 中台科大 台灣科技大學 師範大學 大葉大學 台北城市大學 聖約翰科技大學 萬能科技大學 輔英科大 明新科大 美和科大 嘉南藥理大學 東南科大 亞太創意技術學院 格致商工 霧峰農工 三重商工 新店戒護所 台南就業處 台灣知識庫 台北景福扶輪社 富邦人壽 台北國際書展

回覆留言

Please enter your comment!
Please enter your name here