5

Delphiでチャレンジ/レスポンスタイプのプロセスを作成することに興味があります。シナリオは次のとおりです...2台のコンピューターがあります...1台はユーザーに属し、1台はサポート技術者に属しています。

ユーザーは特定のプログラムからロックアウトされており、1回のアクセスを取得するには、次のようにします。

  1. 「28394LDJA9281DHQ」などのチャレンジフレーズまたはある種の合理的に一意の値が表示されるユーザー
  2. ユーザーはサポートスタッフに電話し、このチャレンジを読みます(サポートスタッフが本人確認を行った後)
  3. サポート担当者は、このチャレンジ値をシステム上のプログラムに入力します。このプログラムは、「9232KLSDF92SD」など、応答と同じくらいユニークな応答を生成します。
  4. ユーザーが応答を入力すると、プログラムはこれが有効な応答であるかどうかを判断します。
  5. そうである場合、ユーザーにはアプリケーションへの1回のアクセスが許可されます。

さて、これを行う方法は私の質問ですか?相互にネットワークアクセスできない2つのアプリケーションがあります。このタスクを支援するWindows内の機能はありますか?

CryptoAPI内でいくつかの機能を使用できると思いますが、どこから始めればよいのかよくわかりません。私はあなたが提供できるどんな助けにも感謝します。

4

2 に答える 2

8

MD5ベースのチャレンジ/レスポンス認証を実装します。

ウィキペディア からhttp://en.wikipedia.org/wiki/CRAM-MD5

プロトコル

  1. チャレンジ:CRAM-MD5認証では、サーバーは最初にチャレンジ文字列をクライアントに送信します。
  2. 応答:クライアントは、ユーザー名、スペース文字、16進表記の16バイトダイジェストで応答します。ダイジェストは、ユーザーのパスワードを秘密鍵として、サーバーの元のチャレンジをメッセージとして使用したHMAC-MD5の出力です。
  3. 比較:サーバーは同じ方法を使用して、期待される応答を計算します。指定された応答と期待される応答が一致する場合、認証は成功しました。

これにより、3つの重要なタイプのセキュリティが提供されます。

  1. まず、他の人はパスワードを知らずにハッシュを複製することはできません。これにより、認証が提供されます。
  2. 第二に、他の人はハッシュを再生できません—それは予測できない挑戦に依存しています。これは、鮮度またはリプレイ防止とさまざまに呼ばれます。
  3. 第三に、オブザーバーはパスワードを学習しません。これは秘密と呼ばれます。

これらの3つのセキュリティ上の利点を提供するこのプロトコルの2つの重要な機能は、一方向ハッシュと新しいランダムチャレンジです。

さらに、チャレンジの送信者を再確認するために、チャレンジ文字列にアプリケーションIDを追加することもできます。

重要:いくつかの弱点があります。それらがどのように影響するかを慎重に評価してください。

于 2010-11-22T19:06:56.570 に答える
7

口頭でのチャレンジ/レスポンス戦略について: このアプローチを使用して、世界中の 5,000 台のワークステーションで 10 年以上にわたってニッチなアプリケーションのライセンスを取得しました。私たちのサポート チームは、古い映画で見られる古典的なミサイル発射認証プロセスに類似しているため、これを「ミサイル発射コード」と呼びました。

これは、プログラムを保護するための非常に時間のかかる方法です。スタッフと顧客は、ユーザーとの間でコードを読み取るために膨大な時間を費やしました。彼らは皆それを嫌っていました。

あなたの状況/コンテキストは異なる場合があります。おそらく、私たちほど頻繁に使用することはないでしょう。しかし、ここにいくつかの提案があります:

  1. コードの長さと内容を慎重に検討してください。ほとんどのユーザー (およびサポート スタッフ) は、大量の文字を入力することに不満を感じています。多くのユーザーはタイピングが下手です。追加されたセキュリティの量と比較して、句読点や大文字と小文字の区別を含む長い文字列が過度に負担になるかどうかを検討してください。

  2. 口頭でのチャレンジ/レスポンスの実装を何年も使用した後、(フォールバックとして) そのままにしましたが、単純な自動化システムを追加しました。より洗練された Web アプローチではなく FTP を使用することを選択したため、社内サーバーでソフトウェアを実行する必要はありません (または、IT スタッフに対処する必要もありません!)。

基本的に、以前は電話で行われていた交換を FTP ファイルを使用して行います。サーバーは、チャレンジ フレーズを含むファイルを FTP サーバーに配置します。ファイル名はお客様の名前です。当社のサポート スタッフは、ftp サイトにこのファイルを自動的に作成するプログラムを持っています。

顧客は、FTP ファイルを読み取って認証し、応答ファイルをサーバーに戻すホット キーを押すようにスタッフから指示されます。

当社のサポート スタッフのソフトウェアは、お客様のソフトウェアが応答ファイルを作成するのを待ってポーリングしています。ファイルを見ると、ダウンロードして内容を確認し、サーバーから削除します。

もちろん、この交換は、目標を達成するために、特定のセッションで必要な回数だけどちらの方向にも発生させることができます.

ファイル内のデータには、口頭で使用するのと同じ MD5 キーを使用できるため、必要なだけ安全です。

このシステムの弱点は、ユーザーが FTP アクセスを持っている必要があることです。大多数のユーザー (すべての企業) が FTP アクセスを利用できることがわかりました。(もちろん、あなたの顧客ベースはそうではないかもしれません...) 現場のアプリケーションが FTP サイトにアクセスできない場合、問題が明確に通知されるため、顧客は IT スタッフにアクセスを開くように要求できます。その間、私たちは口頭のコードに戻ります。

プレーンなバニラ Indy FTP ツールを問題なく使用しました。

このアプローチにはいくつかの弱点があることは間違いありません (おそらく、私たちが考えもしなかったものも含まれます)。私たちのサポートスタッフと顧客はそれを気に入っています。

これがあなたに関係ない場合は申し訳ありません。これがあなたに役立つことを願っています。

于 2010-11-22T20:26:10.687 に答える