【问题标题】:Signed binaries for digital signatures用于数字签名的签名二进制文件
【发布时间】:2011-08-19 23:17:53
【问题描述】:

http://en.wikipedia.org/wiki/Digital_signature#Using_digital_signatures_only_with_trusted_applications 警告说“恶意应用程序可能会通过在屏幕上显示用户的原始文件来欺骗用户签署任何文件,但将攻击者自己的文件呈现给签名应用程序。”

关注non-repudiation,如何才能真正确保文档查看器或签名应用程序或两者都没有被恶意代码替换?

即使二进制文件已签名,doesn't seem to be a way 也会防止代码在内存中被修改。即使有办法,攻击者不能简单地修改查看器和签名应用程序吗?

这个问题不是特定于 Windows 的。我愿意接受任何操作系统的使用。

【问题讨论】:

    标签: security digital-signature


    【解决方案1】:

    着眼于不可否认性,如何才能真正确保 文档查看器或签名应用程序,或两者都没有 替换成恶意代码?

    用户机器的安全性对于所有涉及安全性的事情都是必不可少的。如果您不能信任您的操作系统和已安装的应用程序,那么每个签名机制都可能被破坏或欺骗。

    即使二进制文件已签名,似乎也没有办法 防止代码在内存中被修改。即使有办法, 攻击者不能简单地修改查看器和签名 申请?

    是的,他可以。

    可以考虑您的安全机制中最薄弱的一个来评估您的计算机的安全性。建立强大的加密努力,如果您的操作系统已被破坏,则根本没有用。

    编辑:

    那么我如何确保操作系统没有被入侵?

    嗯,您永远无法绝对确定您的操作系统是安全的。有许多不同的事情需要考虑:

    1. 有多少人可以访问该操作系统?
    2. 您说的是哪个操作系统?
    3. 该操作系统的用户执行哪些任务?
    4. 该操作系统是否已连接到 Internet?如果是,您的网络基础设施是如何组织的?

    我能否以只读方式启动操作系统和我的应用程序 开车?

    我不知道。也许你可以。但是,如果有人可以利用您机器上运行的服务(例如具有 root 权限的服务器应用程序),那么只读驱动器将无法拯救您。

    你有什么推荐的?

    首先尝试评估您的系统真正需要的安全级别。可能您无法实现完美的安全性。然后尝试达成一个好的妥协。

    请记住,安全性和可用性可能需要权衡取舍。如果您强制执行您的安全策略,您的系统的可用性可能会降低。

    关于我个人的建议:

    1. 使用开源操作系统。否则,您将无法确保机器内部真正发生的事情。
    2. 尝试配置限制性防火墙。拒绝对除您真正需要的服务之外的所有服务的网络访问。
    3. 如果您的系统被很多人使用(特别是如果他们对安全一无所知),请尝试教他们一些安全原则。人类通常是最容易被利用的部分(例如社会工程学)。
    4. 仅安装开源软件或您真正信任的软件。保持系统更新。

    【讨论】:

    • 优秀。那么如何确保操作系统没有受到损害呢?我可以从只读驱动器启动操作系统和我的应用程序吗?你有什么推荐的?
    • @Gili:我只用一些建议编辑了我的答案。不可能给你一个完美的答案。
    • @Gili:让我们试着减少这个问题,集中在一个例子上。操作系统是系统的一部分,它负责读取/写入,甚至从存储密钥的 hipotetical 只读 hd 中。如果操作系统受到威胁,您能否确定读取密钥是存储在您的只读位置中的密钥?或者,如果攻击者破坏了您的系统并将他的密钥注入您的 ram 内存,那么被黑客入侵的操作系统检索到的密钥难道不是伪造的吗?如果我错了,请告诉我。
    • “如果有人可以利用您机器上运行的服务 [...],那么只读驱动器将无法拯救您”。如果我指示用户在每个会话中重新启动驱动器(并防止其他人在他的会话期间使用计算机),那么只有在用户知情的情况下才能利用该漏洞(因此确保不可否认性)。
    • 如果有人获得对可写介质的物理访问权限,似乎没有办法保护它:twopointfouristan.wordpress.com/2011/04/17/…——我看到只读令牌的问题是你如何证明某人没有t 交换整个令牌?
    【解决方案2】:

    不可否认性是一个非常值得商榷的话题。在欧盟,有一项指令 (1999/93/EC) 规定了此类不可否认签名的“所见即所得”。棘手的部分是,正如您已经提到的 - 我们如何提供这种保证?

    如果您的操作系统遭到入侵,即攻击者可以在操作系统级别上弄乱您的机器,那么仅靠安全签名设备(例如智能卡)无法拯救您。尽管设备是安全的,但攻击者可以在屏幕上显示与您最终签署的内容截然不同的内容。

    签名并因此受信任的代码也无法解决这个困境。该软件可能具有示范性的安全性,但您仍然可以摆弄输入和输出,无论是在文件系统、内存等中。

    因此,确保这一 WYSIWYS 原则的唯一真正安全的方法是安全的硬件设备,它 带外数据进行签名,即与受感染操作系统的窥探断开连接。理想情况下,它还负责输入 PIN(密码键盘或其他东西),因为在安装了键盘记录器的机器上输入 PIN - 不安全。只有这样,用户才能确定他们在显示器上看到的正是传输到设备的内容——然后才能决定是否应用他们的不可否认签名。

    这些设备是存在​​的(至少我在现实生活中见过它们,但不包括显示方面——关于那些我只听过人们谈论的设备),但目前它们仍然很少见,因为将它们推广给大众仍然过于昂贵.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 2010-10-22
      • 1970-01-01
      • 1970-01-01
      • 2021-07-25
      • 1970-01-01
      相关资源
      最近更新 更多