داستان از آنجا آغاز شد که پس از حمله سال ۱۳۹۰ به یک شرکت صادرکننده گواهی دیجیتال، کارشناسان دریافتند که حتی سیستمهای به ظاهر ایمن نیز در برابر حملات سایبری آسیبپذیر هستند. در این مطلب از سری مطالب آموزشی وبلاگ پارس وی دی اس به Certificate Pinning چیست؟ میپردازیم.
در این حمله، تبهکاران توانستند گواهیهای امنیتی جعلی صادر کنند و به اطلاعات محرمانه کاربران دسترسی پیدا کنند. این رویداد هشداردهنده، نیاز به لایهای اضافی از ایمنی را بیش از پیش آشکار ساخت.

Certificate Pinning چگونه کار میکند؟
برای درک عمیق عملکرد Certificate Pinning، ابتدا باید با فرآیند استاندارد برقراری ارتباط امن آشنا شویم.
هنگامی که شما از یک برنامه یا مرورگر استفاده میکنید و به یک پایگاه اینترنتی متصل میشوید، یک فرآیند چندمرحلهای به نام رقص SSL انجام میشود. در این فرآیند، سرور یک گواهی امنیتی دیجیتال برای شما ارسال میکند که توسط یک مرکز صدور گواهی معتبر امضا شده است. برنامه یا مرورگر شما این گواهی را از طریق زنجیره اعتماد بررسی میکند و اگر تمام مراحل تأیید اعتبار را با موفقیت گذراند، ارتباط امن برقرار میشود.
اما داستان Certificate Pinning متفاوت است:
در این روش پیشرفته، برنامه یا سرویس کلاینت، تنها به یک یا چند گواهی از پیش تعیین شده اعتماد میکند. این کار با ذخیرهسازی یک کپی از اطلاعات کلیدی گواهی که به آن سنجاق میگویند درون برنامه انجام میشود. این اطلاعات میتواند شامل امضای عمومی گواهی، هش گواهی یا کلید عمومی سرور باشد.
مکانیزم دقیق عملکرد به این صورت است:
- مرحله اول: آمادهسازی
اطلاعات گواهی معتبر سرور مانند کلید عمومی یا هش گواهی درون کد برنامه یا فایل پیکربندی آن تعبیه میشود.
- مرحله دوم: تأیید دو مرحلهای
هنگامی که برنامه به سرور متصل میشود، علاوه بر بررسی معمول زنجیره اعتماد، گواهی دریافتی را با اطلاعات از پیش تعبیه شده در برنامه مقایسه میکند.
- مرحله سوم: تصمیمگیری نهایی
تنها در صورتی ارتباط برقرار میشود که هر دو شرط زیر برقرار باشند:
- گواهی توسط مراجع معتبر امضا شده باشد.
- اطلاعات گواهی با دادههای سنجاق شده در برنامه مطابقت داشته باشد.
مثال عملی برای درک بهتر:
فرض کنید شما در یک سازمان بسیار امنیتی کار میکنید و تنها به افرادی اجازه ورود میدهید که:
- کارت شناسایی معتبر داشته باشند، مثل گواهی SSL معمولی
- و اثر انگشت آنان در سیستم شما ثبت شده باشد، مثل سنجاق گواهی
حتی اگر فردی کارت شناسایی معتبر داشته باشد، اما اثر انگشتش در سیستم شما ثبت نباشد، اجازه ورود نخواهد داشت.

سنجاق گواهی یک تکنیک پیشرفته امنیتی است که با حذف اتکای سنتی به زنجیره مراجع گواهی، برنامه یا سرویس را وادار میکند تا تنها به یک گواهی یا کلید از پیش تعریفشده اعتماد کند. این روش به عنوان یک لایه دفاعی اضافی، به ویژه در برابر حملات مرد میانی (Man-in-the-Middle) که در آن مهاجم موفق به دریافت گواهی SSL جعلی اما معتبر از یک مرجع گواهی شده است، عمل میکند.
انواع اصلی روشهای Certificate Pinning:
۱. سنجاق گواهی (Certificate Pinning)
در این روش، خود گواهی سرور (یا بخشی از آن) مستقیماً درون برنامه کلاینت (مانند اپلیکیشن موبایل) ذخیره و سنجاق میشود. هنگام برقراری ارتباط، گواهی ارائهشده توسط سرور باید به طور دقیق با گواهی از پیش ذخیرهشده در برنامه مطابقت داشته باشد.
۲. سنجاق کلید عمومی (Public Key Pinning)
این روش متداولتر و انعطافپذیرتر است. در اینجا، تنها کلید عمومی سرور (که معمولاً در طول عمر گواهی ثابت میماند) در برنامه ذخیره میشود. مزیت بزرگ این روش این است که حتی زمانی که گواهی سرور به دلیل انقضا تمدید میشود، تا زمانی که کلید عمومی یکسان باقی بماند، ارتباط بدون مشکل برقرار خواهد شد.
۳. سنجاق هش (Hash Pinning)
در این روش، برای امنیت بیشتر، به جای ذخیره مستقیم گواهی یا کلید عمومی، اثر انگشت دیجیتال (هش) آنها (مثلاً با استفاده از الگوریتم SHA-256) محاسبه و ذخیره میشود. این کار هم اندازه داده ذخیرهشده را کاهش میدهد و هم امنیت را افزایش میدهد.
مزیت کلیدی و ارزش اصلی:
مزیت حیاتی این تکنیک این است که حتی اگر مهاجم بتواند یک گواهی جعلی از یک مرجع معتبر (CA) دریافت کند، باز هم نمیتواند به سیستم نفوذ کند. دلیل این است که اطلاعات گواهی یا کلید عمومی سرور جعلی، با دادههای سنجاقشده درون برنامه مطابقت ندارد و ارتباط به طور خودکار قطع میشود.
کاربردهای حیاتی:
- این روش به ویژه برای موارد زیر ضروری است:
- برنامههای موبایل (که در معرض شبکههای ناامن مانند Wi-Fi عمومی قرار دارند)
- اپلیکیشنهای بانکی و مالی
- سرویسهای حاوی اطلاعات محرمانه و با حساسیت بالا
- برنامههای سازمانی (Enterprise) که به زیرساخت داخلی متصل میشوند
چالشها و ملاحظات مهم:
اگرچه سنجاق گواهی بسیار قدرتمند است، اما پیادهسازی آن نیازمند دقت بالا است، در غیر این صورت میتواند منجر به “خود-انکاری سرویس” (Self-DDoS) شود:
مدیریت چرخه عمر گواهی: اگر گواهی سرور منقضی شود و برنامه با گواهی جدید بهروزرسانی نشود، برنامه برای همه کاربران از کار میافتد.
استراتژی Fallback: ضروری است که یک مکانیزم Fallback (مانند سنجاق چند گواهی برای زمان تمدید) یا یک مسیر بهروزرسانی اضطراری برای برنامه در نظر گرفته شود.
افزایش پیچیدگی: مدیریت و استقرار برنامهها پیچیدهتر میشود، زیرا هر تغییر در گواهی سرور مستلزم یک بهروزرسانی در برنامه کلاینت است.
خطر قطع ارتباط
یکی از نگرانیهای مهم در استفاده از این روش، احتمال قطع ارتباط است. اگر گواهی سنجاق شده به هر دلیلی از دسترس خارج شود یا اطلاعات آن به خطر بیفتد، کاربران تا زمان بهروزرسانی برنامه قادر به استفاده از سرویس نخواهند بود. این موضوع به ویژه برای سرویسهای حساس که نیاز به دسترسی دائمی دارند، میتواند مشکلساز باشد.
کاربرد Certificate Pinning در دنیای واقعی
این فناوری بیشتر برای برنامههای حساس مانند برنامههای بانکی، سامانههای پرداخت الکترونیکی و برنامههای مرتبط با دادههای محرمانه کاربران مناسب است. در این موارد، افزایش ایمنی اولویت بالاتری نسبت به سهولت نگهداری دارد.
برای برنامههای عادی که با اطلاعات کمحساسیت سروکار دارند، معمولاً روشهای متداول ایمنی کفایت میکند. تصمیمگیری درباره استفاده از این روش باید با در نظر گرفتن نوع سرویس، حساسیت دادهها و توانایی تیم فنی برای نگهداری آن انجام شود.

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






