2016-07-17 9 views
0

私は現在、Bluetooth接続を介してロック機構を制御するアプリを持っています。私が直面している問題は、自分のアプリとロックの中にあるBLE受信機との間の通信を暗号化して、ロック動作がアプリにしか反応しないようにすることです(例えば、スプーフィングはありません)。BLE受信機とiOSアプリの間の通信を暗号化します

誰でも、誰かが同じパッケージを嘲笑してロックを開くのを防ぐには?これは非対称暗号化ソリューションの良いユースケースですか?

重要な注意:ロックが開かれ、アプリ内でのお支払い時に閉じられている - 私の主な関心事は、パッケージまたは他の手段の必要

+0

誰かがアプリをダウンロードしてデバイスのロックを解除できれば、なぜ暗号化が必要なのですか?言い換えれば、本当にどれくらい安全である必要がありますか?この質問に対する詳細な答えは重要です。なぜなら、これを確保するためにどのくらい作業を進めるべきかを制御するからです。 – davidgyoung

+0

こんにちはDavid - あなたのご回答と素晴らしい質問に感謝します。より多くのコンテキストを提供するには:ロックがアプリケーション内に添付されているコンテナの使用に料金を払う人がいます。言い換えれば、パッケージを偽装することで支払ったことのない人がロックを開いて無料で使用することを防ぎたいのです。 *元の質問が更新されました – user3682157

+0

ユーザーが支払いを行った場合、一度だけロックを開くことができますか、ロックを無制限にロック/ロック解除できますか? – Emil

答えて

1

一つのことをスプーフィングのいずれかによって、ロックを使用してから支払っていない人を妨げています誰かがアプリケーションを逆コンパイルし、暗号化されたコードを生成するために鍵を取得することは、盗聴の他に心配することです。これを回避する方法の1つは、サーバー側のソリューションを使用してロック解除コードを生成することです。

アプリが登録IDを渡し、ロックデバイスがSSLを介してタイムスタンプをサーバーに送信する可能性があります。サーバは、登録IDを検証し、有効であれば、タイムスタンプのハッシュとサーバとアンロックデバイスとの間の共有秘密に基づいて、制限時間アンロックコードを返す。この方法では、何も秘密は、アプリケーションコードに格納されていないので、それを逆コンパイルは有用ではありません。また、ロック解除コードは数秒間だけ有効であるため、傍受も有用ではありません。

+0

こんにちはデビッド - 応答ありがとう!このプロセスをより詳しく説明するのに役立つリソースがありますか?私はこのプロセスの周りに私の頭をラップしようとしている:1.)SSL要求は、iphoneアプリからリモートサーバーに送信されます。2)iphoneアプリのアイデンティティは、サーバー、3)アンロックデバイスで見つかった秘密キーに対して、このロック解除の有効性が検証されます。 – user3682157

関連する問題