نشود فاش کسی آنچه میان من و توست...

آشنایی با معماری فنی و مفهومی زیرساخت کلید عمومی در شبکه ققنوسزیرساخت کلید عمومی یا همان PKI، از طریق مدیریت انتشار گواهی‌های دیجیتالی، مسئولیت حفاظت از داده‌های مهم و حساس و ارائه شناسه‌های دیجیتال یکتا برای کاربران، دستگاه‌ها و برنامه‌های کاربردی و نیز امن‌سازی ارتباطات بدون واسطه (همتا به همتا) را بر عهده دارد. یزدان عباسی، مدیر آکادمی ققنوس، در این نوشتار از نشریه شماره شش ققنوس سعی کرده است تا جای ممکن با زبانی ساده و غیرتخصصی، چیستی زیرساخت کلید عمومی، نحوه کارکرد این زیرساخت و کاربردهای رایج آن را بررسی کند.چیستی زیرساخت کلید عمومیامروزه، سازمان‌ها برای مدیریت امنیت از طریق رمزنگاری، خصوصاً رایج‌ترین نوع رمزنگاری با استفاده از کلید عمومی، به زیرساخت کلید عمومی یا همان PKI وابسته هستند. به کمک این زیرساخت همگان (شامل افراد، تجهیزات و برنامه‌های کاربردی) می‌توانند پیام‌ها را رمزنگاری کنند و به کمک کلید خصوصی (یا همان کلید رمزگونه) خود پیام‌های خود را رمزگشایی کنند.زیرساخت کلید عمومی اولین بار در دهه 90 میلادی و با هدف یاری‌رسانی برای کنترل کلیدهای رمزنگاری از طریق انتشار و مدیریت گواهی‌های دیجیتال، ظهور پیدا کرد. گواهی‌های PKI در حقیقت مالک یک کلید خصوصی و اعتبار روابط بین اجزا را با هدف ایجاد امنیت، تایید می‌کند. به عبارت ساده‌تر، گواهی‌ها همانند گواهینامه رانندگی یا پاسپورت در دنیای دیجیتالی است.امروزه گواهی‌های SSL موجود در وب‌سایت‌ها، مثال‌های رایجی از زیرساخت PKI هستند. به کمک گواهی SSL، بازدید‌کنندگان وب‌سایت مطمئن می‌شوند اطلاعات ارسالی یا دریافتی، از همان سایت یا به همان سایت مورد نظر دریافت یا ارسال می‌شود.شیوه کارکرد زیرساخت کلید عمومی به چه صورت است؟برای درک شیوه کاری زیرساخت کلید عمومی، نیاز است به مفاهیم بنیادین رمزنگاری رجوع کنیم. با این پیش فرض، بایستی مروری بر الگوریتم‌های رمزنگاری و گواهی‌های دیجیتالی داشته باشیم.سنگ بنای رمزنگاری کلید عمومیالگوریتم‌های رمزنگاری بدین گونه تعریف می‌شود: فرمول‌های بسیار پیچیده ریاضی برای رمزگذاری و رمزگشایی یک پیام. الگوریتم‌های رمزنگاری سنگ بنای زیرساخت کلید عمومی هستند. این الگوریتم‌ها بسته به میزان پیچیدگی و شکل کارکرد خود به انواع مختلفی دسته‌بندی می‌شوند.رمزنگاری متقارنبا توجه به استانداردهای امروزی، روش رمزنگاری متقارن یک الگوریتم ساده رمزنگاری است. البته این روش در زمان خود یکی از بهترین و پیچیده‌ترین روش‌های رمزنگاری بود. در حقیقت، ارتش آلمان از این روش برای ارسال پیام در جریان جنگ جهانی دوم استفاده می‌کرد.به کمک رمزنگاری متقارن، پیامی که قرار است ارسال شود، پیش از ارسال از طریق جایگشت‌های ریاضی، رمزنگاری می‌شود. این پیام رمزنگاری شده به سادگی قابل شکسته شدن نیست. چرا که حروف کلمات پیام، در حالت رمزنگاری شده همیشه به یک شکل ثابت نمایش داده نمی‌شود. برای مثال اگر کلمه "HHH" را به کمک الگوریتم رمزنگاری متقارن، رمزنگاری کنیم، حتماً به سه حرف تکراری نمی‌رسیم.از آنجایی که هم برای رمزگذاری و رمزگشایی یک پیام، یه یک کلید یکسان نیاز است، به این روش رمزنگاری متقارن می‌گویند. با اینکه رمزگشایی از پیام‌ها بدون داشتن کلید مربوطه بسیار دشوار است؛ اما استفاده از یک کلید هم برای رمزگذاری و هم رمزگشایی، یک مخاطره بزرگ به همراه دارد و آن این است که در صورت لو رفتن کانال ارتباطی که توسط آن کلید ردوبدل می‌شود، کل پیام‌های مبادله شده در سامانه بر ملا و افشا خواهد شد.رمزنگاری غیرمتقارنرمزنگاری غیرمتقارن با هدف رفع مخاطره موجود در رمزنگاری متقارن ایجاد شد. در این روش به جای یک کلید یکسان، از دو کلید متفاوت برای رمزنگاری و رمزگشایی استفاده می‌شود، کلید عمومی و کلید خصوصی.در رمزنگاری غیرمتقارن نیز، یک پیام از طریق یکسری محاسبات ریاضی پیچیده رمزنگاری می‌شود. اما برای رمزگشایی آن به کلید دیگری به نام کلید خصوصی نیاز است. در این روش پیام توسط یک کلید خصوصی (که تنها در اختیار فرستنده پیام است) رمزگذاری می‌شود. برای رمزگشایی آن به کلید دیگری به نام کلید عمومی (که می‌توان آن را در اختیار همگان قرار داد) نیاز است.در ادامه به صورت عملی بررسی می‌کنیم که این روش رمزنگاری چگونه عمل می‌کند:فرض کنید آلیس می‌خواهد برای پیامی خصوصی برای باب ارسال کند. او پیام خود را با کلید عمومی باب رمزگذاری کرده و می‌داند که این پیام تنها توسط کلید خصوصی باب رمزگشایی خواهد شد.از آنجایی که تنها کلید خصوصی باب می‌تواند این پیام را رمزگشایی کند، آلیس با اطمینان از اینکه هیچ کس دیگری نمی‌تواند پیام را بخواند، آن را ارسال می‌کند. مادامی که باب کلید خصوصی خود را افشا نکند، این ارتباط امن باقی خواهد ماند.به کمک رمزنگاری غیرمتقارن سایر اموری همانند امضای دیجیتال که توسط رمزنگاری متقارن بسیار دشوار اجرایی می‌شد می‌تواند به سادگی انجام و مدیریت شود. برای توضیح بیشتر به مثال زیر توجه کنید:باب می‌تواند پیامی به الیس ارسال کند. همچنین با استفاده از کلید خصوصی خود، یک امضای رمزنگاری شده در انتهای پیام خود قرار دهد.زمانی‌که الیس آن پیام را دریافت می‌کند، می‌تواند به کمک کلید عمومی باب، دو چیز را بررسی و تایید کند:پیام توسط باب یا کسی که کلید خصوصی باب را داشته ارسال شده است.پیام در مسیر انتقال، دستکاری نشده است.در هر دوی این مثال‌ها، آلیس کلیدی برای خود تولید نکرد. تنها به کمک کلید عمومی باب، آلیس پیام‌های رمزنگاری شده برای باب ارسال و پیام‌های و مستندات دریافتی از سوی باب را رمزگشایی کرد. این نوع ارتباط تنها یک طرفه بود. برای ارسال پیام‌های رمزنگاری شده از سوی باب برای آلیس، این بار آلیس بایستی برای خود زوج کلید خصوصی و عمومی تولید کند. و با انتشار کلید عمومی خود برای باب، پیام‌های باب را با کلید خصوصی خود رمزگشایی کند.امروزه سه روش محاسباتی معروف برای تولید کلید عمومی و خصوصی با نام RSA، ECC و Diffie-Hellman وجود دارد. هر یک از این روش‌ها از الگوریتم‌های مختلفی برای تولید کلیدهای رمزنگاری استفاده می‌کنند؛ اما از نظر رابطه میان کلید عمومی و خصوصی، همه آن‌ها از اصولی پایه‌ای مشترکی استفاده می‌کنند.برای درک بهتر موضوع، بیایید نگاهی به الگوریتم 2048 بیتی RSA داشته باشیم. این الگوریتم به صورت تصادفی دو عدد اول 1024 بیتی تولید سپس این دو عدد را در هم ضرب می‌کند. حاصل این ضرب، کلید عمومی را تولید می‌کند. دو عدد اول تصادفی تولیدی، کلید خصوصی هستند.این روش با اینکه ساده به نظر می‌رسد؛ اما بدست آوردن کلید خصوصی از طریق کلید عمومی (معکوس تابع) بسیار دشوار است و نیاز به محاسبات ریاضی بسیار زیادی دارد. با اینکه در این روش تولید کلید عمومی به سادگی یک ضرب ریاضی انجام می‌شود، رسیدن از کلید عمومی به کلید خصوصی (جهت رمزگشایی داده توسط افراد غیرمجاز) به دلیل استفاده از رشته طولانی از اعداد (2048 بیت) تقریباً با تجهیزات محاسباتی موجود نشدنی است.نحوه استفاده از رمزنگاری متقارن و غیرمتقارن در دنیای امروزیامروزه بسته به نوع کاربرد، هم از روش‌های رمزنگاری متقارن و هم غیر متقارن استفاده می‌شود. رمزنگاری غیرمتقارن نسبت به رمزنگاری متقارن از سرعت کمتری برخوردار است، به همین دلیل عموماً این دو روش به صورت قطاری پشت سر هم استفاده می‌شوند. برای نمونه، ممکن است فردی پیامی را با استفاده از رمزنگاری متقارن، رمزگذاری کند. سپس کلید لازم برای بازگشایی پیام را با استفاده از الگوریتم رمزنگاری غیرمتقارن، رمز نموده و ارسال کند. از آنجایی که اندازه کلید نسبت به پیام غالباً کوتاه‌تر است، از الگوریتم کندتر یا همان غیرمتقارن برای رمزگذاری محتوای کوچکتر یا همان کلید استفاده می‌شود. برای رمزگذاری اصل پیام از روش رمزنگاری متقارن استفاده می‌کنند.امروزه، الگوریتم‌های رمزنگاری غیرمتقارن، در موارد زیر به کار گرفته می‌شوند:الگوریتم‌های SSLالگوریتم‌های SSl/TLS ایمیل رمزنگاری شده S/MIMEگواهینامه امضا کد دیجیتالبیت‌کوین/ زنجیره‌بلوکپیام‌رسان‌های خصوصیامضاهای دیجیتالیو از همه مهم‌تر، رمزنگاری غیرمتمرکز، زیرساخت کلید عمومی را ایجاد می‌کند.ظهور PKI برای کنترل کلیدهای رمزنگاریهر دوی روش‌های رمزنگاری متقارن و غیرمتقارن از یک چالش مشترک رنج می‌برند. چگونه می‌توان مطمئن شد کلید عمومی که دریافت کردید، به مخاطبی شما انتظار دارید تعلق دارد؟حتی در رمزنگاری غیرمتقارن نیز، مخاطره "مرد میانی" وجود دارد. برای مثال، فرض کنید فردی کلید عمومی باب را رد بزند. سپس یک کلید خصوصی برای خود ایجاد کند و در ادامه یک کلید عمومی جدید برای آلیس تولید کند. در این شرایط، آلیس پیامی را رمزگذاری و برای باب ارسال می‌کند. مرد میانی می‌تواند این پیام را رمزگشایی کند، تغییر دهد و مجدد رمزگذاری کرده و برای باب ارسال کند. بدین ترتیب نه آلیس و نه باب از هیچ چیزی باخبر نمی‌شوند.زیرساخت کلید عمومی برای حل چالش ایجاد شده است. PKI، با انتشار و کنترل گواهی‌های دیجیتالی، هویت افراد، دستگاه‌ها و برنامه‌های کاربردی که مالک کلیدهای خصوصی و کلیدهای عمومی متناسب با آن هستند را تایید می‌کند. به صورت خلاصه، زیرساخت کلید عمومی، هویت‌ها را به کلیدها تخصیص می‌دهد تا طرفین یک پیام بتوانند مالک پیام را به خوبی شناسایی کنند. این گواهی تضمین می‌کند که اگر کاربری پیامی رمزگذاری شده را به فرد (یا دستگاه) دیگری ارسال کند، گیرنده مورد نظر، تنها فردی است که حتی با وجود مرد میانی، می‌تواند پیام را دریافت و رمزگشایی کند.نقش گواهی‌های دیجیتالی در زیرساخت کلید عمومیزیرساخت کلید عمومی با انتشار و مدیریت گواهی‌های دیجیتالی، کلیدهای رمزگذاری را کنترل می‌کند. گواهی‌های دیجیتالی، گواهی‌های x.509 و گواهی‌های زیرساخت کلید عمومی نیز نامیده می‌شوند و دارای ویژگی‌های زیر هستند:گونه دیجیتالی مشابه گواهی‌نامه یا پاسپورت هستند؛حاوی اطلاعاتی در مورد یک فرد یا یک نهاد است؛توسط یک نهاد سوم معتمد منتشر شده است؛در برابر دستکاری شدن مقاوم است؛شامل اطلاعاتی است که اعتبار خود را اثبات می‌کند؛می‌توان رد آن را تا ناشر آن دنبال کرد؛تاریخ انقضا دارد؛برای تایید، به فرد یا نهاد دیگری نمایش داده می‌شود.ساده‌ترین روش برای درک نحوه کنترل گواهی‌های دیجیتالی توسط زیرساخت کلید عمومی برای تایید هویت‌ها، تجسم یک اداره صدور گواهی‌نامه دیجیتالی است. شبیه این اداره، زیرساخت کلید عمومی نیز یک نهاد واسط معتمد را برای تصمیم‌گیری در مورد تخصیص شناسه هویتی به گواهی دیجیتالی معرفی می‌کند. شبیه گواهی‌نامه رانندگی، دستکاری و تقلب در این گواهی‌های دیجیتالی نیز بسیار دشوار است. آنها حاوی اطلاعاتی هستند که از طریق آن می‌توان مالک را شناسایی کرد و دارای تاریخ انقضا نیز است.معرفی مرجع صدور گواهی دیجیتالمرجع صدور گواهی دیجیتال (CA)، مسئولیت ایجاد گواهی‌های دیجیتالی را بر عهده داشته و سیاست‌ها، ابزارها و رویه‌های لازم برای بررسی گیرندگان پیام و انتشار گواهی‌ها را در اختیار دارد.به صورت مشخص، مالکین و اپراتورهای یک مرجع صدور گواهی دیجیتال یا CA موارد زیر را تعیین می‌کند:روش‌های بررسی دقیق هویت (Vetting Method) برای گیرندگان گواهینوع گواهی‌های منتشر شدهپارامترهای موجود در درون گواهیرویه‌های امنیتی و اجراییزمانی‌که مرجع صدور گواهی دیجیتال این مولفه‌ها را تعیین کرد، بایستی به صورت رسمی این موارد در قالب سیاست‌نامه مستند کنند. از آن به بعد، به مصرف‌کننده گواهی‌ها بستگی دارد که چه میزان به گواهی‌های منتشر شده از سوی یک CA اعتماد کند.شیوه کارکرد فرآیند ایجاد گواهیفرآیند ایجاد گواهی به شدن به روش رمزنگاری غیرمتقارن وابسته است و به شکل زیر کار می‌کند:یک کلید خصوصی ایجاد شده و کلید عمومی متناظر ان محاسبه می‌شود؛در مرحله بعد، مرجع صدور گواهی دیجیتالی، درخواست دریافت شناسه‌های هویتی مالک کلید خصوصی را صادر کرده و آن اطلاعات را به دقت بررسی می‌کند؛کلید عمومی و شناسه‌های هویتی در قالب درخواست امضای گواهی (CSR)، کد و رمزنگاری می‌شود؛در گام بعد CSR توسط مالک کلید به منظور اثبات حق مالکیت وی بر آن کلید خصوصی، امضا می‌شود؛مرجع گواهی دیجیتال صادرکننده، درخواست را ارزیابی کرده و گواهی را با کلید خصوصی خود CA امضا می‌کند.هر فردی می‌تواند با استفاده از بخش عمومی گواهی صادر شده و بررسی هویت مالک کلید خصوصی امضاکننده گواهی، تایید کند که آن گواهی توسط CA صادر شده است یا خیر. با فرض آنکه مرجع صدور گواهی دیجیتالی نهادی قابل اعتماد باشد، افراد می‌توانند تایید کنند که هرآنچه ارسال به دارنده گواهی می‌کنند حتما به گیرنده اصلی پیام خواهد رسید. و هر آنچه با کلید خصوصی دارنده گواهی امضا شد، حتما توسط همان فرد یا دستگاه امضا شده است.در نهایت...زیرساخت کلید عمومی، دنیای دیجیتالی ما را از طریق حفاظت از داده‌ها و ارتباطات حساس و احراز هویت دیجیتالی به جایی امن تبدیل کرده است. همزمان با رشد انفجاری تعداد تجهیزات و برنامه‌های متصل، اهمیت این بستر امنیت‌ساز نیز در حال رشد است.