گاهی ما بهعنوان Developer فقط این سؤال را میپرسیم:
«آیا API درست کار میکند؟»
اما در سیستمهای حساس باید چند سؤال دیگر هم بپرسیم:
🔹 آیا User دقیقاً میداند چه چیزی را تأیید میکند؟
🔹 آیا عملیات به یک Business Object مشخص متصل است؟
🔹 اگر داده بعداً تغییر کرد، Signature همچنان چه چیزی را نمایندگی میکند؟
🔹 آیا میتوان یک Authorization را در Context دیگری استفاده کرد؟
🔹 آیا Audit Trail کافی برای اثبات Intent کاربر داریم؟
🔹 آیا سیستم فقط Valid بودن Signature را بررسی میکند یا Context امضا را هم بررسی میکند؟
🎯 در نهایت
امضای دیجیتال فقط این نیست که:
«این Signature معتبر است؟»
سؤال مهمتر این است:
«این Signature دقیقاً چه چیزی را، توسط چه کسی، در چه زمانی و با چه میزان آگاهی و رضایتی تأیید کرده است؟»
برای همین، در طراحی سرویسهای حساس نباید فقط به Implementation نگاه کنیم.
گاهی لازم است از کد فاصله بگیریم و از خودمان بپرسیم:
اگر من جای کاربر بودم، آیا دقیقاً میدانستم چه چیزی را دارم تأیید میکنم؟
چون در نهایت، Security فقط جلوگیری از Attack نیست.
گاهی Security یعنی مطمئن شویم سیستم دقیقاً همان چیزی را انجام میدهد که کاربر فکر میکند دارد انجام میدهد. 🔐