文章
技术

有人用过 XMPP 协议通信么?

libgen 图书馆革命
libgen  ·  2021年1月18日 天堂应该是图书馆的模样。一个阅读诗歌的人要比不读诗歌的人更难被战胜。创造是一种拯救。创造拯救了创造者本身。

看到今天 Solidot 推送的为什么俄罗斯网络犯罪分子流行用 Jabber

俄罗斯网络犯罪世界充斥着谜团,但有一种技术 充当了主要的通信工具:有 18 年历史的分布式开源即时通讯协议 Jabber。根据安全公司 Flashpoint 的研究,黑客做交易、分享情报和对恶意程序提供技术支持都是通过 Jabber 完成。该公司资深研究员 Leroy Terrelonge III 称,在网络犯罪经济中,Jabber 是通信的黄金标准。Jabber(或又叫 XMPP)通信系统由数千个独立服务器构成,在全世界有大约一千万用户。有 10 亿用户的 WhatsApp 使用的是一个 XMPP 变体。ICQ 曾经统治了俄罗斯 IM 市场长达 20 年,在 2013 年 Edward Snowden 披露美国的大规模监视之后俄罗斯人开始转向了 Jabber。Jabber 加上它的加密插件 OTR(off-the-record)能为通信提供强加密支持。Jabber 的联邦式架构允许任何人运营服务器,这对犯罪分子有巨大的吸引力,他们担心企业与政府之间合作过于紧密。

XMPP 客户端也支持各种平台

Project Name Platforms
AstraChat Android / iOS / Linux / macOS / Windows
BeagleIM by Tigase, Inc. macOS
Bruno the Jabber™ Bear Android
ChatSecure iOS / macOS
Conversations Android
Converse Browser
Dino Linux
eM Client macOS / Windows
Gajim Linux / Windows
Monal IM iOS / macOS
Movim Android / Browser / Linux / macOS / Windows
Poezio Linux / macOS
Profanity Linux / macOS / Windows
Salut à Toi Android / Browser / Linux / Other
Simple IoT Client Windows
SiskinIM by Tigase, Inc. iOS
Spark Linux / macOS / Windows
StorkIM by Tigase, Inc. (Tigase Messenger for Android) Android
Swift Linux / macOS / Windows
txmmp Linux
UWPX Windows
yaxim Android

之前广场君写过用Matrix进行匿名加密的私聊,好奇两者的区别是?

菜单
  1. 沉默的广场  

    XMPP的加密算法和Matrix的算法有本质的不同。XMPP使用OTR(Off-the-record)加密,加密过程类似于TLS。OTR加密可以提供端到端加密,但是缺点也很明显,必须双方同时在线才能发起加密对话;OTR加密的另一个缺点是,加密的内容只能保存在本地,没法上传到服务器漫游。但是由于发送异步消息以及漫游聊天记录是用户的刚性需求,不提供加密的商业IM几乎都可以做到。因此早期的端到端加密IM体验非常差,这是它没有推广的原因之一。

    Telegram的加密聊天就类似于OTR,必须双方同时在线才能发起端到端加密对话,聊天记录不会保存到服务器,当然技术上也做不到。异步端到端加密的另一种方法是PGP,但是PGP不能做到前向保密,也不支持消息漫游。

    Matrix用一种更先进的加密法,叫做双棘轮算法(Double Ratchet Algorithm)。这个算法能够以不可信服务器为存储中介,进行异步端到端加密通信。简单来说,用双棘轮算法的IM可以在一方不在线的时候发起端到端加密对话,还可以把加密后的聊天记录保存到第三方服务器上(因此可以漫游消息)。这样端到端加密能达到传统无加密IM的体验。

    双棘轮算法最先用在Signal上,后来Matrix和Wired也实现了一套,WhatsApp似乎也是此算法。因为XMPP是一个开放协议,目前也有把双棘轮算法加入XMPP的提案

    这个网址上有Signal协议中双棘轮算法工作原理的翻译,Double Ratchet Algorithm比起TLS还复杂了不少:

    https://blog.lancitou.net/double-ratchet-algorithm/

  2. 天下无贼  

    老了,曾经使用XMPP的IM工具相当繁荣,主要就是Jabber,另外谷歌以前有个官方IM工具,叫啥来着忘记了,后来改名叫hangout,再后来就没有然后了…………被砍掉了。

  3. Misaki KBBL
    Misaki   习帝,习帝,我要Diss你!

    缺了一个Pidgin

  4. libgen 图书馆革命
    libgen   天堂应该是图书馆的模样。一个阅读诗歌的人要比不读诗歌的人更难被战胜。创造是一种拯救。创造拯救了创造者本身。
  5. 邹韬奋 外逃贪官CA
    邹韬奋   虽然韬光养晦,亦当奋起而争(拜登永不为奴:h.2047.one)
  6. 天下无贼  

    @libgen #122423 对对对,GoogleTalk,唉,老了,记性不行了。

  7. 天下无贼  

    @消极 #122472 XMPP不是谷歌的,应该是个开源的,谷歌只是IM软件使用了这个协议。

    谷歌的IM软件是因为经营不善,砍掉了。其实谷歌以前的社交产品,叫Buzz,也挺好,后来也是砍掉了。谷歌其实挺功利的,很多东西稍微做不好,基本不给犯错的机会,马上砍掉。

  8. 邹韬奋 外逃贪官CA
    邹韬奋   虽然韬光养晦,亦当奋起而争(拜登永不为奴:h.2047.one)

    @天下无贼 #122491 主要是不能拿用户数据卖钱,谷歌的优势就是拿数据换钱。

  9. solids   Ñøñë

    https://web.archive.org/web/20160301033435/http://im.nekonazo.com/

    猫聊NekoIM的目的是什么?

    • 在天朝普及XMPP,让更多需要即时聊天功能的游戏制作者、常用IRC的文字游戏玩家,体验到XMPP的便利性 —— 服务器与服务器之间是没有隔阂的,并且共同搭建服务器
    • 开发者 / 主催 / Geek 可以利用此平台来测试自制应用,并由自己全权维护。例如,利用此平台的ucat作后端来管理微博账号以推广自己或团队的同人游戏。
    • 提供一种安全聊天的途径——不被任何人,程序,乃至服务器所监视。总有人有需要的时候

    Project Oekakisoli 项目都没了

  10. libgen 图书馆革命
    libgen   天堂应该是图书馆的模样。一个阅读诗歌的人要比不读诗歌的人更难被战胜。创造是一种拯救。创造拯救了创造者本身。

    @solids #122515 What a pity! So sad!

    即使在天朝,也没人能阻止我们对同人创作 & 非营利 & 自由和开源的理念向多元推广的既单纯又强烈的愿望。 ——Un.Miz

  11. NullPointer  

    这是最早的互联网协议之一,是 IM 的标准开源实现。

    最早的互联网基础设施的设计都是跨平台(跨越不同服务器)的,是真正的“互联网”。电子邮件和 XMPP 都具有这种特性。
    在当代,它们败给了中心化服务。或者说,败给了商业化私有服务。

    中国境内架设这个的服务器会有风险。

  12. solids   Ñøñë
  13. linda   rico y libre

    XMPP比Matrix更成熟

  14. 送你一颗子弹 回复 天下无贼 /p/205861

    Google Talk