複数のオプションがあり、マシンが動作する環境によって多かれ少なかれ異なります。 (また相互認証または2ウェイTLSとして知られている)
- クライアント証明書認証:一般的に、私は3のメカニズムに見てね。これは、基本的に、両方のマシンが検証のために相互に証明書を提示することを意味します。このアプローチは、サーバー間の通信では非常に一般的です。これは一般的にはきわめて安全なアプローチですが、新しい信頼できるクライアントを追加することは、証明書を発行する必要があるため、少し面倒です。
- IPまたはホスト名(またはサブネット全体)のホワイトリスト化。言い換えれば、許可されたクライアントのプールをその出所別に制限するようにサーバー上に構成する必要があります。このアプローチには暗号化は含まれておらず、クライアントはその起源を簡単に偽装することができますが、他のメカニズムへの追加(余分なレイヤー)として使用されることがあります。
- APIキー。 APIを使用するためのキーベースの認証を統合または実装します。これは、Web APIを使用するモバイルアプリケーションの認証によく使用されます。 APIキーの最も一般的な問題の1つは、その保護です。誰かがそれらのキーを盗むのを合理的に難しくする方法を見つける必要があります。最終的には、モバイルアプリケーションでは不可能なことが多いですが、常にリスク評価を行い、発見されたリスクをどのように緩和するかを確認する必要があります。
これらのメカニズムを組み合わせてレイヤーを追加することができます。また、さらに多くのレイヤーに対してファイアウォールやネットワークの制限を設定することもできます。しかし、常にあなたが保護しようとしているもののリスクと価値を評価するために瞬間を取ってください。次に、保護のために使用するための合理的なコストと努力を知ります。
これはすべての可能性を網羅したリストではありませんが、使い始めるための参考になることを願っています。
私はこれらのメカニズムを組み合わせることをお勧めします。ホワイトIPリストに関しては、顧客のアイデンティティを変更することで「偽の」リクエストを行うことができると思いますか? SSLについてはどうですか?私はそれについての手がかりを持っていない...おそらく私は混乱しています –
はい、IPを偽装するのはロケット科学ではないので、IPまたはホストのホワイトリストは他のメカニズムでのみ使用するべきです。 SSL、またはTLSは、ネットワーク通信の暗号層です。ポイント1は、基本的に、それを使って両者を認可する方法を説明しています。証明書発行者は2つのエンドで異なる場合がありますが、発行者は受信者によって信頼されている必要があります。 – quinz