Aes
如何保護軟體中的密鑰
我需要通過 AES 加密/解密我的軟體中的數據,問題是如何使 AES 密鑰安全,沒有 HSM,我應該在我的程式碼中對密鑰進行硬編碼嗎?似乎黑客可以通過對軟體進行逆向工程來讀取關鍵數據。
如果您的軟體需要解密數據,並且您想阻止那些擁有物理訪問權限的人在沒有您的軟體的情況下解密,那麼您基本上就不走運了。純粹在軟體中實現是不可能的,因為即使存在良好的白盒算法,攻擊者也可以將其複製到他們的軟體中並能夠解密(無需直接知道密鑰,但誰在乎)。
但是,如果您願意忽略這些攻擊,只保護數據免受那些無法訪問確切設備及其軟體的人的侵害,那麼您應該使用設備特定的密鑰,而不是硬編碼的密鑰。這樣,即使攻擊者從他們的設備中提取密鑰,他們也無法使用它來攻擊其他設備。