通过哈希验证脚本完整性
在此步骤中,你将学习如何使用加密哈希来验证脚本的完整性。这可以确保在保护好脚本后,它未被攻击者修改或篡改。我们将使用 sha256sum 工具,它用于计算 SHA-256 哈希。
首先,让我们为安全的 check_file.sh 脚本生成一个哈希,并将其保存到一个文件中。此文件将作为我们的“已知良好”签名。
sha256sum ~/project/check_file.sh > ~/project/check_file.sha256
此命令计算 check_file.sh 的 SHA-256 哈希,并将输出重定向到一个名为 check_file.sha256 的新文件。让我们查看此文件的内容。
cat ~/project/check_file.sha256
你将看到一长串字符,后跟文件名。此字符串是你脚本的唯一哈希。
e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 /home/labex/project/check_file.sh
(注意:你的哈希值将不同。)
现在,让我们模拟一次未经授权的修改。我们将在脚本末尾添加一个简单的注释。即使是这样小的更改也应该会完全改变哈希。
echo "## A harmless comment" >> ~/project/check_file.sh
脚本现已修改。要检查其完整性,我们可以使用带有 -c(check)选项的 sha256sum,它会从我们的签名文件中读取哈希,并将其与脚本的当前哈希进行比较。
sha256sum -c ~/project/check_file.sha256
由于文件已更改,该命令将报告失败。
/home/labex/project/check_file.sh: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match
这证实了脚本的完整性已被破坏。此技术对于确保你运行的代码是你所信任的代码至关重要。