本文將以分別以 Android 和桌面用戶端的 monocles chat 和 Gajim 為例,介紹 XMPP 上聊天的流程。
如果想直接跳到 Gajim 的部分請點 此。
monocles chat#
註:測試時版本為 1.7.9.4。
初始設置#
登錄所需的 chat address 即 XMPP 位址,如 greatwolf@moongazer.net。初次使用 monocles chat 登錄後,它會詢問你一些設定。你可以在這裡設定暱稱、應用的設定和頭像。這些設定在之後也可以到底部菜單的 Accounts 和 Accounts 頁面右上方的 Settings 中修改。
你無須授予「通訊錄」和「背景執行」權限也可以正常使用 monocles chat,但在沒有背景執行權限的話訊息接收可能會有延遲。
專家設置#
如果覺得 monocles chat 的捐款提示稍為有點頻繁的話,可以在 Settings > Expert Settings 中設置。
發送單個訊息#
搜尋對方#
在底部菜單點 Contacts ,按「+」圖示,然後點 Add contact,最後輸入 XMPP 位址。如果不希望新增對方為聯絡人的話可以不選 “Add to contact list”。這裡以 greatwolf@moongazer.net 為例。
檢查加密狀態#
對話視窗右上方可以確認端對端加密有沒有啟用。如果想啟用的話,可以選擇 OMEMO。當加密出現問題時也可以先禁用加密。
核實對方身分#
端對端加密其中重要的一部分是身分核對。在 OMEMO 中,裝置的身分為「OMEMO 指紋」。
如果你用戶端設定沒有選擇「盲目信任/Blind Trust」的話(Expert Settings 中設置),在初次與對方對話時,你需要手動配置對方每一部裝置的信任。加密只對你已信任的裝置有效。對方未被信任的裝置將不能解讀你的訊息。對方一旦更換用戶端,新的 OMEMO 指紋會出現,這時你會需要再次設定信任。這保證你一直和同一人(裝置)對話。
另外,假如你自己已經有了其他裝置,如果你想在其他裝置上讀取你自己的訊息,你也需要「信任」它們。
如果對方有在個人網站發佈他們的 OMEMO 指紋,這時候你便可以核對身分。以下將以本人 greatwolf@moongazer.net 的指紋為例。本人兩個裝置的指紋分別為:
4C4F8315 C4872F0B EBA69BD5 58A1A518 BF96CD36 7D88267D 3A4FC9A4 24620F1580E6C93E A408EFE6 6D7AC8A8 D8B703D8 E668B7EB A65F9338 C0A7FE78 12C95372
發送加密訊息#
信任配置好後,加密訊息就可以開始發送了。在 monocles chat,端對端加密了的訊息會有一個「小盾牌」的圖示。monocles chat 預設會在單對單對話提醒加密。
新增對方於聯絡人名單#
如果在剛剛搜尋對方時沒有點選 “Add to contact list” 的話,在頂部點對方的名字,點
Add contact ,向對方發送聯絡人請求。對方接受請求後,你就能讀取他們的在線狀態。
你無須把對方新增於聯絡人也可以進行 OMEMO 加密對話。
進入群聊#
搜尋群聊#
在底部菜單點 Contacts ,按「+」圖示,然後點 Join room,最後輸入 XMPP 位址。monocles chat 的 Discover rooms 也可以讓你在應用內搜尋 search.jabber.network 上登記的其他公開聊天室。與 Gajim 不同,在 monocles chat 上,一旦按了 Join 你就會馬上進入群組,不能預先查看群組的設置。
另外,monocles chat 會自動把你加入應用官方的支援聊天室。你可以在這裡詢問開發者有關應用的東西,但如果沒有興趣的你可以退出群聊。
這裡以 lobby@conference.moongazer.net 為例:
群內私聊/申請發言權#
以下將以 lobby@conference.moongazer.net 為例。此群組目前的配置為半匿名、有發言權限制。
半匿名的群組會對群主和管理員以外的參加者隱藏你的 XMPP 位址,他們將只能看得到你的暱稱。monocles chat 中群內所使用的暱稱將會是你 XMPP 帳戶設定的暱稱或用戶名(你可以隨後修改群內暱稱)。有發言權限制的群組會在只有群主或管理員允許才能發言。但視乎群組的設定,即使沒有發言權,你也許也可以對其他人發送群內私聊。
由於半匿名的群組會隱藏參與者的 XMPP 位址,端對端加密是不能在此使用的。原則上,開放的群組也沒有理由實行 OMEMO 等端對端加密。
點擊聊天室名字查看房間的詳細。滑到底部尋找群主或管理員,長按,選擇 Send private messages,發送私聊訊息。被允許後,你就可以在群裡發言了。你的階級也會從「訪客」升級為「參與者」。
文件上傳#
大部分的伺服器都支援文件上傳,但每個伺服器的設置都不一樣(如文件大小上限、有效期限)。
文件上傳同時也支援 OMEMO 加密。OMEMO 加密的文件的位址會是以 aesgcm:// 為開頭(monocles chat 中不可見),必須要先在用戶端上打開。非加密文件則會是以常見的 https:// 為開頭,你可以隨時使用任何工具去取得文件。
Gajim#
註:測試時版本為 1.8.4。
修改個人信息#
在頂部菜單點 Accounts > Profile 修改個人信息。
在這裡你可以修改暱稱、頭像,以及新增詳細其他個人信息。你也可以設置頭像和其他個人信息是否向所有人公開。
發送單個訊息#
搜尋對方#
在頂部菜單點 Gajim > Start / Join Chat,然後輸入 XMPP 位址。這裡以 greatwolf@moongazer.net 為例。
檢查加密狀態#
對話視窗右下方可以確認端對端加密有沒有啟用。如果想啟用的話,可以選擇 OMEMO。當加密出現問題時也可以先禁用加密。
核實對方身分#
端對端加密其中重要的一部分是身分核對。在 OMEMO 中,裝置的身分為「OMEMO 指紋」。
如果你用戶端設定沒有選擇「盲目信任/Blind Trust」的話,在初次與對方對話時,你需要手動配置對方每一部裝置的信任。加密只對你已信任的裝置有效。對方未被信任的裝置將不能解讀你的訊息。對方一旦更換用戶端,新的 OMEMO 指紋會出現,這時你會需要再次設定信任。這保證你一直和同一人(裝置)對話。
另外,假如你自己已經有了其他裝置,如果你想在其他裝置上讀取你自己的訊息,你也需要「信任」它們。
如果對方有在個人網站發佈他們的 OMEMO 指紋,這時候你便可以核對身分。以下將以本人 greatwolf@moongazer.net 的指紋為例。本人兩個裝置的指紋分別為:
80E6C93E A408EFE6 6D7AC8A8 D8B703D8 E668B7EB A65F9338 C0A7FE78 12C953724C4F8315 C4872F0B EBA69BD5 58A1A518 BF96CD36 7D88267D 3A4FC9A4 24620F15
發送加密訊息#
信任配置好後,加密訊息就可以開始發送了。在 Gajim,端對端加密了的訊息會有一個「小盾牌」的圖示。
新增對方於聯絡人名單#
在頂部菜單點 Accounts > Add Contact...,然後輸入 XMPP 位址,向對方發送聯絡人請求。在對方接受請求後,你就能讀取對方的在線狀態。
你無須把對方新增於聯絡人也可以進行 OMEMO 加密對話。
以下將以 greatwolf@moongazer.net 為例。
進入群聊#
搜尋群聊#
在頂部菜單點 Gajim > Start / Join Chat,然後輸入 XMPP 位址。這裡以 lobby@conference.moongazer.net 為例。
其他公開的聊天室可以在此找到:https://search.jabber.network/
查看群組設置#
隨後,Gajim 將會表示該群組的設置。在此你也可以設置你在群內所使用的暱稱。
這裡以 lobby@conference.moongazer.net 為例。此群組目前的配置為半匿名、有發言權限制。
半匿名的群組會對群主和管理員以外的參加者隱藏你的 XMPP 位址,他們將只能看得到你的暱稱。有發言權限制的群組會在只有群主或管理員允許才能發言。但視乎群組的設定,即使沒有發言權,你也許也可以對其他人發送群內私聊。
由於半匿名的群組會隱藏參與者的 XMPP 位址,端對端加密是不能在此使用的。原則上,開放的群組也沒有理由實行 OMEMO 等端對端加密。
群內私聊/申請發言權#
在視窗的右方選擇對方,發送訊息。被允許後,你就可以在群裡發言了。你的階級也會從「訪客」升級為「參與者」。
文件上傳#
大部分的伺服器都支援文件上傳,但每個伺服器的設置都不一樣(如文件大小上限、有效期限)。
文件上傳同時也支援 OMEMO 加密。OMEMO 加密的文件的位址會是以 aesgcm:// 為開頭,必須要先在用戶端上打開。非加密文件則會是以常見的 https:// 為開頭,你可以隨時使用任何工具去取得文件。
iOS 用戶端#
由於本人沒有 iOS 設備,本人沒有辨法試用 iOS 上的用戶端。
恰好地,hookipa.net 也有關於 iOS 用戶端 Siskin IM 的圖文教學可供參考:https://hookipa.net/en/documentation/siskin-im/
另一篇有關 Monal IM 的教學參考:https://eversten.net/en/blog/monal/
結語#
以上就是有關 XMPP 的使用教學。對於 XMPP 的更多注意事項可繼續到 XMPP 即時通訊進階資訊整理。