如何防止脏手接触我的饼干?

8 windows-7 privileges

根据我的另一个问题,我的 cookie 似乎不受保护。(我应该知道,因为有一段时间我只是从 Internet 临时文件中手动删除了 cookie。)

所以让我的问题更笼统一点:

如何防止我电脑上的程序访问我电脑上的某些资源?

或者反过来:

如何仅对选定的程序开放某些资源的访问权限?

或者一个看似不切实际的请求:

如何让程序在访问某些资源时请求许可?


尽管 Windows 7 规定了在对系统文件进行更改时请求管理权限的规则。但是,所有程序都可以访问(我的意思是,只是查看)资源。

虚拟机似乎是一种选择,但是那些被虚拟机隔离的程序没有机会查看外部(主机)系统的任何资源,这似乎不是可取的。

我现在使用的是 Windows 7,但欢迎任何操作系统上的解决方案。

小智 7

好吧,让我先回答你更广泛的问题的一部分:如何去做。我的直接经验是在 Linux 上,但你说欢迎在任何平台上回答,所以这里是。如果您使用的是 Linux,您可能需要 root 访问权限才能以除(原则上)删除它们之外的任何方式访问您的 cookie。一般程序如下所示:

  1. 更改文件的权限,以便其他用户无法读取它。chmod 600 <file>应该作为正确的模式。
  2. 测试以确保您的浏览器不会意外破坏这些权限。
  3. 为您的浏览器创建一个新用户帐户。foxy为了争论,让我们称之为。
  4. 将浏览器 cookie 文件的所有权更改为foxy,以及浏览器可能需要写入的任何其他内容。(实际上,浏览器用户目录中的所有内容原则上都可能受到影响。)
  5. 测试以确保您的浏览器在以foxy. 如有必要,请foxy专门为此类内容提供主目录。
  6. 使用visudo给自己的权限,但只能运行浏览器的时候,要改变用户foxy在sudoers文件将类似于线<your user name> ALL = (foxy) NOPASSWD: /usr/bin/firefox。这将保证您只有权限以用户身份运行此特定程序foxy
  7. 编写一个 shell 脚本,用给定的用户名运行您的浏览器,以便您可以修改用于打开浏览器的链接的 .desktop 文件。假设你把它放在/usr/local/bin/browse; 它可能只包含(在 hash-bang 行之后)sudo -u foxy /usr/bin/firefox左右。

Linux 真正做得好的部分在于这些额外的选项。我对 Windows 7 了解不多,但如果它可以做同样的事情,我会感到有些惊讶——如果它有一个替代用户系统,可以根据可执行文件名称限制您替代的用户。(请注意,如果我只是给自己任意权限来替换 as foxy,这不会阻止专门的攻击者;他们只会替换任意命令来将 cookie 读取为foxy

现在让我解释一下为什么这是一个错误的问题。Gmail 恰好有一些不错的选项,可以强制您仅通过 TLS/SSL(安全浏览连接)发送 cookie。大多数基于登录的服务都没有。这意味着您的 cookie 原则上可以被整个互联网基础设施看到。令人惊讶的是,该基础设施已被证明是非常被动的,通常不会攻击你,除非可能会审查你,尽管互联网的某些部分(如 Tor)完全违反了这一规则。

但是,当您使用其他人的 WiFi 连接时,这仍然是一个问题。他们可以“听到”您发送的所有非 TLS 的内容,如果不使用安全代理方案来通过,您就无法阻止它们。(就像 Tor!...哎呀。)这不仅仅是我在谈论的无线安全性(尽管如果他们没有使用正确的加密,您的 cookie 也可能会受到在同一个房间里有笔记本电脑的任何人的威胁)和你一样)。这是机构本身。也许您的酒店前台文员恰好精通技术,并想窃听他工作的酒店的互联网流量;你怎么阻止他?

您也可以在 Linux 中解决这个问题,但它需要向某人支付一点现金才能购买所谓的SSH 隧道服务器。它是一个由您控制的远程代理,它(希望)比您的日常无线航行具有更安全的互联网连接;您通过加密连接连接到它。它仍然取决于 Internet 的其余部分是否安全,但您周围的环境可能不安全。通过~/.ssh/authorized_keys在该服务器上设置一个文件,您可以在不提供密码的情况下使隧道工作,尽管您可能想(或必须)设置一个 shell 脚本以默认将其添加到 firefox,就像以前一样。