JMAP - โปรโตคอลแบบเปิดที่จะแทนที่ IMAP เมื่อทำการแลกเปลี่ยนอีเมล

เมื่อต้นเดือนที่ผ่านมาทาง Hacker News ถูกพูดคุยอย่างแข็งขัน โปรโตคอล JMAP พัฒนาภายใต้การดูแลของ IETF. เราตัดสินใจที่จะพูดคุยเกี่ยวกับสาเหตุที่จำเป็นและวิธีการทำงาน

JMAP - โปรโตคอลแบบเปิดที่จะแทนที่ IMAP เมื่อทำการแลกเปลี่ยนอีเมล
/ บ้าน /PD

สิ่งที่ฉันไม่ชอบเกี่ยวกับ IMAP

มาตรการ IMAP เปิดตัวในปี 1986 หลายสิ่งที่อธิบายไว้ในมาตรฐานไม่เกี่ยวข้องอีกต่อไปในปัจจุบัน ตัวอย่างเช่น โปรโตคอลสามารถส่งคืนจำนวนบรรทัดของตัวอักษรและเช็คซัมได้ MD5 - ฟังก์ชั่นนี้ไม่ได้ใช้จริงในไคลเอนต์อีเมลสมัยใหม่

ปัญหาอีกประการหนึ่งเกี่ยวข้องกับปริมาณการใช้ข้อมูล ด้วย IMAP อีเมลจะถูกจัดเก็บไว้บนเซิร์ฟเวอร์และซิงโครไนซ์กับไคลเอนต์ในเครื่องเป็นระยะ หากสำเนาบนอุปกรณ์ของผู้ใช้เสียหายด้วยเหตุผลบางประการ เมลทั้งหมดจะต้องซิงโครไนซ์อีกครั้ง ในโลกสมัยใหม่ เมื่ออุปกรณ์เคลื่อนที่หลายพันเครื่องสามารถเชื่อมต่อกับเซิร์ฟเวอร์ได้ แนวทางนี้นำไปสู่การใช้ทรัพยากรการรับส่งข้อมูลและการประมวลผลที่เพิ่มขึ้น

ปัญหาไม่เพียงเกิดขึ้นกับโปรโตคอลเท่านั้น แต่ยังเกิดขึ้นกับไคลเอนต์อีเมลที่ใช้งานได้ด้วย นับตั้งแต่ก่อตั้ง IMAP ได้รับการแก้ไขหลายครั้ง - เวอร์ชันปัจจุบันในปัจจุบันคือ IMAP4 ในขณะเดียวกันก็มีส่วนขยายเพิ่มเติมมากมายบนเครือข่าย ที่ตีพิมพ์ RFC เก้าสิบรายการที่มีการเพิ่มเติม หนึ่งในล่าสุดคือ RFC8514เปิดตัวในปี 2019

ในเวลาเดียวกัน หลายบริษัทเสนอโซลูชันที่เป็นกรรมสิทธิ์ของตนเองซึ่งควรจะทำให้การทำงานกับ IMAP ง่ายขึ้นหรืออาจแทนที่ด้วยซ้ำ: Gmail, Outlook, ไนลาส. ผลลัพธ์ก็คือไคลเอนต์อีเมลที่มีอยู่รองรับคุณสมบัติบางอย่างที่มีอยู่เท่านั้น ความหลากหลายดังกล่าวนำไปสู่การแบ่งส่วนตลาด

“ยิ่งกว่านั้น ไคลเอนต์อีเมลยุคใหม่ไม่ควรเพียงส่งต่อข้อความเท่านั้น แต่ยังสามารถทำงานกับผู้ติดต่อและซิงโครไนซ์กับปฏิทินได้” Sergei Belkin หัวหน้าฝ่ายพัฒนาของผู้ให้บริการ IaaS กล่าว 1cloud.ru. — ปัจจุบัน โปรโตคอลของบุคคลที่สามเช่น LDAP, CardDAV и CalDAV. วิธีการนี้ทำให้การกำหนดค่าไฟร์วอลล์ในเครือข่ายองค์กรมีความซับซ้อน และเปิดช่องทางใหม่สำหรับการโจมตีทางไซเบอร์”

JMAP ได้รับการออกแบบมาเพื่อแก้ไขปัญหาเหล่านี้ กำลังได้รับการพัฒนาโดยผู้เชี่ยวชาญของ FastMail ภายใต้การแนะนำของ Internet Engineering Task Force (IETF) โปรโตคอลทำงานบน HTTPS ใช้ JSON (ด้วยเหตุนี้จึงเหมาะสมไม่เพียงแต่สำหรับการแลกเปลี่ยนข้อความอิเล็กทรอนิกส์เท่านั้น แต่ยังเหมาะสำหรับการแก้ปัญหาหลายอย่างในระบบคลาวด์) และทำให้องค์กรในการทำงานกับเมลในระบบมือถือง่ายขึ้น นอกเหนือจากการประมวลผลจดหมายแล้ว JMAP ยังให้ความสามารถในการเชื่อมต่อส่วนขยายสำหรับการทำงานกับผู้ติดต่อและผู้กำหนดตารางเวลาปฏิทิน

คุณสมบัติของโปรโตคอลใหม่

เจแม็ปคือ โปรโตคอลไร้สัญชาติ (ไร้สถานะ) และไม่จำเป็นต้องเชื่อมต่อกับเมลเซิร์ฟเวอร์อย่างถาวร คุณสมบัตินี้ช่วยลดความยุ่งยากในการทำงานในเครือข่ายมือถือที่ไม่เสถียรและประหยัดพลังงานแบตเตอรี่ในอุปกรณ์

อีเมลใน JMAP แสดงในรูปแบบโครงสร้าง JSON ประกอบด้วยข้อมูลทั้งหมดจากข้อความ RFC5322 (Internet Message Format) ซึ่งอาจจำเป็นต้องใช้กับแอปพลิเคชันอีเมล ตามที่นักพัฒนาระบุว่าแนวทางนี้ควรทำให้การสร้างลูกค้าง่ายขึ้นเนื่องจากการแก้ไขปัญหาที่อาจเกิดขึ้น (เกี่ยวข้องกับ MIMEการอ่านส่วนหัวและการเข้ารหัส) เซิร์ฟเวอร์จะตอบสนอง

ลูกค้าใช้ 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 - ใน ที่เก็บบน GitHub.

JMAP - โปรโตคอลแบบเปิดที่จะแทนที่ IMAP เมื่อทำการแลกเปลี่ยนอีเมล
/ บ้าน /PD

อนาคต

แม้ว่างานมาตรฐานจะยังไม่เสร็จสิ้นอย่างเป็นทางการ แต่ก็มีการนำไปใช้ในสภาพแวดล้อมการผลิตแล้ว ตัวอย่างเช่น ผู้สร้างเซิร์ฟเวอร์อีเมลแบบเปิด ไซรัส IMAP ใช้เวอร์ชัน JMAP นักพัฒนาจาก FastMail การเผยแพร่ กรอบเซิร์ฟเวอร์สำหรับโปรโตคอลใหม่ใน Perl และผู้เขียน JMAP นำเสนอ พร็อกซีเซิร์ฟเวอร์.

เราคาดหวังว่าจะมีโครงการที่ใช้ JMAP เพิ่มมากขึ้นในอนาคต ตัวอย่างเช่น มีความเป็นไปได้ที่นักพัฒนาจาก Open-Xchange ซึ่งกำลังสร้างเซิร์ฟเวอร์ IMAP สำหรับระบบ Linux จะเปลี่ยนไปใช้โปรโตคอลใหม่ ปฏิเสธ IMAP อย่างมาก สมาชิกในชุมชนถามเกิดขึ้นรอบเครื่องมือของบริษัท

นักพัฒนาจาก IETF และ FastMail กล่าวว่าผู้ใช้จำนวนมากขึ้นเรื่อยๆ มองเห็นความจำเป็นของมาตรฐานเปิดใหม่สำหรับการรับส่งข้อความ ผู้เขียน JMAP หวังว่าในอนาคตบริษัทต่างๆ จะเริ่มใช้ระเบียบการนี้มากขึ้น

แหล่งข้อมูลเพิ่มเติมและแหล่งข้อมูลเพิ่มเติมของเรา:

JMAP - โปรโตคอลแบบเปิดที่จะแทนที่ IMAP เมื่อทำการแลกเปลี่ยนอีเมล วิธีตรวจสอบคุกกี้สำหรับการปฏิบัติตาม GDPR - เครื่องมือแบบเปิดใหม่จะช่วยได้

JMAP - โปรโตคอลแบบเปิดที่จะแทนที่ IMAP เมื่อทำการแลกเปลี่ยนอีเมล วิธีบันทึกด้วย Application Programming Interface
JMAP - โปรโตคอลแบบเปิดที่จะแทนที่ IMAP เมื่อทำการแลกเปลี่ยนอีเมล DevOps ในบริการคลาวด์โดยใช้ตัวอย่างของ 1cloud.ru
JMAP - โปรโตคอลแบบเปิดที่จะแทนที่ IMAP เมื่อทำการแลกเปลี่ยนอีเมล วิวัฒนาการของสถาปัตยกรรมคลาวด์ 1cloud

JMAP - โปรโตคอลแบบเปิดที่จะแทนที่ IMAP เมื่อทำการแลกเปลี่ยนอีเมล การโจมตีที่อาจเกิดขึ้นบน HTTPS และวิธีป้องกัน
JMAP - โปรโตคอลแบบเปิดที่จะแทนที่ IMAP เมื่อทำการแลกเปลี่ยนอีเมล วิธีปกป้องเซิร์ฟเวอร์บนอินเทอร์เน็ต: ประสบการณ์ 1cloud.ru
JMAP - โปรโตคอลแบบเปิดที่จะแทนที่ IMAP เมื่อทำการแลกเปลี่ยนอีเมล โปรแกรมการศึกษาระยะสั้น: การบูรณาการอย่างต่อเนื่องคืออะไร

ที่มา: will.com

เพิ่มความคิดเห็น