JMAP - 一種開放協議,在交換電子郵件時將取代 IMAP

本月稍早的《駭客新聞》 被積極討論 JMAP協議 在 IETF 的指導下開發。 我們決定討論為什麼需要它以及它是如何運作的。

JMAP - 一種開放協議,在交換電子郵件時將取代 IMAP
/ 攝影 /PD

我不喜歡 IMAP 的地方

協議 IMAP 於 1986 年推出。 標準中所描述的許多內容如今已不再適用。 例如,協定可以傳回字母的行數和校驗和 MD5 - 現代電子郵件用戶端實際上不使用此功能。

另一個問題與流量消耗有關。 使用 IMAP,電子郵件儲存在伺服器上並定期與本機用戶端同步。 如果因某種原因使用者裝置上的副本損壞,則必須再次同步所有郵件。 在現代世界,當成千上萬的行動裝置可以連接到伺服器時,這種方法會導致流量和運算資源的消耗增加。

困難不僅與協議本身有關,而且與使用該協議的電子郵件用戶端有關。 自創建以來,IMAP 已多次進行各種修訂 - 目前的版本是 IMAP4。 同時,它還有很多可選的擴充功能——網路上 發表 九十個 RFC 並添加了內容。 最近的一項是 RFC8514,於 2019 年推出。

同時,許多公司提供了自己的專有解決方案,可以簡化 IMAP 的使用,甚至取代它: Gmail, Outlook, 尼拉斯。 結果是現有的電子郵件用戶端僅支援部分可用功能。 這種多樣性導致市場細分。

IaaS 提供者的開發主管 Sergei Belkin 表示:“此外,現代電子郵件用戶端不僅應該轉發訊息,還應該能夠處理聯絡人並與日曆同步。” 1cloud.ru。 — 如今,第三方協議如 LDAP, 卡DAV и 的CalDAV。 這種方法使企業網路中的防火牆配置變得複雜,並為網路攻擊開闢了新的載體。”

JMAP就是為了解決這些問題而設計的。 它是由 FastMail 專家在互聯網工程任務組 (IETF) 的指導下開發的。 該協定在 HTTPS 之上運行,使用 JSON(因此它不僅適用於交換電子訊息,還適用於解決雲端中的許多任務)並簡化了在行動系統中處理郵件的組織。 除了處理信件之外,JMAP 還提供連接擴充功能以處理聯絡人和日曆調度程序的功能。

新協議的特點

JMAP 是 無狀態協議 (無狀態)且不需要與郵件伺服器的永久連線。 此功能簡化了不穩定行動網路中的工作並節省了設備的電池電量。

JMAP 中的電子郵件以 JSON 結構格式表示。 它包含訊息中的所有訊息 RFC5322 (網路訊息格式),電子郵件應用程式可能需要該格式。 根據開發人員的說法,這種方法應該簡化客戶端的創建,因為解決了潛在的困難(與 啞劇,讀取標頭和編碼)伺服器將回應。

客戶端使用 API 來聯繫伺服器。 為此,它會產生經過驗證的 POST 請求,其屬性在 JMAP 會話物件中進行描述。 此請求採用 application/json 格式,由單一 JSON 請求物件組成。 伺服器還產生一個響應對象。

В 規格 (第 3 點)作者提供了以下範例並提出請求:

{
  "using": [ "urn:ietf:params:jmap:core", "urn:ietf:params:jmap:mail" ],
  "methodCalls": [
    [ "method1", {
      "arg1": "arg1data",
      "arg2": "arg2data"
    }, "c1" ],
    [ "method2", {
      "arg1": "arg1data"
    }, "c2" ],
    [ "method3", {}, "c3" ]
  ]
}

以下是伺服器將產生的回應的範例:

{
  "methodResponses": [
    [ "method1", {
      "arg1": 3,
      "arg2": "foo"
    }, "c1" ],
    [ "method2", {
      "isBlah": true
    }, "c2" ],
    [ "anotherResponseFromMethod2", {
      "data": 10,
      "yetmoredata": "Hello"
    }, "c2"],
    [ "error", {
      "type":"unknownMethod"
    }, "c3" ]
  ],
  "sessionState": "75128aab4b1b"
}

完整的 JMAP 規範和範例實作可以在以下位置找到: 官方網站 專案. 作者也在那裡發布了規範的描述 JMAP 聯絡人 и JMAP 日曆 — 它們旨在處理日曆和聯絡人清單。 經過 根據 作者、聯絡人和日曆被分成單獨的文檔,以便它們可以獨立於「核心」進一步開發和標準化。 JMAP 的源代碼 - in GitHub 上的存儲庫.

JMAP - 一種開放協議,在交換電子郵件時將取代 IMAP
/ 攝影 /PD

前途

儘管該標準的工作尚未正式完成,但它已經在生產環境中實施。 例如,開放郵件伺服器的創建者 賽勒斯 IMAP 實施其 JMAP 版本。 FastMail 的開發人員 獲釋 Perl 中新協定的伺服器框架,以及 JMAP 的作者提出的 代理服務器.

可以預見,未來將會有越來越多的基於JMAP的專案。 例如,正在為 Linux 系統建立 IMAP 伺服器的 Open-Xchange 開發人員有可能會轉向新協定。 非常拒絕 IMAP 他們 社區成員詢問,圍繞公司的工具形成。

IETF 和 FastMail 的開發人員表示,越來越多的用戶看到了對新的開放訊息傳遞標準的需求。 JMAP 的作者希望將來有更多的公司開始實施該協議。

我們的額外資源和來源:

JMAP - 一種開放協議,在交換電子郵件時將取代 IMAP 如何檢查 cookie 是否符合 GDPR - 一個新的開放工具將提供協助

JMAP - 一種開放協議,在交換電子郵件時將取代 IMAP 如何使用應用程式介面進行保存
JMAP - 一種開放協議,在交換電子郵件時將取代 IMAP 使用 1cloud.ru 範例的雲端服務中的 DevOps
JMAP - 一種開放協議,在交換電子郵件時將取代 IMAP 雲架構的演進 1cloud

JMAP - 一種開放協議,在交換電子郵件時將取代 IMAP HTTPS 的潛在攻擊以及如何防禦
JMAP - 一種開放協議,在交換電子郵件時將取代 IMAP 如何保護網路上的伺服器:1cloud.ru 經驗
JMAP - 一種開放協議,在交換電子郵件時將取代 IMAP 簡短的教育計劃:什麼是持續集成

來源: www.habr.com

添加評論