$ uname -a
Linux mypcname 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt25-2 (2016-04-08) i686 GNU/Linux
我想检查一下我的电脑上的这个^^ Linux 内核没有被恶意篡改。我没有理由怀疑它已经存在,但我还是想检查一下。我的想法是,将我的内核软件与该软件的原始开发人员公开提供的相同版本进行比较应该构成对我的目的来说“足够好”的检查。如果您发现这种思维方式有任何明显的错误,请告诉我。我知道除了内核之外的其他恶意程序也可以在计算机上运行,但出于这个问题的目的,我只对内核感兴趣。
请注意,内核运行时不需要进行检查。没有什么可以阻止我关闭我的电脑并启动另一个内核或操作系统,甚至取出硬盘并将其插入另一台电脑来运行检查。但实际上我只想进行快速检查,因此我可能只会使用现有内核进行所有检查。完美的?不,足够满足我的目的了吗?当然。
我得到内核的哈希值,如下所示:
$ apt-cache show linux-image-3.16.0-4-686-pae
Package: linux-image-3.16.0-4-686-pae
Source: linux
Version: 3.16.7-ckt25-2
Installed-Size: 118358
Maintainer: Debian Kernel Team <[email protected]>
Architecture: i386
Provides: linux-modules-3.16.0-4-686-pae
Depends: kmod | module-init-tools, linux-base (>= 3~), debconf (>= 0.5) | debconf-2.0, initramfs-tools (>= 0.110~) | linux-initramfs-tool
Pre-Depends: debconf | debconf-2.0
Recommends: firmware-linux-free (>= 3~), irqbalance, libc6-i686
Suggests: linux-doc-3.16, debian-kernel-handbook, grub-pc | extlinux
Breaks: at (<< 3.1.12-1+squeeze1), initramfs-tools (<< 0.110~)
Description-en: Linux 3.16 for modern PCs
The Linux kernel 3.16 and modules for use on PCs with one or more
processors supporting PAE.
.
This kernel requires PAE (Physical Address Extension). This feature is
supported by the Intel Pentium Pro/II/III/4/4M/D, Xeon, Core and Atom; AMD
Geode NX, Athlon (K7), Duron, Opteron, Sempron, Turion or Phenom;
Transmeta Efficeon; VIA C7; and some other processors.
.
This kernel also runs on a Xen hypervisor. It supports both privileged
(dom0) and unprivileged (domU) operation.
Description-md5: b2c3f405aab9f0fe07863b318891f277
Homepage: https://www.kernel.org/
Section: kernel
Priority: optional
Filename: pool/main/l/linux/linux-image-3.16.0-4-686-pae_3.16.7-ckt25-2_i386.deb
Size: 33408936
MD5sum: ce730b36742b837e3990889f2d897b60
SHA1: 6f0816a4f4a2a24e7b74e9fa903dde778d825e63
SHA256: 63a59e3a09afa720ce1c9b71bb33176e943e59aa90a9e3d92100b1d3b98cd1c6
所以我有几个问题:
- 这些是文件的哈希值吗
pool/main/l/linux/linux-image-3.16.0-4-686-pae_3.16.7-ckt25-2_i386.deb
? - 我在哪里可以在线找到这些哈希值,看看我的哈希值是否正确?
- 假设(1)的答案是“是”,那么我如何检查我的电脑上实际运行的内核是否与该
.deb
文件安装的内核相同?
我在评论中遇到了对这个问题的反对......
我发布这个问题并不是为了寻求辩论。我在这个问题中要求的检查并不是万能的(在计算机安全方面没有这样的东西)。如果您对此问题有疑问,请考虑 Linux 内核本身的开发人员使用 PGP 密钥签署其软件,并建议:
所有内核版本均使用符合 OpenPGP 的签名进行加密签名。强烈鼓励每个人通过验证相应的签名来验证下载的内核版本的完整性。
(来源:https://www.kernel.org/signature.html)
据我所知,PGP 签名执行与散列文件以检查修改的功能不同的功能,但从安全角度来看,两者有相似之处 - 特别是在信任受感染系统输出的数据时。希望这个类比能够防止这个问题的读者立即驳回它,因为到目前为止,情况似乎主要如此。
答案1
这些是 pool/main/l/linux/linux-image-3.16.0-4-686-pae_3.16.7-ckt25-2_i386.deb 文件的哈希值吗?
是的。
我在哪里可以在线找到这些哈希值,看看我的哈希值是否正确?
假设 (1) 的答案是“是”,那么我如何检查我的电脑上实际运行的内核是否与此 .deb 文件安装的内核相同?
我不知道有什么简单的方法可以做到这一点。dpkg --verify
是有问题的,因为它使用(易于操作)中的校验和/var/lib/dpkg/info/
,而不是来自 deb 文件!
可以直接从deb文件中获取文件的md5sums
dpkg-deb -e linux-image-3.16.0-4-686-pae_3.16.7-ckt25-2_i386.deb
这应该将控制文件提取到一个目录中,DEBIAN
其中包含一个名为 的文件md5sums
,该文件包含包中文件的 md5sums,您可以根据安装的版本进行检查。
当然,这只是出于教育目的。我对安全了解不多!如果你想拥有任何真实的安全效益,你必须分析所有的系统在未运行时使用引导加载程序启动...