Etkileşim Modeli Kavramları

Düğüm üzerinde işlem gerçekleştiremiyorsak Düğümün Veri Modeli (DM) önemli olmaz. Etkileşim Modeli (IM), bir Düğümün diğer Düğümlerin DM ile DM ilişkisini tanımlar. Bu, DM'ler arasında iletişim için kullanılan ortak bir dildir.

Düğümler aşağıdaki kriterlere göre birbirleriyle etkileşim kurar:

  • Özellikleri ve Etkinlikleri Okuma ve Bunlara Abone Olma
  • Özelliklere Yazma
  • Komutları Çağırma

Bir Düğüm, başka bir Düğüm ile şifrelenmiş bir iletişim dizisi oluşturduğunda bir Etkileşim ilişkisi oluşturur. Etkileşimler bir veya daha fazla İşlemden ve İşlemler ise bir veya daha fazla İşlemden oluşur. Bunlar, Düğümler arasında IM düzeyinde mesaj olarak anlaşılabilir.

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

İşlemlerde, başka bir Düğümden Özellik veya Etkinlik isteyen Okuma İsteği İşlemi veya bilgileri sunucudan istemciye geri taşıyan Rapor Veri İşlemi gibi çeşitli İş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 İstemci Kümesi, Hedef ise bir Sunucu Kümesi'dir. Ancak bu kalıbın, bu bölümde daha ayrıntılı bir şekilde analiz edilen Abonelik Etkileşimleri gibi istisnaları vardır.

Gruplar

Matter içindeki düğümler bir Gruba ait olabilir. Cihaz Grubu, mesajların aynı İşlemde birden fazla Cihaza gönderilmesini ve ele alınmasını sağlayan bir mekanizmadır. Bir Gruptaki tüm Düğümler aynı Grup Kimliğini paylaşır. Bu 16 bitlik bir tam sayıdır.

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

Yollar

Bir Özellik, Etkinlik veya Komut ile etkileşimde bulunmak istediğimizde bu etkileşim için Yol'u belirtmemiz gerekir: Bir Düğümün Veri Modeli hiyerarşisindeki Özelliğin, Etkinliğin veya Komutun konumu. Dikkat edilmesi gereken nokta, yolların aynı anda birkaç Düğüm veya Kümeyi ele almak için Gruplar veya Joker Karakter Operatörleri'ni kullanarak bu Etkileşimleri birleştirip işlemlerin sayısını azaltabilmesidir.

Bu mekanizma, iletişimin yanıt hızını artırmak için önemlidir. Örneğin, bir kullanıcı tüm ışıkları kapatmak istediğinde sesli asistan, bağımsız Etkileşimler yerine bir Grup içindeki birkaç ışıkla tek bir etkileşim oluşturabilir. Başlatıcı her ışıkla ayrı Etkileşimler oluşturursa Cihaz yanıt vermesinde insanlar tarafından algılanabilir gecikme oluşturabilir. Bu durum, birden fazla cihazın bir komuta, aralarında görünür gecikmelerle tepki vermesine neden olur. Bu etkiye genellikle "patlamış mısır etkisi" 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>

endpoint ve cluster, bu Yol yapı taşlarında birden fazla Düğüm örneği seçmek için Joker Karakter Operatörleri de içerebilir.

Zamanlanmış ve Zamanlanmamış

Yazma veya Çağırma İşlemini gerçekleştirmenin iki yolu vardır: Zamanlanmış ve Zamanlanmamış. Zamanlanmış İşlemler, Yazma/Çağrı İşleminin gönderilmesi için bir maksimum zaman aşımı belirler. Bu zaman aşımının amacı, İşlemde bir Müdahale Saldırısı'nı önlemektir. Özellikle garaj açma sistemi ve kilit gibi öğelere erişim sağlayan Cihazlar için geçerlidir.

Zamanlanmış İşlemleri anlamak için Müdahale Saldırılarının nasıl meydana gelebileceğini ve Zamanlanmış İşlemlerin neden önemli olduğunu anlamak yararlıdır.

Müdahale Saldırısı

Müdahale Saldırısı aşağıdaki kalıba sahiptir:

  1. Ayla, Ali'ye Yazma İsteği İşlemi gibi bir ilk mesaj gönderir.
  2. Ortadaki adam olan Eve, mesaja müdahale eder ve İbrahim'in mesajı almasını önler. Örneğin, bir tür radyo müziği aracılığıyla.
  3. Ali'den yanıt alamayan Ayşe, ikinci bir mesaj gönderir.
  4. Eve tekrar müdahale eder ve Bora'nın buna ulaşmasını engeller.
  5. Eve, müdahale edilen ilk mesajı Ali'den geliyormuş gibi Bülent'e gönderir.
  6. Bülent yanıtı Ayşe'ye (ve Ece'ye) gönderir.
  7. Eve, müdahale edilen ikinci mesajı daha sonra tekrar oynatmak için tutar. Bülent, Ayşe'den müdahale edilen orijinal ikinci mesajı hiç almadığı için bunu kabul eder. Bu mesaj, mesajın "açık kilit" gibi bir komutu kodladığı bir güvenlik ihlalini temsil eder.

Zamanlanmış İşlemler, bu tür saldırıları önlemek için İşlemin başında maksimum İşlem zaman aşımı belirler. Eve saldırı vektörünün ilk altı adımını yürütmeyi başarsa bile İşlem'deki zaman aşımı süresi dolduğu için 7. adımdaki mesajı tekrar oynatamaz.

Zamanlanmış İşlemler, işlemlerin karmaşıklığını ve sayısını artırır. Dolayısıyla bu işlemler her İşlem için değil, yalnızca fiziksel veya sanal güvenlik ve gizlilik varlıkları üzerinde kontrolü olan cihazlardaki kritik işlemler için önerilmez.

SDK soyutlamaları

İşlemleri Okuma, İşlemleri Yazma ve İşlemleri Çağırma bölümleri, SDK tarafından gerçekleştirilen Etkileşim Modeli İşlemlerine yüksek düzeyli bir genel bakış sağlar.

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 içine alan SDK işlevleri tarafından soyutlanır. Bununla birlikte, IM İşlemlerini anlamak mühendise Matter konusunda iyi bir yetkinlik ve SDK uygulaması üzerinde hassas kontrol sağlamak açısından önemlidir.