Konsep Model Interaksi

Model Data (DM) Node tidak akan relevan jika kita tidak dapat menjalankan operasi pada node tersebut. Model Interaksi (IM), menentukan hubungan DM Node dengan DM Node lain: bahasa umum untuk komunikasi antar-DM.

Node berinteraksi satu sama lain dengan cara:

  • Membaca dan Berlangganan ke Atribut dan Peristiwa
  • Menulis ke Atribut
  • Memanggil Perintah

Setiap kali Node membuat urutan komunikasi terenkripsi dengan Node lain, node tersebut membentuk hubungan Interaksi. Interaksi dapat terdiri dari satu atau beberapa Transaksi, dan Transaksi terdiri dari satu atau beberapa Tindakan yang dapat dipahami sebagai pesan tingkat IM di antara Node.

Hierarki Model Interaksi
Gambar 1: Hierarki Model Interaksi

Beberapa Tindakan didukung pada Transaksi, seperti Tindakan Permintaan Baca yang meminta Atribut atau Peristiwa dari Node lain, atau responsnya, Tindakan Data Laporan, yang membawa informasi kembali dari server ke klien.

Inisiator dan Target

Node yang memulai Transaksi adalah Initiator, sedangkan Node yang merespons adalah Target. Biasanya, Inisiator adalah Cluster Klien dan Targetnya adalah Cluster Server. Namun, ada pengecualian untuk pola ini, seperti dalam Interaksi Langganan yang dianalisis lebih lanjut di bagian ini.

Grup

Node di Matter mungkin merupakan milik Grup. Grup Perangkat adalah mekanisme untuk menangani dan mengirim pesan ke beberapa Perangkat dalam Action yang sama secara bersamaan. Semua Node dalam Grup memiliki ID Grup yang sama, yaitu bilangan bulat 16-bit.

Untuk menyelesaikan komunikasi tingkat grup (Groupcast), Matter memanfaatkan pesan Multicast IPv6, dan semua anggota Grup memiliki alamat Multicast yang sama.

Paths

Setiap kali ingin berinteraksi dengan Atribut, Peristiwa, atau Perintah, kita harus menentukan Jalur untuk interaksi ini: lokasi Atribut, Peristiwa, atau Perintah dalam hierarki Model Data Node. Perlu diperhatikan bahwa jalur juga dapat menggunakan Grup atau Operator Karakter pengganti untuk menangani beberapa Node atau Cluster secara bersamaan, sehingga menggabungkan Interaksi ini sehingga mengurangi jumlah tindakan.

Mekanisme ini penting untuk meningkatkan responsivitas komunikasi. Misalnya, saat pengguna ingin mematikan semua lampu, asisten suara dapat membuat satu interaksi dengan beberapa lampu dalam Grup, bukan urutan Interaksi individual. Jika Inisiator membuat Interaksi individual dengan setiap cahaya, Inisiator dapat menghasilkan latensi yang dapat disimak manusia dalam responsivitas Perangkat. Efek ini menyebabkan beberapa Perangkat bereaksi terhadap perintah dengan penundaan yang terlihat di antara perintah tersebut. Hal ini sering disebut sebagai "efek popcorn".

Jalur di Matter dapat disusun menggunakan salah satu opsi di bawah:

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

Dan dalam elemen penyusun Jalur ini, endpoint dan cluster juga dapat menyertakan Operator Karakter pengganti untuk memilih lebih dari satu instance Node.

Terjadwal dan Tidak Terjadwal

Ada dua cara untuk melakukan Transaksi Tulis atau Memanggil: Timed dan Untimed. Transaksi Berwaktu menetapkan waktu tunggu maksimum untuk Tindakan Tulis/Memanggil yang akan dikirim. Tujuan waktu tunggu ini adalah untuk mencegah Serangan Penyadapan pada Transaksi. Hal ini terutama berlaku untuk Perangkat yang mengakses akses ke aset, seperti pembuka dan kunci garasi.

Untuk memahami Transaksi Berwaktu, sebaiknya pahami bagaimana Serangan Intercept dapat terjadi dan mengapa Transaksi Berjangka waktu penting.

Serangan Intercept

Serangan Penyadapan memiliki pola berikut:

  1. Alice mengirimkan pesan awal kepada Bobi, seperti Tindakan Permintaan Tulis.
  2. Eve, seorang man-in-the-middle, mencegat pesan dan mencegah Bobi menerimanya, misalnya melalui beberapa jenis gangguan radio.
  3. Alia, yang tidak menerima balasan dari Bob, mengirim pesan kedua.
  4. Eve mencegat lagi dan mencegah Bobi menerimanya.
  5. Eve mengirim pesan pertama yang dicegat ke Bob, seolah-olah pesan tersebut berasal dari Alice.
  6. Bob mengirim respons ke Alice (dan Eve).
  7. Eve menyimpan pesan kedua yang disadap untuk replay nanti. Karena Bob tidak pernah menerima pesan kedua yang dicegat pertama dari Alice, ia akan menerimanya. Pesan ini menunjukkan pelanggaran keamanan saat pesan mengenkode perintah seperti "kunci terbuka".

Untuk mencegah jenis serangan ini, Tindakan Berjangka Waktu menetapkan waktu tunggu Transaksi maksimum di awal Transaksi. Meskipun berhasil menjalankan enam langkah pertama vektor serangan, Eve tidak akan dapat memutar ulang pesan di langkah 7 karena waktu tunggu Transaksi telah habis.

Transaksi Berwaktu meningkatkan kompleksitas dan jumlah Tindakan. Oleh karena itu, tidak direkomendasikan untuk setiap Transaksi, melainkan hanya operasi penting pada Perangkat yang memiliki kontrol atas aset privasi dan keamanan fisik atau virtual.

Abstraksi SDK

Bagian Membaca Transaksi, Menulis Transaksi, dan Memanggil Transaksi memberikan ringkasan tingkat tinggi tentang Tindakan Model Interaksi yang dilakukan oleh SDK.

Developer yang membuat produk yang menggunakan SDK Matter biasanya tidak melakukan panggilan untuk menjalankan Tindakan secara langsung. Tindakan diabstraksi oleh fungsi SDK yang akan mengenkapsulasinya ke dalam Interaksi. Namun, memahami Tindakan IM penting untuk memberi engineer kemahiran yang baik tentang kemampuan Matter, serta kontrol yang baik atas implementasi SDK.