Etkileşim Modeli Kavramları

Düğümün veri modeli (DM), üzerinde işlem yapamıyorsak önemli değildir. Etkileşim Modeli (IM), bir düğümün veri modeli ile diğer düğümlerin veri modeli arasındaki ilişkiyi tanımlar. Bu, veri modelleri arasındaki iletişim için ortak bir dildir.

Düğümler birbirleriyle şu şekilde etkileşime girer:

  • Ö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 kurarlar. Etkileşimler bir veya daha fazla İşlem'den, İşlemler ise Düğümler arasında anlık mesajlaşma düzeyindeki mesajlar olarak anlaşılabilen bir veya daha fazla Eylem'den oluşabilir.

Etkileşim Modeli Hiyerarşisi
Şekil 1: Etkileşim modelinin hiyerarşisi

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

Başlatanlar ve Hedefler

İşlemi başlatan düğüm Başlatıcı, yanıt veren düğüm ise Hedef'dir. Genellikle başlatıcı bir istemci kümesi, hedef ise bir sunucu kümesidir. Ancak bu kalıbın istisnaları vardır. Bu bölümün ilerleyen kısımlarında analiz edilen Abonelik Etkileşimleri buna örnek verilebilir.

Gruplar

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

Grup düzeyinde iletişim (Groupcast) sağlamak için Matter, IPv6 Multicast mesajlarından yararlanır ve tüm grup üyeleri aynı Multicast adresine sahiptir.

Yollar

Bir özellik, etkinlik veya komutla etkileşim kurmak istediğimizde bu etkileşimin yolunu belirtmemiz gerekir. Bu yol, bir düğümün veri modeli hiyerarşisindeki özellik, etkinlik veya komutun konumudur. Ancak yollar, birden fazla düğümü veya kümeyi aynı anda ele almak için Gruplar ya da Joker Karakter Operatörleri de kullanabilir. Bu durumda, etkileşimler birleştirilir ve işlem sayısı azalır.

Bu mekanizma, iletişimlerin yanıt verme hızını artırmak için önemlidir. Örneğin, bir kullanıcı tüm ışıkları kapatmak istediğinde sesli asistan, bir dizi ayrı etkileşim yerine bir gruptaki birkaç ışıkla tek bir etkileşim kurabilir. Başlatıcı her ışıkla ayrı etkileşimler oluşturursa cihazın yanıt verme süresinde insan tarafından algılanabilir bir gecikme yaşanabilir. Bu etki, birden fazla cihazın bir komuta aralarında belirgin gecikmelerle tepki vermesine neden olur. Bu duruma genellikle "patlamış mısır etkisi" denir.

Matter uygulamasındaki bir yol, aşağıdaki seçeneklerden biri kullanılarak oluşturulabilir:

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

Bu yol yapı taşlarında 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 çağırma işlemi gerçekleştirmenin iki yolu vardır: Zamanlı ve Zamanlanmamış. Zamanlı İşlemler, Yazma/Çağırma İşlemi'nin gönderilmesi için maksimum zaman aşımı süresi belirler. Bu zaman aşımının amacı, işlemde araya girme saldırısını önlemektir. Bu durum özellikle garaj kapısı açıcıları ve kilitler gibi varlıklara erişimi kısıtlayan cihazlar için geçerlidir.

Zamanlı İşlemler'i anlamak için, araya girme saldırılarının nasıl gerçekleşebileceğini ve Zamanlı İşlemler'in neden önemli olduğunu anlamak faydalı olacaktır.

Araya girme saldırısı

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

  1. Ayşe, Ali'ye Yazma İsteği İşlemi gibi bir ilk mesaj gönderir.
  2. Ortadaki adam olan Eve, mesajı yakalar ve Bob'un mesajı almasını engeller. Örneğin, bir tür radyo sinyali bozma yöntemi kullanabilir.
  3. Alice, Bob'dan yanıt alamayınca ikinci bir mesaj gönderir.
  4. Eve, mesajı tekrar ele geçirir ve Bob'un mesajı almasını engeller.
  5. Eve, ele geçirdiği ilk mesajı Alice'ten geliyormuş gibi Bob'a gönderir.
  6. Bob, yanıtı Alice'e (ve Eve'e) gönderir.
  7. Eve, ele geçirdiği ikinci mesajı daha sonra tekrar oynatmak üzere saklar. Ali, Ayşe'nin ele geçirilen orijinal ikinci mesajını hiç almadığı için bu mesajı kabul eder. Bu mesaj, "kilidi aç" gibi bir komutu kodladığında güvenlik ihlali teşkil eder.

Bu tür saldırıları önlemek için Zamanlı İşlemler, işlemin başında maksimum işlem zaman aşımı süresi belirler. Eve, saldırı vektörünün ilk altı adımını gerçekleştirmeyi başarsa bile işlemde zaman aşımı süresi dolduğu için 7. adımda mesajı tekrar 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ı

İşlemleri Okuma, İşlemleri Yazma ve İşlemleri Çağırma bölümleri, SDK tarafından gerçekleştirilen Etkileşim Modeli İşlemleri'ne dair üst düzey genel bakış bilgileri sunar.

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 kapsülleyecek SDK işlevleri tarafından soyutlanır. Ancak mühendisin Matter özelliklerini iyi anlaması ve SDK uygulamasını hassas bir şekilde kontrol edebilmesi için IM İşlemleri'ni anlaması önemlidir.