web-dev-qa-db-ja.com

複数のデバイスでの自己署名SSL証明書-これで十分ですか?

複数のスマートデバイスがあり、複数の電話からすべてのスマートデバイスを制御できるソリューションを設計しようとしています。自己署名SSLサーバー証明書を生成し、すべてのスマートデバイスに埋め込みます。また、すべての電話にSSLクライアント証明書を含めます。スマートフォンをスマートデバイスに接続するには、スマートフォンでIDを取得する必要があります(IDはスマートデバイスでQRコードをスキャンして取得できます。これは、スマートフォンがスマートデバイスの近くにあることを確認するためです) 。

スマートデバイス:

  • 自己署名サーバー証明書を埋め込みます。理由:インターネット接続に依存しない
  • WiFiホットスポットを維持します(インターネット接続は常に保証されているわけではありません)
  • 接続された電話のリストを維持します(各電話は、電話によってスキャンされる一意のQRコードIDによって識別されます)

電話アプリ:

  • 証明書のピン留めを実装し、クライアント証明書をハードコードします
  • Wifiホットスポットに接続します
  • スマートデバイスとのSSL接続を確立します。
  • 初めて登録するためにQRコードをスキャンし、その後の接続のためにQRコードIDを送信してIDを提供します。

上記のアーキテクチャを確認して、これに関する欠陥を特定できますか?
すべてのスマートデバイスに同じサーバー証明書をインストールし、すべての電話に同じクライアント証明書をインストールするため、スマートデバイスをハッキングする方法はありますか?
スマートデバイスと電話の間にSSL接続が確立されている場合、別のデバイス(同じネットワーク上にあり、同じ証明書を使用)がスマートデバイスと最初の電話の間で送信されたパケットをハイジャックできるようにすることができます?
安全なリンクが確立されたら、SSLソケットを介してQRコードIDをプレーンテキスト形式で送信します。これを再度暗号化する必要がありますか、それともSSLリンクは十分に安全ですか?

3
Harish

クライアントとサーバーの両方を制御できる場合は、自己署名証明書を安全に使用できます。これを行う最善の方法は、プライベートな自己署名ルートCAを作成し、それを使用してさまざまなデバイスの証明書に署名することです。クライアントで、サーバーの証明書がプライベートルートCAによって署名されていることを確認します。また、デバイスごとに異なる証明書を使用してください。誰かがoneデバイスをハッキングした場合、-allデバイスへのアクセスを許可したくないでしょう。

この設定により、トランスポートレベルのセキュリティが提供されるため、QRコードを安全に送信できます。

1
Sjoerd