แนวคิดของโมเดลการโต้ตอบ

โมเดลข้อมูล (DM) ของโหนดจะไม่มีความเกี่ยวข้องหากเราไม่สามารถดำเนินการกับโหนดเหล่านั้น โมเดลการโต้ตอบ (IM) กำหนดความสัมพันธ์ DM ของโหนดกับ DM ของโหนดอื่นๆ ซึ่งเป็นภาษาทั่วไปสำหรับการสื่อสารระหว่าง DM

โหนดจะโต้ตอบซึ่งกันและกันโดยดำเนินการดังนี้

  • การอ่านและการสมัครรับแอตทริบิวต์และเหตุการณ์
  • การเขียนถึงแอตทริบิวต์
  • การเรียกใช้คำสั่ง

เมื่อใดก็ตามที่โหนดสร้างลำดับการสื่อสารที่เข้ารหัสกับโหนดอื่น โหนดจะสร้างความสัมพันธ์แบบการโต้ตอบ การโต้ตอบอาจประกอบด้วยธุรกรรมอย่างน้อย 1 รายการ และธุรกรรมจะประกอบขึ้นจากการดำเนินการอย่างน้อย 1 รายการซึ่งเข้าใจได้ว่าเป็นข้อความระดับ IM ระหว่างโหนดต่างๆ

ลําดับชั้นของโมเดลการโต้ตอบ
ภาพที่ 1: ลำดับชั้นของโมเดลการโต้ตอบ

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

ผู้ริเริ่มและเป้าหมาย

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

กลุ่ม

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

เพื่อการสื่อสารในระดับกลุ่ม (Groupcast) Matter ใช้ประโยชน์จากข้อความ IPv6 Multicast และสมาชิกกลุ่มทุกคนมีที่อยู่ Multicast เดียวกัน

เส้นทาง

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

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

คุณประกอบเส้นทางใน Matter ได้โดยใช้ตัวเลือกใดตัวเลือกหนึ่งต่อไปนี้

<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID>        <cluster> <attribute | event | command>

และภายในองค์ประกอบสำหรับสร้างเส้นทางเหล่านี้ endpoint และ cluster อาจมีโอเปอเรเตอร์ไวลด์การ์ดสำหรับเลือกอินสแตนซ์ของโหนดมากกว่า 1 รายการด้วย

กำหนดเวลาและไม่มีการกำหนดเวลา

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

ในการทำความเข้าใจธุรกรรมตามลำดับเวลา คุณควรเข้าใจว่าการโจมตีโดยการสกัดกั้นเกิดขึ้นได้อย่างไรและความสำคัญของธุรกรรมที่มีการกำหนดเวลา

การโจมตีแบบสกัดกั้น

การโจมตีแบบสกัดกั้นมีรูปแบบต่อไปนี้

  1. ขวัญใจจะส่งข้อความเริ่มต้นให้บ็อบ เช่น การดำเนินการคำขอการเขียน
  2. นุ่นซึ่งแทรกกลางการสื่อสารดักฟังข้อความและป้องกันไม่ให้บ๊อบรับข้อความนั้น เช่น ผ่านการรบกวนทางวิทยุบางประเภท
  3. แม้อรวรรณจะส่งข้อความที่ 2 แต่ไม่ได้รับการตอบกลับจากบัญชา
  4. นุ่นมาดักฟังอีกครั้งและป้องกันไม่ให้บ๊อบรับคำสั่งนี้
  5. นุ่นส่งข้อความที่ถูกดักให้บ๊อบในตอนแรก เหมือนกับว่าข้อความส่งมาจากอลิซ
  6. บัญชาส่งคำตอบให้อลิสา (และนุ่น)
  7. นัทธำรงข้อความที่ดักจับข้อความที่ 2 เพื่อเล่นซ้ำในภายหลัง เนื่องจากบัญชาไม่เคยได้รับข้อความแรกที่ดักจับข้อความที่สองจากอลิซเลย บ๊อบก็จะยอมรับข้อความนั้น ข้อความนี้แสดงถึงการละเมิดความปลอดภัยเมื่อข้อความเข้ารหัสคำสั่ง เช่น "เปิดล็อก"

การดำเนินการที่จับเวลาจะตั้งระยะหมดเวลาของธุรกรรมสูงสุดไว้ที่ตอนต้นของธุรกรรมเพื่อป้องกันการโจมตีประเภทนี้ แม้ว่านันดาจะดำเนินการตาม 6 ขั้นตอนแรกของเวกเตอร์การโจมตี แต่ก็จะไม่สามารถเล่นข้อความซ้ำในขั้นตอนที่ 7 เนื่องจากหมดเวลาในธุรกรรม

ธุรกรรมที่มีการกำหนดเวลาจะเพิ่มความซับซ้อนและจำนวนการดำเนินการ ดังนั้นจึงไม่แนะนำสำหรับธุรกรรมบางรายการ แต่ให้ยกเว้นเฉพาะการดำเนินการที่สำคัญในอุปกรณ์ที่ควบคุมความปลอดภัยทางกายภาพหรือเสมือนเท่านั้น

บทคัดย่อ SDK

ส่วนอ่านธุรกรรม เขียนธุรกรรม และธุรกรรมการเรียกใช้จะแสดงภาพรวมระดับสูงของรูปแบบการโต้ตอบที่ดำเนินการโดย SDK

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