簡體   English   中英

如何在應用程序代碼中安全地硬編碼身份驗證令牌 - Java

[英]How to safely hardcode an authentication token within an application code - Java

我知道將密碼硬編碼到程序中本質上是不安全的。 其中大部分可以通過逆向工程工具如IDA Pro破解。 但是,如果除了這樣做別無選擇,是否有一種安全的方法來做到這一點?

我需要向一小部分用戶發布一個小型 Java 客戶端應用程序,並且需要對身份驗證令牌進行硬編碼。 有什么建議嗎?

謝謝

如果必須,Java 有一個GuardedString class,類似於 C# 中的SecureString class。

解決與將密碼保留為 java.lang.String 相關的問題的安全字符串實現。 也就是說,任何表示為字符串的內容都作為明文密碼保存在 memory 中,並且至少在被垃圾回收之前一直保存在 memory 中。

GuardedString class 通過以加密形式存儲 memory 中的字符來緩解這個問題。 加密密鑰將是隨機生成的密鑰。

在其序列化形式中,GuardedString 將使用已知的默認密鑰進行加密。 這是為了提供最低級別的保護,而不管傳輸方式如何。 對於與 Remote Connector Framework 的通信,建議部署啟用 SSL 以實現真正的加密。

應用程序可能還希望保留 GuardedStrings。 對於 Identity Manager,它應該將 GuardedStrings 轉換為 EncryptedData,以便可以使用 Identity Manager 的管理加密功能來存儲和管理它們。 其他應用程序可能希望將 APIConfiguration 作為一個整體進行序列化。 這些應用程序負責加密 APIConfiguration blob 以獲得額外的安全層(超出 GuardedString 提供的基本默認密鑰加密)。

暫無
暫無

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

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