0

クライアントアプリとサーバー間のチャネルを保護する方法を検討しています。

リッチデスクトップクライアント(win)とモバイルクライアントがWebサービスに接続し、データを交換しています。

SSL証明書を使用すると、サーバーとクライアントは相互に信頼できます。安全な接続では、ユーザー名とパスワードを交換できるため、ユーザーを認証できます。

ただし、ユーザーが2つの方法のいずれかを使用して、資格情報なしでサーバーに接続する必要がある特定の状況がありますが、たとえば、ナンバープレート番号などのリテラルのみです。

この場合、クライアントがデバイスからの接続のみを許可することを本当に確認したいと思います。認証に関するこれ以上のチェックはなく、ナンバープレート番号はかなり一般的な文字であるためです。

サーバーに認識されている「デバイス」のみがサーバーと対話できるようにするにはどうすればよいですか?

4

2 に答える 2

0

シナリオでTLS事前共有キー(RFC 4279)を使用できるかどうかを確認してください。

于 2013-03-27T14:35:49.177 に答える
0

デバイスを認証する場合は、デバイスの秘密を明かさずに、デバイスが何であるかを証明する方法を見つける必要があります。

ナンバープレートに似たシステムは、その番号を見ることができる立場にある人なら誰でも、非常に簡単になりすますことができます。このデバイスをどの程度制御できるかによっては、サーバーへの接続がSSL / TLSで保護されている場合でも、デバイスを非表示にできない場合があります。

これを行うための潜在的な方法は、暗号化ハードウェアトークン(またはスマートカード)を使用することです。これらのトークンの一部は、証明書と秘密鍵を保持するように構成でき、その秘密鍵をエクスポートできなくても秘密鍵を使用できます。暗号化操作(署名と復号化)はトークン自体で行われます。

これらを使用して、サーバーに対してクライアント証明書認証を実行できます。この場合、クライアントがそのトークンを持っていることがわかります。これは、CAがそのようなトークンのキーペアに対してのみ証明書を発行したことがわかっているという条件で機能する可能性があります。これを処理するためにCAを管理するにはコストがかかります。

これにより、少なくとも認証を特定のトークンに関連付けることができます。これをデバイス全体と統合できるかどうかは、使用しているデバイスの種類によって異なります。

于 2013-03-27T21:25:27.787 に答える