JMAP - protokol terbuka menggantikan IMAP saat bertukar email

Awal bulan ini , protokol JMAP, yang dikembangkan di bawah arahan IETF , dibahas secara aktif di Hacker News. Kami memutuskan untuk membicarakan mengapa itu dibutuhkan dan bagaimana cara kerjanya.


/ PxHere / PD

Apa yang tidak menyenangkan IMAP


IMAP diperkenalkan pada tahun 1986. Banyak hal yang dijelaskan dalam standar tidak lagi relevan saat ini. Misalnya, protokol dapat mengembalikan jumlah baris pesan dan checksum MD5 - fungsi ini praktis tidak digunakan pada klien email modern.

Masalah lain adalah konsumsi lalu lintas. Dalam kasus IMAP, email disimpan di server dan disinkronkan secara berkala dengan klien lokal. Jika karena alasan tertentu salinan pada perangkat pengguna "rusak", Anda harus menyinkronkan kembali semua email. Di dunia modern, ketika ribuan perangkat seluler dapat dihubungkan ke server, pendekatan ini mengarah pada peningkatan konsumsi lalu lintas dan sumber daya komputasi.

Kesulitan timbul tidak hanya dengan protokol itu sendiri, tetapi juga dengan klien email yang bekerja dengannya. Sejak awal, IMAP telah mengalami berbagai revisi berkali-kali - versi saat ini adalah IMAP4 hari ini. Selain itu, ada banyak ekstensi opsional untuknya - sembilan puluh RFC dengan tambahan diterbitkan di jaringan. Salah satu yang paling segar adalah RFC8514 , diperkenalkan pada 2019.

Selain itu, banyak perusahaan menawarkan solusi eksklusif mereka sendiri yang harus menyederhanakan pekerjaan dengan IMAP atau bahkan menggantikannya: Gmail , Outlook , Nylas . Hasilnya adalah klien email yang ada hanya mendukung sedikit dari semua fitur yang tersedia. Keragaman seperti itu mengarah pada segmentasi pasar.

"Selain itu, klien email modern tidak hanya meneruskan pesan, tetapi juga dapat bekerja dengan kontak dan menyinkronkan dengan kalender," kata Sergey Belkin, kepala pengembangan untuk penyedia IaaS 1cloud.ru . - Hari ini, protokol pihak ketiga seperti LDAP , CardDAV dan CalDAV digunakan untuk tujuan ini. Pendekatan ini memperumit konfigurasi firewall di jaringan perusahaan dan membuka vektor baru untuk serangan dunia maya. "

JMAP dipanggil untuk menyelesaikan masalah yang ditunjuk. Ini dikembangkan oleh para ahli dari FastMail di bawah kepemimpinan Internet Engineering Council (IETF). Protokol berjalan di atas HTTPS, menggunakan JSON (untuk alasan ini, sangat cocok tidak hanya untuk bertukar pesan elektronik, tetapi juga untuk menyelesaikan sejumlah tugas di cloud) dan menyederhanakan organisasi kerja dengan surat dalam sistem seluler. Selain memproses surat, JMAP juga menyediakan kemampuan untuk menghubungkan ekstensi untuk bekerja dengan kontak dan perencana kalender.

Fitur protokol baru


JMAP adalah protokol stateless dan tidak memerlukan koneksi permanen ke server mail. Fitur ini menyederhanakan pekerjaan di jaringan seluler yang tidak stabil dan menghemat perangkat daya baterai.

Email dalam JMAP disajikan dalam format struktur JSON. Ini berisi semua informasi dari pesan RFC5322 (Format Pesan Internet) yang mungkin diperlukan aplikasi email. Menurut pengembang, pendekatan ini harus menyederhanakan penciptaan klien, karena server akan bertanggung jawab untuk memecahkan kesulitan potensial (terkait dengan MIME , membaca header dan encoding).

Klien menggunakan API untuk mengakses server. Untuk melakukan ini, itu menghasilkan permintaan POST dikonfirmasi, sifat-sifatnya dijelaskan dalam objek sesi JMAP. Permintaan dalam format aplikasi / json dan terdiri dari objek permintaan JSON tunggal. Server juga menghasilkan objek respons tunggal.

Dalam spesifikasi (paragraf 3), penulis memberikan contoh berikut dengan permintaan:

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

Di bawah ini adalah contoh respons yang akan dibentuk oleh server:

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

Spesifikasi JMAP lengkap dengan contoh implementasi dapat ditemukan di situs web resmi proyek. Di tempat yang sama, penulis memposting deskripsi spesifikasi untuk Kontak JMAP dan Kalender JMAP - mereka bertujuan untuk bekerja dengan kalender dan daftar kontak. Menurut penulis, Kontak dan Kalender dipisahkan menjadi dokumen terpisah sehingga mereka dapat dikembangkan dan distandarisasi lebih lanjut terlepas dari "inti". Kode sumber untuk JMAP ada di repositori di GitHub .


/ PxHere / PD

Prospek


Terlepas dari kenyataan bahwa secara resmi pekerjaan pada standar belum selesai, itu sudah dilaksanakan di lingkungan produksi. Misalnya, pembuat server surat terbuka Cyrus IMAP menerapkan versi JMAP-nya. Pengembang FastMail merilis kerangka kerja server untuk protokol Perl baru, sementara penulis JMAP memperkenalkan server proxy .

Dapat diharapkan bahwa di masa depan akan ada semakin banyak proyek berbasis JMAP. Misalnya, ada kemungkinan pengembang dari Open-Xchange akan membuat protokol baru dan membuat server IMAP untuk sistem Linux. Untuk menolak IMAP mereka sangat diminta oleh anggota komunitas yang telah terbentuk di sekitar alat perusahaan.

Pengembang IETF dan FastMail mengatakan semakin banyak pengguna melihat perlunya standar terbuka baru untuk pengiriman pesan. Para penulis JMAP berharap bahwa di masa depan lebih banyak perusahaan akan mulai menerapkan protokol ini.

Sumber daya dan sumber tambahan kami:

Cara memeriksa cookie untuk kepatuhan GDPR - alat terbuka baru akan membantu

Cara menghemat uang menggunakan antarmuka pemrograman aplikasi
DevOps dalam layanan cloud menggunakan 1cloud.ru sebagai contoh
Evolusi Arsitektur Awan Keras

Potensi serangan pada HTTPS dan cara-cara untuk melindunginya
Cara melindungi server di Internet: pengalaman 1cloud.ru
Program pendidikan singkat: apa itu Continuous Integration

Source: https://habr.com/ru/post/id452958/


All Articles