输入特定密码如何触发系统自毁

Jos*_*osh 47 security password

如何配置我的系统以在输入特定密码时销毁所有个人数据?这背后的动机是 NSA 的东西。

我想有三个主要用例。

  1. 在登录时,输入预先确定的密码会触发用户数据的破坏。
  2. 在系统唤醒。输入预先确定的密码会触发个人数据的破坏。
  3. 使用预先确定的密码输入任何特权命令会触发个人数据的破坏。

我知道像

dd if=/dev/urandom of=/dev/$HOME
Run Code Online (Sandbox Code Playgroud)

应该足以进行数据销毁。但是,我不知道如何通过某个密码触发它。

如果在删除数据时允许登录,则奖励积分。

slm*_*slm 28

想法 #1 - 隐藏的操作系统

作为替代方法,您可以使用TrueCrypt 的“隐藏操作系统”。这允许您在使用特定密码时访问虚假的替代操作系统,而不是主操作系统。

摘抄

如果您的系统分区或系统驱动器使用 TrueCrypt 加密,您需要在打开或重新启动计算机后在 TrueCrypt 引导加载程序屏幕中输入您的预引导验证密码。可能会发生有人强迫您解密操作系统或泄露预启动身份验证密码的情况。在很多情况下,您无法拒绝(例如,由于敲诈勒索)。TrueCrypt 允许您创建一个隐藏的操作系统,它的存在应该是不可能证明的(前提是遵循某些准则——见下文)。因此,您不必解密或泄露隐藏操作系统的密码。

Bruce Schneier介绍了使用这些(可否认文件系统)的功效,因此您可能需要在深入研究之前对其进行进一步调查。

Deniable Encryption的整个想法有点像蠕虫,因此在某些情况下谨慎使用它需要提前深思熟虑。

想法#2 - 将脚本添加到 /etc/passwd

您可以在/etc/passwd文件中的用户条目中插入替代脚本。

例子

# /etc/passwd
tla:TcHypr3FOlhAg:237:20:Ted L. Abel:/u/tla:/usr/local/etc/sdshell
Run Code Online (Sandbox Code Playgroud)

您可以设置用户的帐户,以便它运行一个脚本,例如/usr/local/etc/sdshell检查提供的密码。如果是触发擦除的神奇密码,它可以开始此过程(甚至是背景),然后落入外壳或执行其他操作。

如果提供的密码不是这个神奇的密码,那么继续运行一个普通的 shell,/bin/bash例如。

来源:19.6.1 将一次性密码与 Unix 集成

  • 想法#2 行不通。只有在输入正确的密码(如 /etc/shadow 中的配置)后才会调用 shell。即使它可以工作,脚本也无法检查登录时输入的密码。 (2认同)

cha*_*aos 16

我对此的方法是在pam 模块中触发自毁。有一些机制可以用脚本捕获密码,检查它是否是“特殊”密码并启动自毁过程。

在你的/etc/pam.d/common-auth第一行写一行,如下所示:

auth    optional        pam_exec.so debug expose_authtok /etc/security/suicide.sh
Run Code Online (Sandbox Code Playgroud)

(或者例如,/etc/pam.d/gdm如果您只是希望它通过身份验证工作gdmexpose_authtok会导致pam_exec.so模块通过标准输入将密码传递给名为 的登录脚本/etc/security/suicide.sh。该脚本将以 root 权限运行,例如如下所示:

#!/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
Run Code Online (Sandbox Code Playgroud)

即使您更改“普通”用户的密码,它也会起作用。


小智 9

只是为了让您知道如果来自政府等的任何人确实抓住了您的计算机,他们会做的第一件事就是一点一点地复制驱动器并清除副本。任何时候有人进行计算机取证都会做同样的事情,因此如果您在分析驱动器时损坏,您只会损坏副本。

因此,让我们说大坏的 NSA 拿走你的电脑,用你的大拇指让你告诉他们密码。当你给他们错误的密码时,它只会删除复制而不是原始密码。现在他们知道你惹他们了。

因此,只有在有人控制您的系统之前运行它,才能使用终止密码。所以它会做的就是给你一种复杂的方式来执行你可以别名的东西。


mic*_*has 6

如果你真的想破坏你的数据。您首先必须确保在开始时没有人复制您的数据(即整个磁盘)。但这在操作系统级别是不可能的。

确保您的数据不会落入坏人之手的唯一方法是使用密码学。特别是可拒绝加密在您的情况下是正确的:如果您输入正确的密码,您的个人数据就会显示出来。如果您输入其他密码,则会显示一些无害的数据。

  • 如果有人强迫您输入密码,您只需输入“其他”密码,即可解锁无害数据。- 因此,您可以合理地否认真实数据的存在。- 如果我真的想获取你的数据,我不会让你碰你的电脑,而是先把所有的东西都复制一份。 (3认同)

小智 6

如果您真的希望能够销毁您的数据,以保护它免受 NSA 的攻击,您需要一些带有爆炸物和火的东西,可以熔化磁盘盘片中的金属,并且您需要能够远程触发它。

我怀疑这不切实际。