【发布时间】:2018-05-05 02:24:08
【问题描述】:
用例: 我正在为我的 Raspberry Pi 开发一个 IoT Linux 系统。只读 rootfs 不是一个选项,因为我想即时升级可执行文件。我认为是我的解决方案:我开发了一个可以签署 ELF 文件(Linux 可执行文件和库)的工具。它使用一些 pub/priv 密钥对部分进行签名,将签名保存到一个部分中并在执行之前检查文件(类似于 DigSig,但在 openssl-lib 的帮助下)。库加载器(glibc)也被修改为在加载之前检查所有 linux“.so”库。最后,我想在开源许可下发布项目和我的解决方案。目前还没有完成,离稳定还很远。
发展状况:
- ELF-文件签名工具已完成。
- 内核被修改(新的安全模块/自己的系统调用函数来检查精灵二进制签名)。
- Glibc 已针对我的本地源进行了修改和修补。
- Quemu 已修补以支持我的新系统调用。
- Yocto 环境已设置。该图像在我的 RaspberryPi 2 测试机上运行。
到目前为止一切顺利。我觉得我非常接近我的解决方案。
现在我需要: 使 Yocto / bitbake 启用所有 ELF 文件在构建过程后签名。最好是 rpm 文件已经包含签名的 ELF 文件。并且签名过程将由所有其他包的一个配方完成。 (所以我不想创建一个只修改根文件夹中文件的安装后脚本)。
在谷歌搜索几个小时并检查 yocto 的文档后,我没有解决方案。如果有人可以帮助我,那就太好了。
【问题讨论】:
标签: linux-kernel openssl glibc yocto bitbake