Etkileşim Modeli Kavramları

Ü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'siyle DM ilişkisini tanımlar. Bu model, DM'ler arasındaki iletişim için ortak bir dildir.

Nodlar 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 oluşur. Etkileşimler bir veya daha fazla işlemden oluşabilir. İşlemler ise düğümler arasındaki IM düzeyinde mesajlar olarak anlaşılabilecek bir veya daha fazla işlemden oluşur.

Etkileşim Modelinin Hiyerarşisi
Şekil 1: Etkileşim Modelinin Hiyerarşisi

İşlemlerde, başka bir düğümden özellik veya etkinlik isteyen bir Okuma İsteği İşlemi ya da yanıtı olan ve bilgileri sunucudan istemciye geri taşıyan Veri Raporlama İşlemi gibi çeşitli işlemler desteklenir.

Başlatıcılar ve Hedefler

İşlemi başlatan düğüm Başlatıcı, yanıt veren düğüm ise Hedef olur. Genellikle başlatıcı bir istemci kümesi, hedef ise bir sunucu kümesidir. Ancak bu kalıpta istisnalar da vardır. Örneğin, bu bölümün ilerleyen kısmında analiz edilen Abonelik Etkileşimleri bu istisnalardan biridir.

Gruplar

Matter içindeki düğümler bir gruba ait olabilir. Cihaz grubu, aynı işlemdeki birden fazla cihaza aynı anda mesaj göndermek ve bu cihazları adreslemek için kullanılan bir mekanizmadır. Bir gruptaki tüm düğümler aynı 16 bit tam sayı olan grup kimliğini paylaşır.

Grup düzeyinde iletişim (Groupcast) gerçekleştirmek için Matter, IPv6 Multicast iletilerinden yararlanır ve tüm grup üyelerinin aynı Multicast adresi vardır.

Yollar

Bir özellik, etkinlik veya komutla etkileşim kurmak istediğimizde bu etkileşimin yolunu (bir özelliğin, etkinliğin veya komutun bir düğümün Veri Modeli hiyerarşisindeki konumu) belirtmemiz gerekir. Bununla birlikte, yollar birden fazla düğümü veya kümeyi aynı anda ele almak için gruplar ya da joker karakter operatörleri de kullanabilir. Bu da bu etkileşimleri toplayarak işlem sayısını azaltır.

Bu mekanizma, iletişimlerin yanıt verebilirliğini artırmak için önemlidir. Örneğin, bir kullanıcı tüm ışıkları kapatmak istediğinde sesli asistan, bağımsız etkileşimler dizisi yerine bir gruptaki birkaç ışıkla tek bir etkileşim kurabilir. Başlatıcı her ışıkla ayrı ayrı etkileşim oluşturursa cihazın yanıt verme hızında kullanıcı tarafından algılanabilir gecikme oluşabilir. Bu etki, birden fazla cihazın bir komuta tepki vermesi arasında belirgin gecikmeler olmasına neden olur. Buna genellikle "patlamış mısır etkisi" denir.

Matter içindeki bir yol, aşağıdaki seçeneklerden biri kullanılarak derlenebilir:

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

Ayrıca bu yol yapı taşları içinde endpoint ve cluster, birden fazla düğüm örneğini seçmek için joker karakter operatörleri de içerebilir.

Süreli ve Zamansız

Yazma veya Çağırma İşlemi'ni gerçekleştirmenin iki yolu vardır: Zamanlanmış ve Zamanlanmamış. Zamanlanmış işlemler, Yaz/Çağır İşlemi'nin gönderilmesi için maksimum zaman aşımı belirler. Bu zaman aşımının amacı, işlemde kesme saldırısını önlemektir. Bu özellikle, garaj açma/kapatma düğmeleri ve kilitler gibi öğelere erişimi kısıtlayan cihazlar için geçerlidir.

Zamanlanmış İşlemleri anlamak için, müdahale saldırılarının nasıl gerçekleşebileceğini ve zamanlanmış işlemlerin neden önemli olduğunu anlamak faydalıdır.

Intercept Attack

Engelleme saldırısı aşağıdaki kalıba sahiptir:

  1. Ayşe, Ali'ye ilk mesajı (ör. Yazma İsteği İşlemi) gönderir.
  2. Ortadaki adam olan Eve, mesajı keser ve Bob'un mesajı almasını engeller (ör. radyo paraziti).
  3. Aylin, Başar'dan yanıt almayınca ikinci bir mesaj gönderir.
  4. Eve tekrar müdahale eder ve Bob'un mesajı almasını engeller.
  5. Ece, ele geçirilen ilk mesajı Ayşe'den geliyormuş gibi Bora'ya gönderir.
  6. Bob, yanıtı Alice'e (ve Eve'ye) gönderir.
  7. Eve, daha sonra tekrar oynatmak için ikinci mesajı yakalar. Bob, Aylin'den gelen ikinci mesajın orijinalini hiç almadığı için bu mesajı kabul eder. Bu mesaj, "kilidi aç" gibi bir komutu kodlarken güvenlik ihlalini gösterir.

Zamanlanmış işlemler, bu tür saldırıları önlemek için işlemin başında maksimum bir işlem zaman aşımı belirler. Eve, saldırı vektörünün ilk altı adımını yürütmeyi başarsa bile işlemdeki zaman aşımı nedeniyle 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 öğeleri üzerinde kontrol sahibi olan cihazlardaki kritik işlemler için önerilir.

SDK soyutlamaları

İşlemleri Oku, İşlemleri Yaz ve İşlemleri Çağır bölümleri, SDK tarafından gerçekleştirilen Etkileşim Modeli İşlemlerine genel bir bakış sunar.

Matter SDK'sını kullanan bir ürün oluşturan geliştirici genellikle işlemleri doğrudan yürütmek için çağrı gerçekleştirmez. İşlemler, onları bir Etkileşim içine sarmalayacak SDK işlevleri tarafından soyutlanır. Bununla birlikte, mühendise Matter'ün özellikleri konusunda iyi bir bilgi birikimi ve SDK uygulaması üzerinde hassas kontrol sağlamak için IM İşlemleri'ni anlamak önemlidir.