راهنمای غیررسمی threat model؛ از صفر تا شهود درست
خلاصهٔ کاملتر
سوآتوک (Soatok) تو یه پست با لحن خودمونی و شخصی نوشته که بعد از کلی بحث دربارهی رمزنگاری پساکوانتومی و قوانین بیسروتهی «تأیید سن»، براش روشن شده که عبارت «threat model» برای بیشتر آدمها فقط یه buzzwordه. هدفش هم اینه که بهجای یه مرجع دانشگاهیِ پرارجاع، کمک کنه از صفر یه شهود درست بسازی که یه مدل تهدیدِ خوب باید به چه سؤالهایی جواب بده.
نویسنده میگه threat model لزوماً یه فرایند رسمیِ سنگین نیست؛ میتونی نسخهی غیررسمیشو تو فاز طراحی و معماری اجرا کنی و احتمالاً به نتیجهی بهتری برسی. بهگفتهی او یه مدل خوب دستکم باید به اینها جواب بده: اصلاً چی رو داریم محافظت میکنیم؟ چه کسی/چه چیزی میخواد بهش آسیب بزنه؟ چطور ممکنه حمله کنه؟ و چه کاری برای جلوگیری میکنیم؟
اما نکتهای که تأکید زیادی روش داره اینه که همین چهار سؤال اغلب در عمل بیفایدهست چون چند جزء حیاتی جا میمونه. باید بپرسی داراییها چطور به هم وصلن (به قول او «بهجای لیست، گراف فکر کن»، چون همهی هدفها همارزش نیستن)، چه مفروضاتی داریم، و کدوم تهدیدها رو عمداً پوشش نمیدیم. چون نمیشه هر حملهی ممکن رو پوشش داد، بهتره صادقانه بگی چی رو کنار گذاشتی.
مفروضات ستون خیمهن. به گفتهی نویسنده اگه یکی از مفروضاتت غلط باشه، مدلت ناقصه یا فهرست ریسکهای پذیرفتهشدهات باید بازنگری شه. مثالی که میزنه حملهی Invisible Salamandersه: بعضی طرحهای AEAD (مثل AES-GCM و ChaCha20-Poly1305) این فرض رو دارن که برای هر پیام فقط یه کلید معتبر وجود داره؛ لحظهای که چند کلید معتبر برای یه پیام معرفی کنی (مثلاً در قابلیت گزارش سوءاستفاده)، از تضمینهای امنیتی الگوریتم خارج میشی. threat model هم یه سند زندهست، نه یه عکس لحظهای—هر وقت لازم شد بهروزش کن.
برای شروع پیشنهاد میده اون هفت مورد رو یه جا بنویسی، بعد اجزای سیستم رو روی کاغذ گراف بکشی و مثل بازیِ Fortnite، دایرهی توجه رو مدام کوچیکتر کنی و روی هر جزء تمرکز کنی. او یه نمونهی خوب (مدل تهدید پروژهی key transparency خودش با وضعیتهایی مثل Prevented/Mitigated/Addressable/Open) و یه نمونهی ضعیف (مدل تهدید Matrix) رو هم مقایسه میکنه.
نکات کلیدی:
- threat model لازم نیست رسمی باشه؛ نسخهی غیررسمی هم تو فاز طراحی ارزشمنده
- یه مدل خوب باید به هفت سؤال جواب بده، نه فقط چهارتای اول
- «بهجای لیست، گراف فکر کن»؛ همهی داراییها همارزش نیستن
- شفافبودن دربارهی مفروضات و تهدیدهای پوششدادهنشده حیاتیه
- مثال Invisible Salamanders: نقض فرضِ «یک کلید معتبر برای هر پیام» در AEAD
- threat model یه سند زندهست و باید مدام بهروز شه




