🛡️ 安全警告 (Security Warning)
注意:在使用此公钥之前,请务必交叉比对多个渠道的指纹信息。如果出现以下任何一种情况,请 立即放弃 使用并停止通信:
- 任何一个渠道(DNS、GitHub、Keyoxide)显示的指纹与本页面不符。
- 导入后通过
gpg --fingerprint查看到的指纹不匹配。 - 签名验证失败。
本公钥的唯一合法指纹 (Fingerprint)
85F1 E2C5 9766 CB40 FC87 8B1C 457C 726D 13DB 58CC
自动化导入方式
两种基于标准协议的方式,在终端一键获取并验证公钥
# 方法 A:基于 WKD (Web Key Directory) 直接从域名服务器获取密钥的先进协议
gpg --locate-keys contact@picatria.org.cn
# 方法B: 基于全球主流的公钥服务器 =keys.openpgp.org=
gpg --keyserver hkps://keys.openpgp.org --search-keys contact@picatria.org.cn
Linux/macOS 用户 shell 脚本验证与导入
#!/bin/bash
# --- 配置区 ---
TRUSTED_FPR="85F1E2C59766CB40FC878B1C457C726D13DB58CC"
DOMAIN="picatria.org.cn"
GH_USER="EdgeOfSun"
# 这里填入你 proof.md 所在的 Gist ID (即 URL 最后那串字符)
GH_GIST_ID="b65de1cd8b2f4cd1ec925addb8527908"
PUBKEY_URL="https://$DOMAIN/publickey.asc"
echo "-------------------------------"
echo "🔍 开始进行三方身份交叉验证..."
echo "-------------------------------"
# 1. 获取网站公钥文件的指纹
# 逻辑:下载公钥 -> GPG 读取指纹 -> 提取第10字段 -> 取第一行
SITE_FPR=$(curl -sL "$PUBKEY_URL" | \
gpg --import-options show-only --import --with-colons | \
grep "^fpr" | \
cut -d: -f10 | head -n 1)
# 2. 从 DNS TXT 记录提取指纹
# 逻辑:查询 TXT 记录 -> 匹配40位十六进制 -> 取第一行
DNS_FPR=$(dig +short TXT "$DOMAIN" | \
grep -oE "[0-9A-F]{40}" | head -n 1)
# 3. [已更新] 从 GitHub Gist (proof.md) 获取指纹
# 逻辑:构造 Raw 链接 -> 下载内容 -> 匹配 openpgp4fpr:指纹 格式 -> 提取指纹部分
# 注意:GitHub 原生页面包含 HTML,必须使用 gist.githubusercontent.com 获取纯文本
GH_RAW_URL="https://gist.githubusercontent.com/$GH_USER/$GH_GIST_ID/raw"
# 这里 grep 匹配 "openpgp4fpr:指纹" 并截取冒号后面的部分
GH_FPR=$(curl -sL "$GH_RAW_URL" | \
grep -oE "openpgp4fpr:[0-9A-F]{40}" | \
cut -d: -f2 | \
head -n 1)
# --- 验证对比逻辑 ---
ERROR=0
# 对比网站
if [[ "$SITE_FPR" == "$TRUSTED_FPR" ]]; then
echo "✅ [1/3] 网站公钥文件通过"
else
echo "❌ [1/3] 网站公钥不匹配!(获取到: ${SITE_FPR:-为空})"
ERROR=1
fi
# 对比 DNS
if [[ "$DNS_FPR" == "$TRUSTED_FPR" ]]; then
echo "✅ [2/3] DNS TXT 记录通过"
else
echo "❌ [2/3] DNS 记录不匹配!(获取到: ${DNS_FPR:-为空})"
ERROR=1
fi
# 对比 GitHub
if [[ "$GH_FPR" == "$TRUSTED_FPR" ]]; then
echo "✅ [3/3] GitHub Gist 证明通过"
else
echo "❌ [3/3] GitHub Gist 证明不匹配!"
echo " 期望: openpgp4fpr:$TRUSTED_FPR"
echo " 实际获取内容可能为空或格式错误,检查 Gist ID 是否正确。"
ERROR=1
fi
# --- 交互确认环节 ---
if [ $ERROR -eq 0 ]; then
echo -e "\n🎉 交叉验证全数通过!所有来源指向同一个身份。"
echo "------------------------------------------------"
# 提示用户进行选择
echo -n "❓ 是否现在将此公钥导入您的 GPG 钥匙串? [y/N]: "
read -r response
case "$response" in
[yY][eE][sS]|[yY])
echo "🚀 正在执行导入..."
curl -sL "$PUBKEY_URL" | gpg --import
echo "✨ 导入完成。您可以运行 'gpg --fingerprint contact@picatria.org.cn' 进行最终确认。"
;;
*)
echo "✋ 已取消操作。未对您的系统进行任何更改。"
exit 0
;;
esac
else
echo -e "\n🚨 严重警告:多方验证不一致!"
echo "这可能意味着其中一个渠道已被入侵或篡改。为了安全,已自动终止。"
exit 1
fi
手动身份核实
为了确保此公钥真实可靠,你可以通过以下方式交叉验证:
- Keyoxide 验证结果 (推荐):查看基于域名和 GitHub 的自动化证明报告。
- DNS 验证 :在终端运行以下命令:
dig TXT picatria.org.cn - GitHub 验证 :访问我的 GitHub Profile
,查看简介中的指纹及绿色的
Verified标志。
下载与使用
- 公钥下载:publickey.asc
- 直接导入:
curl https://picatria.org.cn/publickey.asc | gpg --import
公钥正文 (Public Key Block)
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaUcGTRYJKwYBBAHaRw8BAQdAL96HTmMXJy2AM7gouuUQMjk2RxtoKJufuj4t
o9axXWS0NXBpY2F0cmlhIChQaWNhc3NvIFRyaWFuZ2xlKSA8Y29udGFjdEBwaWNh
dHJpYS5vcmcuY24+iQFWBBMWCgD+AhsDBQsJCAcCAiICBhUKCQgLAgQWAgMBAh4H
AheAFiEEhfHixZdmy0D8h4scRXxybRPbWMwFAmlHgQVbFIAAAAAAEABCcHJvb2ZA
YXJpYWRuZS5pZGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL0VkZ2VPZlN1bi9iNjVk
ZTFjZDhiMmY0Y2QxZWM5MjVhZGRiODUyNzkwODAUgAAAAAAQABdwcm9vZkBhcmlh
ZG5lLmlkaHR0cHM6Ly9waWNhdHJpYS5vcmcuY241FIAAAAAAEAAccHJvb2ZAYXJp
YWRuZS5pZGRuczpwaWNhdHJpYS5vcmcuY24/dHlwZT1UWFQACgkQRXxybRPbWMzN
KwEA0d0D1/Lcn6yGFt0063wIZxtpBYOolEl++AseSw7oJqwA/1pVoqA8cAzIDlQz
E5y+NlMzPQ8V65zbvfUez4QM7NEGuDgEaUcGTRIKKwYBBAGXVQEFAQEHQIrQfdkc
yvxjjCmhxNCCl5Lnrk6IlcjlX5x3f17buMZEAwEIB4h4BBgWCgAgFiEEhfHixZdm
y0D8h4scRXxybRPbWMwFAmlHBk0CGwwACgkQRXxybRPbWMxsSgEAmTvSY3dSs+rC
1HF7nq95J5pMezah/b8gBSOy5XoKnUIA/jhIHR8mlWHElYqe3uvM8tj3aLKuxFjZ
PZZk3XAZcRcC
=Bevc
-----END PGP PUBLIC KEY BLOCK-----
📝 匿名留言