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


46

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

我想象有三个主要的用例。

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

我知道像

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

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

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


9
如果您确实要执行此操作,则应加密硬盘驱动器。这是因为没有加密,您将必须覆盖整个硬盘驱动器,而有了加密,则只需覆盖LUKS头文件(或其他任何文件)。
2014年

1
有一个pam_python模块,可能会使您想要的实现更容易:ace-host.stuart.id.au/russell/files/pam_python
重播

7
如果您担心的是NSA,那dd if=/dev/urandom of=/dev/$HOME将不会有太大的好处。即使假设他们足够愚蠢以使用操作系统而不是直接移除磁盘并直接读取磁盘,也有法医恢复公司可以从已被覆盖并物理刻录的磁盘中获取数据。
停止Harming Monica 2014年

2
#1 如果NSA真的在您之后,他们已经在几周前悄悄泄露了您的数据。#2。加密您的数据将使NSA拥有永久保留您的数据的合法权利或解密数据需要花费的时间长,以先到者为准。#3。证据被毁的证据通常足以使法院让您胜诉。那些用零或随机乱码填充驱动器的“安全擦除”程序可以证明您破坏了某些东西,并将其提上法庭。
Ryan Ries 2014年

3
它不包括所有的3例,但这里看看:kali.org/how-to/emergency-self-destruction-luks-kali
骗子

Answers:


26

想法#1-隐藏操作系统

作为一种替代方法,您可以使用TrueCrypt的“隐藏操作系统”。这样,当您使用特定密码而不是主操作系统时,便可以访问伪造的备用操作系统。

摘抄

如果使用TrueCrypt对系统分区或系统驱动器进行了加密,则在打开或重新启动计算机后,需要在TrueCrypt引导加载程序屏幕中输入引导前身份验证密码。您可能被某人强迫解密操作系统或透露预引导身份验证密码。在许多情况下,您不能拒绝这样做(例如,由于勒索)。TrueCrypt允许您创建一个隐藏的操作系统,其存在不可能被证明(前提是遵循某些准则,请参阅下文)。因此,您将不必解密或显示隐藏操作系统的密码。

Bruce Schneier介绍了使用这些工具的有效性(Deniable File Systems,因此您可能需要在深入研究之前进行进一步的研究。

否认加密的整个想法有点蠕虫,因此在某些情况下使用它时应谨慎考虑。

想法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集成


2
想法2无效。只有输入了正确的密码(在/ etc / shadow中配置),才会调用该shell。即使可行,该脚本也无法检查在登录时输入的密码。
骗子

@faker-这种方法恰好是UNIX中的一次性密码,因此我相信它会起作用。它可能不会直接与系统的/ etc / shadow密码集成,但可以使用。
slm

您链接到的页面上的@slm:This puts two passwords on the account: the traditional account password followed by the one-time password.当然,您可以在脚本中检查销毁密码,但前提是您输入了正确的帐户密码。基本上,您将拥有3个密码。普通帐户密码,正确的第二步密码和自毁第二步密码。不是很好,也很可疑...
骗子

@faker:slm是正确的-我不会一步一步地遵循链接,但是它可以工作。它仍将只是链接到其他shell或脚本。我看不出任何不正确的原因。
2014年

如果您考虑必须记住3个密码就可以使用@Josh,它可以工作。否则它将无法正常工作。
造假者2014年

16

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

/etc/pam.d/common-auth第一行中这样写一行:

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

(或者例如,/etc/pam.d/gdm如果您只希望它通过进行身份验证gdmexpose_authtok会使pam_exec.so模块通过stdin将密码传递给名为的登录脚本/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

它的工作,如果你更改密码,即使 “正常”的用户。


8

请注意,如果知道来自gov等国家的任何人都抓住了您的计算机,他们要做的第一件事就是一点一点地复制驱动器并进行复制。每当有人进行计算机取证时,都会执行相同的操作,因此,如果您在分析驱动器时损坏了硬盘,则只会损坏副本。

因此,可以说,糟糕的国家安全局拿走了您的计算机,然后将您的拇指放在虎钳中,让您告诉他们密码。当您给他们错误的密码时,它将只是复制而不是原始密码。现在他们知道你对他们的困扰。

因此,任何对kill pass密码的使用只有在您在有人掌握您的系统之前运行它时才有效。因此,它所要做的就是为您提供执行别名的复杂方法。


6

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

确保数据不会落入他人之手的唯一方法是使用加密技术。在您的情况下,尤其是可拒绝加密将是正确的选择:如果键入正确的密码,则会显示您的个人数据。如果键入其他密码,则会显示一些无害的数据。


对于有人强迫我输入密码或在输入密码后抢电脑的情形,我最为担心。
2014年

3
如果有人强迫您输入密码,则只需输入“其他”密码即可解锁无害数据。-因此,您可以合理地否认真实数据的存在。-如果我真的很想获取您的数据,我不会让您触摸计算机,而是首先制作所有内容的副本。
michas,2014年

6

如果您确实希望能够销毁数据,并使其免受NSA的破坏,则需要装有爆炸物和火,以融化磁盘中的金属,并且需要能够远程触发数据。

我怀疑这不切实际。


0

好吧,如果您使用其他用户名登录,您可能有一个脚本可以删除主要用户的/ home目录(以及/ var,/ tmp以及您仅有眼睛数据的其他地方)...该脚本将以登录,然后通过做一些可能有用的事情来自动加载一些会欺骗旁观者的东西。如果在不欺骗旁观者的情况下浪费了系统,则他们可能会拔掉插头,从而妨碍您制定最佳的计划。这也允许您在进行此操作时进行登录...尽管我会将TRASHME用户放在其他驱动器上,因为被废弃的驱动器会很忙,因此很危险。


1
不在规定的限制之内。
2014年

0

一个安全的硬盘驱动器或闪存驱动器是矛盾的。保护您信息安全的唯一方法是使用一个虚拟操作系统,该操作系统在内存中运行并在关闭电源时消失,所有需要保存的数据都可以保存在外部介质中,您可以根据需要隐藏这些数据。有许多“实时” Linux发行版使您能够做到这一点。您只需花费很少的精力,即可重新制作CD或DVD并对其进行自定义,使其最适合您的需求。另外,请注意,您的许多行为信息都是由您的浏览器中继的,对于您认为有危害的任何搜索,应使用安全的浏览器,例如Tor。


不是我的要求。我完全意识到,完美的安全性是不切实际的。我不是在寻求完美的解决方案。
2014年

0

如果您想确保事物安全,请理解没有完美的安全之类的东西,并且在进行准确的风险评估之后,安全不过是对可接受项目的折衷。

首先,为什么要破坏任何东西。首先来看降低访问的难易程度。创建一个气隙。买一个bcheaap盒子,用于存放网上物品以及您想通过sneakernet从您的主盒子运输中发送的任何东西。使用良好的加密,例如Scrypt。Truecrypt和其他人度过了光荣的一天。

您可以采用许多其他策略,没有足够的空间在这里进行研究,坦率地说,我没有足够的时间来研究它们。我认为您已经找到了一条全新的学习道路。


不在规定的范围内。
2014年

0

正如我所指出的那样,并在Phoronix上进行了介绍,Kali Linux也创建了一种执行此操作的方法。查看一些代码,仍然存在一个弱点,该弱点仍将使补丁无法被破解,但是要允许有效的自毁密码要走很长的路要走。值得注意的是,弱点是与清零数据有关的硬件特殊性-制造商工具可以恢复清零的数据,并且应使用随机数生成器多次重写媒体上的关键位置,以确保数据加扰。

链接在这里:http : //www.kali.org/how-to/emergency-self-destruction-luks-kali/


0

是的,您必须破坏驱动器的表面。推荐使用铝热榴弹(这是他们教给我们的东西)。您可以使用火启动器(镁块)和点火源制作自己的榴弹...目的是制造D级火。 。


我不认为OP在谈论物理破坏...
don_crissti
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.