黑客技巧和 /: 自动锁定您的电脑

作者:Kyle Rankin

如果您曾与爱开玩笑的人共事过,您可能遇到过这种经典的办公室恶作剧。首先,毫无戒心的受害者离开电脑去吃午饭或参加长时间的会议,并且不锁定屏幕。然后,恶作剧者会截取他当前桌面的屏幕截图,隐藏所有桌面图标和任何任务栏,并将背景设置为恶作剧者刚刚截取的屏幕截图。当受害者回到他的电脑时,所有图标都不起作用,并且任何程序都无法打开,但当他不可避免地重启时,甚至重启也无法解决问题。大约在他打电话给桌面支持团队时,恶作剧被揭穿,每个人都为此开怀大笑——除了受害者,他从那天起发誓永远锁定屏幕。

良好的锁带来良好的邻里关系

我不知道您是怎么想的,但即使我从未成为过这种恶作剧的受害者,我也一直努力在离开时锁定屏幕。我想这部分源于对安全性的周全考虑,而且,如果您是系统管理员,您通常可以访问许多敏感的系统和数据。尽管您希望信任您的同事,但如果您是一位心怀不满的员工,那么一台未锁定的系统管理员电脑将是敏感信息的绝佳来源。在本文中,我将讨论一个我发现的简单程序,它可以很好地在您离开时自动锁定您的屏幕。在文章的结尾,我还将讨论一些关于如何入侵受此软件保护的系统的想法。

传统上,在我使用过的任何桌面环境中,我都会配置一个 Ctrl-Alt L 快捷键来锁定我的屏幕。这已经成为肌肉记忆,以至于当我即将站起来时,我的手指会自动锁定我的桌面,而无需思考。虽然这种方法效果很好,但我最近发现设置桌面在您离开时自动锁定非常容易,甚至更好的是,在您返回时自动解锁。

基于接近度的桌面锁定解决方案已经存在一段时间了。我记得 Linux Journal 的 Bill Childers 六年多前在 Mac 上用蓝牙向我演示过这样的东西,但我从来没有兴趣摆弄 Linux 上的 Bluez 工具来编写我自己的脚本。事实证明,现在有一个简单的程序可以使用蓝牙锁定您的屏幕,只需一分钟即可设置:BlueProximity。

BlueProximity 的工作原理

本质上,BlueProximity 的工作原理是基于我们大多数人随身携带蓝牙设备——我们的手机。由于蓝牙仅在有限的范围内工作,通过一些调整,您可以根据信号强度对设备与计算机的距离做出一些假设。BlueProximity 通过这些假设来决定何时锁定或解锁您的屏幕。当您离开电脑时,蓝牙信号会变弱,直到超过阈值,您的桌面将被锁定。当您返回电脑时,信号会变强,直到超过不同的阈值,电脑会自动解锁。

安装 BlueProximity

您安装 BlueProximity 的方式与安装任何其他 Linux 程序非常相似:使用您的软件包管理器。在我的情况下,软件包简称为 blueproximity。或者,如果您的发行版没有打包它,您可以从 BlueProximity SourceForge 页面提供的源代码下载并构建该软件。安装完成后,您可以在终端中键入 blueproximity 来启动程序,或者在您的应用程序菜单中单击它(在我的系统上,它显示在“附件”类别下)。

一旦您启动该程序,您将在面板中获得一个新图标,并且还会看到一个类似于图 1 所示的窗口。BlueProximity 要求您设置的设备已经与您的计算机配对,因此如果您尚未配对您的手机(或其他您希望使用的蓝牙设备),您需要首先完成配对蓝牙设备的步骤。在我的情况下(在 Ubuntu 系统上),我首先确保手机上的蓝牙已启用且可见,接下来我单击“系统”→“首选项”→“蓝牙”,然后单击“设置新设备”,之后我只需按照出现的向导操作即可。

图 1. 默认的 BlueProximity 标签页

在您配对蓝牙设备后,返回到 BlueProximity 主屏幕并单击“扫描设备”。扫描可能需要一段时间才能完成,但之后,您应该在列表中看到您的蓝牙设备。此时,只需选择它,单击“使用选定的设备”,您的设备将被配置并准备好使用。您可以安全地单击窗口底部的“关闭”按钮,因为 BlueProximity 仍将保留在您的面板中。

微调您的设置

BlueProximity 出厂时尝试使用合理的设置来确定何时锁定您的屏幕;但是,每个蓝牙设备都不同,我个人已经看到不同的蓝牙设备可能具有非常不同的天线强度。如果您注意到您的屏幕没有像您希望的那样尽快锁定,或者更糟的是,如果您仍然在办公桌前时它就锁定了,请单击“接近度详情”标签页,您可以在其中编辑阈值(图 2)。在此窗口中,您会找到许多不同的滑块。“锁定”和“解锁”的“距离”滑块让您可以控制您需要离计算机有多近。“测量值 atm”滑块大约每秒更新一次,并显示 BlueProximity 读取的当前距离,因此您可以了解您的设备的灵敏度。“持续时间”滑块让您可以控制设备需要在特定距离停留多长时间才能锁定或解锁屏幕。这在调整“锁定”部分时尤其有用,这样一次错误的读取不会在您不希望它锁定时锁定您的屏幕。

图 2. 接近度详情标签页

如果您确实注意到当您在办公桌前时屏幕经常锁定,请增加锁定的“距离”滑块。或者,如果您注意到当您回到办公桌前时,您必须在那里坐一会儿才能解锁,您可能需要增加解锁的“距离”滑块并减小“持续时间”滑块(如果它高于 1)。只需确保您的解锁距离不高于您的锁定距离。

使用您自己的锁定程序

默认情况下,BlueProximity 配置为触发 gnome-screensaver 命令。如果您使用 GNOME,那可能没问题,但如果您使用其他桌面环境,请单击“锁定”标签页(图 3),您可以在其中更改运行哪些命令来锁定和解锁屏幕。默认情况下,您可以从下拉列表中选择 gnome-screensaver 和 xscreensaver,但您实际上可以在此处放置任何您想要的脚本。例如,您可能想要创建一个锁定 bash 脚本,该脚本不仅调用 gnome-screensaver,还使用 DBUS 信号来暂停您的音乐。然后您可以编写一个类似的脚本来取消暂停您的音乐并在您返回时解锁屏幕。

图 3. 锁定标签页

破解 BlueProximity

安全通常是便利性的权衡。BlueProximity 有趣之处在于它试图提高您的安全性(通过自动锁定您的屏幕),并且它还试图提高您的便利性(通过在您返回时自动解锁您的屏幕)。正是这种便利性可能会让您容易受到攻击。话虽如此,BlueProximity 和蓝牙协议确实使攻击这种方法相当困难,因为 BlueProximity 一次只允许一个设备解锁它。您可能会认为您可以通过在您的蓝牙设备上克隆某人手机的 MAC 地址来破解此设置。虽然这是可能的,但不幸的是,在配对过程中,密钥会在两个设备之间共享,供他们以后进行安全通信,因此即使您可以克隆手机的 MAC 地址,它仍然不一定会接受您的设备,因为您没有共享密钥。话虽如此,Andrew Y. Lindell 在 Blackhat 2008 上发布了一篇论文,证明如果您可以嗅探配对过程,密码可能会泄露给您。即使您在设备配对时不在场,该论文也演示了您如何能够让设备重新运行配对过程。

当然,这种攻击非常复杂,可能很难实施。一个更简单的方法是借用别人的手机打电话或查看应用程序,当他不在办公桌前时,然后偷偷溜过去。除了这种攻击之外,BlueProximity 自然也会容易受到击晕并偷走手机的攻击,但我们在这里谈论的是办公室安全,如果您必须担心同事殴打您并抢劫您,也许您应该考虑换一份工作。

资源

BlueProximity 项目页面: http://sourceforge.net/projects/blueproximity

Andrew Y. Lindell 关于蓝牙黑客技术的 Blackhat 2008 论文: http://www.blackhat.com/presentations/bh-usa-08/Lindell/BH_US_08_Lindell_Bluetooth_2.1_New_Vulnerabilities.pdf

 

 

Kyle Rankin 是 Linux Journal 的技术编辑和专栏作家,以及 Purism 的首席安全官。他是《Linux Hardening in Hostile Networks》、《DevOps Troubleshooting》、《The Official Ubuntu Server Book》、《Knoppix Hacks》、《Knoppix Pocket Reference》、《Linux Multimedia Hacks》和《Ubuntu Hacks》的作者,也是许多其他 O'Reilly 书籍的贡献者。Rankin 经常就安全性和开源软件发表演讲,包括在 BsidesLV、O'Reilly Security Conference、OSCON、SCALE、CactusCon、Linux World Expo 和 Penguicon 上。您可以在 @kylerankin 上关注他。

加载 Disqus 评论