Certificate Pinning چیست؟ یک تکنیک امنیتی است که در واقع بین کلاینت و سرور قرار میگیرد. به عبارت دیگر یک مکانیسم امنیتی است که در زمینه احراز هویت اتصالات Client و سرور در زمینه ارتباط امن از طریق HTTPS یا سایر پروتکلهای TLS استفاده میشود. حمله سال 2011 به DigiNotar که یک شرکت صدور گواهینامه دیجیتال بود نشان داد حتی با وجود گواهینامه مجرمان سایبری میتوانند راههایی برای نفوذ به سیستمها و صدور گواهیهای SSL تقلبی بیابند.
دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران
هدف اصلی Certificate Pinning چیست؟
هدف اصلی آن افزایش امنیت ارتباط بین کلاینت و سرور با کاهش خطر MITM میباشد.
عملکرد Certificate Pining چگونه است؟
خیلی ساده میتوان کرد:
هنگامی که کلاینت یک درخواست HTTPS به سرور ارسال میکند سرور یک گواهینامه به کلاینت ارائه میکند.که توسط یک مرجع گواهی (Certificate Authority یا CA) معتبر امضا شده است. کلاینت اعتبار این گواهینامه را بررسی کرده و در صورت معتبر بودن، ارتباط امن برقرار میشود.
در تکنیک Certificate Pinning، اپلیکیشن یا مرورگر به جای اعتماد به هر گواهینامهای که توسط هر مرجع گواهی معتبر صادر شده باشد، تنها به یک یا چند گواهینامه خاص که از قبل مشخص شدهاند، اعتماد میکند. این گواهینامهها به اصطلاح "پین" (Pin) میشوند.
معایب:
پیچیدگی نگهداری: پین کردن گواهی مستلزم آن است که مشتریان فهرستی از گواهینامه های قابل اعتماد یا کلیدهای عمومی را حفظ کنند. با این حال، این لیست باید به طور مداوم به روز شود تا تغییرات در گواهی های سرور را منعکس کند. از آنجایی که گواهینامه ها دارای تاریخ انقضا هستند و مرتباً تمدید می شوند، روند به روز نگه داشتن گواهی های پین شده می تواند دشوار، مستعد خطای انسانی باشد و ممکن است منجر به اختلال در خدمات شود.
کاهش انعطافپذیری: در محیطهای پویا و مبتنی بر ابر که گواهیهای سرور به طور مکرر تغییر میکنند (به عنوان مثال، شبکههای تحویل محتوا یا میکروسرویسها)، پین کردن گواهی میتواند چالشهای عملیاتی ایجاد کند. انعطافناپذیری گواهیهای پینشده میتواند مانع از انتقال روان در طول بهروزرسانی سرور شده و مدیریت گواهی را پیچیده کند. خطر قطع اتصالات: پین کردن یک گواهی به یک برنامه کاربردی خطر از دست دادن اتصال را در صورت به خطر افتادن یا منقضی شدن گواهی پین شده ایجاد می کند.
این می تواند منجر به وقفه در سرویس برای کاربران شود تا زمانی که برنامه مشتری با گواهی پین شده جدید به روز شود. عدم مقیاسپذیری: پین کردن گواهی میتواند برای برنامهها یا خدمات در مقیاس بزرگ که نیاز به برقراری ارتباط با سرورهای متعددی دارند، که هر کدام گواهی خاص خود را دارند، غیرعملی باشد. مدیریت انبوهی از گواهیهای سنجاقشده دشوار میشود و ممکن است مزایای پین کردن گواهی را تضعیف کند.