JMAP - e-posta alışverişinde IMAP'ın yerini alacak açık bir protokol

Bu ayın başında Hacker News'te aktif olarak tartışıldı JMAP protokolü IETF yönetimi altında geliştirildi. Neden ihtiyaç duyulduğu ve nasıl çalıştığı hakkında konuşmaya karar verdik.

JMAP - e-posta alışverişinde IMAP'ın yerini alacak açık bir protokol
/ PxHere /PD

IMAP'in hoşuma gitmeyen yönleri

Protokol IMAP 1986 yılında tanıtıldı. Standartta açıklanan pek çok şey bugün artık geçerli değildir. Örneğin, protokol bir mektubun satır sayısını ve sağlama toplamlarını döndürebilir MD5 - bu işlevsellik, modern e-posta istemcilerinde pratik olarak kullanılmaz.

Bir diğer sorun ise trafik tüketimiyle ilgili. IMAP ile e-postalar sunucuda depolanır ve yerel istemcilerle periyodik olarak senkronize edilir. Herhangi bir nedenle kullanıcının cihazındaki kopya bozulursa tüm postaların yeniden senkronize edilmesi gerekir. Sunucuya binlerce mobil cihazın bağlanabildiği modern dünyada, bu yaklaşım trafik ve bilgi işlem kaynaklarının tüketiminin artmasına neden olmaktadır.

Yalnızca protokolün kendisinde değil, onunla çalışan e-posta istemcilerinde de zorluklar ortaya çıkıyor. IMAP, yaratılışından bu yana birçok kez çeşitli revizyonlara tabi tutuldu; bugünkü mevcut sürüm IMAP4'tür. Aynı zamanda ağda bunun için birçok isteğe bağlı uzantı var yayınlanan eklemelerle birlikte doksan RFC. En yenilerden biri RFC85142019'da tanıtıldı.

Aynı zamanda birçok şirket, IMAP ile çalışmayı basitleştirecek ve hatta onun yerini alacak kendi özel çözümlerini sunuyor: Gmail, Görünüm, nylas. Sonuç olarak mevcut e-posta istemcileri mevcut özelliklerin yalnızca bazılarını desteklemektedir. Bu çeşitlilik pazar bölümlendirmesine yol açmaktadır.

IaaS sağlayıcısının geliştirme başkanı Sergei Belkin, "Ayrıca, modern bir e-posta istemcisi yalnızca mesajları iletmekle kalmamalı, aynı zamanda kişilerle çalışabilmeli ve takvimle senkronize olabilmelidir" diyor 1cloud.ru. — Günümüzde üçüncü taraf protokolleri LDAP, CardDAV и CalDAV. Bu yaklaşım, kurumsal ağlarda güvenlik duvarlarının yapılandırılmasını zorlaştırıyor ve siber saldırılar için yeni vektörlerin önünü açıyor.”

JMAP bu sorunları çözmek için tasarlanmıştır. FastMail uzmanları tarafından İnternet Mühendisliği Görev Gücü'nün (IETF) rehberliğinde geliştirilmektedir. Protokol HTTPS üzerinde çalışır, JSON kullanır (bu nedenle yalnızca elektronik mesaj alışverişi için değil, aynı zamanda buluttaki bir dizi görevi çözmek için de uygundur) ve mobil sistemlerde postayla çalışmanın organizasyonunu basitleştirir. JMAP, mektupları işlemenin yanı sıra, kişilerle ve bir takvim planlayıcıyla çalışmak için uzantıları bağlama olanağı da sağlar.

Yeni protokolün özellikleri

JMAP vatansız protokol (durum bilgisi olmayan) ve posta sunucusuyla kalıcı bir bağlantı gerektirmez. Bu özellik, kararsız mobil ağlarda çalışmayı kolaylaştırır ve cihazların pil gücünden tasarruf sağlar.

JMAP'taki bir e-posta, JSON yapı biçiminde temsil edilir. Mesajdaki tüm bilgileri içerir RFC5322 (İnternet Mesaj Formatı), e-posta uygulamalarının ihtiyaç duyabileceği bir formattır. Geliştiricilere göre, bu yaklaşım, potansiyel zorlukları çözdüğü için (ilişkili) müşteri oluşturmayı basitleştirmelidir. MIME, başlıkları okuma ve kodlama) sunucu yanıt verecektir.

İstemci, sunucuyla iletişim kurmak için API'yi kullanır. Bunu yapmak için, özellikleri JMAP oturum nesnesinde açıklanan, kimliği doğrulanmış bir POST isteği oluşturur. İstek, application/json biçimindedir ve tek bir JSON istek nesnesinden oluşur. Sunucu ayrıca bir yanıt nesnesi oluşturur.

В özellikler (3. nokta) yazarlar bir istekle birlikte aşağıdaki örneği sunarlar:

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

Aşağıda sunucunun oluşturacağı yanıtın bir örneği verilmiştir:

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

Örnek uygulamalarla birlikte tam JMAP spesifikasyonunu şu adreste bulabilirsiniz: resmi sitesi proje. Burada yazarlar ayrıca teknik özelliklerin bir açıklamasını da yayınladılar. JMAP Kişileri и JMAP Takvimleri — takvimler ve kişi listeleriyle çalışmayı amaçlamaktadırlar. İle göre Yazarlar, Kişiler ve Takvimler, “çekirdek”ten bağımsız olarak daha da geliştirilip standartlaştırılabilmeleri için ayrı belgelere ayrıldı. JMAP için kaynak kodları - içinde GitHub'daki depolar.

JMAP - e-posta alışverişinde IMAP'ın yerini alacak açık bir protokol
/ PxHere /PD

Beklentiler

Standartla ilgili çalışmalar henüz resmi olarak tamamlanmamasına rağmen üretim ortamlarında halihazırda uygulanmaktadır. Örneğin, açık posta sunucusunun yaratıcıları Cyrus IMAP'si JMAP sürümünü uyguladı. FastMail'den geliştiriciler yayınlandı Perl'deki yeni protokol için sunucu çerçevesi ve JMAP'ın yazarları sunuldu Proxy sunucu.

Gelecekte daha fazla JMAP tabanlı projenin olmasını bekleyebiliriz. Örneğin Linux sistemleri için IMAP sunucusu oluşturan Open-Xchange geliştiricilerinin yeni protokole geçme ihtimali var. IMAP'i kesinlikle reddedin topluluk üyeleri soruyor, şirketin araçları etrafında şekillendi.

IETF ve FastMail'den geliştiriciler, giderek daha fazla kullanıcının mesajlaşma için yeni bir açık standarda ihtiyaç olduğunu gördüğünü söylüyor. JMAP yazarları gelecekte daha fazla şirketin bu protokolü uygulamaya başlayacağını umuyor.

Ek kaynaklarımız ve kaynaklarımız:

JMAP - e-posta alışverişinde IMAP'ın yerini alacak açık bir protokol Çerezlerin GDPR uyumluluğu açısından nasıl kontrol edileceği - yeni bir açık araç yardımcı olacaktır

JMAP - e-posta alışverişinde IMAP'ın yerini alacak açık bir protokol Uygulama Programlama Arayüzü ile Nasıl Kaydedilir
JMAP - e-posta alışverişinde IMAP'ın yerini alacak açık bir protokol 1cloud.ru örneğini kullanarak bir bulut hizmetinde DevOps
JMAP - e-posta alışverişinde IMAP'ın yerini alacak açık bir protokol 1cloud bulut mimarisinin gelişimi

JMAP - e-posta alışverişinde IMAP'ın yerini alacak açık bir protokol HTTPS'ye olası saldırılar ve bunlara karşı nasıl korunulacağı
JMAP - e-posta alışverişinde IMAP'ın yerini alacak açık bir protokol İnternetteki bir sunucu nasıl korunur: 1cloud.ru deneyimi
JMAP - e-posta alışverişinde IMAP'ın yerini alacak açık bir protokol Kısa bir eğitim programı: Sürekli Entegrasyon Nedir?

Kaynak: habr.com

Yorum ekle