2010-11-12 62 views
20

我正在製作一個Web應用程序,並希望有一個安全區域,您只能用指紋登錄。我最初的想法是隻使用USB條形碼讀取器,然後掃描它,然後將ID輸出到文本框中,但這不是很安全。所以我想使用USB指紋識別器爲每個人生成一個散列,然後將其存儲在文本框中。然後用數據庫檢查每個人的散列值。有誰知道是否有指紋識別器可以做到這一點,或者我可以輕鬆地將讀者整合到網站中?我可以在我的網站上使用指紋掃描儀嗎?

編輯: 這個網站的想法是,它就像一個登錄系統(如果你每小時獲得報酬,你如何進出時鐘)。這個想法是,沒有人可以簽署其他人進出。如果你只是使用密碼,比別人可以告訴他們的朋友可以輸入密碼。這就是爲什麼我想到了一個指紋或類似的東西...我接受其他建議

另外,我使用PHP

編輯2:基本的想法是,我必須想出一種方法來證明有人在那裏通過簽入。我不想使用密碼,因爲然後有人可以告訴其他人他們的密碼輸入。還有其他建議嗎?它不一定是指紋。

+0

遠射,但也許你可以看看activeX的方向?這將不得不採取打印客戶端,那麼我想你可以上傳到服務器來驗證它? – 2010-11-12 22:39:35

回答

14

你不能做你想要的東西,確切地說。

指紋永不恰好與相符。即使您連續兩次掃描您自己的右手食指,掃描也不會相同。所以「散列指紋」將不起作用 - 同一個手指的兩個散列將與兩個不同手指的兩個散列(具有良好的,密碼強的散列)無法區分。

指紋識別器的工作原理是將一些鑰匙存放在車上,當且僅當指定的指紋足夠接近他們所期望的時間時才讓該鑰匙出來。指紋本身不用於直接訪問閱讀器外的任何內容。

通過網絡向讀者發送指紋是不可接受的 - 人們對將他們的照片發給警方感到緊張。你認爲他們會把它們交給你嗎?

也不能接受的是讓讀者說「手指2是好的」。這可能很容易被欺騙。

相反,讓您的用戶使用X.509(SSL)客戶端證書訪問您的網站。如果他們願意,他們可以通過指紋讀取器控制對私鑰的訪問。

編輯:更新這個答案。現在在2014年,FIDO聯盟制定了一個名爲「UAF」的標準,允許網站以跨不同網站的方式使用指紋認證。有傳言說Paypal即將開始使用它。

+0

如果在指紋匹配(或接近它)後輸出密鑰,那就沒有問題了,只是沒有人知道除數據庫之外的密鑰必須與之匹配(請參閱上面的編輯) – Bill 2010-11-12 22:43:56

+0

我同意,人們不會我不想分享他們的指紋,這就是爲什麼我在考慮哈希,因爲這是一個數字,除了數據庫執行身份驗證之外,對任何人都沒有任何意義。但我看到你對他們說的不匹配 – Bill 2010-11-12 22:45:50

+3

@Phil:使用智能卡。它們是爲你想要做的事而設計的。 – Borealid 2010-11-12 22:46:00

1

所以你想使用本地身份驗證機制來驗證遠程資源?這裏有很多問題來表明這不是一個明智的選擇。例如,Web應用程序如何知道哈希屬於原始用戶,而不是有重複的人?

我想建議的是去幾年前銀行的路線,當他們有智能卡讀取器發送給信用卡客戶。使用指紋掃描儀存儲用戶登錄名的本地副本,需要第二種形式的身份驗證,例如密碼。

2

生物統計學的遠程認證是從未安全。您無法知道帶有該指紋的真正手指是否在閱讀器中,或者用戶是否只向您發送圖像。因此,指紋就變成了用戶永遠不會改變的密碼,這對您登錄的每項服務都是一樣的,而且每個服務都留在用戶觸及的每個對象上。

生物特徵識別只能用於本地身份驗證,因爲您相信讀者不會被黑客入侵(即您擁有對讀寫器的物理控制權),讀者可以將真實的手指/眼睛/ ......與假的識別出來。其中最不能的。

可以創建指紋的單向散列。你首先必須提取一些可觀察量,就像你爲模糊匹配所做的那樣。但是因爲你需要一個哈希的精確匹配,你需要在你提取的值上拋出錯誤代碼,然後可以糾正每次測量的微小差異。編寫代碼並不容易,它不能解決上面列出的基本問題,但它應該是可能的。

17

生物識別技術是一個非常糟糕的方式有很多原因做認證:

  1. 他們基本上只是,你永遠無法更改密碼。 (至少不是沒有一些嚴重的痛苦!)使用傳統的密碼方案,如果你的密碼被盜或猜到了,你至少可以改變它。但是如果有人偷走你的指紋,現在你打算怎麼做?
  2. 生物識別技術並不是祕密。每次你碰到什麼東西時,你都會留下密碼。每次拍攝照片時,您的面部圖像/視網膜圖像都會被複制。密碼必須保密纔能有用。

  3. 就像Borealid說的,生物識別技術從來沒有兩次完全相同的掃描。所以當你進行匹配時,在允許輸入時必須有某種模糊因素。這個:

    1. 只是讓攻擊者更容易複製你的數據並重放它,因爲他們不必獲得完全匹配。攻擊者只需要靠近即可獲得接受。

    2. 它強制認證服務器以明文形式存儲您的生物特徵信息。您不能像生成密碼那樣對生物特徵數據進行哈希處理,因爲那樣您就必須與哈希值完全匹配。

所以千萬不要這麼做!

+0

我認爲生物識別技術仍然是多因素驗證的一個重要因素。 – Mohayemin 2018-02-28 09:04:24

1

這太假。爲什麼你不能加密指紋?你的主人被加密存儲,你發送一個加密的服務器。服務器軟件解密並進行比較。簡單。你的'專家'解決方案是虛假的。