簡體   English   中英

Android數據加密困境

[英]Android Data Encryption dilemma

我正在創建一個應用程序,該應用程序使用每次用戶登錄該應用程序時創建的密鑰對數據進行加密。 但是,有時會通過需要加密的BroadcastReceiver接收數據,但是用戶沒有登錄,因此加密密鑰不可用。 安全性非常重要,因此使用一個存儲在代碼中的密鑰對數據進行加密,直到用戶下次登錄為止都是不可能的,就像將一個密鑰存儲在應用程序沙箱中一樣,這毫無疑問。 我一直在搜索Android文檔,並獲得有關此情況的API提示,但尚未提出確定的解決方案。 有人知道解決此問題的常用方法嗎? 我希望它在軟件開發中大有作為。

讓我們來看看...

設置:創建RSA密鑰對。 加密私鑰。 存儲未加密的公鑰。

收到廣播:生成隨機AES-128密鑰/ IV。 使用RSA公鑰對密鑰進行加密。 用密鑰/ iv加密payoad。 存儲加密的密鑰,iv和加密的有效負載。

登錄名:解密私鑰。 使用私鑰解密AES密鑰。 使用AES密鑰解密有效負載。

由於這是我想到的第一個主意,因此我無法保證其安全性。

我也不確定您要尋找的安全屬性是什么?您要防御什么攻擊? 為什么攻擊者不能直接截獲廣播? 您是否擔心它在其他進程的內存中徘徊?

兩個想法:

  • BroadcastReceiver獲取加密的數據,通過存儲的憑據進行登錄,並獲取解密數據的密鑰。
  • 您只需BR存儲加密的數據並通知用戶,以便用戶登錄以獲取解密的數據。

我不知道您的應用程式會做什么,所以只是猜測可能的事...

暫無
暫無

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

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