2017-06-20 35 views
1

私はモバイルネイティブのReact NativeとExpoでセキュリティソリューションを提供しています。プロジェクトの所有者は、RESTサーバーとの接触やセキュリティ保護されたデータへのアクセスに使用されるアプリの機密性の高い認証キーに格納する必要があります。彼はこの鍵を少なくとも暗号化し、外部からはできるだけ読みにくいことを要求しています。React NativeとExpoでsensiviteデータを暗号化する

私はtopisについて知っている:

Save sensitive data in React Native

Is React Native's Async Storage secure?

KeyChainが、彼らはencyptionと博覧会の問題をカバーしていけません。

このデータをReact Native Expoアプリでできるだけ保存するための最良かつ一般的な解決策はありますか?

+1

問題は完全に間違っています。クライアント側で鍵を暗号化することは、クライアント側で使用する必要がある場合は意味がありません。復号鍵を必要とするためです。 –

+0

サーバー上に復号鍵を置くことができ、クライアントは暗号化されたデータをサーバーに送信することができ、サーバーはそれを簡単に解読することができます。このプロセスでは、あなたが言及した明白な理由のために、クライアント側に復号鍵を格納する必要はありません。 – milkersarac

+0

機密データを保存する場合は、https://stackoverflow.com/a/45550361/7618742 –

答えて

0

私は最近あなたのようなセキュリティ上の問題を抱えたReact Nativeプロジェクトに参加しています。セキュリティは簡単な問題ではなく、私は専門家ではありませんが、これが私たちがしたことです。

公開鍵/秘密鍵のペアを生成するために、react-native-aes-encryptionを暗号化とハッシングに、react-native-rsaを使用しました。これらのライブラリを適切に使用するには、基本的な暗号化の概念を理解する必要があります。

react-native-keychainを使用して、キーチェーンからデータを読み書きしました。小さな機密データを保存したい場合は、キーチェーンを使用します。あなたのパスワードを安全に保つために、すべてのApple OSで使用されています。つまり、両方のプラットフォーム用にアプリケーションを構築したい場合、Android側ではこのコンポーネントが期待どおりにシームレスに動作しないという。

それ以外は、私は博覧会について考えていません。私はこれらの図書館もあなたのために働くことを望みます。

+1

このソリューションは安全ではないため、私は完全にダウンしました。 APIキーをクライアント側に保つということは、暗号化がどのような状況であっても、決して実行してはならないことです。正しい解決策は、単にクライアントに代わって要求を処理する認証されたWebサービスを用意することです。 –

+0

私はあなたに同意します。私たちのアプリでは、APIキーを格納していないか、または任意のアプリにauthトークンを格納する必要はありません。私はあなたのアプリケーションに暗号/セキュリティを追加するために使用できるコンポーネントを簡単に述べています。 – milkersarac

関連する問題