形式化地,我們用S代表服務(wù)器,P代表密碼生成器,PIN代表用戶啟動密碼生成器的身份識別碼,U代表用戶,N代表隨機Nonce:
S→U: N
U→P: N,?PIN
P→U: {N,?PIN}K
U→S: {N,?PIN}K
這些設(shè)備在20世紀(jì)80年代早期開始出現(xiàn),最早用在電話公司,之后在90年代被銀行采用。有一些簡化的設(shè)備中不包含鍵盤,只是每隔1分鐘左右生成1個新的訪問碼(通過對計數(shù)器進行加密得到),比如最廣為人知的RSA SecurID。美國國防部在2007年宣稱,在上一年度,由于引入了一種基于DoD通用訪問卡(CAC卡)的系統(tǒng),網(wǎng)絡(luò)入侵減少了46%[225]。
現(xiàn)在,這些技術(shù)已經(jīng)開始在客戶群中傳播。在2001年之前,密碼生成器主要在一些高級私營銀行中使用(比如Coutts就使用密碼生成器對其在線客戶進行身份驗證),并且這些銀行從沒有遭受過釣魚式詐騙攻擊。而到了2006年,荷蘭與冰島的一些銀行將這些技術(shù)推廣到其數(shù)以百萬計的客戶群中,之后,詐騙攻擊開始出現(xiàn)了。典型情況下,釣魚式攻擊者會進行實時中間人攻擊(下一節(jié)將對其進行描述),一旦用戶通過了銀行的身份驗證,就對其進行會話劫持。在2007年晚些時候,英國以及歐洲其他國家的一些銀行引進了芯片身份驗證程序(CAP),這種機制會給銀行客戶派發(fā)一個計算器,并使用用戶的銀行卡進行加密。這個計算器在使用銀行卡加載時,會詢問客戶的PIN,如果正確輸入,就基于計數(shù)器(作為卡交易的一次性身份驗證碼,或銀行Web站點的一步式登錄憑據(jù))或質(zhì)詢信息(用在兩步式身份驗證中)計算出一個應(yīng)答碼。還有另一種操作模式:如果會話劫持成為嚴(yán)重問題,CAP計算器也可以用于對交易數(shù)據(jù)進行身份驗證,在這種情況下,應(yīng)該由客戶將金額與收款人賬號的最后8位數(shù)字輸入其CAP計算器中。