زیرساخت کلید عمومی (Public Key Infrastructure به اختصار PKI) به توزیع و تعیین هویت کلیدهای رمزنگاری عمومی کمک میکند و به این ترتیب کاربران و کامپیوترها را قادر میسازد که دادهها را به صورت امن از طریق شبکههایی مثل اینترنت ارسال کرده و هویت طرف مقابل را بررسی و تائید کنند.
بدون وجود PKI هم، امکان رمزگذاری اطلاعات حساس (که محرمانگی دادهها را تضمین میکند) و تبادل آنها وجود دارد اما هیچ تضمینی برای تعیین هویت طرف مقابل (احراز هویت یا authentication) نیست. هر نوع اطلاعات حساسی که از طریق اینترنت تبادل میشوند، برای حفظ امنیت به PKI متکی است.
اجزای زیرساخت کلید عمومی
هر PKI برای این که بتواند کلیدها و مجوزهای دیجیتال را ایجاد، مدیریت، توزیع و فسخ کند نیاز به یکسری سختافزار، نرمافزار، خط مشی و استاندارد دارد. مجوزهای دیجیتال، قلب یک PKI هستند به این خاطر که هویت دارنده مجوز را تائید و با توجه به این هویت، کلید عمومی PKI مجوز را مشخص میکنند.
هر PKI شامل اجزای زیر است:
- یک طرف مورد اطمینان که به آن مرجع صدور گواهینامه دیجیتال (CA) گفته میشود و به عنوان عامل اصلی ایجاد کننده اطمینان عمل میکند و سرویسهایی را عرضه میکند که هویت افراد، کامپیوترها و سایر موجودیتها را بررسی و تایید میکنند.
- یک متصدی برای ثبتنام که معمولاً به آن CAی تابع گفته میشود و از CAی اصلی مجوز دارد که گواهینامهها را برای کاربران تعیین شده توسط CAی اصلی صادر کند.
- یک دیتابیس برای مجوزها که درخواستهای ارسال شده برای مجوز را ذخیره میکند و مجوزها را صادر و یا فسخ میکند.
- یک فروشگاه مجوز که روی یک کامپیوتر محلی مقیم میشود و محلی برای مجوزهای صادر شده و کلیدهای خصوصی است.
CA گواهینامههای دیجیتال را برای افراد و نهادهای مختلف بعد از شناسایی و تائید هویتشان صادر میکند. سپس این مجوزها را با کلید خصوصی خودش امضا میکند؛ کلید عمومی CA همانطور که از نامش پیداست در دسترس عموم قرار دارد. CAها از root certificateها برای ایجاد “یک زنجیره اعتماد” استفاده میکنند؛ root certificate های زیادی در مرورگرهای وب وجود دارند، بنابراین این مرورگرها یک مکانیزم اعتماد درونی برای این CAها دارند. سرورهای وب، کلاینتهای ایمیل، تلفنهای هوشمند و خیلی از سختافزارها و نرمافزارهای دیگر هم از PKI، پشتیبانی میکنند و دارای root certificate از CAهای بزرگ هستند.
گواهینامههای دیجیتال علاوه بر کلید عمومی نهادها یا افراد، حاوی اطلاعات دیگری هم هستند از جمله اطلاعاتی درباره الگوریتم مورد استفاده برای ایجاد امضاء، شخص یا نهادی که هویتش شناسایی یا تائید شده، امضای دیجیتال CA که دادههای مربوطه را تائید و مجوز را صادر کرده، هدف رمزنگاری کلید عمومی، امضای گواهینامه و همچنین بازه تاریخی که مجوز در آن اعتبار دارد.
مشکلات زیرساخت کلید عمومی
PKI یک زنجیره اعتماد را شکل میدهد تا بتوان هویت افراد و نهادهای داخل یک شبکه را شناسایی کرد. اما قدرت PKI هم مثل هر زنجیره دیگری به اندازه ضعیفترین عضو آن است. استانداردهای مختلفی هستند که جنبههای مختلف PKI را پوشش میدهند، مثل سیاست اعطای مجوز زیرساخت کلید عمومی (Internet X.509 (Internet X.509 Public Key Infrastructure Certificate Policy و فریم ورک اقدامات مربوط به صدور گواهینامه (به اختصارRFC2527)، اما هیچ نهاد نظارتی و قانونی وجود ندارد که اجرای این استانداردها را الزامآور کند.
هرچند اغلب اوقات CA اشاره به یک “شخص ثالث قابلاطمینان” دارد اما کوتاهیهایی در رویکردهای امنیتی مربوط به CAهای مختلف در سالهای اخیر باعث به خطر افتادن اعتماد در کل زیرساخت کلید عمومی شده که اینترنت به آن وابسته است. در صورتیکه یک CA در معرض خطر قرار بگیرد، امنیت کل PKI تهدید میشود. برای مثال در سال 2011، فروشندگان مرورگرهای وب ملزم شدند تمام مجوزهای صادر شده توسط یک CAی هلندی به نام DigiNotar را در لیست سیاه قرار بدهند و این اقدام به دلیل شناسایی بیش از 500 مجوز جعلی انجام شد.
سرویس جستجو و مرور امن (WOT (Web of trust
یک جایگزین برای استفاده از CA جهت بررسی و تائید اعتبار اطلاعات کلیدهای عمومی، روشی غیرمتمرکز به نام وب اعتماد یا “Web of trust” است. این مفهوم در نرمافزار رمزگذاری PGP و سایر سیستمهای سازگار با OpenPGP استفاده میشود. در این روش به جای اتکا بر سلسله مراتبی از مراجع صدور گواهینامه، گواهینامهها توسط سایر کاربران امضا میشوند تا این تضمین ایجاد شود که کلید عمومی ذکر شده، مربوط به فرد یا نهاد لیست شده در مجوز است.
یکی از مشکلات این روش این است که کاربر باید به صداقت تمام طرفهای موجود در زنجیره اعتماد داشته باشد بنابراین این روش بیشتر برای انجمنها و جوامع کاربری کوچک مناسب است. مثلاً یک سازمان یا شرکت میتواند وب اعتماد خودش را برای تعیین و تصدیق هویت کاربران و دستگاههای داخلی، بین شبکهای و برون شبکهای خودش داشته باشد و همچنین میتواند با استفاده از نرمافزارهایی مثل Microsoft Certificate Services بر اساس CAی خودش کار کرده و مجوزهای دیجیتال را صادر و یا فسخ کند.