web-dev-qa-db-ja.com

特定のパスワードを入力してシス​​テムの自己破壊をトリガーする方法

特定のパスワードが入力されたときにすべての個人データを破棄するようにシステムを構成するにはどうすればよいですか?これの背後にある動機NSAもの。

主な使用例は3つあると思います。

  1. ログイン時に所定のパスワードを入力すると、ユーザーデータが破棄されます。
  2. システムがウェイクアップしたとき。所定のパスワードを入力すると、個人データが破壊されます。
  3. 事前定義されたパスワードを使用して特権コマンドを入力すると、個人データが破棄されます。

のようなものを知っています

dd if=/dev/urandom of=/dev/$HOME

データ破壊には十分なはずです。ただし、特定のパスワードによってそれをトリガーする方法はわかりません。

データの削除中にロ​​グインを許可するとボーナスポイントが発生します。

47
Josh

アイデア#1-隠しOS

別の方法として、 TrueCryptの「隠しオペレーティングシステム」 を使用できます。これにより、特定のパスワードが使用されている場合、プライマリOSではなく偽の代替OSにアクセスできます。

抜粋

システムパーティションまたはシステムドライブがTrueCryptを使用して暗号化されている場合、コンピューターの電源をオンにするか再起動した後、TrueCryptブートローダー画面で起動前認証パスワードを入力する必要があります。誰かがオペレーティングシステムを復号化するか、起動前の認証パスワードを明らかにするように強制される場合があります。あなたがそうすることを拒否することができない多くの状況があります(例えば、恐喝のため)。 TrueCryptを使用すると、存在を証明することが不可能であるべき隠されたオペレーティングシステムを作成できます(ただし、特定のガイドラインに従っている場合は、以下を参照してください)。したがって、非表示のオペレーティングシステムのパスワードを復号化または公開する必要はありません。

Bruce Schneier は、これらの使用の有効性( Deniable File Systems をカバーしているため、詳しく説明する前に、さらに調査することをお勧めします。

Deniable Encryption の全体的な考え方は、ワームの缶詰であるので、特定の状況でそれを使用する際の注意は、事前に十分に検討する必要があります。

アイデア#2-/ etc/passwdにスクリプトを追加する

/etc/passwdファイルのユーザーのエントリに代替スクリプトを挿入できます。

# /etc/passwd
tla:TcHypr3FOlhAg:237:20:Ted L. Abel:/u/tla:/usr/local/etc/sdshell

ユーザーのアカウントをセットアップして、/usr/local/etc/sdshellなどのスクリプトを実行し、提供されたパスワードを確認することができます。ワイプをトリガーするのが魔法のパスワードである場合は、このプロセスを開始し(バックグラウンドでも)、シェルにドロップするか、何か他のことをします。

提供されたパスワードがこの魔法のパスワードではない場合、通常のシェル、たとえば/bin/bashの実行を続けます。

出典: 19.6.1ワンタイムパスワードとUnixの統合

28
slm

これに対する私のアプローチは、pam moduleで自己破壊をトリガーすることです。スクリプトでパスワードをキャッチし、それが「特別な」パスワードかどうかを確認して、自己破壊プロセスを開始するメカニズムがあります。

次のように、最初の行として/etc/pam.d/common-authに行を記述します。

auth    optional        pam_exec.so debug expose_authtok /etc/security/suicide.sh

(または、たとえばgdmを介して認証を使用したい場合は/etc/pam.d/gdmで)expose_authtokは、pam_exec.soモジュールがstdinを介してパスワードを配信するようにします。/etc/security/suicide.shというログインスクリプトに。このスクリプトはルート権限で実行され、たとえば次のようになります。

#!/bin/bash
# read the users password from stdin (pam_exec.so gives the provided password 
# if invoked with expose_authtok)
read password

# if its an authentication and it's the user "user" and the special password
if [ "$PAM_TYPE" == "auth" ] && [ "$PAM_USER" == "user" ] && [ "$password" == "magic" ]; then
  # do whatever you want in the background and the authentication could continue
  # normally as though nothing had happened
  exit 0
else
  exit 0
fi

これは機能しますパスワードを変更した場合でも「通常の」ユーザーの=。

16
chaos

政府などの誰かがあなたのコンピュータをつかんでいるかどうかを知るために、彼らが最初に行うことは、少しずつドライブをコピーして、そのコピーを削除することです。誰かがコンピュータフォレンジックを行うときはいつでも同じことが行われるため、ドライブを分析しているときに損傷した場合は、コピーだけに損傷を与えます。

だから、大きな悪いNSAはあなたのコンピュータを奪い、親指を悪徳にしてあなたに彼らにパスワードを知らせます。あなたに彼らに間違ったパスワードを与えると、それは単にコピーしてオリジナルではありません。

したがって、キルパスワードを使用するのは、誰かがシステムを手に入れる前に実行した場合にのみ効果があります。つまり、エイリアスを設定できる複雑な方法を実行するだけです。

8
Mark

データを本当に破壊したい場合。最初に、最初に誰もデータ(つまり、ディスク全体)のコピーを作成しないようにする必要があります。しかし、これはOSレベルでは不可能です。

データが悪用されないようにする唯一の方法は、暗号化を使用することです。特に Deniable encryption はあなたの場合には正しいことです:正しいパスワードを入力すると、個人データが表示されます。他のパスワードを入力すると、無害なデータが表示されます。

6
michas

NSAからデータを保護するために本当にデータを破壊できるようにしたい場合は、爆発物とディスクプラッタ内の金属を溶かす火が必要であり、リモートでトリガーできる必要があります。

これは現実的ではないと思います。

6
Bill White

私に指摘され、Phoronixでも取り上げられたように、Kali Linuxはこれを行う方法も作成しました。一部のコードを見ると、まだパッチを無効にできる弱点がありますが、効果的な自己破壊パスワードを許可するには長い道のりがあります。注意点として、弱点はデータのゼロ化に関連するハードウェアの特殊性です。メーカーのツールはゼロ化されたデータを回復でき、メディア上のキーの場所を乱数ジェネレーターで数回上書きして、データのスクランブルを確保する必要があります。

ここにリンク: http://www.kali.org/how-to/emergency-self-destruction-luks-kali/

0
Josh

物事を安全に保ちたい場合は、完璧なセキュリティなどはなく、セキュリティは正確なリスク評価が行われた後の許容範囲のトレードオフに過ぎないことを理解してください。

まず、何を破壊するのか。まず、アクセスのしやすさの低下について検討します。エアギャップを作成します。オンライン用のbcheaapボックスを購入し、メインボックスのトランスポートからスニーカーネット経由で送りたいものを購入します。 Scryptなどのgood暗号化を使用します。 Truecryptと他の人たちは、由緒ある日を過ごしました。

あなたが採用できる戦略は他にもたくさんありますが、ここにそれらを入れる十分なスペースがありません、そして率直に言って、私はそれらに入る十分な時間がありません。まったく新しい学習パスを発見したと思います。

0
David Crosswell

安全なハードドライブ、またはその問題のためのフラッシュドライブは、オキシモロンです。情報を保護する唯一の方法は、メモリで実行され、電源をオフにすると蒸発する仮想オペレーティングシステムを使用することです。必要なデータは、必要に応じて非表示にできる外部メディアに保存する必要があります。まさにそれを可能にする多くの「ライブ」Linuxディストリビューションが世に出ています。比較的少ない労力で、CDまたはDVDをリマスタリングし、ニーズに合わせてカスタマイズできます。また、行動情報の多くはブラウザーによって中継されていることに注意してください。妥協すると思われる検索では、Torなどの安全なブラウザーを使用する必要があります。

0
user55950

別のユーザー名でログインすると、プライマリユーザーの/ homeディレクトリ(および/ var、/ tmpなど、目だけのデータがあるすべての場所)をゴミ箱に入れるスクリプトを作成できます。スクリプトは、ログインしてから、推測に役立つ何かを行うことで、見物人をだますようなものを自動的にロードします。それが見物人をだまさずにシステムを破壊するならば、彼らはただプラグを引っ張って、それによってあなたの最善の計画が機能するのを妨げるかもしれません。これにより、これが進行中にログインすることもできます...ゴミ箱に入れられているドライブがかなりビジーになるため、別のドライブにTRASHMEユーザーを置くことになりますが、それでポーキーになります。

0
K7AAY

はい、ドライブの表面を破壊する必要があります。テルミット手榴弾が推奨されます(つまり、彼らが私たちに教えたものです)。ファイヤースターター(マグネシウムブロック)と点火源で自分で作ることができます...目標は、クラスDの火を作成することです....消すことは不可能です。

0
Brian Winn