回答:
質問のタイトルが「信頼できる方法でキーストロークロガーを検出するにはどうすればよいですか」という強調の変更に続いて。以下の私の答えの多くは無関係です。要するに、キーストロークロガーを信頼できる方法で検出できるとは思わない。それらのいくつかを検出するいくつかの方法、それらの有効性を制限するいくつかの対策、およびそれらをバイパスするいくつかの方法があり、これらのいくつかを以下のかなり古い回答で説明しましたが、それらを検出する信頼できる方法はありません。キーロギングの方法と対策に関するウィキペディアの記事を読んでください。
簡単な問題ではありません。
ソフトウェアキーロギング
キーを押したり放したりしてキーコードを取得するソフトウェアのバイパスは、画面上のキーボードを使用するか、画面ベースのデータからカットアンドペーストすることで実行できますが、下位レベルで動作するソフトウェアでは動作しません(ある時点でオペレーティングシステムが入力を待っているアプリケーションに「シミュレートされたキー押下」を送ります。
キーロギングソフトウェア攻撃の標的となる可能性が低いオペレーティングシステムを使用することで、リスクをさらに減らすことができます。
これが本当に重要で、ハードウェアにロギングデバイスがない場合、ハードウェア/ネットワークの所有者がこれを許可し、CD / DVDが許可されている場合、既知のクリーンなオペレーティングシステムの読み取り専用コピー(チェックサムライブCDまたはDVDなど)を起動することを検討する価値があります必要なアプリケーションが含まれており、必要なセットアップパラメータがわかっています(パスワードとデータは、ファイルの実行を許可しないために、Unixのようなシステムにマウントされた暗号化されたUSBスティック上にあります)。独自のハードウェア/ソフトウェアを使用し、適切なセキュリティプラクティスに従い、クリーンで信頼できるチェックサムされたメディアから定期的に再構築することも、別の方法です。
推奨されるメカニズムは、システムにキーロギングソフトウェアが存在するリスクを減らすことを目的としています。キーロガーがシステムに侵入すると、強力なファイアウォールポリシーが適用される場合がありますネットワーク経由で「所有者」にデータを送り返すキーロガーを検出しますが、多くの場合、ファイアウォールプロセスに面倒な手動の関与が想定されます(たとえば、特定のアプリケーションが特定のIPポートとアドレスを使用できるようにシステムを調整します)。最後に、システムのキーロガーと同様に、データがネットワークを介して送信されたり、ファイルシステムの物理的整合性が損なわれたりすると、入力されたものの一部が見える場合があります。これらを軽減する方法はこの質問の範囲を超えていますが、アプリケーションとシステムの整合性を検討する際に含める必要があります。ただし、ネットワークを監視すると、機密データが正常に送信されているかどうかを確認でき、予期しない送信の識別にも役立ちます。
ワンタイムパスワード、侵害された可能性がある場合にパスワードをすばやく変更する、キーロギングソフトウェア検出器(既知のキーロギングソフトウェアの署名を探すPCをスキャンするソフトウェア)の使用も可能な対策の1つですが、すべての対策には弱点があります。
ハードウェアおよびその他のキーロギング
あなたの質問の当面の範囲外ではありますが、これらを念頭に置く必要があります。それらには、ネットワークフローの観察、キーボードとPCの間に接続されたデバイス、肩越しの覗き見、ビデオカメラ、音響または電磁または振動の監視(たとえば、TEMPEST対策を参照)、または誰かが興味を持っている場合のRAMコンテンツの検査が含まれますあなたがタイプするかもしれないもので十分。簡単なものから不可能なものまで、これらの範囲の検出。
全般
ウィキペディアには、キーロギングの方法と対策に関する有用な記事があり、読む価値があります。
Wikipediaがに入るので、それは簡単な問題ではなく、「信頼できる」は今のところ手の届かないところにあるようです。 しかし、一部の人々はそれを試しています(「100%効率的で信頼性の高い」言語で完了しているので、私は彼らが言っていることすべてを大きな袋に入れます)。
セキュリティのために、私は時々70文字以上の安全なパスワードを持っています。次に、たとえば、Windowsセットアップの場合、ENTRYとRE ENTRYのフィールドを交互に切り替えます。
この上で、クリックまたは矢印を逆方向に押して文字を挿入します(つまり、[セキュリティが心配な場合]にパスワードを順番に入力することはありません)
キーロギングが心配な場合は、画面外で入力することもできます。
文字、数字、記号を組み合わせて使用し、通常はブロックに分けます。これらのブロックは、混乱を招く可能性があるため、前述のクリックおよび矢印の方法を実装および追跡する目的で、そのブロックに含まれる文字数の数値を割り当てます。それがあまり明確でない場合は申し訳ありませんが、必要に応じてセクションを明確にします。
したがって、パスワードをさまざまな(または一貫した文字列の長さ)の16のコンポーネントに分割するとしましょう。これらの16個のコンポーネントを4行に分割し、そこから実装します。また、パスワードを設定するとき、いずれかのパスワード入力フィールドで行うのと同じ方法で、これらの4行の順序を実装しません。これは私が信頼できるセキュリティだと考えていることであり、パスワードが何であるかを推測できるようにするには、可能であれば、多大な労力が必要です。
これには多くの方法があります。そして、主題に関する多くの良いガイド。ウィキペディアは1つです。Ehowには1つあります。
これは私のお気に入りのガイドです。
http://cognitiveanomalies.com/simple-ways-in-detecting-key-loggers/