一次性密碼

一次性密碼(英語:one-time password,簡稱OTP),又稱動態密碼單次有效密碼,是指計算機系統或其他數位裝置上只能使用一次的密碼,有效期為只有一次登錄會話或交易。OTP 避免了一些與傳統基於(靜態)密碼認證相關聯的缺點;一些實作還納入了雙因素認證,確保單次有效密碼需要存取一個人有的某件事物(如內建 OTP 計算機的小鑰匙掛件裝置)以及一個人知道的某件事物(如 PIN)。

相對於靜態密碼,OTP 最重要的優點是它們不容易受到重放攻擊(replay attack)。這意味著管理記錄已用於登錄到服務或進行交易的 OTP 的潛在入侵者將無法濫用它,因為它將不再有效。第二個主要優點是,使用多個系統相同(或類似)密碼的用戶,如果其中一個密碼被攻擊者獲得,不是對所有的系統都容易變得脆弱。許多 OTP 系統也旨在確保會話不易被截獲或沒有前一個會話期間產生不可預測數據的知識模擬,從而進一步減少攻擊面。

OTP 已被作為傳統密碼一個可能的替代以及增強方式討論。不利的是,OTP 人類難以記憶。因此,它們需要額外的技術來運作。

一般的靜態密碼在安全性上容易因為木馬鍵盤側錄程式等而被竊取,而只要花上相當程度的時間,也有可能被暴力破解。為了解決一般密碼容易遭到破解情況,因此開發出一次性密碼的解決方案。

原理

動態密碼的產生方式,主要是以時間差做為伺服器與密碼產生器的同步條件。在需要登錄的時候,就利用密碼產生器產生動態密碼,OTP一般分為計次使用以及計時使用兩種,計次使用的OTP產出後,可在不限時間內使用;計時使用的OTP則可設定密碼有效時間,從30秒到兩分鐘不等[1],而OTP在進行認證之後即廢棄不用,下次認證必須使用新的密碼,增加了試圖不經授權存取有限制資源的難度。

取得方式

文字簡訊
由於文字簡訊是很容易能接觸到的技術,也因此最常用來傳遞動態密碼;然而,對於中间人攻击的抗性較低,也是此種方式的安全性問題。
紙本文件
在某些國家的線上銀行系統會採用預印的方式提供一次性密碼。
行動載具
對於有成本考量但希望取得較高安全性的公司,會規劃使用在行動載具上安裝流動應用程式產生動態密碼。
獨立載具
為了追求更高的安全性,使用者也能使用較高成本的方式——獨立載具,將產生動態密碼所需的金鑰存放於載具內,避免被中間人攻擊或因為行動載具的系統漏洞而被取得金鑰。此外,獨立載具內建電池模組,因此會有壽命和回收的問題;或是使用由外部供電的載具,經由模擬鍵盤輸入的方式存取金鑰,但是此種載具和電腦有實體接觸,因此沒有與獨立載具相同的安全性。

特色

優勢
  • 解決使用者在記憶與保存密碼上的困難;
  • 由於密碼只能使用一次,且是動態產生,難以預測,可以大為提升使用的安全程度。
劣勢
  • 一次性密碼多數需要手機網路收取短訊;
  • 收取方可能會有延遲或無法收取的問題。

參考文獻