JMAP - giao thức mở sẽ thay thế IMAP khi trao đổi email

Đầu tháng này trên Hacker News đã được thảo luận tích cực Giao thức JMAP được phát triển dưới sự chỉ đạo của IETF. Chúng tôi quyết định nói về lý do tại sao nó cần thiết và cách thức hoạt động của nó.

JMAP - giao thức mở sẽ thay thế IMAP khi trao đổi email
/ Hình ảnh /PD

Điều tôi không thích ở IMAP

Nghị định thư IMAP được giới thiệu vào năm 1986. Nhiều điều được mô tả trong tiêu chuẩn ngày nay không còn phù hợp nữa. Ví dụ: giao thức có thể trả về số dòng của một chữ cái và tổng kiểm tra MD5 - chức năng này thực tế không được sử dụng trong các ứng dụng email hiện đại.

Một vấn đề khác liên quan đến mức tiêu thụ giao thông. Với IMAP, email được lưu trữ trên máy chủ và được đồng bộ hóa định kỳ với các máy khách cục bộ. Nếu vì lý do nào đó, bản sao trên thiết bị của người dùng bị hỏng thì tất cả thư phải được đồng bộ lại. Trong thế giới hiện đại, khi hàng nghìn thiết bị di động có thể được kết nối với máy chủ, cách tiếp cận này dẫn đến việc tăng mức tiêu thụ lưu lượng và tài nguyên máy tính.

Khó khăn nảy sinh không chỉ với bản thân giao thức mà còn với các ứng dụng email hoạt động với nó. Kể từ khi được tạo ra, IMAP đã nhiều lần được sửa đổi - phiên bản hiện tại ngày nay là IMAP4. Đồng thời, có nhiều tiện ích mở rộng tùy chọn cho nó - trên mạng được phát hành chín mươi RFC có bổ sung. Một trong những gần đây nhất là RFC8514, được giới thiệu vào năm 2019.

Đồng thời, nhiều công ty cung cấp các giải pháp độc quyền của riêng họ nhằm đơn giản hóa việc làm việc với IMAP hoặc thậm chí thay thế nó: Gmail, Outlook, màng lông. Kết quả là các ứng dụng email hiện tại chỉ hỗ trợ một số tính năng có sẵn. Sự đa dạng như vậy dẫn đến sự phân khúc thị trường.

Sergei Belkin, người đứng đầu bộ phận phát triển của nhà cung cấp IaaS, cho biết: “Hơn nữa, một ứng dụng email hiện đại không chỉ chuyển tiếp tin nhắn mà còn có thể làm việc với các liên hệ và đồng bộ hóa với lịch”. 1cloud.ru. — Ngày nay, các giao thức của bên thứ ba như LDAP, ThẻDAV и CalDAV. Cách tiếp cận này làm phức tạp thêm cấu hình tường lửa trong mạng công ty và mở ra các hướng mới cho các cuộc tấn công mạng.”

JMAP được thiết kế để giải quyết những vấn đề này. Nó đang được phát triển bởi các chuyên gia FastMail dưới sự hướng dẫn của Lực lượng đặc nhiệm kỹ thuật Internet (IETF). Giao thức chạy trên HTTPS, sử dụng JSON (vì lý do này, nó không chỉ phù hợp để trao đổi tin nhắn điện tử mà còn để giải quyết một số tác vụ trên đám mây) và đơn giản hóa việc tổ chức làm việc với thư trong hệ thống di động. Ngoài việc xử lý thư, JMAP còn cung cấp khả năng kết nối các tiện ích mở rộng để làm việc với danh bạ và bộ lập lịch.

Các tính năng của giao thức mới

JMAP là giao thức không trạng thái (không trạng thái) và không yêu cầu kết nối vĩnh viễn với máy chủ thư. Tính năng này giúp đơn giản hóa công việc trong các mạng di động không ổn định và tiết kiệm pin trên thiết bị.

Một email trong JMAP được thể hiện ở định dạng cấu trúc JSON. Nó chứa tất cả thông tin từ tin nhắn RFC5322 (Định dạng tin nhắn Internet), có thể cần thiết cho các ứng dụng email. Theo các nhà phát triển, cách tiếp cận này sẽ đơn giản hóa việc tạo khách hàng vì giải quyết được những khó khăn tiềm ẩn (liên quan đến Kịch câm, đọc tiêu đề và mã hóa), máy chủ sẽ phản hồi.

Máy khách sử dụng API để liên hệ với máy chủ. Để làm điều này, nó tạo ra một yêu cầu POST được xác thực, các thuộc tính của nó được mô tả trong đối tượng phiên JMAP. Yêu cầu có định dạng ứng dụng/json và bao gồm một đối tượng yêu cầu JSON. Máy chủ cũng tạo ra một đối tượng phản hồi.

В thông số kỹ thuật (điểm 3) các tác giả cung cấp ví dụ sau với một yêu cầu:

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

Dưới đây là ví dụ về phản hồi mà máy chủ sẽ tạo ra:

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

Bạn có thể tìm thấy đặc tả JMAP đầy đủ cùng với các ví dụ triển khai tại trang web chính thức dự án. Ở đó các tác giả cũng đăng một mô tả về các thông số kỹ thuật cho Danh bạ JMAP и Lịch JMAP — chúng nhằm mục đích làm việc với lịch và danh sách liên hệ. Qua theo tác giả, Danh bạ và Lịch được tách thành các tài liệu riêng biệt để có thể được phát triển và chuẩn hóa thêm một cách độc lập với “cốt lõi”. Mã nguồn của JMAP - trong kho lưu trữ trên GitHub.

JMAP - giao thức mở sẽ thay thế IMAP khi trao đổi email
/ Hình ảnh /PD

Triển vọng

Mặc dù thực tế là công việc về tiêu chuẩn vẫn chưa được hoàn thành chính thức nhưng nó đã được triển khai trong môi trường sản xuất. Ví dụ: người tạo máy chủ thư mở Cyrus IMAP đã triển khai phiên bản JMAP của nó. Nhà phát triển từ FastMail phát hành khung máy chủ cho giao thức mới trong Perl và các tác giả của JMAP đã trình bày máy chủ proxy.

Chúng ta có thể mong đợi rằng sẽ ngày càng có nhiều dự án dựa trên JMAP hơn trong tương lai. Ví dụ: có một số khả năng các nhà phát triển từ Open-Xchange, những người đang tạo máy chủ IMAP cho hệ thống Linux, sẽ chuyển sang giao thức mới. Từ chối IMAP chúng rất nhiều thành viên cộng đồng hỏi, được hình thành xung quanh các công cụ của công ty.

Các nhà phát triển từ IETF và FastMail cho biết ngày càng có nhiều người dùng nhận thấy nhu cầu về một tiêu chuẩn mở mới cho nhắn tin. Các tác giả của JMAP hy vọng rằng trong tương lai sẽ có thêm nhiều công ty bắt đầu triển khai giao thức này.

Tài nguyên và nguồn bổ sung của chúng tôi:

JMAP - giao thức mở sẽ thay thế IMAP khi trao đổi email Cách kiểm tra cookie xem có tuân thủ GDPR - một công cụ mở mới sẽ trợ giúp

JMAP - giao thức mở sẽ thay thế IMAP khi trao đổi email Cách lưu bằng giao diện lập trình ứng dụng
JMAP - giao thức mở sẽ thay thế IMAP khi trao đổi email DevOps trong dịch vụ đám mây sử dụng ví dụ về 1cloud.ru
JMAP - giao thức mở sẽ thay thế IMAP khi trao đổi email Sự phát triển của kiến ​​trúc đám mây 1cloud

JMAP - giao thức mở sẽ thay thế IMAP khi trao đổi email Các cuộc tấn công tiềm năng vào HTTPS và cách bảo vệ chống lại chúng
JMAP - giao thức mở sẽ thay thế IMAP khi trao đổi email Cách bảo vệ máy chủ trên Internet: trải nghiệm 1cloud.ru
JMAP - giao thức mở sẽ thay thế IMAP khi trao đổi email Một chương trình giáo dục ngắn gọn: Tích hợp liên tục là gì

Nguồn: www.habr.com

Thêm một lời nhận xét