2017-06-20 91 views
1

我真的在移動應用程序正在與陣營和本地人Expo,提供安全解決方案。項目所有者希望存儲應用敏感的授權密鑰,用於與REST服務器聯繫並訪問安全數據。他要求這個密鑰至少要加密,並且儘可能地難以從外部讀取。加密在sensivite數據做出反應原住民和世博

我知道託皮斯:

Save sensitive data in React Native

Is React Native's Async Storage secure?

KeyChain,但他們不涵蓋encyption和世博會的問題。

因此,與是在本地做出反應應用Expo使這個數據保存儘可能最好的和常見的解決方案?

+1

你正在接近完全錯誤的問題。如果你需要使用它們客戶端,加密密鑰客戶端是沒有意義的,因爲使用它們你需要解密密鑰......所以如果你在客戶端上有解密密鑰和密文,那麼你也可以使用明文。 –

+0

您可以在服務器上擁有解密密鑰,客戶端可以將加密數據發送到服務器,服務器可以輕鬆解密。在這個過程中,由於您提到的明顯原因,您不需要在客戶端存儲解密密鑰。 – milkersarac

+0

如果你想存儲的敏感數據,你可以看看:https://stackoverflow.com/a/45550361/7618742 –

回答

0

我最近參與了與安全問題像你這樣一個陣營本地項目。安全不是一個簡單的問題,我不是一個專家,但這就是我們所做的。

我們使用react-native-aes-encryption進行加密和散列,react-native-rsa用於生成公鑰/私鑰對。爲了正確使用這些庫,您最好了解基本的密碼學概念。

我們使用react-native-keychain從鑰匙扣讀/寫數據。如果你想存儲一些小型的敏感數據,鑰匙鏈就是要走的路。它已用於所有Apple OS,以保證您的密碼安全。也就是說,如果你想在兩個平臺上構建你的應用程序,那麼這個組件在Android方面沒有像預期的那樣無縫工作。

除此之外,我沒有關於世博會的想法。我希望這些圖書館也適合你。

+1

我純粹因爲這個解決方案不安全而低估了。保持API密鑰客戶端只是在任何情況下都不應該做的事情,無論加密如何。正確的解決方案是隻需要一個經過身份驗證的Web服務來代表客戶端處理請求。 –

+0

我同意你的意見。在我們的應用程序中,我們沒有存儲任何API密鑰,或者在任何應用程序中都不存儲認證令牌。我只是簡單說明你可以使用哪些組件來爲你的應用添加加密/安全性。 – milkersarac

相關問題