Authentication

是否有人類可讀的更簡單的版本來表示 PGP 私鑰?

  • August 31, 2019

我正在開發一個分佈式應用程序,我們需要一種授權客戶端的方法。每個客戶端都有一個與之關聯的 PGP 密鑰對,我們要求他們輸入他們的私鑰(未儲存),通過該私鑰派生他們的 pubkey 並用於辨識客戶端並修改他們在分佈式數據庫上的欄位。

現在,考慮到使用者體驗,當你需要做某事時在網站上輸入私鑰是很麻煩的。但是我們也不能為基於使用者名/密碼的身份驗證維護一個中央數據庫,因為這會創建一個故障點(不是分佈式應用程序的意圖)

我希望有某種方法可以更容易記住可用於身份驗證的私鑰的人類可讀描述符 - 如果存在類似的東西。任何其他想法也值得讚賞。

PS - 作為背景,我不是密碼學家,我是電腦開發人員,所以我不完全了解 PGP 的工作原理 - 如果這是一個菜鳥問題,請原諒。

顯然,隨著 OP 對他的應用程序的理解,這個答案將被更新。我從未使用過 PGP,但一般的公鑰密碼學概念總是適用的。

每當您需要做某事時在網站上輸入私鑰很麻煩

可以讓客戶端通過難忘的字元串派生他們的密鑰 - 使用者代理首先使用安全密鑰派生函式 (KDF) 從 1) 使用者提供的字元串和 2) 隨機鹽派生種子,然後將種子饋送到加密確定性隨機比特生成器 (DRBG),然後使用剛剛播種的 DRBG 執行密鑰對生成。

通常,最少包含大小寫字母和數字的難以猜測的 16 個字元的字元串。鹽應該是至少 16 個完全隨機字節的字元串。

但我們也無法維護使用者名/密碼的中央數據庫

如果您沒有使用者數據庫,您如何對他們進行身份驗證(辨識來自外部的實際使用者)?有一個解決方案:使用將身份驗證器綁定到公鑰的原語,例如 ECQV 隱式證書方案或基於身份的加密 (IBE)。這些不是常用的公鑰密碼學功能,它們的後量子等價物還遠未成熟。

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