簡體   English   中英

建立了無需SSL即可安全注冊和身份驗證的javascript解決方案

[英]Established javascript solution for secure registration & authentication without SSL

有沒有沒有SSL的安全用戶注冊和身份驗證的解決方案?

  1. “安全”是指可以防止被動監聽 ,而不是中間人 (我知道只有帶簽名證書的SSL才能達到這種安全級別)。

  2. 在沒有SSL的情況下,也必須確保注冊(密碼設置,即預共享密鑰的交換)的安全(這是我猜到的最難的部分)。

  3. 我更喜歡建立良好且經過測試的解決方案 如果可能的話,我不想重新發明輪子並組成自己的加密協議。

提前致謝。

要登錄,您可以嘗試來自clipperz的 SRP

  • 我不確定他們使用的隨機數生成器有多強。 您可能想嘗試使用Crypto API獲得更強的價值。 我不確定如何在不使用Crypto API的情況下獲取javascript中的安全種子值。

為了向服務器發送初始密碼,您可以使用公共密鑰加密。 因此,服務器向客戶端發送其公鑰(在沒有mitm的假設下可以),並且客戶端在注冊時會加密整個注冊請求。 Cipperz支持公開密鑰加密,但格式非常原始。 通常,您使用公共密鑰加密來加密隨機生成的對稱密鑰,並使用對稱密鑰來加密有效負載。 您必須非常小心填充 / etc,以使公共加密正確安全。 我不知道任何健壯的JavaScript公共密鑰加密庫。

您可能想檢查jsbn以進行公鑰加密,因為它看起來確實可以正確填充。 不過,我懷疑它會遭受不安全的隨機數生成的困擾。 使用Crypto API或使用戶敲擊鍵盤以產生一些熵將是一個好主意。 來自rng.js的代碼段

// For best results, put code like
// <body onClick='rng_seed_time();' onKeyPress='rng_seed_time();'>
// in your main HTML document.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM