مفاهیم مدل تعامل

مدل داده (DM) یک گره اگر نتوانیم عملیاتی روی آنها انجام دهیم، بی‌ربط است. مدل تعامل ( IM )، رابطه‌ی DM یک گره را با DM سایر گره‌ها تعریف می‌کند: یک زبان مشترک برای ارتباط بین DMها.

گره‌ها از طریق موارد زیر با یکدیگر تعامل دارند:

  • خواندن و اشتراک در ویژگی‌ها و رویدادها
  • نوشتن در ویژگی‌ها
  • فراخوانی دستورات

هر زمان که یک گره یک توالی ارتباطی رمزگذاری شده با گره دیگری برقرار می‌کند، آنها یک رابطه تعاملی (Interaction relationship) تشکیل می‌دهند. تعاملات ممکن است از یک یا چند تراکنش (Transactions) تشکیل شده باشند و تراکنش‌ها از یک یا چند اقدام (Actions) تشکیل شده‌اند که می‌توان آنها را به عنوان پیام‌های سطح IM بین گره‌ها درک کرد.

مدل سلسله مراتب تعامل
شکل ۱: مدل سلسله مراتب تعامل

چندین اقدام در تراکنش‌ها پشتیبانی می‌شوند، مانند اقدام درخواست خواندن که یک ویژگی یا رویداد را از گره دیگری درخواست می‌کند، یا پاسخ آن، اقدام گزارش داده، که اطلاعات را از سرور به کلاینت منتقل می‌کند.

آغازگران و اهداف

گره‌ای که یک تراکنش را آغاز می‌کند، آغازگر (Initiator) نام دارد، در حالی که گره‌ای که پاسخ می‌دهد، هدف (Target) است. معمولاً آغازگر یک خوشه کلاینت (Client Cluster) و هدف یک خوشه سرور (Target) است. با این حال، استثنائاتی برای این الگو وجود دارد، مانند تعاملات اشتراک (Subscription Interactions) که در ادامه این بخش مورد تجزیه و تحلیل قرار می‌گیرد.

گروه‌ها

گره‌ها در Matter می‌توانند به یک گروه تعلق داشته باشند. گروهی از دستگاه‌ها مکانیزمی برای آدرس‌دهی و ارسال پیام به چندین دستگاه در یک اکشن به طور همزمان است. همه گره‌های یک گروه، یک شناسه گروه یکسان، یک عدد صحیح ۱۶ بیتی، را به اشتراک می‌گذارند.

برای انجام ارتباطات در سطح گروه ( GroupcastMatter از پیام‌های Multicast IPv6 استفاده می‌کند و همه اعضای گروه آدرس Multicast یکسانی دارند.

مسیرها

هر زمان که می‌خواهیم با یک ویژگی، رویداد یا دستور تعامل داشته باشیم، باید مسیر این تعامل را مشخص کنیم: مکان یک ویژگی، رویداد یا دستور در سلسله مراتب مدل داده یک گره. نکته این است که مسیرها ممکن است از گروه‌ها یا عملگرهای Wildcard نیز برای آدرس‌دهی همزمان به چندین گره یا خوشه استفاده کنند و این تعاملات را تجمیع کرده و در نتیجه تعداد اقدامات را کاهش دهند.

این مکانیسم برای افزایش پاسخگویی ارتباطات مهم است. به عنوان مثال، وقتی کاربری می‌خواهد همه چراغ‌ها را خاموش کند، یک دستیار صوتی می‌تواند به جای دنباله‌ای از تعاملات فردی، یک تعامل واحد با چندین چراغ در یک گروه برقرار کند. اگر آغازگر با هر چراغ تعاملات فردی ایجاد کند، می‌تواند تأخیر قابل درک توسط انسان را در پاسخگویی دستگاه ایجاد کند. این اثر باعث می‌شود چندین دستگاه با تأخیرهای قابل مشاهده بین آنها به یک دستور واکنش نشان دهند. این اغلب به عنوان "اثر پاپ کورن" شناخته می‌شود.

یک مسیر در Matter را می‌توان با استفاده از یکی از گزینه‌های زیر مونتاژ کرد:

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

و درون این بلوک‌های سازنده‌ی مسیر، endpoint و cluster ممکن است شامل عملگرهای Wildcards برای انتخاب بیش از یک نمونه گره نیز باشند.

زمان‌بندی‌شده و بدون زمان‌بندی

دو روش برای انجام تراکنش نوشتن یا فراخوانی وجود دارد: زمان‌دار و بدون زمان . تراکنش‌های زمان‌دار، حداکثر زمان انقضا را برای ارسال اقدام نوشتن/فراخوان تعیین می‌کنند. هدف از این زمان انقضا، جلوگیری از حمله رهگیری (Intercept Attack) به تراکنش است. این امر به ویژه برای دستگاه‌هایی که دسترسی به دارایی‌ها، مانند دربازکن‌ها و قفل‌های گاراژ را مسدود می‌کنند، معتبر است.

برای درک تراکنش‌های زمان‌دار، درک چگونگی وقوع حملات رهگیری و اهمیت تراکنش‌های زمان‌دار مفید است.

حمله رهگیری

یک حمله رهگیری (Intercept Attack) الگوی زیر را دارد:

  1. آلیس یک پیام اولیه، مانند درخواست نوشتن، برای باب ارسال می‌کند.
  2. ایو، یک مرد میانی، پیام را رهگیری می‌کند و مانع از دریافت آن توسط باب می‌شود، برای مثال از طریق نوعی پارازیت رادیویی.
  3. آلیس که پاسخی از باب دریافت نمی‌کند، پیام دوم را ارسال می‌کند.
  4. ایو دوباره آن را رهگیری می‌کند و مانع از دریافت آن توسط باب می‌شود.
  5. ایو اولین پیام شنود شده را به باب می‌فرستد، انگار که از آلیس آمده است.
  6. باب پاسخ را برای آلیس (و ایو) ارسال می‌کند.
  7. ایو پیام دوم شنود شده را برای بازپخش بعدی نگه می‌دارد. از آنجایی که باب هرگز پیام دوم شنود شده اصلی را از آلیس دریافت نکرده است، آن را می‌پذیرد. این پیام زمانی نشان دهنده یک نقض امنیتی است که پیام، دستوری مانند "قفل باز" را رمزگذاری کند.

برای جلوگیری از این نوع حملات، Timed Actions حداکثر زمان انقضای تراکنش را در ابتدای تراکنش تعیین می‌کند. حتی اگر Eve موفق به اجرای شش مرحله اول بردار حمله شود، به دلیل انقضای زمان انقضای تراکنش، قادر به پخش مجدد پیام در مرحله ۷ نخواهد بود.

تراکنش‌های زمان‌بندی‌شده پیچیدگی و تعداد اقدامات را افزایش می‌دهند. بنابراین، استفاده از آنها برای هر تراکنشی توصیه نمی‌شود، بلکه فقط برای عملیات حیاتی روی دستگاه‌هایی که بر دارایی‌های امنیتی و حریم خصوصی فیزیکی یا مجازی کنترل دارند، توصیه می‌شود.

انتزاعات SDK

بخش‌های «خواندن تراکنش‌ها» ، «نوشتن تراکنش‌ها» و «فراخوانی تراکنش‌ها» یک نمای کلی سطح بالا از اقدامات مدل تعامل انجام شده توسط SDK ارائه می‌دهند.

توسعه‌دهنده‌ای که محصولی را ایجاد می‌کند که از Matter SDK استفاده می‌کند، معمولاً فراخوانی‌هایی برای اجرای مستقیم Actionها انجام نمی‌دهد؛ Actionها توسط توابع SDK که آنها را در یک Interaction کپسوله‌سازی می‌کنند، انتزاعی می‌شوند. با این حال، درک IM Actionها برای ارائه مهارت خوب به مهندس در مورد قابلیت‌های Matter و همچنین کنترل دقیق بر پیاده‌سازی SDK مهم است.