Üzerinde işlem yapamadığımız düğümlerin veri modeli (DM) alakalı değildir. Etkileşim Modeli (IM), bir düğümün diğer düğümlerin DM'leriyle olan DM ilişkisini tanımlar: DM'ler arasındaki iletişim için ortak bir dil.
Düğümler, aşağıdaki yöntemlerle birbirleriyle etkileşim kurar:
- Özellikleri ve Etkinlikleri Okuma ve Bunlara Abone Olma
- Özelliklere Yazma
- Komutları Çağırma
Bir düğüm başka bir düğümle şifrelenmiş bir iletişim dizisi oluşturduğunda Etkileşim ilişkisi kurulur. Etkileşimler bir veya daha fazla İşlem'den oluşabilir ve İşlemler, Düğümler arasındaki IM düzeyindeki mesajlar olarak anlaşılabilen bir veya daha fazla Eylem'den oluşur.
İşlemlerde, başka bir Düğümden bir Öznitelik veya Olay isteyen Okuma İsteği Eylemi veya bunun yanıtı olan, bilgileri sunucudan istemciye geri taşıyan Rapor Veri Eylemi gibi çeşitli Eylemler desteklenir.
Başlatanlar ve Hedefler
Bir İşlemi başlatan Düğüm Başlatıcı, yanıt veren Düğüm ise Hedef'tir. Genellikle Başlatan bir İstemci Kümesi, Hedef ise bir Sunucu Kümesi olur. Ancak bu kalıbın istisnaları vardır. Örneğin, bu bölümün ilerleyen kısımlarında daha ayrıntılı olarak analiz edilen abonelik etkileşimleri bu istisnalardan biridir.
Gruplar
Matter içindeki düğümler bir Grup'a ait olabilir. Bir Cihaz Grubu, aynı Eylemde birden fazla Cihaza aynı anda adresleme ve mesaj gönderme mekanizmasıdır. Bir gruptaki tüm düğümler aynı Group ID'ye (16 bitlik bir tam sayı) sahiptir.
Grup düzeyinde iletişim (Groupcast) için Matter, IPv6 Multicast iletilerini kullanır ve tüm grup üyelerinin aynı Multicast adresi vardır.
Yollar
Bir Özellik, Etkinlik veya Komut ile etkileşim kurmak istediğimizde bu etkileşim için Yol'u belirtmemiz gerekir: Bir Özellik, Etkinlik veya Komut'un bir Düğümün Veri Modeli hiyerarşisindeki konumu. Ancak yollar, aynı anda birden fazla düğüme veya kümeye hitap etmek için grupları ya da joker karakter operatörlerini de kullanabilir. Bu durumda, etkileşimler toplanır ve işlem sayısı azalır.
Bu mekanizma, iletişimin yanıt verme hızını artırmak için önemlidir. Örneğin, bir kullanıcı tüm ışıkları kapatmak istediğinde sesli asistan, ayrı ayrı etkileşimler dizisi yerine bir Grup içindeki birkaç ışıkla tek bir etkileşim kurabilir. Başlatan, her ışıkla ayrı ayrı Etkileşimler oluşturursa Cihaz yanıt verme hızında insan tarafından algılanabilen bir gecikme oluşabilir. Bu efekt, birden fazla cihazın bir komuta aralarında görünür gecikmelerle tepki vermesine neden olur. Bu duruma genellikle "patlamış mısır efekti" denir.
Matter içindeki bir Yol, aşağıdaki seçeneklerden biri kullanılarak birleştirilebilir:
<path> = <node> <endpoint> <cluster> <attribute | event | command>
<path> = <group ID> <cluster> <attribute | event | command>
Bu yol oluşturma yapı taşları içinde, endpoint ve cluster birden fazla düğüm örneği seçmek için joker karakter operatörleri de içerebilir.
Süreli ve Süresiz
Yazma veya İşlem Çağırma işlemini gerçekleştirmenin iki yolu vardır: Zamanlanmış ve Zamanlanmamış. Zamanlanmış işlemler, gönderilecek Yazma/İşlem Çağırma işlemi için maksimum zaman aşımı oluşturur. Bu zaman aşımının amacı, İşlem üzerinde Araya Girme Saldırısı'nı önlemektir. Bu durum, özellikle garaj kapısı açıcıları ve kilitler gibi varlıklara erişimi kontrol eden cihazlar için geçerlidir.
Zamanlanmış İşlemleri anlamak için araya girme saldırılarının nasıl gerçekleşebileceğini ve Zamanlanmış İşlemlerin neden önemli olduğunu anlamak faydalıdır.
The Intercept Attack
Arada yakalama saldırısı aşağıdaki kalıba sahiptir:
- Ayşe, Ali'ye ilk mesajı gönderir (ör. Yazma İsteği İşlemi).
- Ortadaki adam olan Eve, mesajı yakalar ve Bob'un mesajı almasını engeller (örneğin, bir tür radyo sinyali karıştırma yoluyla).
- Ayşe, Başar'dan yanıt alamayınca ikinci bir mesaj gönderir.
- Eve tekrar araya girerek Bob'un mesajı almasını engeller.
- Eve, ilk yakalanan mesajı Ayşe'den geliyormuş gibi göstererek Ali'ye gönderir.
- Bob, yanıtı Alice'e (ve Eve'e) gönderir.
- Eve, ikinci yakalanan mesajı daha sonra tekrar oynatmak üzere saklar. Başar, Ayşe'den gelen orijinal ikinci yakalanan mesajı hiç almadığı için bu mesajı kabul eder. Bu mesaj, "kilidi aç" gibi bir komut kodladığında güvenlik ihlali anlamına gelir.
Zamanlanmış işlemler, bu tür saldırıları önlemek için işlemin başında maksimum işlem zaman aşımı belirler. Eve, saldırı vektörünün ilk altı adımını gerçekleştirmeyi başarsa bile İşlem'deki zaman aşımı süresi dolduğu için 7. adımda mesajı yeniden oynatamaz.
Zamanlanmış işlemler, işlemlerin karmaşıklığını ve sayısını artırır. Bu nedenle, her işlem için değil, yalnızca fiziksel veya sanal güvenlik ve gizlilik varlıkları üzerinde kontrol sahibi olan cihazlardaki kritik işlemler için önerilir.
SDK soyutlamaları
Read Transactions (İşlemleri Okuma), Write Transactions (İşlemleri Yazma) ve Invoke Transactions (İşlemleri Çağırma) bölümlerinde, SDK tarafından gerçekleştirilen Etkileşim Modeli İşlemleri'ne dair üst düzey bir genel bakış sunulmaktadır.
Matter SDK'sını kullanan bir ürün oluşturan geliştirici, genellikle İşlemleri doğrudan yürütmek için çağrı yapmaz. İşlemler, bunları bir Etkileşim'e kapsayacak SDK işlevleriyle soyutlanır. Ancak, IM Eylemlerini anlamak, mühendisin Matter yetenekleri konusunda iyi bir yeterlilik kazanması ve SDK uygulaması üzerinde hassas bir kontrol sağlaması açısından önemlidir.