簡體   English   中英

安全存儲訪問令牌

[英]Securely storing an access token

我應該采取哪些安全措施來確保我的數據庫遭到入侵,長期訪問令牌不會被盜?

長期訪問令牌與特定服務的用戶名和密碼一樣好,但是通過與其他人交談,它似乎最多(包括我自己)以純文本形式存儲訪問令牌。 這似乎與在純文本中存儲密碼一樣糟糕。 顯然,人們不能對令牌進行加鹽和散列。

理想情況下我想加密它們,但我不確定最好的方法,特別是在開源項目上。

我想這個問題的答案類似於存儲支付信息和PCI合規性的答案,但我也會問為什么沒有更多的討論呢? 也許我錯過了一些東西。

您是否只想驗證他人提供的令牌? 如果是這樣,請將其視為密碼。 使用字節派生算法,如基於密碼的密鑰派生函數2(PBKDF2) (也在RFC 2898中描述),具有10,000次迭代並存儲前20個字節左右。 收到令牌時。 它實際上並不可逆。

您是否要將令牌呈現給其他人進行身份驗證? 如果是這樣,這是一個挑戰,因為如果您的應用程序可以解密或以其他方式訪問令牌,攻擊者也可以。 想想Shannon的Maxim,攻擊者就知道這個系統,特別是對於一個開源項目。

在這種情況下,最好的方法是使用強算法(例如AES256)加密令牌,使用強加密標准隨機數生成器生成密鑰,並將密鑰安全地存儲在與數據不同的位置,例如上例中數據庫外的受權限保護文件。 后者意味着SQL注入攻擊不會泄露密鑰。

暫無
暫無

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

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