一連のサーバーと通信するエンドユーザーデバイスの通信メカニズムを設計しています。私の現在の計画は
これは有効なアプローチですか、それとも「証明書を使用したサーバー認証」(DHキー交換)の使用がより良い==より安全な方法でしょうか?
は、私にはよく見えますよ。有効にした暗号リストに応じて、HTTPSはDHキー交換を行うことに注意してください。デバイスとサーバーのSSL実装を信頼し、デバイスの証明書信頼リストを監査する限り、デバイス間の接続は安全であると見なすことができます。
私が心配している唯一のことは、デバイスがサーバーへのSSHアクセスを開くことができることです。シェルアクセス(ファイルの転送や保存、ほとんど任意のプログラムの実行など)を提供しているため、SSHのセキュリティ保護は非常に困難です。デバイスにアクセスする可能性のあるすべての人を完全に信頼していない場合、これはサーバーにとって非常に危険な場合があります。
本当に人々に任意のプログラムを実行する能力を与える必要がある場合を除いて、通常、HTTPSのようなサービスラッパーを介して特定の事前に定義されたリソースのリストを公開する方が良いでしょう。これにより、サーバーでのコマンドの実行をより詳細に制御できます。