TWI383327B - The use of wafer financial card in the ATM system cardholder authentication methods, systems and computer systems - Google Patents

The use of wafer financial card in the ATM system cardholder authentication methods, systems and computer systems Download PDF

Info

Publication number
TWI383327B
TWI383327B TW97110143A TW97110143A TWI383327B TW I383327 B TWI383327 B TW I383327B TW 97110143 A TW97110143 A TW 97110143A TW 97110143 A TW97110143 A TW 97110143A TW I383327 B TWI383327 B TW I383327B
Authority
TW
Taiwan
Prior art keywords
cardholder
value
function
authentication
secret
Prior art date
Application number
TW97110143A
Other languages
English (en)
Other versions
TW200836118A (en
Original Assignee
Univ Chang Gung
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Univ Chang Gung filed Critical Univ Chang Gung
Priority to TW97110143A priority Critical patent/TWI383327B/zh
Publication of TW200836118A publication Critical patent/TW200836118A/zh
Application granted granted Critical
Publication of TWI383327B publication Critical patent/TWI383327B/zh

Links

Landscapes

  • Storage Device Security (AREA)

Description

利用晶片金融卡於ATM系統的持卡人認證方法、系統及電腦系統
本發明係屬於利用電腦裝置、電腦系統、通訊網路作為持卡人認證(cardholder authentication)技術的應用。
晶片金融卡配合了安全強度較佳的「基碼(key)」與邏輯運算式,讓ATM機器計算出交易驗證碼,即使交易驗證碼被截錄,也無法被破解出基碼。該基碼也稱為「使用者基碼」,它是邏輯運算式所使用的密碼學金鑰(Crypto Key),也是計算交易驗證碼的重要秘密,必須受到妥善的管控。目前ATM機器所使用的邏輯運算式包含了對稱式密碼學(Symmetric Cryptography)的演算法。發卡銀行為有效管理眾多晶片金融卡上的基碼,在銀行系統端的亂碼化設備中儲存了一個主基碼(Master Key,MK),用以衍生出各個使用者基碼,並確保每個使用者基碼的唯一性與安全性。
第十一圖為習用發卡系統產生「使用者基碼」之流程圖。發卡銀行的亂碼化設備(100)所儲存的為主基碼(110)MK,是所有持卡人之使用者基碼的根源;另一輸入值(120)為計算持卡人之使用者基碼所需,稱為使用者基碼衍生值,以PANx 表示PAN1 至PANN 間的任一數,此值可以是持卡人的唯一識別資料,例如卡號或依功能性質不同而計算出的值;在相同的發卡銀行的亂碼化設備(100)中進行計算過程(130),以計算出持卡人的使用者基碼DKn (140)。
使用者基碼DKn (140)係晶片卡的記憶體(EEPROM)的一部份,其中儲存了晶片金融卡記憶體端接收來自前一步驟依功能性質所計算出的持卡人基碼,包括DK1 、DK2 .....DKn 等等。
欲登入ATM系統的持卡人必須提供合法的晶片金融卡,及正確的通行碼(password)或個人識別碼(Personal Identification Number,PIN)。目前銀行系統大多採用離線的通行碼輸入之驗證。因此,晶片金融卡的記憶體內存放有通行碼的驗證資訊。晶片金融卡(150)使用者基碼(140)與通行碼檔(260)是晶片金融卡上的兩個記憶體區塊,分別存放「使用者基碼」及「通行碼的驗證資訊」。使用者基碼是在發卡時由發卡系統所產生,其存放的記憶體空間稱為「使用者基碼檔」,存放了配合不同金融交易項目所使用的多個使用者基碼;存放通行碼驗證資訊的記憶體空間則稱為「通行碼檔」。在晶片金融卡記憶體空間的佈局設計中,「使用者基碼檔」與「通行碼檔」統稱為「基碼檔」。
第十二圖係習用持卡人使用晶片金融卡於實體ATM系統完成一筆交易的流程圖,包含:步驟305:持卡人(10)將晶片金融卡(150)插入實體ATM系統的提款機(30),建立與提款機(30)之連線;步驟310:提款機(30)接收晶片金融卡(150),啟動交易程式;步驟315:提款機(30)的ATM系統讀取晶片金融卡(150)記憶體之使用者基碼檔(140)所儲存的資訊;步驟320:提款機(30)的ATM系統依據步驟315所得之資訊來驗證晶片金融卡(150)之真偽,其驗證方法可包括SDA(Static Data Authentication)與DDA(Dynamic Data Authentication)。若驗證後判斷為正確的晶片金融卡(150),則繼續執行步驟325。反之,跳至步驟390,結束此次持卡人的交易;步驟325:持卡人在提款機(30)輸入通行碼;步驟330:提款機(30)的ATM系統接收持卡人所輸入的通行碼,並於步驟335中將該接收的通行碼送到晶片金融卡(150)中進行驗證;步驟340:晶片金融卡(150)以通行碼檔(260)中的通行碼驗證資訊比對持卡人所輸入的通行碼是否正確;步驟345:晶片金融卡(150)將通行碼驗證所得的結果回傳給提款機(30)的ATM系統;步驟350:提款機(30)的ATM系統根據晶片金融卡(150)回傳通行碼驗證成功的訊息,繼續執行步驟355。若晶片金融卡(150)回傳通行碼驗證失敗的訊息,則跳至步驟390,結束此次持卡人的交易;步驟355:提款機(30)的ATM系統執行風險控管,包括根據銀行的安全政策,控制交易的金額或交易之次數,以規避風險。若符合風險控管的安全政策,則執行步驟360,反之,則跳至步驟390,結束此次持卡人的交易;步驟360:提款機(30)的ATM系統根據請求交易的訊息產生授權請求碼(Authorization Request Cryptogram),傳送到銀行系統端,由實體ATM的銀行端系統(20)驗證之,實體ATM的銀行端系統(20)產生授權回覆碼(Authorization Response Cryptogram),回覆給提款機(30)的ATM系統,提款機(30)的ATM系統驗證授權回覆訊息,以確認授權之回覆,完成交易後,提供交易證明(Transaction Certificate)。
步驟390:結束交易。
上述的步驟325、330、335、340、345、及350形成「離線式持卡人身分認證程序(353)」。此類程序允許多種驗證方法的應用,包括驗證通行碼的輸入或驗證持卡人的指紋等,但是目前銀行系統大多採用離線的通行輸入之驗證。離線式持卡人身分認證程序可以提高晶片金融卡的安全性,也讓ATM系統的服務得以延伸,端末設備改以讀卡機取代實體ATM提款機,透過網際網路(Internet)連線到銀行形成網路ATM(Web ATM)系統,除了現金之匯兌業務外,其他服務都可以進行。
惟網路ATM系統利用網際網路傳遞持卡人端與銀行間的資訊,因而充斥駭客(hacker)的攻擊。為解決客戶電腦被駭客植入特洛伊木馬(trojan horse)程式(簡稱為木馬程式)的問題,部份銀行業者在網路ATM系統中加入「動態驗證碼(Dynamic Message Authentication Code,Dynamic MAC)」機制,銀行端系統接收持卡人端的交易項目後,傳回一個隨機產生的圖檔式驗證碼,顯示於持卡人端的螢幕,要求持卡人輸入與圖檔內容相同的文字或數字,確保網路ATM系統並非由駭客植入的程式所操控。
其次,持卡人可能在未取出晶片金融卡的情形下,於交易作業尚未完成時離開電腦,為了防範其他人趁著此一空檔冒用持卡人的身分執行交易作業,故網路ATM系統在送出持卡人輸入之驗證碼前,要求持卡人輸入通行碼進行離線身分認證。
第十三圖說明了網路ATM系統的交易程序,詳細說明如下:步驟410:持卡人(10)將晶片金融卡(150)插入讀卡機中,建立與網路ATM用戶端系統(11)的連線;步驟415:網路ATM用戶端系統(11)透過讀卡機讀取晶片金融卡記憶體之使用者基碼檔(140)所儲存的資訊;步驟420:網路ATM用戶端系統(11)依據步驟415所得之資訊來驗證晶片金融卡(150)之真偽,其驗證方法如同實體ATM所使用之方法,可包括SDA與DDA。若驗證後判斷為正確的晶片金融卡,則繼續執行步驟425。反之,跳至步驟490,結束此次持卡人的交易;步驟425:網路ATM用戶端系統(11)要求持卡人輸入通行碼,並將接收之通行碼透過與讀卡機間的溝通指令,送到晶片金融卡中進行驗證,進行如第十二圖程序353之「離線式持卡人身分認證」;步驟430:網路ATM用戶端系統(11)依據晶片金融卡(150)回傳通行碼驗證成功的訊息,繼續執行步驟435。或者,晶片金融卡(150)回傳通行碼驗證失敗的訊息,則跳至步驟490,結束此次持卡人的交易;步驟435:持卡人進入網路ATM用戶端系統(11),選擇所需要的交易項目,並送出交易請求到網路ATM銀行端系統(12)。一般而言,網路ATM用戶端系統(11)所提供的交易項目均已符合銀行所訂定的風險控管政策;步驟440:產生一組動態驗證碼,再轉換為圖檔的型態,將圖檔傳送到網路ATM用戶端系統(11)顯示;步驟445:網路ATM用戶端系統(11)並且要求持卡人(10)再進行一次「離線式持卡人身分認證」,避免交易過程中,中途離開,有人冒名進行交易;步驟450:網路ATM用戶端系統(11)依據晶片金融卡(150)回傳通行碼驗證成功的訊息,繼續執行步驟455。或者,晶片金融卡(150)回傳通行碼驗證失敗的訊息,則跳至步驟490,結束此次持卡人的交易;步驟455:網路ATM用戶端系統(11)要求持卡人(10)依所顯示之動態驗證碼輸入相同的訊息;步驟460:網路ATM用戶端系統(11)傳送持卡人於步驟455所輸入之訊息給網路ATM銀行端系統(12);步驟465:網路ATM銀行端系統(12)將所接收的動態驗證碼與步驟440所產生的動態驗證碼相比對;接著,如果動態驗證碼比對的結果是正確的,則傳送成功訊息到網路ATM用戶端系統(11)執行步驟470,完成此筆交易。若比對的結果不正確,則回應失敗訊息到網路ATM用戶端系統(11)執行步驟490,結束此筆交易。
除上述使用動態驗證碼的解決辦法外,銀行業者紛紛以第二代讀卡機取代第一代讀卡機,而新一代的晶片讀卡機已有螢幕及密碼鍵盤可供必要輸入,降低被木馬程式側錄通行碼的可能,但費用較高。
前述由晶片金融卡驗證使用者通行碼的「離線式持卡人身分認證程序」作法中,晶片金融卡中必須存有使用者通行碼,以驗證使用者輸入的通行碼是否正確。因此,為了防止使用者通行碼不因晶片金融卡遺失而被他人取得,晶片金融卡必須具有一定程度保護內存資料的能力。持卡人必須提供「使用者通行碼」與「晶片金融卡」等兩個認證因子(authentication factor)才能利用ATM系統進行交易,形成更具安全性的雙因子認證機制(two factor authentication),但因執行「離線式持卡人身分認證程序」之需要,晶片金融卡中必須存有使用者通行碼,因此,遺失晶片金融卡時,就相當於兩個認證因子都遺失了。
雖然晶片金融卡具有一定程度保護內存資料的能力,但已有許多公開的技術可以直接攻擊強迫讀取晶片金融卡內的資訊,例如1996年9月份,Bellcore之資訊安全專家Boneh、DeMillo與Lipton發展的「故障分析攻擊」(hardware fault cryptanalysis);又如Paul Kocher在1996年於Crypto會議上發表基於密碼系統執行時間特性與秘密金鑰有關連性的時間分析(timing analysis);Cryptography Research公司的Paul Kocher、Joshua Jaffe與Benjamin Jun於1999年Crypto會議中發表簡單電力攻擊(Simple Power Analysis,SPA)與差異電力分析(Differential Power Analysis,DPA)兩種技術。此外,錯誤歸納(fault induction)、以及瞬間的電磁脈衝放射標準(Transient Electro-Magnetic Pulse Emanation Standard,TEMPEST)等方法,也是直接攻擊強迫讀取晶片金融卡內之資訊的技術。嚴格來說,將兩個認證因子放在一起的作法,並不完全符合雙因子認證機制的設計精神。
不論實體ATM系統和網路ATM系統,持卡人的身分認證方式都是使用「離線式持卡人身分認證」。在現行持卡人身分認證系統中,除了第一次登入時系統所產生的預設通行碼外,銀行系統端的系統管理者無法得知持卡人的通行碼,所有的風險都在晶片金融卡上。因此,在使用以晶片金融卡作為持卡人身分認證的過程當中,有必要加強保護儲存於晶片金融卡中的個人通行碼的安全。
本發明藉由一個隨機產生的認證秘密(a randomly generated authentication secret)與一個個人化秘密(a personalized secret)二者之結合的技巧來設計建置以晶片金融卡作為實體ATM或網路ATM系統(統稱為ATM系統)的持卡人身分認證機制,本說明書包含了方法、技巧、裝置以及系統等。
本發明中所謂之「隨機產生的認證秘密」,其產生的方法係主基碼儲存於發卡銀行的亂碼化設備中,所有的使用者基碼(DK)都是以主基碼搭配一輸入項來衍生的,該輸入項可為每個持卡人的唯一識別資料,如卡號等,而衍生的使用者基碼儲存於晶片金融卡的EEPROM中,除了透過晶片金融卡的權限控管防止未經授權人員取得基碼值外,晶片金融卡的實體防護機制同樣可確保其基碼之安全性,至於部分晶片金融卡可能使用之Session Key(SK)係由使用者基碼所衍生出,只在某個Session有效,無法重複使用,且通常儲存於RAM中,一般在晶片金融卡自讀卡機拔出時,基碼便同時消失,使用者基碼可依據銀行的應用範圍之需要而產生,其儲存在晶片金融卡中的記憶體區域則被稱為使用者基碼檔。
於本發明中,持卡人身分認證方法所提出的持卡人端秘密(user-side secret),也可看成是銀行系統中的使用者基碼,持卡人端秘密是藉由持卡人的通行碼(password)分割認證秘密計算而得,此持卡人端秘密是認證秘密的部份值,將此值永久儲存在晶片金融卡內,進行身分認證的程序中,持卡人端利用實體ATM提款機或讀卡機等等端末設備與晶片金融卡間的溝通指令,讀取持卡人端秘密;ATM系統利用持卡人通行碼和持卡人端秘密來重新回復認證秘密,作為ATM系統認證該持卡人身分之基礎。
本發明為解決晶片金融卡遺失時發生字典攻擊的風險,所以在晶片金融卡內已經不儲存認證秘密,改以持卡人端秘密取代之;以此為基礎,本發明進一步提出一種雙因子的安全認證方法作為認證持卡人身分的依據。
本發明實施於ATM系統時,持卡人必需持有晶片金融卡,以進行身分認證。本發明共具有三項特性:其一,係以一個「強認證秘密」(strong authentication secret)取代晶片金融卡片內的通行碼(password)作為新的認證秘密;其二,持卡人端使用兩個秘密來回復認證秘密,持卡人端的第一個秘密稱為「個人所選擇之秘密」(personalized secret),以SP 表示之,它是一個持卡人所選擇的通行碼,持卡人端的第二個秘密則稱為「持卡人端秘密」(user-side secret),以SU 表示之,持卡人端秘密是經由計算分割認證秘密所獲得的輸出值,並且存放於晶片金融卡記憶體中;其三,本發明應用在習用ATM系統的身分認證方式,不需要變更原有的銀行系統架構、資料結構和新增任何周邊硬體設備,也不需要改變現行晶片金融卡身分認證方式之處理流程。
另外,本發明使得猜測攻擊不容易成功,因為攻擊者必須猜測一個強秘密,或者竊取持卡人所擁有的兩個秘密才能冒用持卡人身分侵入ATM系統,本發明將一個強秘密分割成兩個部份是基於數論基礎,因此本方法將顯著地強化秘密的防護。
本發明引用了美國專利公開號2005/0081041文件中的三個轉換函數f1、f2與f3,利用此三個轉換函數對認證秘密進行分割及回復,該美國專利申請案之發明人也是本專利申請案的發明人之一。依據前述之公開文件的內容,f1、f2與f3可設定如下:Y=λ(x),其中,Y為單向雜湊函數輸出值;(1)U=f1(x)=λ(x)+β=Y+β,其中,x是輸入的變數值,它代表個人化秘密的一個數值例,λ是一個碰撞阻抗雜湊函數(collision-resistant hash function),此函數對任何輸入值皆會產生一個非負的整數,而β為一非負整數的常數,U為此轉換函數的輸出值,U又稱為數位秘密無關部份;(2)V=f2(f1(x),S)=(f1(x)+α×S)mod q,其中,x也同樣代表個人化秘密的數值例作為輸入變數,S是一個正整數,代表受保護的數位秘密,q是大於數位秘密S所有數值例的正整數,也大於所有個人化秘密輸入值所產生的雜湊值,α是一個與q互質的正整數,f1(x)和S是第二轉換函數f2的二個輸入值,而V是第二轉換函數的輸出值,V又稱為數位秘密相關部份;(3)S=f3(f1(x),V)=(α-1 ×V+((-(α-1 ×f1(x)mod q))mod q))mod q,其中f1(x)、V、q、α和S如同上述定義,α-1 則是α在mod q之模運算的乘法反元素。
f1的公式設定可讓個人化秘密的選擇具有彈性,舉例來說,它可以是一個由持卡人所選擇的個人化通行碼,或者是一個個人識別碼(Personal Identification Number,PIN),也可以是數個秘密的結合,如持卡人通行碼和特定裝置識別碼(device-specific code)的組合。
本發明應用前述分割與回復的方法於ATM系統的持卡人身分認證,其實施例說明如下:認證秘密,以S表示,可以是發卡銀行之亂碼化設備所輸出的使用者基碼之一,其產生是以主基碼和一個隨機亂數(或虛擬隨機亂數)作為亂碼化設備的兩項輸入,最後輸出一使用者基碼作為認證使用者的基礎,故稱為認證秘密。
認證秘密的驗證值,以SV 表示,是認證秘密經過兩次雜湊函數運算所輸出的雜湊值,用以取代原本的通行碼檔中所存放的通行碼驗證值,作為新的驗證值。
持卡人的第一項秘密,以Sp 表示,是f1的一項獨立的輸入值,因此,可允許持卡人自主地(discretionarily)選擇這個秘密,而通行碼是一種持卡人容易記憶的選擇。在f1是一個碰撞阻抗雜湊函數的假設之下,此選擇是非常有彈性的,舉例來說,假設f1(x)=SHA-256(x),那麼此選擇可以是任何小於2256 位元長度的一個數位秘密。這樣的彈性創造了許多應用情境。例如持卡人的第一項秘密Sp 可以是持卡人所選擇的通行碼以及裝置識別碼的結合,如此一來持卡人登入可被限制於使用特定的裝置;另外,持卡人之生物特徵(例如指紋),經特定裝置將其數位化之後,可視為第一個持卡人端秘密Sp 或是Sp 的一部份。在某些實施例中,SP 可以是多項秘密的組合;舉例來說,Sp 可能是持卡人通行碼、特定裝置識別碼、與合法持卡人的生物特徵等三項資料中至少二項之結合。Sp 被稱為個人化秘密,因為在實際的實施例中,例如持卡人通行碼等個人化的選擇是這個秘密最常見的形式。
持卡人的第二項秘密,以SU 表示,是認證秘密之分割過程的一個輸出值,因為它會在持卡人端進行登入過程時被使用到,所以SU 也稱為持卡人端秘密。這個秘密必須儲存於持久性記憶體中,本發明係將持卡人端秘密儲存於晶片金融卡內的記憶體中。
上述設計,只改變目前晶片金融卡中儲存的驗證值,餘皆與現行的方式相同,並不需要在銀行發卡系統端作任何軟硬體的改變。
一般而言,持卡人所選擇的通行碼通常被認為是一個弱秘密(weak secret);相對的,由隨機亂數產生的秘密是一項強秘密(strong secret)。本發明中的認證秘密即為強秘密。
認證秘密經過兩次雜湊函數運算所輸出的雜湊值會是一個落於某特定範圍內之非負整數,其範圍是依據所選擇的單向雜湊函數所決定,例如,SHA-256會產生小於2256 的非負整數。由於單向雜湊函數在計算上是無法反推的,因此,以認證秘密雜湊值作為驗證值可以確保認證秘密的機密性,因為沒有任何人可以輕易地由一個已知的雜湊值來推導出原本的輸入值。以認證秘密的兩次雜湊值作為驗證值,主要是為了避免與銀行持卡人資料庫中的註冊秘密重覆,其原理將於後續之詳細說明內容中,予以更進一步闡明。
更具體地說,在本發明之持卡人認證方法中,當持卡人希望利用端末設備來執行金融作業時,ATM系統所進行的持卡人身分認證程序仍是要求持卡人插入晶片金融卡,並輸入正確的通行碼。對持卡人而言,其程序與現行ATM系統的持卡人身分認證程序相同,但實際解決了持卡人遺失晶片金融卡的風險,加強了使用實體ATM或網路ATM時的安全性。
此方法比習用方法安全性增強原因在於,晶片金融卡中所儲存的驗證值是認證秘密之雜湊值,而非認證秘密,且持卡人必須提供兩項輸入來回復此認證秘密,此兩項輸入係作為回復認證秘密的計算程序中所使用的個人化通行碼與儲存在晶片金融卡中的持卡人端秘密;由回復的認證秘密之雜湊值比對晶片金融卡內的驗證值,於持卡人端進行離線自我驗證,並根據驗證的結果來決定是否允許或拒絕持卡人進入銀行ATM系統。
利用持卡人所選擇的通行碼作為第一項秘密,即個人化秘密,可以滿足一般使用上的需求;據此,兩項持卡人端輸入的第一項輸入即為持卡人輸入之通行碼。在此值得注意的是,持卡人輸入的通行碼並非利用正確的通行碼之衍生值來進行驗證,所被驗證的資訊是回復之認證秘密。個人化通行碼除了合法持卡人知道外,其他人並無法得知,故只有持卡人本身才能回復認證秘密,風險程度完全在持卡人掌握中,此方法具體解決了現行持卡人遺失晶片金融卡後的風險。
本發明所說明的持卡人認證機制與系統,允許持卡人改變在處理持卡人身分認證的計算程序中所使用到的秘密;在此,有三個可供選擇的方式:(1)分別以新的秘密作為新的認證秘密與新的個人化秘密,並據此更新持卡人端秘密;(2)以新的秘密作為新的認證秘密,並據此更新持卡人端秘密,但保持個人化秘密不變;(3)更改個人化秘密,並據此更新持卡人端秘密,但認證秘密保持不變。本發明為與習用銀行系統結合,並且在不改變現行程序的原則下,所描述的實施通行碼變更的程序則是採用上述(3)的方法。持卡人在變更通行碼時不需要變更銀行系統端的強認證秘密,且通行碼也不需要傳遞到銀行端系統。
本發明所述之實施例中之另一特性係使用隨機亂數或虛擬隨機亂數作為計算認證秘密的輸入值之一。前述隨機亂數、虛擬隨機亂數之產生已有許多習用方法,故於此不再贅述。
一個真正的亂數產生器需要有一個本身具有隨機性的來源。設計一個硬體裝置或軟體程式來製造隨機性來源,以產生無規則可循且無相關性的位元是一件困難的任務。有數個可以達成此目的的硬體設計方法可供選擇,因均係習用設計方法,亦不擬於此詳加細述。
設計一個亂數產生器的軟體比設計一個硬體的亂數產生器來的更加困難,軟體的亂數產生器可以使用到包括系統時脈(system clock)、敲擊鍵盤與滑鼠移動間的時間差(elapsed time between keystrokes and mouse movements)、作業系統的系統負載與網路統計資料的數值(operating system values such as system load and network statistics)等系統程序。一個好的軟體亂數產生器應多多利用各種具有隨機性的來源,對每一個來源進行抽樣,然後將抽樣結果所得的資料序列,利用一個複雜的混合函數予以結合;在此,可使用的混合函數,可以是碰撞阻抗雜湊函數如SHA-1與MD5等。
在許多實際的應用中,虛擬隨機位元產生器(pseudorandom bit generator)通常用來替代真正的隨機位元產生器(true random generator),利用虛擬隨機位元產生器產生的虛擬隨機亂數來取代隨機亂數。虛擬隨機位元產生器是一個輸出非隨機性的(deterministic)演算法,此演算法透過給定一個真正的隨機位元串列(truly random binary sequence)為輸入,我們假設輸入的位元串列之長度為m,並假設輸出一個n>>m長度的隨機位元串列(n>>m指是的n遠大於m),而此演算法的輸入稱之為種子(seed)。ANSI X9.17與FIPS 186是兩個產生虛擬隨機位元與亂數的標準方法,還有其他的方法是使用倍數同餘虛擬亂數產生器(multiplicative congruence pseudorandom number generator)。而本發明之銀行發卡的安控系統中已經設計一套隨機亂數器系統,可以直接應用於本發明實施例中。
下文配合十個圖示來說明本發明之實施方式。
請參閱第一圖,其係認證秘密的產生流程圖,包括以下步驟:步驟510:發卡銀行的亂碼化系統(500)中已有N個使用者基碼衍生值,新增一個使用者基碼衍生值,則表示為PANN+1 。此值的計算方式是一個由亂數產生器(random number generator)所產生的數值,此亂數產生器為發卡安控模組內建的指令;步驟520:接收前一步驟的輸入值和儲存於亂碼設備中的主基碼,作為使用者基碼演算法的兩個輸入值,計算出使用者基碼(110);步驟530:接收來自前一步驟所計算出第n+1個使用者基碼DKn+1 ,以DKA 表示之,此值即為本發明之強認證秘密(540)。
接下來參考第二圖,其主要目的是說明銀行發卡系統的兩項主要工作。在工作一(610)中,銀行發卡系統為持卡人隨機產生一個使用者基碼,以DKA 表示,該使用者基碼除了作為認證秘密之外,亦以其雜湊值(hash value)作為註冊秘密(registered secret),儲存於銀行發卡系統端持卡人資料庫;在工作二(620)中,銀行發卡系統為持卡人準備一個持卡人端秘密及一個認證秘密的驗證值,儲存於持卡人的晶片金融卡中,以為持卡人進行身分驗證時所用。
參閱第三圖,工作一(610)包括以下步驟:步驟710:在發卡安控模組系統(ISAM)(700)執行步驟710,執行安控指令,產生一個隨機亂數;步驟715:由前一步驟產生的隨機亂數和主基碼作為輸入值,經過基碼演算法計算出使用者基碼(或稱認證秘密(DKA ));步驟720:依據所選擇的單向雜湊函數來計算認證秘密DKA 的雜湊值,即Hash(DKA );步驟725:將持卡人銀行帳號及計算所得的雜湊值傳送予資料庫;步驟730:在資料庫執行註冊步驟,將接收到的雜湊值作為註冊秘密,連同接收到的持卡人銀行帳號,儲存於持卡人資料庫(750);步驟735:傳送一個註冊確認訊息予發卡安控模組系統;步驟740:在安控模組系統執行進入銀行發卡流程的工作二(620)。
工作一(610)完成後,工作二(620)會接收其認證秘密DKA 、持卡人銀行帳號等資料。
參閱第四圖,工作二(620)包括以下步驟:步驟810:由工作一(610)取得認證秘密DKA 、持卡人銀行帳號後,並在發卡安控模組系統(700)產生一個亂數做為預設的個人化秘密SP ;步驟820:藉由計算式SU =f2(f1(SP ),DKA )來得到持卡人端秘密SU ,其中f1與f2是兩個用以分割認證秘密的轉換函數;步驟830:持卡人端秘密SU 也是一個使用者基碼,作為一個認證資料,執行安控模組指令將此值更新到晶片金融卡(150)之記憶體的使用者基碼檔(140)中;步驟850:計算認證秘密的二次雜湊值,即Hash2 (DKA )=Hash(Hash(DKA ));步驟860:將此二次雜湊值增加於晶片金融卡(150)之記憶體中的驗證值檔(870)。
認證秘密的二次雜湊值是為了在持卡人端可以離線進行驗證所作的準備,它是持卡人端所用到的驗證資訊,為了與原本的通行碼驗證值區別,可另稱為持卡人驗證值;而晶片金融卡(150)之記憶體佈局中的驗證值檔(870)即是原本的通行碼檔(260)。
使用Hash2 (DKA )而非Hash(DKA )作為驗證資訊是為了避免與銀行端的資訊的重複;根據單向雜湊函數在計算上是無法反推的特性,洩露了Hash2 (DKA )並不會有助於猜測Hash(DKA ),而Hash(DKA )是在銀行系統端所註冊的秘密且必須保密的。
再次回顧第四圖,步驟820的計算式SU =f2(f1(SP ),DKA ),其係先計算f1,再計算f2,以產生持卡人端秘密SU ,其中第一轉換函數f1應為碰撞阻抗雜湊函數。就安全的需要而言,f1並不一定需要具有在計算上是無法反推的特性,因為當攻擊者已經知道f1的輸出值時,就不需要利用f1的輸出值來推導出輸入的個人化秘密;不過將f1設計成碰撞阻抗雜湊函數使其具有計算上無法反推的特性仍然有其益處,f1具備了此一特性後,將得以有效地擴展其輸入值之空間範圍,例如SHA-1可接收任何長度小於264 bits的訊息為輸入(見:Federal Information Standards Publication 180-1,Secure Hash Standard,1995.),264 bits的訊息長度已足以提供個人化秘密選擇上的彈性。
選擇個人化秘密作為第一轉換函數f1的輸入之彈性,可以衍生各式各樣有用的應用情境,例如個人化秘密可以是持卡人所選擇的通行碼與特定的裝置識別碼的組合,如此持卡人必須要擁有特定的裝置才能進行登入;另一個例子是持卡人之生物特徵的數位資料如指紋等可以是個人化秘密的全部或一部分,如此利用生物特徵來辨識持卡人的方式將成為登入程序的一部份。除了上述實例外,其它的應用情境也是可能的。
在步驟820中,持卡人端秘密SU 的計算也使用了第二轉換函數f2,其公式設定如下:持卡人端秘密SU =f2(f1(SP ),DKA )=(f1(SP )+α×DKA )mod q,其中,q是一個大於所有認證秘密DKA 數值例的整數常數,α是一個與q互質的正整數,而參數α與q並不需要保持機密。
在銀行系統註冊持卡人端秘密程序完成後,再經由發卡程序將認證資料儲存在晶片金融卡,此認證資料即由持卡人端秘密SU 與認證秘密的二次雜湊值Hash2 (DKA )所組成。
在現行的晶片金融卡持卡人認證方法中,持卡人變更通行碼時並不需與銀行系統有連線程序。延續此一特色,為了讓持卡人得以離線變更通行碼,本發明提出了一種更新的方法,認證秘密與銀行端的註冊秘密保持不變,藉由變更通行碼為新的秘密來啟動持卡人端秘密之更新。
接下來將說明處理持卡人要求變更通行碼的方法。第五圖以持卡人變更銀行預設的通行碼為例,說明持卡人端變更通行碼的兩項工作。
參閱第五圖,在工作三(910)中,持卡人輸入銀行給予的預設通行碼,經計算回復認證秘密(DKA ),並在持卡人端進行驗證;在工作四(920)中,通過持卡人端的驗證之後,持卡人輸入一變更通行碼,並將該通行碼與被回復的認證秘密作為輸入值以獲得新的持卡人端秘密,進行變更晶片金融卡內原儲存的持卡人端秘密。
參閱第六圖,工作三(910)包括以下步驟:步驟1010:在持卡人端(1000)執行將晶片金融卡(150)插入端末設備中,例如實體ATM系統的提款機或網路ATM系統的讀卡機,並且輸入一個銀行給予的預設通行碼(PWD);步驟1020:ATM系統內的安控模組(1060)接收前一步驟的輸入值,執行了f3(f1(PWD),SU )之計算以回復認證秘密;步驟1030:利用所選擇的單向雜湊函數從已回復的認證秘密來計算持卡人端認證秘密的二次雜湊值;步驟1040:執行持卡人端離線驗證工作(參閱第七圖所示)。驗證成功後,則進入工作四(920),驗證失敗後,則執行步驟1050,在相同的持卡人端(1000)再次輸入預設通行碼重新進行認證。
在步驟1020中,回復的計算使用了一個複合轉換式,此複合轉換式先計算f1,接著再計算f3。f1如先前的說明中所定義,第三轉換函數f3的定義如下:DKA =f3(f1(PWD),SU )=(α-1 ×SU +((-(α-1 ×f1(PWD)mod q))mod q))mod q
在此,PWD是在步驟1020所接收到的通行碼輸入值,持卡人端秘密SU 是在步驟1020所接收到晶片金融卡(150)內中所取得的,而q與α同f2公式之定義,DKA 是回復的認證秘密。
參閱第七圖所示,持卡人端離線驗證之工作包括以下步驟:步驟1110:ATM系統內的安控模組(1060)以回復的認證秘密來計算一項二次雜湊值Hash2 (DKA );步驟1120:讀取晶片金融卡(150)中記憶體之驗證值檔中的持卡人驗證值;步驟1140:將計算所得的二次雜湊值與取得的持卡人驗證值相比對;如果比對的結果是正確的,則執行通行碼變更處理程序:工作四(920),若比對的結果不正確,則返回至第六圖之步驟1050,再輸入一次預設通行碼。
在工作四(920)中,變更持卡人之通行碼的詳細過程如第八圖所示,包括以下步驟:步驟1210:在持卡人端(1000)輸入一個新的個人化的通行碼,表示為SP,new ;步驟1220:ATM系統內安控模組(1060)接收來於前一步驟的輸入值SP,new ,也接收來自第六圖中步驟1020回復的認證秘密DKA ,將新的持卡人個人化通行碼SP,new 與回復的認證秘密DKA 作為輸入值以獲得新的持卡人端秘密SU,new ,公式為:新的持卡人端秘密=f2(f1(新的個人化通行碼),回復的認證秘密;步驟1230:將新的持卡人端秘密SU,new 更新到晶片金融卡記憶體(1240)內,取代原始的持卡人端秘密SU ,ATM系統接收到晶片金融卡的成功回應訊息後,傳送一個成功訊息告知持卡人端,結束通行碼變更程序。
本發明之實現僅需在習用銀行發卡系統中進行少許的改變,包括:(1).在發卡安控模組系統(ISAM)中增加產生認證秘密的方法,如其產生過程如第一圖所示,其中,亂數產生的方法已是現行發卡安控模組內建的指令;(2).將晶片金融卡中現行的通行碼檔所儲存之內容置換為本發明中所述的驗證值,即認證秘密的二次雜湊值,因此,必須在發卡安控模組系統中增加雜湊函數,例如MD2、MD5、SHA-1、SHA-256、SHA-384或SHA-512;(3).在晶片金融卡中增加一個作為持卡人端秘密的使用者基碼。由於持卡人端秘密的計算必須使用本發明所描述之分割方法,因此,必須在發卡安控模組系統中增加該分割方法所使用的f1與f2轉換函數。
承上所述的改變,於現行發卡安控模組系統中實現本發明之內容時,所需的工作如第九圖所示,包括:工作五(1310):發卡系統產生一個使用者基碼作為認證秘密,其詳細程序如第三圖之步驟710及步驟715所示。此一工作的執行過程及所需指令均為現行發卡安控模組系統的現有作業與功能;工作六(1320):接收工作五(1310)所產生的認證秘密,並計算該認證秘密之雜湊值作為持卡人的註冊秘密,其詳細程序如第三圖之步驟720、步驟725、步驟730、及步驟735所示。此一工作的執行過程是為了實現本發明之內容所新增,包括必須於發卡安控模組系統增加一單向雜湊函數,例如MD2、MD5、SHA-1、SHA-256、SHA-384或SHA-512;工作七(1330):由發卡安控模組系統產生一隨機亂數作為持卡人的預設通行碼,並與工作五(1310)中所產生的認證秘密作為本發明所引用之分割方法的二項輸入,分割方法的輸出值則作為持卡人端秘密,存入晶片金融卡的使用者基碼檔中,其詳細程序如第四圖之步驟810、步驟820、及步驟830所示。此一工作的執行過程是為了實現本發明之內容而新增於現行發卡系統,包括必須於發卡安控模組系統增加分割方法所使用的f1與f2轉換函數;工作八(1340):計算工作五(1310)中所產生之認證秘密的二次雜湊值,存入晶片金融卡的通行碼檔,作為驗證持卡人是否有能力回復認證秘密之驗證值,其詳細程序如第四圖之步驟850及步驟830所示。此一工作的執行過程是為了實現本發明之內容而對現行發卡系統所做的變更,計算二次雜湊值所需的單向雜湊函數,同工作六(1320)中所使用之單向雜湊函數;藉由認證秘密來建立晶片金融卡、ATM系統、及銀行系統四者之間的關聯性,此一刻意的設計是本發明所描述的實施例中所具有的一項特性。更具體地說,一個持卡人與ATM系統之間可透過認證秘密的連結來建立。本發明持卡人認證方法之雙因子認證示意圖如第十圖,詳細說明如下:本發明之持卡人身分認證具有雙因子認證的特性,其持卡人(10)的兩個認證因子分別是晶片金融卡(150)和個人化秘密SP (1420)。晶片金融卡(150)是第一個認證因子,其記憶體中儲存了一個持卡人端秘密SU (1415),係由認證秘密DKA 之分割而得,故持卡人端秘密SU (1415)與認證秘密DKA 具有關係;個人化秘密SP (1420)可以是持卡人自主性選擇的個人化通行碼,為第二個認證因子。當端末設備(1425),即實體ATM的提款機或網路ATM的讀卡機,接收到此兩個認證因子輸入後,便可得到兩個秘密,即SP 與SU ;隨後,ATM安控系統(1430),利用三個轉換函數,回復認證秘密DKA (1435)。
上文之描述表達了一個合法的持卡人必須同時提出正確的晶片金融卡和正確的個人通行碼,才能回復正確的認證秘密來通過身分認證,而後與銀行端系統(1440)建立連線。在執行ATM交易時,銀行端系統(1440)接收到交易請求後,即至持卡人資料庫(750)中索引該持卡人之註冊秘密(1450),即認證秘密的雜湊值;最後,銀行ATM系統利用回復的認證秘密之雜湊值及註冊秘密作為對稱式密碼金鑰,藉由進行挑戰與回應程序驗證此次交易授權,並完成此次交易相關訊息之傳送。
如本發明所設計之登入程序,持卡人端驗證技巧(user-side validation technique)是在持卡人端執行。所謂持卡人端驗證是與一驗證實訊(a verifier)作比對,而驗證資訊必須提供給持卡人登入之處的處理器。那麼什麼是驗證資訊呢?在此實施例中,持卡人端儲存了Hash(Hash(SA ))作為比對用的驗證資訊;也就是說,認證秘密SA 經過兩次雜湊運算後得到的二次雜湊值(double-hashed value)被儲存於晶片金融卡的記憶體中,作為驗證資訊之用。因為這裡所提的雜湊函數具有單向的特性,沒有人可以從第二次雜湊值Hash(Hash(SA ))做反向運算來獲得第一次的雜湊值,在這樣的實施例中,持卡人端的驗證資訊的洩漏並不會危及銀行系統端的安全。
在本發明中,晶片金融卡中只儲存與認證秘密相關的部份資訊,即持卡人端秘密,而另一個部份秘密則是只有合法持卡人才知道正確的通行碼。在持卡人端,持卡人現在可以利用兩個秘密來存取銀行ATM系統:一個是個人化秘密SP ,另一個是持卡人端秘密SU 。雖然晶片金融卡本身就具有一定的保護作用,可保護持卡人端秘密SU ,但萬一持卡人不小心遺失了晶片金融卡,也被破解存取到持卡人端秘密SU ,但是另一個個人化秘密SP 是儲存在持卡人的記憶中。得知持卡人端秘密SU 的非法持卡人仍然無法通過身分認證,竊取持卡人銀行的帳戶存款。本發明之技術分別地保護兩個秘密,顯著地強化秘密的防護。
對於持卡人而言,持卡人持有晶片金融卡並記憶通行碼便能登入銀行ATM系統,完全和現行操作相同。持卡人將晶片金融卡插入登入裝置,例如ATM提款機或讀卡機等端末設備,進行身分認證過程。登入裝置一旦接收到持卡人端兩個輸入值後,隨即執行如發卡程序中所定義的第一轉換函數f1將第一持卡人輸入值轉變為轉換後持卡人輸入值,接下來將轉換後持卡人輸入值與第二持卡人輸入值作為第三轉換函數f3的輸入值以產生一個輸出值。第三轉換函數f3與第二轉換函數f2具有可逆的關係,如此才能還原認證秘密,f3的表達公式如下:輸出值=f3(轉換後持卡人輸入值,第二持卡人輸入值)=(α-1 ×(第二持卡人輸入值))+((-(α-1 ×(轉換後持卡人輸入值)mod q))mod q))mod q,其中α-1 與q如先前所定義的;接著,持卡人登入裝置計算第三轉換函數輸出值的雜湊值作為持卡人端雜湊值,當持卡人端雜湊值與儲存在晶片金融卡內驗證值相等時,才表示目前確實為合法持卡人,才允許持卡人存取系統的請求,否則拒絕持卡人的存取請求。
雖然認證秘密扮演了核心的角色,但是,認證秘密並不需持久性地存在。我們可以在發卡程序、持卡人登入、與通行碼更新過程的相關計算完成後即將認證秘密由個別記憶體中予以刪除,不需要儲存認證秘密,銀行系統端只儲存認證秘密的一次雜湊值,從來不會有認證秘密之存在。
由於認證秘密是隨機產生的亂數,即使駭客直接猜測認證秘密,成功地猜對隨機產生的秘密純粹是一項機率問題。我們假設隨機產生的秘密的位元長度為160,則成功猜對的機率為2-160 ,假設猜測一次所花費的時間為一毫秒(10-3 秒),那麼成功猜測的預期時間為10-3 ×2160 ÷2秒,經過換算約等於10-3 ×1048 秒或1037 年;換言之,在合理的時間內成功地的猜對秘密的機率低到幾乎不可能,如此極度困難的猜測不但適用於線上攻擊也適用於離線攻擊。
依本發明的內容所實作之系統實施例,其優點包括:(1).在無法取得持卡人通行碼之的情形下,即使遺失晶片金融卡並遭破解,竊取持卡人端秘密僅能竊取持卡人所擁有的兩個秘密之一;晶片金融卡內的驗證資訊為認證秘密的二次雜湊值,沒有人可以從第二次雜湊值做反向運算來獲得第一次的雜湊值,不會危及銀行系統端的安全;而透過其他技巧如銀行內部人員侵入發卡系統來竊取通行碼也是困難甚至是不可能的,因為通行碼並不儲存於銀行系統端;(2).沒有特定通行碼的衍生值被儲存於銀行系統端。所謂通行碼的衍生值可以是通行碼的雜湊值、通行碼的密文、或者是將通行碼輸入單一輸入函數(single-input function)所獲得的轉換值。唯一與通行碼相關的儲存數值是組合第一與第二複合轉換函數轉換而來的持卡人端秘密,其中,此複合轉換式有兩項相互獨立的輸入值-通行碼與認證秘密。因為這項優良特性,本發明所提的方法不會留給攻擊者任何有關通行碼的線索。
在前述實施例中,藉由持卡人端驗證,持卡人端和系統端分擔驗證工作的責任,持卡人與銀行系統端皆負有安全防護的責任。持卡人端驗證之目的在於保證產生回應訊息所用的輸入值是正確的;而系統端之驗證則是用以保證存取之請求係來自合法的持卡人,而不是來自入侵者。
本發明所提出的持卡人端驗證技巧同樣也可以用於其它的持卡人認證之方法與系統。持卡人端驗證資訊可因應不同種類的方法而有不同的設定,例如當持卡人利用公開/私密金鑰對的私密金鑰來製造數位簽章作為對挑戰的回應,則持卡人端驗證資訊可以是相對應的公開金鑰;在此例中,系統端使用相同的公開金鑰作為系統端的驗證資訊。再舉一個例子,在以通行碼為基礎的傳統持卡人認證方法中,Hash2 (持卡人所選擇的通行碼)可以作為持卡人端的驗證資訊。
相較於將本發明實施於實體ATM系統,本發明於網路ATM系統之實作更為簡單,只需要更新銀行端伺服器的程式即可,無需像逐一更新所有實體ATM之提款機,可縮短建置時間,說明如下:應用網路程式的特性,將三個轉換函數實作成ActiveX元件,持卡人一但瀏覽銀行網路ATM的網址,自動會下載此元件到持卡人端的電腦,此時已下載的ActiveX就會利用持卡人端電腦的計算能力,來完成持卡人端的身分驗證。
依本發明的內容所實作之系統,其系統端與現行利用晶片金融卡為基礎之認證方法的系統端無異,但是在持卡人端,它們之間卻有很大的差異,舉例來說,本發明之實施例的持卡人端使用了三個轉換函數f1、f2與f3。三個轉換函數可以有多種設定的方法,舉例來說,第一轉換函數f1可設定為一個碰撞阻抗雜湊函數加上一個固定不變的正整數,如f1(SP )=Hash(SP )+β,如此設定的函式仍為一碰撞阻抗雜湊函數。參數β可以代表裝置識別資訊,以提供了另一層次的機密保護。
綜上所述,實施本發明所提之方法,不需大幅更改現行銀行的作業流程,而且無需增購任何硬體,與現行作法相比較並沒有增加任何的成本,此為本發明的主要特色,說明如下:在銀行發卡的程序上,將三個轉換函數設計於發卡安控模組上,便可產生持卡人端的秘密存入晶片金融卡,取代現行所儲存的通行碼,此部份只需要更新發卡設備中之發卡安全模組即可;另外,ATM系統只需要稍微更新,同樣加入三個轉換函數,便能在接收持卡人提供的兩個認證因子後,回復認證秘密,以驗證持卡人之身分。更進一來說,持卡人端的操作流程也沒有改變,所以本發明所提之方法可在短時間內實施於現存ATM系統,強化目前晶片金融卡的身分安全辦識,解決目前晶片金融卡作為持卡人身分認證所遭遇的威脅。
(305)(310)(315)(320)(325)(330)(335)(340)(345)(350)(355)(360)(390)(410)(415)(420)(425)(430)(435)(440)(445)(450)(455)(460)(465)(470)(475)(490)(510)(520)(530)(710)(715)(720)(725)(730)(735)(740)(810)(820)(830)(850)(860)(870)(1010)(1020)(1030)(1040)(1050)(1110)(1120)(1140)(1210)(1220)(1230)(1240)...步驟
(10)...持卡人
(11)...網路ATM用戶端系統
(12)...網路ATM銀行端系統
(20)...實體ATM銀行端系統
(30)...實體ATM系統提款機
(100)...亂碼化設備
(110)...主基碼
(120)...另一輸入值
(130)...計算過程
(140)...使用者基碼檔
(150)...晶片金融卡
(260)...通行碼檔
(353)...離線式持卡人身分認證程序
(500)...亂碼化系統
(540)...認證秘密
(610)...工作一
(620)...工作二
(700)...發卡安控模組系統
(750)...持卡人資料庫
(870)...驗證值檔
(910)...工作三
(920)...工作四
(1000)...持卡人端
(1060)...安控模組端
(1130)...持卡人驗證值
(1310)...工作五
(1320)...工作六
(1330)...工作七
(1340)...工作八
(1415)...持卡人端秘密
(1420)...個人化秘密
(1425)...端末設備(提款機或讀卡機)
(1430)...ATM安控系統
(1435)...認證秘密
(1440)...銀行端系統
(1450)...註冊秘密
第一圖:係本發明之其一例認證秘密產生流程圖。
第二圖:係本發明之銀行發卡系統的兩項工作示意圖。
第三圖:係本發明之持卡人註冊秘密的產生流程圖。
第四圖:係本發明之持卡人端秘密的產生流程圖。
第五圖:係本發明之持卡人端變更通行碼的兩項工作示意圖。
第六圖:係本發明之持卡人認證準備資訊流程圖。
第七圖:係本發明之持卡人端自我驗證流程圖。
第八圖:係本發明之持卡人變更通行碼流程圖。
第九圖:係本發明於現行發卡安控模組系統中實現所需的四項工作示意圖。
第十圖:係本發明之雙因子認證示意圖。
第十一圖:係習用發卡系統之實施例流程圖。
第十二圖:係習用晶片金融卡於實體ATM系統完成一筆交易的程序之發卡系統之實施例流程圖。
第十三圖:係使用晶片金融卡於習用網路ATM系統之交易程序圖。
(610)...工作一
(620)...工作二

Claims (26)

  1. 一種利用晶片金融卡於ATM系統的持卡人認證方法,其認證過程包含以下步驟:由持卡人的晶片金融卡上取得一預存值作為給予一ATM機器的一項輸入值;持卡人提供另一項輸入值給予該ATM機器;由該兩項輸入值經過一認證計算過程之計算所得的結果與預先儲存於晶片金融卡上的一個驗證值比對;比對如果相符,則該持卡人所請求的認證被准許。
  2. 如申請專利範圍第1項所述之方法,其中ATM系統為一個實體ATM系統。
  3. 如申請專利範圍第1項所述之方法,其中ATM系統為一個Web ATM系統。
  4. 如申請專利範圍第1項所述之方法,其中該認證計算包括一個單向雜湊函數、一個第一函數、一個第二函數及一個第三函數。
  5. 如申請專利範圍第4項所述之方法,其函數的設定如下:該單向雜湊函數設定為Y=h(y),y是輸入的變數值,h是一個碰撞阻抗雜湊函數,Y為此轉換函數的輸出值;該第一函數設定為U=f1(x)=Y+β,x是輸入的變數值,Y是該單向雜湊函數的輸出值,而β為一非負整數的常數,U為此轉換函數的輸出值;該第二函數設定為V=f2(f1(x),S)=(U+α×S)mod q,U是該第一函數的輸出值,模數q是大於S所有數值例的正整數,而α是一個與q互質的正整數;該第三函數設定為S=f3(U,V),U是該第一函數的輸出值,V是該第二函數的輸出值。
  6. 如申請專利範圍第4項所述之方法,其中該預存值是在一註冊過程中產生,其過程包括下列步驟:取得一個數值作為認證秘密;由該持卡人選擇一通行碼;以該認證秘密及該通行碼為兩項輸入值,經過該第一函數和該第二函數的一運算過程,產生該預存值。
  7. 如申請專利範圍第6項所述之方法,其中該認證秘密是一個隨機亂數。
  8. 如申請專利範圍第6項所述之方法,其中該認證秘密是一個虛擬隨機亂數。
  9. 如申請專利範圍第6項所述之方法,其中該認證秘密為ATM銀行系統端所產生的一個使用者基碼。
  10. 如申請專利範圍第6項所述之方法,該運算過程之詳細步驟為:以持卡人選擇之該通行碼作為該第一函數之輸入,以得到一個暫時值;以此暫時值與該認證秘密當作該第二函數的輸入,以計算該預存值;將該預存值預先儲存在晶片金融卡記憶體。
  11. 如申請專利範圍第10項所述之方法,進一步包含從相關計算的記憶體中刪除該認證秘密。
  12. 如申請專利範圍第6項所述之方法,其中註冊過程更包含一轉換過程,該驗證值是在該轉換過程所產生,且產生後之該驗證值係預先儲存在晶片金融卡記憶體。
  13. 如申請專利範圍第12項所述之方法,該轉換過程是經過該單向雜湊函數的兩次計算之輸出值。
  14. 如申請專利範圍第5項所述之方法,當ATM系統對持卡人進行身分認證時,其認證的計算過程包含以下步驟:該持卡人的輸入經由該第一函數轉換成一個輸出值;此輸出值與該預存值當作該第三函數的輸入;以該第三函數的輸出值,經由該單向雜湊函數的兩次計算以產生該認證計算過程之結果。
  15. 如申請專利範圍第14項所述之方法,進一步包含從相關計算的記憶體中刪除該認證秘密。
  16. 如申請專利範圍第14項所述之方法,該認證計算過程之結果是一個二次雜湊值。
  17. 如申請專利範圍第16項所述之方法,該二次雜湊值作為一個持卡人端雜湊值。
  18. 如申請專利範圍第17項所述之方法,進一步包含使用該持卡人端雜湊值比對該驗證值來允許或拒絕該持卡人的身分認證之請求。
  19. 如申請專利範圍第6項所述之方法,進一步包含變更該持卡人所選擇之通行碼的方法,包含以下步驟:在該註冊過程中,持卡人重新選擇一個新的通行碼作為該持卡人所選擇的通行碼;以該新的通行碼作為該第一函數的輸入值;以該第一函數的輸出值與該認證秘密當作該第二函數的輸入,以重新計算出一個新的預存值;以該新預存值取代原預存值,但該認證秘密與該驗證值保持 不變。
  20. 一種利用晶片金融卡於ATM系統的持卡人認證系統,其包含ATM機器可讀取的記憶體以存放ATM機器可執行的指令,該等指令將引導一ATM機器執行下列步驟:由持卡人的晶片金融卡上取得一預存值作為給予該ATM機器的一項輸入值;持卡人提供另一項輸入值給予該ATM機器;由該兩項輸入值經過一認證計算過程之計算所得的結果與預先儲存於晶片金融卡上的一個驗證值比對;當比對如果相符,則准許該持卡人所請求的認證。
  21. 如申請專利範圍第20項所述之持卡人認證系統,其中認證計算包括一個單向雜湊函數、一個第一函數、一個第二函數及一個第三函數。
  22. 如申請專利範圍第21項所述之持卡人認證系統,其函數的設定如下:該單向雜湊函數設定為Y=h(y),Y是輸入的變數值,h是一個碰撞阻抗雜湊函數,Y為此轉換函數的輸出值;該第一函數設定為U=f1(x)=Y+β,x是輸入的變數值,Y是該單向雜湊函數的輸出值,而β為一非負整數的常數,U為此轉換函數的輸出值;該第二函數設定為V=f2(f1(x),S)=(U+α×S)mod q,U是該第一函數的輸出值,模數q是大於S所有數值例的正整數,而α是一個與q互質的正整數;該第三函數設定為S=f3(U,V),U是該第一函數的輸出值,V是該第二函數的輸出值。
  23. 如申請專利範圍第22項所述之持卡人認證系統,其中該預存值是在註冊過程中產生,其過程包括該指令進一步引導該ATM機器執行:取得一個數值作為認證秘密;由該持卡人選擇一通行碼;以該認證秘密及該通行碼為兩項輸入值;以該通行碼作為該第一函數之輸入,以得到一個暫時值;以此暫時值與該認證秘密當作該第二函數的輸入,以計算該預存值。
  24. 如申請專利範圍第22項所述之持卡人認證系統,當ATM系統對持卡人進行身分認證時,其認證的計算過程包含該指令進一步引導該ATM機器執行:該持卡人的輸入經由該第一函數轉換成一個輸出值;此輸出值與該預存值當作該第三函數的輸入;以該第三函數的輸出值,經過一個轉換過程以產生該認證計算過程之結果;該認證計算過程之結果作為一個持卡人端雜湊值;用該持卡人端雜湊值比對該驗證值來允許或拒絕該持卡人的身分認證之請求。
  25. 一個電腦系統,包含可執行持卡人認證的ATM機器,其認證過程利用晶片金融卡上的一預存之輸入值及一通行碼輸入值作為兩項輸入值,並利用晶片金融卡上的另一預存值作為驗證值。
  26. 如申請專利範圍第25項所述之電腦系統,當ATM機器通過持卡人之認證之後,若持卡人之請求包括需要在一銀行系統端處理之交易,則將其交易請求傳送該系統端,由該系統端決定是 否處理所請求之交易。
TW97110143A 2008-03-21 2008-03-21 The use of wafer financial card in the ATM system cardholder authentication methods, systems and computer systems TWI383327B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW97110143A TWI383327B (zh) 2008-03-21 2008-03-21 The use of wafer financial card in the ATM system cardholder authentication methods, systems and computer systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW97110143A TWI383327B (zh) 2008-03-21 2008-03-21 The use of wafer financial card in the ATM system cardholder authentication methods, systems and computer systems

Publications (2)

Publication Number Publication Date
TW200836118A TW200836118A (en) 2008-09-01
TWI383327B true TWI383327B (zh) 2013-01-21

Family

ID=44819854

Family Applications (1)

Application Number Title Priority Date Filing Date
TW97110143A TWI383327B (zh) 2008-03-21 2008-03-21 The use of wafer financial card in the ATM system cardholder authentication methods, systems and computer systems

Country Status (1)

Country Link
TW (1) TWI383327B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201042487A (en) * 2009-05-22 2010-12-01 Univ Chaoyang Technology Remote identity authentication method for verification based on biometrics
TWI408938B (zh) * 2009-12-30 2013-09-11 Univ Vanung Flexible multi - digit signature method
TWI427574B (zh) * 2010-10-01 2014-02-21 Apex Internat Financial Engineering Res & Tech Co 金融認證系統
TWI801744B (zh) * 2020-06-24 2023-05-11 玉山商業銀行股份有限公司 具非接觸式認證的金融交易裝置、方法與系統

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW535114B (en) * 1999-04-30 2003-06-01 Ling-Huei Chen Safety interface for certification of personal identification document
US6871288B2 (en) * 2003-02-21 2005-03-22 Ronald K. Russikoff Computerized password verification system and method for ATM transactions
US20050125698A1 (en) * 2003-12-05 2005-06-09 Microsoft Corporation Methods and systems for enabling secure storage of sensitive data
TWI258969B (en) * 2004-07-28 2006-07-21 Pochin Technology Corp Security authentication method for web financial transaction
TWI261451B (en) * 2004-05-14 2006-09-01 Infoteam Technology Corp Transaction confirmation method and system transmitting on time password

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW535114B (en) * 1999-04-30 2003-06-01 Ling-Huei Chen Safety interface for certification of personal identification document
US6871288B2 (en) * 2003-02-21 2005-03-22 Ronald K. Russikoff Computerized password verification system and method for ATM transactions
US20050125698A1 (en) * 2003-12-05 2005-06-09 Microsoft Corporation Methods and systems for enabling secure storage of sensitive data
TWI261451B (en) * 2004-05-14 2006-09-01 Infoteam Technology Corp Transaction confirmation method and system transmitting on time password
TWI258969B (en) * 2004-07-28 2006-07-21 Pochin Technology Corp Security authentication method for web financial transaction

Also Published As

Publication number Publication date
TW200836118A (en) 2008-09-01

Similar Documents

Publication Publication Date Title
KR100864903B1 (ko) 일시적 모듈을 사용한 암호 인증
US8627424B1 (en) Device bound OTP generation
Hiltgen et al. Secure internet banking authentication
US20060036857A1 (en) User authentication by linking randomly-generated authentication secret with personalized secret
KR20080059617A (ko) 사용자 인증 방법 및 디바이스
Kumar A New Secure Remote User Authentication Scheme with Smart Cards.
US8195951B2 (en) Data processing system for providing authorization keys
BR112020007781A2 (pt) sistema e método para gerar e depositar chaves para autenticação multiponto
EP2598984A1 (en) System and method for generating a strong multi factor personalized server key from a simple user password
CN101517562A (zh) 通过多个模式对一次性密码的用户进行注册和验证的方法以及记录有执行该方法的程序的计算机可读记录介质
US8245040B2 (en) Secret authentication system
KR20120007509A (ko) 일종의 신분 인증 및 공유키 생성방법
CN109379176B (zh) 一种抗口令泄露的认证与密钥协商方法
Li et al. A robust remote user authentication scheme against smart card security breach
TWI383327B (zh) The use of wafer financial card in the ATM system cardholder authentication methods, systems and computer systems
CN107615797B (zh) 一种隐藏用户标识数据的装置、方法和系统
CN110866754A (zh) 一种基于动态口令的纯软件dpva身份认证方法
CN113302876A (zh) 使用禁用网络的设备与加密货币网络进行离线无拦截交互
Srinivas et al. An authentication framework for roaming service in global mobility networks
Lee et al. Improvement of Li-Hwang's biometrics-based remote user authentication scheme using smart cards
KR100986980B1 (ko) 생체 인증 방법, 클라이언트 및 서버
TWI381696B (zh) 基於利用個人化秘密的rsa非對稱式密碼學之使用者認證
Wagner et al. Remote WebAuthn: FIDO2 Authentication for Less Accessible Devices.
Doshi et al. A Novel Approach for Biometric Based Remote User Authentication Scheme using Smart Card
Xu et al. OTP bidirectional authentication scheme based on MAC address

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees