惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
爱范儿
爱范儿
V
Visual Studio Blog
Last Week in AI
Last Week in AI
阮一峰的网络日志
阮一峰的网络日志
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 三生石上(FineUI控件)
博客园 - Franky
博客园 - 叶小钗
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Cloudflare Blog
大猫的无限游戏
大猫的无限游戏
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
罗磊的独立博客
L
LangChain Blog
Jina AI
Jina AI
IT之家
IT之家
J
Java Code Geeks
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页

WANGYE / 王晔

网站平台迁移到ASP.NET 8.0 使用umami自建博客流量统计分析平台 解决PPPoE宽带上网IPv6卡顿问题 网站近期的维护情况 restic使用rclone后端备份数据至WebDAV服务器 Linux LVM分区管理学习备忘 5月29日网站nginx运维故障复盘 看门狗(Watchdog)使Linux设备从异常运行中快速恢复 Docker容器使用dumb-init作为进程supervisor和init系统 让过时浏览器支持新技术 JavaScript Polyfill 网站近期的维护情况 Bash Shell脚本得到宽带公网动态IP地址 FreePBX解决动态公网IP环境SIP地址更新问题 从Socket error丢失网络连接的Linux SSH恢复pts会话 Bash Shell使用curl POST向Web API提交JSON nginx njs利用ipset集合实现黑名单(白名单)访问控制 网站平台由ASP.NET 5.0迁移到.NET 6.0 Linux环境.NET Core zh-CN中文语言问题 Docker桥接网络开启IPv6支持
本站使用PGP/GPG加密技术保护联系表单
Wang Ye · 2022-07-12 · via WANGYE / 王晔

本文章超过一年没有更新,所提供信息可能已经过时,请谨慎参考。

我的网站老访客可能会有印象,之前的联系表单是支持PGP/GPG加密正文的,后来使用ASP.NET重构后这一部分实现始终存在问题,判断可能是第三方库的BUG,一直没有再加上这个功能,最近该第三方库进行了升级,发现这个BUG已经修复了,于是在联系表单启用了PGP/GPG加密特性。

PGP/GPG虽然是两种写法,但实际上是一种东西,首先我们要介绍PGP(Pretty Good Privacy),这是一套消息加密、验证的技术,由一系列散列、数据压缩、对称密钥加密,以及公钥加密的算法组合而成,最早由菲利普·齐默曼(Philip R. Zimmermann)发明并应用于电子邮件安全隐私保障,可以这么说在没有PGP和TLS加密的时代电子邮件或多或少的在互联网上明文裸奔,而且被篡改的几率很大。PGP最初由Philip免费在互联网上发布,但其本人也因此违反了美国政府关于加密软件出口的限制而受到刑事调查,美国政府的打击并未影响到PGP成为世界上受欢迎的邮件安全隐私保障技术之一,后来Philip成立了商业公司运营PGP,PGP也成为一种事实上的标准(OpenPGP, RFC4880)。

GPG(GNU Privacy Guard)又称GnuPG,是OpenPGP标准的开源自由软件实现,绝大多数的开源技术在涉及PGP技术都使用了这个实现,同样本站也是依赖于此实现了PGP加密功能。

2 为什么要加密邮件正文

本站联系表单通过电子邮件方式传输信息,这依赖于第三方邮件发送方和本人的电子邮箱服务商所提供的服务,虽然访客与本站的连接的通过HTTPS/TLS加密的,并且本站与第三方邮件发送方也使用了TLS加密传输通道,但是仍然无法确保第三方邮件发送方和本人电子邮箱服务商无法窥探到所发送的信息,所以如果发送的信息十分敏感,这需要用到PGP/GPG加密,这样邮件正文将会被安全加密,实际上如果网友通过联系表单或者电子邮件咨询问题或者与我唠嗑则可以不加密邮件正文,加密与否在于邮件信息的敏感性和泄漏带来的危害。

3 联系表单如何加密邮件正文

本站联系表单为了降低网友使用门槛,特地将加密功能进行了集成,也就是说在发送联系表单之前勾选使用PGP/GPG加密选项,那么Web应用将在后台加密要传输的正文内容,并且将密文交由SMTP服务器发送至我的邮箱服务器,我本人在特定终端下载密文后使用Yubikey解密获取原文,当然我公开了PGP/GPG的公钥,大家也可以自行加密并将密文贴至联系表单的正文文本框(这时就不要再勾选使用PGP/GPG加密复选框了)。

当然由Web直接运算PGP/GPG加密还有一点小隐患,那就是如果本人的Web服务器被攻击者控制,那么消息正文将在加密前被获知,虽然这种情况极为罕见(本人漏洞补丁打的很勤),但如果不放心那还是使用我公开的PGP/GPG公钥手动加密后在密文发送吧。

目前此加密功能还处于实验阶段,另外需要提醒的是本人为确保安全一般在特定设备上读取加密信息,如果阁下选择加密那么相应的邮件处理将不会那么及时,还请理解。