2009-07-16 17 views
0

私は、ログイン画面(標準のユーザー名/パスワード)を使用するDelphi(5)アプリケーションを使用しており、最近、パスワード記憶域アプリケーションが難読化されていても画面のログインフィールドを識別できることが判明しましたユーザーのための情報を保存することを提案する。私たちのプログラムの高い安全性のために、私たちはそれを許可したくありません。これまでは、これらのアプリケーションをブロックしてフィールドを検出したり、試行しないように指示する方法に関する情報は見つかりませんでした。これらのオプションのいずれかが可能ですか?そうでない場合、別の選択肢がありますか?フォームフィラーをブロックする可能性がありますか?

答えて

4

ここにいくつかの考えがあります。フォームフィラーの仕組みをご存じですか?

1)実行時にユーザ名/パスワードボックスを動的に作成できますか?セミランダムコンポーネント名は?ログインフォームの作成でいくつかのコンポーネントを作るのは難しくありません。

2)標準の編集コントロールをキープレスステートマシンに置き換えて、(例えば)TLabelsを使用して入力を効果的に「偽造する」ことができますか?

3)編集コントロールからカット/コピー/ペーストをブロックしますか?

4)フォームのデフォルトのメッセージハンドラをオーバーライドし、アプリから来ていないキー押しイベントをすべて飲み込んでしまいますか?

+0

ラベルの提案がそれでした。アプリケーションがログイン画面を持っているとは思われません。私はすでにキーボードハンドラを持っているので(Ctrl + Fキーの組み合わせから保ちたい)、それを追加してキーヒットを処理するのは簡単なことでした。 –

+0

クールで、喜んで助けました。 :-) – robsoft

+0

ほとんどの場合、フォームフィラーはmaskeditプロパティを持つフィールドをキャッチします。したがって、「偽の」ラベルメソッドがその仕事をします。 また、キャプチャフィールドを追加することもできます。塗りつぶすもう1つのフィールドは迷惑になることがありますが、セキュリティのためには棘のあるバラです。 (パスワード技術は、とにかく別のフィールドフィルでもあります:) – user114285

0

ユーザーがフォームフィラーを使用していない可能性がありますか?あなたのユーザーのコンピュータ上でどのような制御を行えるか分かりません。

または、プラグイン(Roboformなど)がブラウザにインストールされているかどうかを検出し、警告ボックスを表示する方法を見つけることができますか?

+0

これはブラウザアプリケーションではなく、スタンドアロンのWin32実行可能ファイルです。おそらく、私はおそらくそれ以上に明確にしていない、申し訳ありません。 –

0

私は、デバイスドライバ内で生成されたキーボードイベントと、別のプログラムから生成されたキーボードイベントをkeybd_event関数を使って区別する方法はないと思います。

フォームフィラーが単に複写&を貼り付けるのであれば簡単です - WM_PASTEメッセージをブロックするだけです。

5

ユーザは、自分のシステムで制御を行う方法を常に見つけます。ユーザーがPost-Itノートをモニターに貼り付けるのを防ぐことができるので、自動フォームフィラーが機能しないようにすることもできます。

セキュリティを維持するためにユーザーを信頼する限り、ユーザーの弱点を処理する必要があります。個々のユーザーの能力を制限することによっていつでもこれを緩和できますが、長期的には、ユーザーが自分の個人情報を十分に気にかけて、適切に保護してくれることを望みます。

一方、このアプリケーションがオフィスからのみ使用される場合、ユーザーは安全な環境でパスワード管理アプリケーションを使用するのはなぜですか?

+0

"ユーザーは、自分のシステムで制御を行う方法を常に見つけます。"はい、ありがとうございます。私はこの一歩をさらに進めていきます。自分のシステムに対するコンピュータ所有者のコントロールを覆そうとすることは、道徳的にマルウェアを書くことと区別できません。それがあなたのプログラムであっても、実行しているコンピュータはあなたのものではなく、自分の所有物です。 –

+0

私が理解しているところでは、パスワード管理アプリはかなりのバイオメトリックデバイスに含まれています。それらをブロックする理由は、アプリケーションとそれを使用するユーザーが、機密性の高い機密データに対処する必要があるということです。私たちはユーザーを教育していますが、パスワードアプリがブロックされていると、セキュリティ侵害に対する罪悪感は、私たちの責任ではなくユーザにさらに伝わります。 –

+1

シフトする負担はありません。ユーザーとその雇用者はコンピュータ上のソフトウェアを担当します。あなたはそうではありません。彼らが*パスワードマネージャーをインストールして使用すると、そのような使用がパスワードの漏洩につながる場合、それはあなたの顧客の過ちであり、あなた自身が心配する必要のあるものではありません。 –

1

Webアプリケーションで使用されているアプローチを使用して、オートメーションユーティリティをフォームに記入することが簡単にできないことを確認できます。これには、イメージをテキストで表示することが含まれ、ユーザーは続行する前に入力する必要があります。画面上の「テキスト」を読むことができるオートメーションユーティリティは、画面上の「グラフィック」を簡単に読み取ることができません(少なくとも、いくつかの広範なOCRプログラミングなしでは)。これらのプログラムのほとんどは、単純なOCRパスが失敗するようにテキストを歪めます。

これは非常に簡単です。ポーリングしたい単語数十数個の画像を作成し、アプリが最初に起動したときにランダムに番号を選んでください(乱数ジェネレータを播くことを忘れないでください)。キー入力するユーザーの画像を選択します。イメージとのマッチを行うときは、文字比較の代わりに、イメージ内の単語のCRCなどと比較してください。

ユーザーのパスワードをより安全にするために、パスワードの変更を頻繁に要求することもできます。セキュリティが強く求められる場合は、あらかじめ設定された標準に従って変更する必要がある強力なパスワードを要求します。たとえば、大文字と小文字の混在、少なくとも1つの数値、少なくとも1つのシンボル、少なくとも8文字を必要とします。パスワードを標準辞書に入れることはできません(スペルチェックに失敗します)。または最後のn回にパスワードを使用しました。パスワードは20日後に失効します。

また、データベースに実際にパスワードを保存しないようにすることもできます。代わりに、パスワードのハッシュ値を格納します。ユーザーの現在のパスワードを知っている唯一の人は、入力したパスワードだけです。

+0

あなたは何を記述しているかは* captcha *です。 –

+0

パスワードは実際には二重に暗号化され、次にハッシュされます。はい、私たちは編集的です。 Captchaはここでは実用的ではありませんが、役に立つかもしれない別の場所がありますので、私はそれを覚えておきます。 –

関連する問題