3

Windows XP では、USB デバイスでコンピュータを保護する商用ソフトウェアを見てきました。つまり、通常どおり一定時間後にスクリーンセーバーがアクティブになります。ただし、非アクティブ化するには、パスフレーズだけでなく、プラグインされた USB デバイスも必要です。デバイスには証明書が含まれており、スクリーンセーバーを非アクティブ化する前に検証する必要があります。

このような機能を Python で実装する方法を探しています。Ubuntu Software Center で検索したところ、BlueProximity が私の目的に最も近いソフトウェアであることがわかりましたが、それでも異なります。このソフトウェアは、特定の Bluetooth デバイスを監視し、その存在を使用してユーザー アクティビティを定期的にシミュレートし、スクリーンセーバーの起動を回避します。

確かに、同様のプログラムを実行して、特定の USB ディスクの存在を定期的にチェックし、そこに含まれる証明書を検証し、問題がなければユーザー アクティビティとしてスクリーンセーバーを起動し、それ以外の場合は画面をロックできます。

ただし、これは即時ではありません。誰かが私のパスフレーズを盗んでスクリーンセーバーのロックを解除し、USB ディスクを盗んだとしたら、彼は画面のロックを解除できます。少なくとも 1 分以内に画面が再びロックされるはずです。私のプログラムのチェック期間が0.1秒のようにかなり短い場合でも、間隔は0.1秒から合計され、ゆっくりとフェードする時間コスト(通常はほぼ1秒)が1つのロックアップと別のロックアップの間に存在します。

それで、私のプログラムがスクリーンセーバーに何らかの方法でロック解除を拒否するように指示できるAPIなど、より良い解決策はありますか?

4

1 に答える 1

1

PAM (Pluggable Authentication Modules)を参照してください。ソリューションはより一般的で堅牢になり、認証のために PAM に依存するすべてのプログラムに適用できます。

于 2012-08-12T00:02:30.883 に答える