有没有一种方法可以对Hex包进行端到端的认证?

问题描述 投票:2回答:1

我正在寻找一种方法来加密验证通过Elixir中的Hex包管理器下载的包的完整性和真实性。到目前为止我没有找到任何东西。

一些软件包管理器支持OpenPGP等数字签名系统,以确保安装在目标系统上的代码与软件包作者生成的代码完全相同,从而阻止试图改变中央数据存储上数据的攻击,这些数据包含数千个软件包。

对于Elixir和Erlang的流行包管理器,Hex是否有任何形式的支持?

erlang elixir digital-signature package-managers
1个回答
4
投票

Hex目前不支持用户签名的包。一些不同的软件包管理器已经尝试实现用户签名,但没有一个是完全成功的,因为它很容易使用,所有发布者都需要签署他们的软件包,所有消费者都需要验证签名的真实性。

信任网(类似PGP)的方法是有问题的,因为你必须建立一个信任网络,这是一个很高的进入门槛 - 你必须亲自见到其他开发人员或者以某种方式让他们验证你是谁,这样他们就可以签署你的发布第一个包之前的关键?

集中信任(类似X.509)方法也存在问题。如果中央存储库Hex.pm颁发证书,那么妥协Hex.pm也会破坏用户签名的包,这是我们试图阻止的。

我们已经制作了proposals for signing packages,我们已经评估了other approaches并且正在关注和参与ongoing discussions如何解决这个问题。

即使Hex不支持用户签名的包,我们也会做其他事情来验证包的真实性。包内容经过校验和,并包含在package tarball中并存储在服务器上。用户构建程序包时会打印程序包校验和,并且可以根据存储库中的程序包进行验证。校验和包含在由Hex.pm private key签名的存储库索引中。根据索引中的校验和验证下载的软件包,如果软件包已锁定,则还会根据锁中的校验和进行验证。

© www.soinside.com 2019 - 2024. All rights reserved.