V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
jianglibo
V2EX  ›  程序员

为什么端到端加密的 PGP 邮件没有被广泛使用?

  •  1
     
  •   jianglibo ·
    PRO
    · 1 天前 · 3345 次点击

    看起来似乎是使用太复杂的缘故,真正的原因是所有邮件巨头对此项技术采取消极接纳的结果,如果积极推进使用的复杂性会马上得到解决。那么他们为什么要抗拒呢?一旦采用端到端的 PGP 加密,那些邮件服务商无法看到邮件的内容,无法扫描,也无法提供和内容关联的广告,总之无法从用户的邮件中获取信息。

    当然作为程序员要面对现实,抱怨不解决任何问题,但我可以使用 PGP 加密,当越来越多的人使用 PGP 加密通讯时,反而会促进邮件厂商的跟进。目前的情况下,使用一款支持 PGP 的邮件客户端是普通人入门 PGP 加密邮件的最佳选择,thunderbird 几乎是不二的选择。

    我是 [email protected] 要发送一封加密的邮件给 [email protected] 。打开 thunderbird 发送邮件的界面:

    你会看到加密按钮是灰掉的,你需要在账号设置的端到端加密界面生成自己的密钥对。

    密钥对生成之后:

    这里有个发布按钮,这个会将你的邮箱的公钥发布到 keys.openpgp.org ,这个有什么用?等一下你给 [email protected] 发邮件时就会需要 b 的公钥,除非通过其它方式获取 b 的公钥,不然你没法给 b 发加密邮件。

    当你的 [email protected] 账号有了密钥对之后,thunderbird 发送邮件的界面就会出现变化。此时加密按钮激活了。

    然后当你输入 [email protected] 之后,并且点击加密按钮,此时 thunderbird 系统内还没有 [email protected] 的公钥,它会尝试获取这个电邮的公钥,比如 KWD ,keys.openpgp.org

    点击解决,可以看到不同的导入方法,其中包括文件导入。

    当你导入之后,就可以发送加密邮件了。 当 a 发给 b 时,用 b 的公钥加密,用 a 的私钥对内容签名(防篡改).反之则反之。

    接下来谈谈 KWD ( web key directory),直接以例子说明可以直观的了解它的应用范围。比如一个邮箱 [email protected] ,如果邮箱主人同时拥有 never-lost.app 的域名,那么它可以在自己的站点部署 KWD 端点,类似于域名验证的挑战,都是在.well-known 的目录下。比如:

    email: [email protected]
    localpart: sky
    domain: never-lost.app
    wkd_hash: kh566nfd7omkgp7cxgo7qgx51gsmwefr
    wkd_policy_url: https://never-lost.app/.well-known/openpgpkey/policy
    wkd_hu_url: https://never-lost.app/.well-known/openpgpkey/hu/kh566nfd7omkgp7cxgo7qgx51gsmwefr
    policy_record_exists: yes
    hu_record_exists: yes
    key_id: B4621D5A04EB1A1C
    fingerprint: F08FD399804724A1307CE38DB4621D5A04EB1A1C
    

    这个有什么用呢?当你在 thunderbird 发送邮件的界面输入 [email protected] 时,thunderbird 显示前面图片中的黄色警告,然后你点击 在网上寻找公钥,thunderbird 就会从该网站获取公钥。 如果域名不是你的,那么可以将你的公钥发送到 keys.openpgp.org ,thunderbird 也会从该网站查找。

    怎么样?准备发送你的第一封 PGP 加密邮件了吗?如果你没有可接受加密邮件的邮箱,可以发送到 [email protected] ,会自动回复加密的邮件。

    PGP 加密的私钥在你手里,你掌控你的信息。不是 Google ,微软,qq 或网易,如果你查看网页版的邮件,看到的是加密的内容(通常是附件形式)。

    75 条回复    2026-02-16 16:36:29 +08:00
    Owenjia
        1
    Owenjia  
       1 天前   ❤️ 1
    依稀记得在本站,有人问为什么不用 pgp 代替 base64 编码邮箱防爬虫,被喷了好多楼……
    jianglibo
        2
    jianglibo  
    OP
    PRO
       1 天前 via Android
    @Owenjia PGP 确实不是用来加密邮件内容,和防爬虫无关。PGP 就是确保通信双方知道内容,别人不知道。
    jianglibo
        3
    jianglibo  
    OP
    PRO
       1 天前 via Android
    @jianglibo typo ,PGP 是用来加密邮件内容。
    sn0wdr1am
        4
    sn0wdr1am  
       1 天前   ❤️ 1
    对普通人来说,使用复杂。
    对于邮件服务商来说,看不到邮件内容,没法进行分析,没法窥探用户隐私,对投放广告没有任何好处,抵制使用。
    stella
        5
    stella  
       1 天前   ❤️ 1
    正确地使用 PGP 过于复杂:要保护 PGP 私钥文件、记住密码、定期轮换,更别提还有各种密钥剥离...正因此,也有许多密码学方面的人士批评 PGP 跟不上当今环境。
    jianglibo
        6
    jianglibo  
    OP
    PRO
       1 天前 via Android
    这里没有投票功能,不知有多少人正真的发送和接收过一个 PGP 加密的邮件?
    artiga033
        7
    artiga033  
       1 天前 via Android
    私钥:大部分非技术群体根本没有自己管理自己的私钥的能力或者学习这种能力的意愿。

    公钥:依然需要中心化的方式来分发,你想用 openpgp 的,他想用 mozilla 的,还有人想用 ubuntu 的,我甚至想用自己的。就算商业公司入局,那也顶多是再多几个 keyserver.(gmail.com/live.com/qq.com/163.com)继续各自为战...
    nicaiwss
        8
    nicaiwss  
       1 天前 via iPhone
    主要就是公钥没有可靠渠道分发,中间人攻击太容易,建议是政府给每个人生成一对,和身份证绑定,终生不能替换,只能在政府网站查。
    kkk9
        9
    kkk9  
       1 天前   ❤️ 4
    @nicaiwss #8 终生不能替换,泄露私钥就直接枪毙是吧😂😂
    MFWT
        10
    MFWT  
       1 天前
    @jianglibo 我收发过,但第一印象还是太复杂了,各种 Key 很容易搞混用途/不正确配置
    crackself
        11
    crackself  
       1 天前 via iPhone
    因为解密相对麻烦
    jianglibo
        12
    jianglibo  
    OP
    PRO
       1 天前 via Android
    @MFWT 对着这个帖子操作应该不算复杂,但有些人一直用网页端邮箱,甚至不知道有邮件客户端。不过 thunderbird 简化了常见邮箱的登录,还是值得尝试一下。
    nbndco
        13
    nbndco  
       1 天前 via iPhone
    绝大多数的用户的需求从来不是不让 Google 根据邮件内容显示广告,而且让 Google 根据邮件内容对邮件进行分类,垃圾邮件,风险邮件识别。没有需求的东西自然没人用。
    MacsedProtoss
        14
    MacsedProtoss  
       1 天前 via iPhone   ❤️ 1
    @nicaiwss gov 拿着?那不就是裸奔吗 给 gov 等于公开私钥
    现在的国密就是这样 gov 想看内容就能看内容 你的私钥仅限于签名
    ryd994
        15
    ryd994  
       1 天前 via Android
    @nicaiwss #8 标准的错误用法:由第三方为你生成密钥
    PGP 密钥应该由你自己生成,只传输公钥,私钥严格保管。严格的最好是在 TPM 智能卡里直接生成,任何人包括你自己都无法读取,只能由智能卡进行加解密操作。
    智能卡丢了怎么办?预先互信几个备用的智能卡,丢了就直接挂失。
    busier
        16
    busier  
       1 天前 via iPhone
    客户端的问题

    thunderbird 使用起来太烦琐

    而 delta chat 则可以傻瓜式使用电子邮件+PGP
    marsteel
        17
    marsteel  
       1 天前
    普通的邮件服务商怎么能提供这种服务,如果界面提供加密,你需要把私钥告诉邮件服务商。你要安全就只能在网页之外自己用客户端自己加密。
    seers
        18
    seers  
       1 天前 via Android
    我司公司邮箱都是要导入个人证书才能解密
    jianglibo
        19
    jianglibo  
    OP
    PRO
       1 天前 via Android
    @seers 这个是 s/mime ,企业用的多
    Destiny1332
        20
    Destiny1332  
       1 天前
    Muniesa
        21
    Muniesa  
       1 天前 via Android
    了解过但从没用过,主要现在发邮件要么是工作汇报,要么就是找什么客服,加密还是太麻烦
    busier
        22
    busier  
       1 天前 via iPhone
    这个技术本来就是用来防止邮件运营商看到邮件内容,存在对抗审查的嫌疑。显然不会推广提倡使用。最好大家都不知道还有这么个东西。目前只有小范围公司使用。

    你在看看市面上,所有使用 E2EE 技术的通信软件是个什么下场,就知道开发这类产品不但没市场,而且还有可能进去。
    YGHMXFAL
        23
    YGHMXFAL  
       1 天前 via Android
    ①首先,2026 年了,推荐使用 AGE+MiniSign 来替代 OPENPGP 家族

    这俩货的设计哲学是“简单到死”,无配置文件,没有一堆不必要地复杂模块和设计

    而且只使用单一高强度算法,维护和审查都大大便利

    ②OPENPGP 和类似 E2EE 通讯方案没有普及绝对不是因为其复杂性,通过概念抽象和防呆封装,可以让文科生在 10 分钟内结束第一轮加密通讯,因为我就干过这事儿,我给医学生侄女打造了一套 GNUPG+IPFS 的大文件传输方案,因为她的作业/教案里有很多解剖/母婴类内容经常被 QQ 审查,她和她的同学们师兄师姐师弟师妹们通过我的握手服务器(位于墙内)已经交换了公钥 1300+次,所以“复杂性”绝对不是问题

    ③问题在于“对抗审查”这个属性必然被绝大多数商业公司和政府所痛恨,因此它们没有动力推广/优化,甚至它们现阶段没有“敢加密就封号”我就已经谢天谢地了

    ④最后是根本硬伤:

    公钥交换没有办法,硬核专家只信任自己当面交换的公钥,普通小白会信任任何看起来像公钥的乱码,大多数时候这就像一场闹剧

    更别提还存在中间人攻击,给我侄女打造的方案之所以可以运转,那是因为她们都是同学,随时可以见面校验公钥

    找不到什么好办法来解决公钥交换这个根本硬伤
    YGHMXFAL
        24
    YGHMXFAL  
       1 天前 via Android
    @busier #16 容易被服务商判定滥用,速率太高了
    busier
        25
    busier  
       1 天前 via iPhone
    @YGHMXFAL 如果你说的速率太高是指发邮件频繁容易被封的话,这显然与客户端软件无关,不是 delta chat 独有的问题。

    邮件系统本来就是去中心化系统,有一定抗封锁能力。

    被封了就换其它邮件服务商,甚至自建,而不用吊死在一棵树上。

    虽然大厂邮件系统往往不接受自建邮件系统发过来的邮件,大不了我自建邮件与自建邮件聊,大厂邮箱与大厂邮箱聊。

    反正我去中心化,随时可以架设 MTA 。
    charles0
        26
    charles0  
       1 天前 via iPhone   ❤️ 1
    因为不安全,在端到端加密里面 PGP 邮件属于非常原始和不够安全的,如果你需要真正安全的聊天,参考:XMPP 、OTR ( Off The Record )、Signal 、iMessage PQ3 、MLS (消息层安全协议)、Matrix

    最基础的,PGP 默认不保证前向安全,你至少需要 Signal 那种双棘轮算法
    charles0
        27
    charles0  
       1 天前 via iPhone
    这就导致反审查社区不会用 PGP 邮件(不够安全)而普通人也不会用(不够方便)
    kevinzhwl
        28
    kevinzhwl  
       1 天前
    脱离时代的东西, 传一个用强密码加密压缩文件,都比这个简单
    busier
        29
    busier  
       1 天前 via Android
    @kevinzhwl 额,非对称加密与对称加密的使用场景完全不同。

    大家在讨论非对称加密时,你突然抛出个对称加密及应用场景,这样会显得牛头不对马嘴!
    sworld233
        30
    sworld233  
       1 天前
    PGP 不够安全, #26 说的不错了,前向保密、认证加密、元数据保护都不太好,非常不现代,密钥管理也不方便
    kingcanfish
        31
    kingcanfish  
       1 天前
    感觉 pgp 现在唯一见过用途广泛的就是 git commit 的签名了
    busier
        32
    busier  
       1 天前 via Android   ❤️ 2
    @charles0

    @sworld233

    “前向安全”的场景不适合电子邮件!

    你仔细想一想,你重装完系统,配置完邮件客户端,导入私钥,就可以解密旧的邮件。

    如果有前向安全的话,倒入之前的私钥你也无法解密旧邮件。

    这显然是不符合电子邮件使用场景的。
    jianglibo
        33
    jianglibo  
    OP
    PRO
       1 天前 via Android
    @YGHMXFAL 说出了关键点,触及到政府和商业利益团体痛。
    kevinzhwl
        34
    kevinzhwl  
       1 天前
    @busier 其实我向表达的重点是“便利性”, 才“没有被广泛使用”(一般用户不关心技术细节)。你们可以继续讨论非对称加密。
    jackOff
        35
    jackOff  
       1 天前 via Android
    违法了,运营商无法监管通信内容,那你这玩意就是间谍软件
    lnbiuc
        36
    lnbiuc  
       1 天前
    一直在用,配合 simplelogin ,每个网站都创建新邮箱注册,通过 simplelogin pgp 加密之后转发到阿里企业邮箱,然后在客户端解密
    缺点是 subject 没加密,能看到一点儿信息
    DaCong
        37
    DaCong  
       1 天前
    我觉得帖子里面提到的使用过程对于很多普通人来说已经是非常复杂了。这可能是为什么这项技术没有普及的很大一个原因。
    例如说,你好不容易在你的一群朋友之间建立起了这种加密的通讯方式,只要有人在一次赶时间的时候疏忽了加密并且 reply all 了,邮件客户端很有可能引用了之前的邮件内容并且把整个对话泄露出去。
    一个好的密码学工具不应该被设计成只有专家才能正确使用。它应该提供更多的 secure by default 的特性。

    另一方面是 email 这个领域基本上只有各个科技巨头在维护/提供服务。真的想要推进某些技术标准现实中需要这些大玩家的支持,但他们因为监管、合规等等原因并没有很强的动力去做这件事情。
    MeMoDiv
        38
    MeMoDiv  
       1 天前
    让别人用一个技术的理由应该是别人觉得好用,而不是你觉得好用。
    别人不用这个技术的原因也很简单,就是不好用。尝试用商业产品的思路去理解会容易很多。你所说的 OpenPGP 的诸多优点只是它还没被扫进历史的垃圾堆的理由,离成为流行差太远了
    busier
        39
    busier  
       1 天前 via Android   ❤️ 1
    @jackOff 你最好把#35“运营商”换成别的啥的,不然在 TLS 流行的今天,显得你还活在上个世纪。
    cynics
        40
    cynics  
       1 天前 via iPhone
    @jianglibo 也可以用来签名,有段时间 gmail 还支持签名
    busier
        41
    busier  
       1 天前 via Android
    @cynics

    怎么说呢

    S/MIME 用来签名邮件还好点,毕竟他有 CA 。

    PGP 就有点尴尬了。
    onionKnight888
        42
    onionKnight888  
       1 天前 via iPhone
    记得刚工作时的第一个公司发工资邮件就用 pgp ,仅此一家
    jianglibo
        43
    jianglibo  
    OP
    PRO
       22 小时 45 分钟前 via Android
    我发现许多人没有用 thunderbird 尝试一下就在那里说什么不安全,说什么都 2026 了还用这玩意,密码学不是前端,花样百出。thunderbird 在设计时通过 UI 的提醒,只有你在人工和对对方的指纹之后,最终交互的邮件才会显示帖子中最后的安全图标。一旦使用,作为程序员,这个真不难,只是需要花点脑子理解一下,只有好处,没有坏处。
    jianglibo
        44
    jianglibo  
    OP
    PRO
       22 小时 41 分钟前 via Android
    @cynics PGP 做两件事,一是签名,是证明邮件是你发的,并且没有被修改过。二是加密,只有收件人可以解密。
    flyqie
        45
    flyqie  
       22 小时 28 分钟前 via Android
    复杂度跟收益不值得导致的。

    普通用户很多时候几乎不会碰这块。
    nicaiwss
        46
    nicaiwss  
       22 小时 25 分钟前 via iPhone
    @jianglibo 并不能,首先我就不信任你的公钥,以前还好,你拍个视频,面对镜头拿张纸写着公钥念出来基本上没有假,这两年 ai 强大了这样也不行了
    z5e56
        47
    z5e56  
       21 小时 59 分钟前 via Android
    学习了 很有帮助
    jianglibo
        48
    jianglibo  
    OP
    PRO
       20 小时 57 分钟前 via Android
    @nicaiwss 你几乎完全不理解工作原理,你发送邮件时使用了错误的公钥会发生什么?比如你的邮箱是 [email protected] ,我用错误的公钥给你发送邮件,你还会收到邮件,这个不会错吧。但收到的邮件无法解密而已。除非攻击者有办法让你发送到错误的邮箱,但这个是另外一回事了。我的建议是你根据我的帖子真正的实践一遍,思考一下。PGP 的安全性是毋庸置疑的。
    likelylee
        49
    likelylee  
       20 小时 53 分钟前
    @jianglibo 我司内部就是强制使用 thunderbird 配合 openpgp ,对外和客户( IT 类技术人员、金融类业务人员都有)联系也推荐用 openpgp 加密邮件,或者至少加密附件。从我入职开始到现在也每天使用超过 12 年了,接触的客户数量也有 200+了,我觉得我有一点说服力。
    简单来说,openpgp 这一套体系就是太复杂了,我哦们有完善的配置手册,一步一步带截图具体怎么配置,软件更新也会更新配置手册,就这个前提下,上述那么多客户,首次配置好之后把私钥发给我的占比至少 80%以上。好容易正确生成了公私钥对,加密发送文件的的时候不添加我的公钥的占比能超过 90%。首年记住了怎么操作,后续年度还得电话再指导的至少也能有 30%起。这个是外部客户的场景,而且其中懂基本加解密知识的也不占少数。我司内部,每年需要我协助配置密钥对、thunderbird 、公钥组、邮箱组等的同事也得有 30%以上。我们可是要求每两年就重新配置一次的,就这个频率都不能确保每个人熟悉的掌握配置方式。
    原因是什么,上边有人也提到了,公私钥对为基础的 PKI 方案,为了做到可信,要么两人当面交换公钥,要么用 CA 做中心交换,除此以外都不能做到可信这个要求。即使是公开的公钥服务器,只要没有可信方签成证书,那么都会受到 MITM 的影响。当然了公司自建中央公钥服务器会好一点,但是内部使用的问题解决了,怎么解决对外的要求呢?所以国密整出来 SM9 一人一证书的想法,直接中央到“中央”可信。
    另外既然 OP 提到 openpgp 了,我姑且认为你也了解 SMIME ,以 SMIME 的简单尚且不能做到大规模推广,openpgp 这种大量涉及到基本知识和技术操作的方案怎么可能会让人用得起来。
    如果往更广的方向来说,怎么能在没有中央 CA 的基础上解决双向或者多向互信,这个是下一代加解密基础设施需要解决的问题之一,也是国内不想让解决的一个问题。原本的区块链体系似乎解决了这个问题,但是目前大家的着眼点都在币上,这个底层的方案一直没有一个有效且易用的技术出来。
    busier
        50
    busier  
       20 小时 41 分钟前 via iPhone
    @jianglibo #48:#46 意思是没有 CA ,无法保证中间人攻击情况的安全性。

    虽然你前面提到了 thunderbird 要求手动确认公钥指纹,但这只是个退而求其次的方案。
    jianglibo
        51
    jianglibo  
    OP
    PRO
       20 小时 38 分钟前 via Android
    @likelylee smime 是公司的解决方案,无非是加了 CA 一个环节,不是更安全,而是企业有中心化的解决方案(而且可能可以做到邮件 meta 信息的加密)。openpgp 是一个更加自由的解决方案。评论里面说什么不安全的,估计从来没有对下载的文件做过哪怕一次签名校验。当然不是每次都做,但对于非常基础和重要的软件,比如和你的加密货币相关的软件时,手工做签名校验当然是必要的。
    jianglibo
        52
    jianglibo  
    OP
    PRO
       20 小时 32 分钟前 via Android
    @busier CA 就安全吗? CA 是怎么来的?大部分 CA 无非就是对域名的控制权证明而已。你要说明 PGP 不安全,这个不是理由,安全从来都是木桶原理,任何一个环节疏忽都会破坏安全性。https://cjj365.cc/cert-demo 了解一下如何生成证书, 证书不是什么神秘的东西,一个字符串,一个长长的密码而已。
    busier
        53
    busier  
       20 小时 20 分钟前 via iPhone
    @jianglibo

    你这就有点强行诡辩了

    PGP 本质上就跟没有 CA 的“自签 x509 证书”一样

    自签 x509 证书与 CA 颁发 x509 证书的安全性,受信程度,管理便捷性显然不是一个级别的。
    jianglibo
        54
    jianglibo  
    OP
    PRO
       20 小时 14 分钟前 via Android
    @busier 这恰恰就是你不了解的关系,以为自签证书不如公共 CA 安全,这完全是使用场景的问题。
    比如我有一个 MySQL 服务器,通过 mtls 连接,我何必要公共信任呢? 再举个例子,cloudflare 的 original 证书就是自签名证书。当然,我和你争论的目的不是为了显示我更懂,而是在讨论中促进思考和发现正确的答案。
    likelylee
        55
    likelylee  
       19 小时 52 分钟前
    @jianglibo 首先咱得把名词对齐一下,自签发证书指的是适用自己的私钥签发自己的公钥 CSR 变成证书,CA 通常指的第三方授信机构 GlobalSign 等签发的证书,你说的内网签发也是 CA ,只是不是第三方授信 CA ,这个场景下你是默认了内网 CA 可信。然而对于常规 openpgp 来说,交换的是第一个里边自签发证书,这个是没办法抵御 MITM 的,毕竟随便中间人做了一个证书,你没有其他第三方或者手段来确认证书和人的关联性,所以我在上边的回复里说了,要么线下面交,要么通过 CA (不论是第三方可信还是你内部可信)。目前的公钥分发网站,我要是没记错的话是不验证可信的,最多确认完整性。如果这些公钥分发网站要验证可信性那就自动变成 CA 了。所以回到最开始,openpgp 可以做到双向或者多向的点到点加密确保机密性,但是用户可信性这个事情,要么线下要么 CA 这个是没法回避的。所以如果你只想解决机密性,线下面交对称密钥、分途径交换密钥分量、甚至口头协商密钥派生规则都可以做到,不需要 openpgp 甚至还比 openpgp 简单。如果你要解决可信性,上边我也提了,目前的常规做法就是 CA 。我一直想有一个完善的不基于 CA 的可信方案,但现在能看到的有一些论文,还没有落地到产业接受的程度。
    Saniter
        56
    Saniter  
       19 小时 22 分钟前 via Android
    我来引用一段 hn 的评论[1],使用 ai 翻译:
    > 电子邮件在实践中无法实现真正的安全,我们应停止无谓的修补。 邮件系统本身已然陈旧,不应再被用于需要保密的日常点对点通信。
    ​核心原因如下:
    ​1. 默认明文传输: 电子邮件缺乏类似 HTTP 的底层保护机制,无法防止机密信息意外以明文形式发送。
    ​2. 无前向安全( Forward Secrecy ): 主流的 OpenPGP 协议依赖长期密钥。密钥一旦泄露,历史和未来的所有通信将全部暴露,这是安全通信系统的致命缺陷。
    ​3. 元数据泄露风险: 邮件的主题行等所谓的“元数据”,本质上是明文传输的内容。现代安全系统绝不会容忍此类机制。
    ​4. Webmail 的架构缺陷: 多数用户依赖网页端处理邮件。除非强制安装本地加密组件(既然如此,不如直接改用 Signal 、WhatsApp 或 Wire ),否则服务商依然能读取明文。
    ​5. 默认可检索归档: 防范高级别(如国家级)对手时,默认归档是大忌。若有能力强制用户使用特制的安全邮件客户端,不如直接转用具备前向安全的现代消息系统。
    ​总结: 赋予电子邮件实用性的机制,恰恰构成了安全通信的天然壁垒。我们应放弃徒劳的改造,直接推动公众采用真正的现代安全通讯工具。

    另外 s/mime 或 openpgp 加密也存在安全风险[2]

    [1] https://news.ycombinator.com/item?id=16088386
    [2] https://www.usenix.org/system/files/conference/usenixsecurity18/sec18-poddebniak.pdf
    busier
        57
    busier  
       19 小时 17 分钟前 via iPhone
    @jianglibo

    呵呵

    你的 mysql 例子 mtls 通信双方都是你自己的设备,自己安装证书,根本就不存在需要确认目标身份的问题。

    至于 cloudflare 颁发的回源 tls 证书,那是给 cloudflare 回源访问专用的,依旧是只有 cloudflare 自己信任自己颁发的证书。你让客户端浏览器直接访问用这个证书铁定是报不安全,无法确认证书有效性的。

    如果你是真懂 那我非常确认你就是在强行诡辩了
    YGHMXFAL
        58
    YGHMXFAL  
       19 小时 0 分钟前 via Android
    @jianglibo #48
    你还是没有理解楼里这么多人说得“中间人攻击”是什么吗?那就维基百科看看呗

    “PGP 的安全性毋庸置疑”这个结论完全错误,即使所有玩家完全不犯错,OPENPGP 家族也至少有 2 大硬伤:

    第一就是楼里有人说了“没有前向安全”,当然这一点可以解决,都不需要造新轮子,多付出一点儿计算和存储代价就可以


    第二也是楼里有人说了“认证加密”如同儿戏,它的 MDC 可以被手动剥离,从而降级为普通加密

    OPENPGP 应该被时代抛弃了,但是谁也不能否认过去 30 年里,在严肃地现代密码学诞生之前,它作为一种技术一种精神而带来的贡献
    YGHMXFAL
        59
    YGHMXFAL  
       18 小时 53 分钟前 via Android
    @likelylee #55 我也在思考这种方案
    目前看到“连锁协议+慢 HASH”了,但是在不安全地公共信道上,默认全程被监视+被篡改,只能说提高了中间人的攻击成本
    busier
        60
    busier  
       18 小时 40 分钟前 via iPhone
    @YGHMXFAL 对的

    56 楼说的有一定道理,电子邮件本身无法实现真正的安全

    电子邮件特性就无法实现前向安全

    因为导入旧的密钥就可以解密之前的邮件,这是电子邮件的正常使用场景,无法避免。
    julyclyde
        61
    julyclyde  
       18 小时 36 分钟前
    @kkk9 pgp 密钥可以替换啊。只需要上传 revoke certificate 把旧的废掉就行了。
    不过这 revoke 和 public key 一样,都存在如何广泛分发的问题,这才是根本的问题
    jianglibo
        62
    jianglibo  
    OP
    PRO
       18 小时 34 分钟前 via Android
    @YGHMXFAL 你可以用举例的方式表达一下吗,让更多的读者学到有用的知识?让你发一封邮件给 sky@never-lost.app ,目的是你不想让别人知道你和 sky@never-lost.app 之间的通信内容,而且我在帖子里也说明了公钥根据 kwd 规范发布。你表达一下攻击的步骤,如果你和我没有犯错的情况下。
    YGHMXFAL
        63
    YGHMXFAL  
       17 小时 48 分钟前 via Android
    @jianglibo #62 WKD 我没有实际部署过,如你所说的话,我个人是想不出来攻击策略,但是这样又产生了#7 所说得硬伤,不过是又多了一个 key server 罢了,但是依然改变不了我说得那俩个缺陷
    YGHMXFAL
        64
    YGHMXFAL  
       17 小时 41 分钟前 via Android
    你不可能要求每一个人都买域名买 VPS 就为了部署 WKD,所以这是不是解答了你标题的问题,即:

    想交换公钥的过程可信,那就代价太大门槛太高,必然无法普及

    想普及,结果大家因为初始公钥交换就不能确信身份,心里一直隔应着,这也是虚假地安全感,热情一过就不玩了,最终还是没有普及
    jianglibo
        65
    jianglibo  
    OP
    PRO
       17 小时 41 分钟前 via Android
    @YGHMXFAL 如果能保证我和你之间的秘密,那么 PGP 的目的不就达到了吗?不管公钥我是通过邮件发给你还是从 keys.openpgp.org,或者 wkd 获取,收到之后对比一下指纹,这不就起到端对端的加密了吗?
    YGHMXFAL
        66
    YGHMXFAL  
       17 小时 32 分钟前 via Android
    @jianglibo 不不不,除了 WKD 这一种渠道我没有实际测试过不好说以外,公钥交换不是什么渠道都可以,或者换言之,除了当面之外,你只能确认“你在和某一个公钥所匹配得私钥的持有人通讯”,而不能确认“你在和某一个公钥声称其所属得自然人通讯”,这就是为什么会存在 sign party 的原因,这样才能把“自然人+私钥+公钥”这仨要素捆绑起来

    你这个“邮件发公钥”和“key server 找公钥”的动作完全不可靠,这些渠道存在,只是想不依赖中心化 CA 或者不能面交的无奈之举而已
    her999
        67
    her999  
       17 小时 15 分钟前
    我觉得有两个原因。
    一、使用复杂,毕竟不是所有的人,毕竟不是所有的人都有程序员的水平。
    二、不支持在线使用。因为邮件服务商没法做针对性的广告。
    charles0
        68
    charles0  
       17 小时 14 分钟前 via iPhone
    @busier 所以就不应该用邮件这种形式,不安全,反审查社区更喜欢别的方案,比如 XMPP
    allplay
        69
    allplay  
       17 小时 2 分钟前 via Android
    @YGHMXFAL 同学们都在一个自建 webdav 网盘里传文件岂不更简单
    YGHMXFAL
        70
    YGHMXFAL  
       16 小时 35 分钟前 via Android
    @allplay #69 那和 QQ 没有区别啊,还是被夹图

    而且他们都在校园网内,IPFS 速度超快
    AkinoKaedeChan
        71
    AkinoKaedeChan  
       15 小时 49 分钟前
    需要可信方式交换公钥,通常是线下聚会。
    维护难度怎么说呢,反正我每年至少花 30min 维护(我临时启动 Tails ,在断开网络的环境下操作),subkey 剥离后放在 YubiKey 还是比较省心的。
    多年来我只收到过 3 封主动加密的邮件,主动发出 0 封加密邮件,签名 3 次……
    基本上最后的用处还是在 GitHub 上的签名
    shuaishuaide
        72
    shuaishuaide  
       15 小时 47 分钟前
    使用公共邮箱时,就已经默认用隐私换便利了。不然,邮箱服务商又是人力又是物力的凭啥免费给你用?号称不作恶的 Google ,实际上这种事干的比谁都起劲。
    AstroProfundis
        73
    AstroProfundis  
       15 小时 47 分钟前
    其实还是个威胁模型的问题,用 pgp 加密发邮件需要保证的到底是什么?

    如果是要保证 “只有 uid 里面标记的邮箱的实际控制人可以读到邮件内容” 那目前这样足够了,用 keyserver 或者直接邮件发公钥都可以(当然有个前提是假设邮件服务器的 DNS 没有被劫持)

    如果是要保证 “发出去的邮件只有 uid 声称的自然人或组织可以读到” 那不够,因为 uid 是可以随便写的,你也无法验证上面留的邮箱是不是那个声称的现实实体真正在使用,所以必须要验证身份,这里就是 pgp 经典活动 signing party 的用处,按原教旨做法线下交换签名是要交换身份证件的,然后在此基础上有 WoT 这种间接的验证手段,你可以不用和你的通信对象实际线下见面,你们互相有若干中间人线下验明正身那也可以选择相信

    至于 CA 什么的,WoT 这套模型一开始就是故意要绕开 CA 的,用 CA 的问题在于你要信任哪些 CA, 用 WoT 的问题在于你要信任哪些和你线下见过面的人,总之都绕不开如何可信地分发公钥的问题
    jianglibo
        74
    jianglibo  
    OP
    PRO
       15 小时 14 分钟前 via Android
    很遗憾,大部分讨论者没有按照帖子安装一下 thunderbird ,然后再提出疑问。只有实践过之后,思考每一个步骤的意义,实际上整个过程归于常识。

    公钥有一个数字指纹,只有你核对过指纹并且确认之后,帖子之后的那个图片才会显示安全。

    而且许多评论者有一种相信政府,相信大公司,相信中心化的天然情节。其实正真的安全是在你自己手里,中心托管的加密货币被盗屡见不鲜,就是一个很明显的例子。

    PGP 在最佳实践操作下是非常安全的,而且评论中有提到用 yubikey 保存 subkey 对,主 key 离线保存保险箱,主 key 密码离线刻在金属板上或纸上和主 key 分开保存。
    busier
        75
    busier  
       14 小时 4 分钟前 via iPhone
    得了吧

    我也用 thunderbird + PGP

    我有自己的 CA ,也用 thunderbird + S/MIME

    我还有专门给自己编写的 openpgp web 加解密工具以方便临时加密数据

    但我不否认前面大家提到的 PGP 缺点

    PGP 有好用的方面 虽然不是非常强 有时候也够用

    但是这掩盖不了的缺点

    就像前面有人说的 离广泛使用的标准还差的远 没必要强行洗
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   719 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:41 · PVG 06:41 · LAX 14:41 · JFK 17:41
    ♥ Do have faith in what you're doing.