OpenWrt使用了 GnuPG,以及 usign,一个由 OpenBSD signify 工具派生出来的签名软件,对发行版进行签名。
OPKG 软件包管理器使用 usign Ed25519 签名来在安装软件时校验软件库的数据,而OpenWrt固件开发者通常会附带上GPG签名以便用户校验下载的文件是否被更改。
usign 签名文件的后缀名是 .sig,而 GPG 签名文件的后缀是 .gpg。
需要注意的是,并不是所有的文件都有单独的签名文件,但我们会使用sha256sums来计算他们的校验和。对于软件库来说,软件包的信任链是这样的:SHA256 校验文件保证了软件包不被更改,而校验文件的签名文件保证了校验文件是可信的。
你可以通过以下步骤来校验下载的固件的完整性:
sha256sum 和 sha256sum.asc 文件gpg --with-fingerprint --verify sha256sum.asc sha256sum, 确保 GnuPG 告诉你这个签名是正确的,并且签名的指纹符合指纹页面上面所记载的指纹.sha256sums 文件相同的文件夹下,使用命令 sha256sum -c --ignore-missing sha256sums 来校验固件文件参与OpenWrt的所有开发者都需要将自己的 GnuPG 与 usign 公钥存放在主密钥环库中。
你可以参考 key generation howto 页面来为自己生成一个公钥。