銀行卡密碼為什麼為六位數字?

從演算法方面來分析。


由喬治.米勒7+/-2原理含義:

1.在不得重複練習的情形下(如看電視字幕),在短時記憶內,一般人平均只能記下 7 個項目(如 7 位數字、7 個地名),是故從電話簿上查到電話號碼後,待要撥號時往往會不復記憶。  2. 短時記憶的量雖不能增加,但此 7 個事項的性質則可經由心理運作使之擴大。如 2471530121987 是一長串數字,遠超過 7 的限制,但如經心理運作將之意義化,變成 24(小時) - 7(一星期) - 15((半個月) - 30(一個月) - 12(一年) - 1987(年),然後再記這長串數字就比較容易。米勒稱此種意義單位為組塊。學習英文時由字母而單字,由單字而短句,由短句而長句,都是將零碎信息 經心理運作變成多個組塊之後記下來的。

由喬治.米勒7+/-2原理可知銀行卡密碼最好設為5-9位,為了便於大多數人記憶稍小於平均值7,所以是6位.


接觸銀行多年表示以前的密碼不是6位,最早的時候只有3位,後來增加到4位,再到如今6位。

參照此條新聞:建設銀行正式淘汰4位密碼


6位數字,是一個權衡,包括 @何顯生 所說記憶要素等。

安全嗎?

1. 安全都是相對的,有密碼當然比沒有密碼安全。但單純6個數字,很容易窮舉。

2. 銀行卡的安全還依賴於磁軌信息(磁條卡),交易驗證規則等,風險都是相對的。

上面就是所謂雙因素驗證了。或者說雙憑據。

但支付技術發展到今天,交易場景和憑據手段都有很大發展,安全問題也應當從更廣的視角來看。

如果具體到電子交易,之前看到過一種實用標準,不記得出處了,僅供參考:

對於客戶端安全交易技術的評估,可以考慮用於安全的憑據個數,單純憑據有強弱之分,多個憑據組合可以得到更高的強度。

憑據應當是物理上相互隔離的,一般網路交易應要求至少2個憑據,3個可以視為非常高強度了。

比如,網銀交易可以在,密碼,簡訊驗證碼,證書(文件/UKEY),令牌中 n選2

新的憑據,如生物識別技術,交易欺詐偵測也可以用來加強安全效果,降低交易難度。

具體案例,可以參考支付寶應用的各種手段,以及常見的各種在線和離線支付。

安全的核心,就是在關於風險和便捷的交易量函數上,取得最大值的一個權衡。


從演算法方面分析是回答不了你這個問題的。

有兩個原因可能性最大:

一、人的工作記憶能力是有限的,平均為7位數字。考慮到老年人和記憶能力差一些的人,6位數字作為密碼最為合適:能保證一定的強度,不容易遺忘。

二、由於上述的原因,在最初設計時,制定的6位數字密碼的方案延用至今。如果調整長度,很多銀行的後台資料庫需要做相應調整,工作量巨大,且容易出錯。

雙因素認證,只要有一個因素強,安全性就可以得到保證。磁條卡容易複製,如果6位密碼設計過於簡單,或者在使用時被別人窺視,兩個因素都丟了,確實是很容易出問題。

現在的思路是加強物這一因素的安全強度,比如用USBKEY,再比如,符合PBOC2.0標準的IC卡金融卡已經開始替換原有磁條卡了。


因為銀行卡驗證是 two-factor authentication。另一個 factor 是卡片磁條。

http://en.wikipedia.org/wiki/Two-factor_authentication

對其中的 one-factor 強度要求不高。


推薦閱讀:

如何解決法律在互聯網環境下的滯後性問題?
為什麼國內的小型生鮮配送沒有發展起來?
Web 是什麼意思?
為什麼互聯網公司里不論多醜的男人都有妹子了?
大家是怎樣確定自己到底想做什麼的?或者說自己適合做什麼?

TAG:互聯網 | 演算法 | 編程 | 網路安全 | 計算機 | 安全 | 密碼 |