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

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

根据我的另一个问题,看来我的 cookies 不受保护。(我应该知道这一点,因为有一次我手动从 Internet 临时文件中删除了 cookies。)

为了使我的问题更加笼统:

如何阻止我的计算机上的程序访问我的计算机上的某些资源?

或者反过来:

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

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

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


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

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

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

答案1

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

  1. 更改文件的权限,以便其他用户无法读取它。chmod 600 <file>应该作为正确的模式工作。
  2. 进行测试以确保您的浏览器不会意外破坏这些权限。
  3. 为您的浏览器创建一个新的用户帐户。foxy为了便于讨论,我们将其命名为。
  4. 将浏览器的 cookies 文件的所有权更改为foxy,以及浏览器可能需要写入的任何其他内容。(实际上,原则上浏览器用户目录中的所有内容都可能受到影响。)
  5. 测试以确保您的浏览器在以 运行时仍然知道其 cookie 存储在哪里foxy。如有必要,请foxy专门为此类内容提供主目录。
  6. 使用visudo授予自己权限,但仅限于在运行浏览器时,将用户更改为foxysudoers 文件中的行看起来像这样<your user name> ALL = (foxy) NOPASSWD: /usr/bin/firefox。这将保证您只有权限以用户身份运行这一个特定程序foxy
  7. 编写一个 shell 脚本,使用给定的用户名运行浏览器,这样您就可以重新安装用于打开浏览器的链接的 .desktop 文件。假设您将其放在/usr/local/bin/browse;它可能只包含(在哈希标记行之后)sudo -u foxy /usr/bin/firefox等。

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

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

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

你可以在 Linux 中解决这个问题,但它需要花一点钱给别人买一个SSH 隧道服务器。它是一个由您控制的远程代理,它(希望)具有比您日常无线航行更安全的互联网连接;您通过加密连接连接到它。它仍然依赖于互联网的其余部分是安全的,但您的周围环境可能不安全。通过~/.ssh/authorized_keys在该服务器上设置文件,您可以使隧道工作而无需提供密码,尽管您可能希望(或必须)设置一个 shell 脚本以将其默认添加到 Firefox,就像以前一样。

答案2

实现此目的的一种方法...

  1. 创建新用户帐户并设置密码
  2. 登录该帐户并安装 Chrome 或运行 Firefox 以创建 %Appdata% 文件夹
  3. 使用 EFS 加密该 %AppData% 文件夹(右键单击 -> 属性 -> 高级 -> 加密...)
  4. 切换到您的主帐户 按住 Shift 并右键单击浏览器快捷方式并选择“以其他用户身份运行”
  5. 输入新帐户凭据并单击确定

您现在以不同的用户身份运行浏览器,并且这些文件已加密,因此只有该用户/应用程序可以读取它们。

对于 Chrome,您需要编辑快捷方式以打开安装在浏览器帐户中的 Chrome。

您还需要将下载目录更改为您的主要用户并授予浏览器用户对该目录的权限,或者您可以将其设置为公共文件夹并将该公共文件夹添加为库。

编辑:刚刚在虚拟机中用 Firefox 和 Chrome 测试了它...Firefox 可以工作,但 Chrome 崩溃了。这可能是由于它使用的沙盒,但我不确定,可能有一个简单的解决方法。

编辑 2:是的,这是沙盒。如果您将 --no-sandbox 添加到快捷方式,它将起作用:\如果您有 sandboxie,您可以将 Chrome 设置为强制进入由浏览器用户加密的沙盒。

答案3

大多数现代操作系统都支持一种称为“强制访问控制“这可以轻松实现您想要的,但是正确配置访问控制策略所需的知识却很难学习。

在 Windows 上,一个更简单的解决方案是使用基于主机的入侵检测系统 (HIDS)现在许多防病毒软件都包含此功能。它们通常允许您为每个应用程序设置规则,规定其可以访问哪些资源。只需将您的 cookies 文件夹放入受保护文件(或私人文件,或 A/V 软件中对它们的称呼)列表中,然后只允许 IE 访问它们。某些防病毒产品没有保护读取访问权限,在这种情况下,您可能不得不回退到仅为访问该应用程序(IE)而创建用户。

不过,如果您愿意克服困难,您可以在沙箱中运行 IE。

答案4

如果您使用 Internet Explorer,自动清空 Internet 临时文件可能会有所帮助。

如果您想保留 cookie,只需加密磁盘、删除管理 -隐藏- 共享并限制对要保护的文件夹的访问。使用 Win+L 组合键,在计算机从屏幕保护程序返回时分配密码。这就是我所做的。

相关内容