Keys

PUF 中的輔助數據認證

  • October 25, 2016

據我了解,PUF 通過使用兩個過程來工作:生成和複製。一代讀取一個值 $ w $ 從一個模糊的來源並生成一個密鑰 $ R $ 和輔助數據 $ P $ . 然後,在復製過程中,它讀取 $ w’ $ 從模糊來源,並使用 $ P $ , 能夠恢復 $ R $ .

我的問題是:這似乎假設 $ P $ 可以安全儲存並且可以進行身份驗證,因為如果攻擊者更改了值 $ P $ 然後他可以強制系統使用不同的密鑰。如果您一開始就沒有鑰匙,怎麼能做到這一點?還是我錯過了什麼?

(我遵循了Maes、Tuyls 和 Verbauwhede的A Soft Decision Helper Data Algorithm for SRAM PUFs 中的符號。)

這與我們向網站驗證自己的方式非常相似。在註冊期間,網站必須儲存足夠的資訊,以便在將來的某個時間說服自己現在嘗試進行身份驗證的人與過去某個時間註冊的人是同一個人。對於線上服務,這通常涉及儲存密碼的某些功能。線上服務還希望確保儲存的資訊安全儲存(即未經授權的實體無法獲取)和經過身份驗證(即未經授權的各方無法更改它)。否則身份驗證將失敗。

使用 PUF 幾乎是一樣的。您通過提取向系統註冊 PUF $ R $ 和 $ P $ 從 $ w $ . $ R $ 和 $ P $ 然後將儲存在例如數據庫中。當再次使用 PUF 進行身份驗證時,服務將讀取 $ w’ $ , 拉 $ P $ 從數據庫中執行複製程序以獲取 $ R’ $ . 然後它可以拉 $ R $ 從數據庫中查看是否 $ R==R’ $ . 如果是這樣,則身份驗證成功並授予訪問權限。

你如何保護 $ R $ 和 $ P $ 從生成階段由您決定。它還取決於您的偏執程度、服務的價值、您的威脅模型等。對於某些人來說,只需將它們儲存在(希望)只有他們有權讀取的數據庫中就可以了。其他人可能想要對這些值進行加密和簽名。

應當指出的是 $ P $ 是公共價值。為了系統的安全,它不需要保密。但是,正如您所指出的,如果有人篡改 $ P $ ,他們可以欺騙系統驗證錯誤的一方。等效地,如果我使用登錄憑據更改儲存在數據庫中的雜湊,我現在可以成為那個使用者。

主動攻擊者更新

當您允許對手進行修改時,事情就會變得棘手 $ P $ . AFAIK,不能保證攻擊者不能修改 $ P $ 以一種扭曲的方式(例如,公開揭露 $ R $ )。而且我不知道有任何 PUF 研究可以緩解這個問題。

幸運的是,PUF 和生物辨識技術非常相似。

  1. 兩者都是雜訊源
  2. 兩者都需要使用模糊提取來處理雜訊

鑑於此,希望以下內容至少有助於解決問題。

在 Boyen 在“具有雜訊數據的安全性”一書中的“Robust and Reusable Fuzzy Extractors”中,Boyen 解決了類似的問題。從章節:

不幸的是,普通的模糊提取器不能解決可以修改的主動對手的問題 $ P $ 惡意的,無論是在儲存伺服器上還是在傳輸給使用者的過程中。

我還沒有完全理解這項工作的細節,所以我覺得嘗試描述算法和協議並不明智。

注意:該章節的大部分內容似乎取自 Boyen 和他的一些同事題為“使用生物特徵數據進行安全遠端身份驗證”的論文。但是,我尚未閱讀該論文以確認您可能正在尋找的所有細節都在那裡。

引用自:https://crypto.stackexchange.com/questions/1727