微软UEFI签名历险记

我碰巧翻译了他写的这篇文章 詹姆斯·波托姆利,技术顾问 Linux基金会,他们开始放在一起 预引导程序,以便您可以引导Linux.

正如我在上一篇文章中所解释的,我们已经准备好Linux Foundation预引导程序的代码。 但是,有一个 延迟 而我们可以访问Microsoft签名系统。

首先要做的是 支付99美元给Verisign (现为Symantec)并具有Verisign验证的密钥。 我们是为Linux Foundation做的,他们要做的就是致电总部进行验证。 密钥返回浏览器中安装的URL,但是可以使用标准的Linux SSL工具提取它并创建通常的PEM证书和密钥。 它与UEFI签名无关,但用于验证系统 系统开发人员 微软,你就是你所说的。 在创建sysdev帐户之前,必须对其进行测试 签署他们给您的可执行文件并上传。 他们对您在特定的Windows平台上进行签名提出了严格的要求,但请至少对其进行签名,然后创建我们的帐户Bingo。

创建帐户后,您仍然需要先上传UEFI二进制文件进行签名 签订纸质合同。 协议非常繁重,包括许多排除的许可证(包括用于驱动程序的所有GPL,但不适用于引导程序)。 最麻烦的部分是协议似乎已经达成 超出您签署的UEFI对象。 Linux Foundation的律师得出结论,它对LF基本上无害,因为我们不出售产品,但对其他公司则可能令人恶心。 根据Matthew Garrett的说法,Microsoft愿意与发行版进行特殊交易的谈判,以缓解其中的一些问题。

协议签署后, 技术乐趣。 您不能只上传UEFI二进制文件并对其进行签名。 首先你必须 将其包装为.cab文件。 幸运的是,有一个开源项目可以创建名为lcab的内阁文件。 那你必须 使用Verisign密钥对.cab文件进行签名。 同样,还有另一个开源项目可以做到这一点:osslsigncode。 对于需要这些工具的任何人,都可以在我的openSuse Build Service UEFI存储库中找到它们。 最终的问题是上传文件 需要Silverlight。 不幸的是,月光似乎不起作用,即使使用版本4预览,上传框也变为空白,因此 是时候使用Windows 7了 在kvm(基于内核的虚拟机)下。 在谈到这一部分时,您还必须证明二进制文件“将被签名, 不得根据GPLv3或类似的开源许可证获得许可”。 我以为是因为担心密钥公开,但根本不清楚(与“类似的开源许可证”相同)。

上传完成后,内阁文件将停止七个阶段。 不幸的是,第一次测试攀爬一直没有 锁定在第六阶段 (文件签名)。 6天后,我向Microsoft发送了一封支持电子邮件,询问发生了什么事。 答案是:“签名过程抛出的错误代码是: 您的文件不是有效的Win32应用程序。 它是有效的Win32应用程序吗?”。 答:显然不是,它是有效的64位UEFI二进制文件。 没有更多答案了...

我再次尝试。 这次,我收到了签名文件的下载电子邮件,董事会说 签名失败。 我下载并验证。 二进制文件可在secureboot平台上运行,并用密钥签名

主题= / C =美国/ ST =华盛顿/ L =雷德蒙德/ O = Microsoft Corporation / OU = MOPR / CN = Microsoft Windows UEFI Driver Publisher
发行人= / C =美国/ ST =华盛顿/ L =雷德蒙德/ O =微软公司/ CN =微软公司UEFI CA 2011

我询问支持人员,为什么该过程指示失败,但是我进行了有效下载,并且在收到一堆电子邮件后,他们回答“请勿使用该文件。 签名错误。 我会回到你身边。” 我仍然不确定是什么问题,但是如果您查看签名密钥的主题, 密钥中没有任何内容可以指示Linux Foundation,因此我怀疑问题在于二进制文件是用通用Microsoft密钥而不是与Linux Foundation绑定的特定(可撤销)密钥签名的。

但是,状态是:我们将继续等待Microsoft向Linux Foundation提供经过签名并经过验证的预引导程序。 发生这种情况时,它将被上传到Linux Foundation站点供所有人使用。

数据来源: http://blog.hansenpartnership.com/adventures-in-microsoft-uefi-signing/

得出您的结论,但这将需要时间。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   罗洛

    如果确实通过从BIOS禁用UEFI来解决UEFI系统附带的带有win8 OEM的PC的问题,那么在我看来,Linux基金会和Fedora,Ubuntu以及我都不知道哪个发行版要付款是一个错误。证书,并接受Microsoft施加的限制。

    我们必须停止成为羔羊!

    1.    sieg84

      但我知道Windows 8仍然无法启动

      1.    布莱尔·帕斯卡

        呵呵呵,没什么大不了的。 好吧,至少对我来说。 这是个人观点,我不想得罪任何人。

    2.    芝87

      不能从BIOS中禁用UEFI,因为UEFI是一种固件,可以代替寿命更长的BIOS。

      我们所说的是安全启动(Secure Boot),这是一种UEFI功能,可以通过数字签名来验证用于启动计算机的软件的真实性,应该禁用安全启动。

      这不像禁用安全启动那样简单,仅此而已,制造商必须考虑包括一个允许用户禁用安全启动的菜单,如果制造商不希望禁用它,那将非常复杂。为了使用户能够这样做,可能不得不将主板固件替换为非官方的固件。

      Linux Foundation的解决方案将是受此疾病影响的任何硬件的“通用”解决方案,并且只需支付一次数字签名就可以安装任何系统,这肯定会令他们感到恐惧,以及为什么要这么做吗?祈祷

      1.    MSX

        «这不像禁用安全启动那样简单,仅此而已,制造商必须考虑包括一个允许用户禁用安全启动的菜单,如果制造商不希望禁用它,那将非常使得用户无法做到,»

        因此,您需要做的是一个数字扫盲运动,向用户解释说他们要求具有这种特征的计算机,而购买其他计算机。

      2.    塔里贡

        所有这些都是通过验证使用安全启动可以启动和不能启动的东西来赚钱。

  2.  

    完全无能与不良意图是无法区分的。

  3.   雨果

    尽管罗伯特·J·汉隆(Robert J. Hanlon)有一句著名的话说:“永远不要将愚蠢充分解释为恶意的原因”,在Microsoft的特殊情况下,对于一个原本精心构思和设计的过程而言,如此愚蠢的困难使它变得更好。在安全性方面,它给人的印象一直是它们阻碍了Linux Foundation,因此无法在具有UEFI的新PC上安装linux,从而使Microsoft不受竞争。

    1.    布莱尔·帕斯卡

      精确。 我不喜欢这个主意,一个安全的开始……让我感到恐惧。 在我看来,Microsoft具有非常……黑手党的目的。

      1.    巴姆勒

        我对微软及其操纵感到非常厌倦,甚至害怕它的意图,并厌倦了它假装称霸市场上的每台PC或设备。

        我希望Linux能够全面普及,并在最终用户中盛行,而Windows最终由于其操作系统的废话而最终被边缘化。

        1.    雨果

          这使我想起了授予Microsoft的专利,默认情况下,该专利受到系统的限制,并且为了释放其全部潜能或安装任何第三方程序,用户或用户拥有的许可证当然是必需的希望在操作系统上安装其应用程序的第三方。 他们还没有实现它,并不意味着他们不打算这样做,而且我给人的印象是UEFI正在为此做准备。

  4.   Erunamo爵士

    使我感到惊讶的是64bist二进制文件失败并强制32bit二进制文件…。 它们是逆行的,市场上几乎没有任何新的86位x32架构处理器。 它应该在64位上工作。

    u

  5.   约格曼花园

    数字签名或安全启动正在尝试阻止系统以外的“事物”启动。 这也是为了避免所谓的盗版或专有软件的非法复制。

    在他们所谓的Win8安全系统上进行分析并进行一些研究,该系统具有自吹自secure的安全启动功能,因为他们最近发现了一个安全漏洞,因此显示了它的无能。

    由于上述原因,并且不必成为博士学位和其他人的行业天才,可以推断出,这只是伴随微软成为封闭式苹果风格系统的前提的一种营销概念。

    从我个人的角度进行审查,咨询和研究,我可以说UEFI /安全启动是一种欺诈和骗局,其目的仅在于强迫和支持Microsoft项目完全关闭其生态系统,同时利用它仍然可以行使一定的权利。个人计算领域的压力。

  6.   帕夫洛科

    这个假期,我将寻找起诉微软的方法。 我恨他们。

    1.    布莱尔·帕斯卡

      呵呵呵,如果我有欲望和时间,我也会要求他们。 这是对自由的侵犯。 除非他们制作臭名昭著的EULA的另一个版本,除非他们在其中指定接受合同即表示您同意不安装任何其他软件,所以我不会感到惊讶。

    2.    巴姆勒

      +1

  7.   Nosferatux

    我们将看到微软如何使用win8和UEFI / secureboot,也许它将失去一些市场,而青睐Macbook或chromebook。

    谁知道呢,也许有一天,某些个人电脑制造商将会出现,支持Linux和其他免费系统。

  8.   Nosferatux

    mmm,例如,如果linux社区在互联网日和程序员日“表现出来”,则在某些hp商店(至少可以说)面前表示对品牌的赞赏,但不同意使用Windows?。

    如果在那个日子里,“装置盛宴”走到街头或公共广场上?

    1.    雨果

      可悲的现实是,所有Linux用户加起来仅占Windows用户的一小部分,因此硬件制造商自然会优先考虑具有最高市场份额的操作系统。 因此,我认为示范不可能改变一切。

      我认为,例如,使Linux成为更具吸引力的应用程序和游戏平台,可能会比许多针对MS的演示更具影响力。 但这需要时间(和资源)。

  9.   查理·布朗

    攻击Micro $ oft及其安全启动是可以的,但是请记住,默认情况下,是只有主板制造商才将它包含在UEFI中,就像只有一个OS一样。 微软的...他们走了错误的道路。 考虑到这种情况,在我看来,将来像今天使用某些产品的ROM一样,我们将被迫使用“已发布”版本刷新板的UEFI。 幸运的是,事实证明,那些渴望自由的人比那些企图消灭自由的人更有才华。

    1.    芝87

      伙计....这不像制造商选择是否在其硬件中包括安全启动那样简单,我们决不能忘记微软是垄断者,实际上它是THE Monopoly,并且作为制造商,对微软说不。这可能意味着必须与律师面对面,增加许可成本,这会使您的设备更加昂贵,甚至失去80%的国内市场。

      不是说要为他们辩护,而是如果微软知道该怎么做正是基于勒索和垄断而施加的,唯一的选择就是让所有制造商或至少大多数制造商立即达成一致,并立即停止行动,但是要实现这一目标非常困难,无论一家公司规模多大,无论微软要求的是多么不公平/蠕变/荒唐,它都将在冒险经营之前三思而后行。

  10.   阿尔夫

    在各个博客和论坛上都有很多关于此主题的讨论,但是我有几天想着什么,也许这是我的愚蠢,但是,对于销售Linux机器的DELL和HP(我不知道其他公司)而言,安全启动会退出吗?

    1.    雨果

      我想我已经读过,在这些情况下,制造商会使用双UEFI / BIOS系统,因此,如果禁用UEFI,则会退回到BIOS。 这自然会增加成本。

      最终,BIOS应该消失了,因为我们知道它会支持UEFI或其他更好的标准,因为BIOS技术很旧,因此存在局限性。

  11.   芝87

    先生们,在这件事上,FSF请愿书的签名:

    我们的签署方敦促所有实施UEFI所谓的“安全启动”的计算机制造商以允许安装免费操作系统的方式进行安装。 为了尊重用户自由并真正保护他们的安全,制造商必须允许计算机所有者禁用启动限制,或提供可靠的系统来安装和运行他们选择的免费操作系统。 我们保证,我们不会购买或推荐那些剥夺用户这种重要自由的计算机,我们将积极鼓励社区中的人们避免使用这种笼罩的系统。

    http://www.fsf.org/campaigns/secure-boot-vs-restricted-boot/statement

    1.    MSX

      完善,请求已与LUG和网络的其余部分签名并共享,感谢您的评论。