رمزنگاری کاری بسیار سخت است؛ اما آگاه بودن از جنبههای کلیدی رمزنگاری شما را یک قدم جلوتر قرار خواهدداد.
با مهمترین مفاهیم رمزنگاری آشنا شوید
وبگاه اخبار امنیتی فنآوری اطلاعات و ارتباطات , 16 ارديبهشت 1395 ساعت 9:53
رمزنگاری کاری بسیار سخت است؛ اما آگاه بودن از جنبههای کلیدی رمزنگاری شما را یک قدم جلوتر قرار خواهدداد.
رمزنگاری کاری بسیار سخت است؛ اما آگاه بودن از جنبههای کلیدی رمزنگاری شما را یک قدم جلوتر قرار خواهدداد.
به گزارش افتانا (پایگاه خبری امنیت فناوری اطلاعات)، در اینجا پنجمورد مطرحمیشود تا با درک آن شما متوجهشوید که در این مقوله از چه مسائلی صحبتمیشود:
گواهینامههای دیجیتال
معمولترین بخشی که در زمینه گواهینامه دیجیتال به آن برخوردمیکنید در وبگاههای اینترنتی است که با HTTPS ایمنشدهاند (نسخه امنِ پروتکل HTTP). درواقع امنیت یک وبگاه شامل دو جنبه است:
• احراز هویت: فرایندی است که در طی آن شما خواهیدفهمید که صاحب وبگاه همانی است که ادعامیکند.
• رمزنگاری: رمزنگاری، ارتباطات میان مرورگر شما و وبگاه را امنمیکند، بهنحویکه هیچکس نتواند میان شما و او قرارگیرد و آنچه را که میان شما و این وبگاه میگذرد ردیابی و رمزگشاییکند.
احراز هویت از طریق یک گواهینامه دیجیتال صورتمیگیرد و آن یک سند الکترونیکی است که بهوسیله مرجع صدور گواهینامه «CA» به صاحب وبگاه دادهمیشود. برای بهدستآوردن یک گواهینامه از CA شما باید آنها را از اینکه مالک وبگاه یا کسبوکار مرتبط با وبگاه هستید، متقاعدکنید؛ بنابراین اگر شما یک شرکت هستید باید شواهدی در مورد دفاتر ثبتشده شرکت و سایر مواردی اینچنینی ارائهکنید.
گواهینامههای دیجیتال برای اعتمادسازی ایجادشدهاند: در اساس CA برای تضمین هویت وبگاهها کارمیکند؛ بنابراین شما به این دلیل به نشانی www.facebook.com اعتمادمیکنید که شما مرجع صدور (CA (DigitCert آن را برای شما تضمینمیکند (توجه کنید که مرورگر شما به بررسی صدور گواهینامه از سوی CA میپردازد تا مطمئنشود که گواهینامهها هنوز معتبر هستند و به هر دلیلی لغونشدهاند).
اگر شما روی قفل موجود بر روی نوار نشانی کلیک کنید و آن به شما بگوید که این گواهینامه از هیچکدام از خدمات صدور گواهینامه صادر نشدهاست، احتمالاً شما کمتر به آن وبگاه اعتماد خواهیدکرد؛ اما چگونه رایانه شما خواهدفهمید که به چه کسی اعتمادکند؟ آسان است: سازندگان سامانه عامل و مرورگر شما، آنها را با فهرستی از مراجع قابلاعتماد مجهزکردهاند که بهطور منظم بهروزرسانیمیشوند.
الصاق گواهینامه یا Certificate pinning
برخی از سازندگان یکقدم جلوتر رفتهاند و میخواهند که تنها برخی CAهای خاص در گواهینامههای آنها پذیرفتهشدهباشند. شرکت گوگل یکی از مهمترین شرکتهایی است که روال الصاق گواهینامه را بهخوبی انجام دادهاست.
مرورگر کروم این شرکت انتظاردارد مرجع گواهینامه یا يک CA مشخص برای گواهینامه روی google.com ،gmail.com و دیگر وبگاههای مختلف خدمات اینترنتی این شرکت را ببینید. اگر یک گواهینامه از یک منبع متفاوت ببیند احتمال مشکلی در این بین میرود. تعیین یک CA برای گواهینامه بهعنوان «الصاق» شناختهمیشود.
هَشینگ یا درهمسازی چیست؟
یک تابع هش یا تابع درهمساز در مفهوم رمزنگاری، بخشی از داده را میگیرد و برای اهداف مختلف و متفاوت به قالبی ناشناس از داده تبدیلمیکند که نمیتوان آن را دوباره به شکل اصلی بازگرداند.
چرا به این کار نیاز است؟ ساده است؛ آیا شما میخواهید که گذرواژههای خود را در پایگاه دادههای کارگزار، بهشکل یک متن ساده ذخیرهکنید و یا بهشکل نسخهای که قابلخواندن برای دیگران نباشد؟
این مفهوم بهاندازه کافی ساده است. سیستمعامل رایانه شما، گذرواژهها را به شکل هَش ذخیرهمیکند. هنگامی که یک کاربر تلاشمیکند تا وارد سیستم شود، بهجای رمزگشایی نسخه ذخیرهشده و مقایسه آن با نسخه متنی، گذواژه نوشتهشده دریافت میشود، با هشینگ تبدیلشده و با نسخه ذخیرهشده مقایسهمیشود. توجه داشتهباشید که بدونتوجه به متن اصلی، اندازه هش همان است، بنابراین برای مثال SHA۲-۵۱۲ یک هش ۵۱۲ بیتی یا ۳۲ بایتی ایجادمیکند.
هشها در ارتباطات امن مورد استفاده قرارمیگیرند. اگر شما مشغول تنظیم امنیت در یک سامانه هستید و از شما پرسیدهمیشود که چه تابع هشی را شما مورد استفاده قرار خواهیدداد از یک ("message Digest("MD5 استفادهنکنید؛ زیرا ثابت شدهاست که MD۵ مستعد «شکستهشدن» است و در آن ممکن است دو متن متفاوت عبارت هش یکسانی بهدستآورند. حملاتی که به رمزهای MD۵ صورتمیگیرد امروزه با هزینه خیلیخیلی کمی (کمتر از یک دلار!) انجاممیشود؛ بنابراین همیشه سراغ یک الگوریتم امن هش (SHA) بروید که مستعد به حمله تشخیص داده نشدهباشد. SHA-۲ الگوریتم خوبی است، اما از زمانی که SHA-۳ رسماً معرفی شدهاست بهعنوان استانداردی در سال ۲۰۱۵ پذیرفته شدهاست (این الگوریتم زمینه در سال ۲۰۱۲ برگزیده شدهاست) درصورتیکه شما بتوانید این الگوریتم را پیادهکنید باید آن را انتخابکنید. آیا این کار بهخاطر این است که امنیت آن از SHA-۲ بیشتر است؟ خیر؛ بیشتر به این خاطر که این الگوریتم زمان کوتاهی است که معرفیشده و نسبت به SHA-۲ خود که در سال ۲۰۰۱ معرفی شدهاست فرصت کمی برای شکستن آن موجود بودهاست.
رمزنگاری متقارن و نامتقارن
اغلب رویکردهای رمزنگاری که ما در فناوری به آنها برخوردمیکنیم از مفهوم کلید استفادهمیکنند؛ فرستنده دادههای اصلی را میگیرد و آنها را بر اساس کلید بهشکلی رمزگذاریمیکنند سپس گیرنده با استفاده از یک کلید آنچه را که دریافتمیکند، رمزگشاییمیکند. شما در رمزنگاری متقارن از همان کلیدی برای رمزگشایی نیز استفاده خواهیدکرد که برای رمزنگاری استفادهمیکنید. در رمزگشایی نامتقارن شما دو کلید دارید که از نظر ریاضی با یکدیگر مربوط هستند، از یکی برای رمزنگاری و از دیگری برای رمزگشایی استفادهمیکنید.
مثالهای الگوریتم رمزگشایی کلید متقارن شامل (Rivest Cipher ۴ (RC۴ و استاندارد رمزگشایی پیشرفته (Advanced Encryption Standard (AES و الگوریتم رمزنگاری داده سهتایی (Triple Data Encryption Algorithm (۳DES میشوند؛ دو مورد از الگوریتمهای شایع رمزنگاری نامتقارن عبارتند از Rivest-Shamir-Adleman (RSA) و (Elliptic Curve Cryptography (ECC.
رمزنگاری متقارن بسیار سریع است، اما مشکلی که شما ممکناست داشتهباشید بهاشتراکگذاری کلید در وهله اول است. رویکرد نامتقارن نیاز بهاشتراکگذاری کلید را از بین بردهاست اما بهشدت کند است. (شاید 10هزار برابر کندتر از رمزنگاری متقارن است).
راهحل مشکل؛ از رمزنگاری نامتقارن برای بهاشتراکگذاری کلید در شروع مرحله انتقال استفادهکنید و سپس از این کلید بهاشتراک گذاشتهشده برای رمزنگاری متقارن در انتقال دادههای خود استفادهکنید.
این دقیقاً چیزی است که اتفاقمیافتد؛ با کلیککردن بر روی قفل موجود بر روی در نوار ابزار نشانی مرورگر کروم رمزنگاری اطلاعات را به این شکل نوشتهاست: «این اتصال با الگوریتم AES_۱۲۸_GCM رمزگذاری شده و با استفاده ECDHE_RSA در فرآیند اولیه تبادل کلید تصدیق میشود». (ECDHE یک رمزنگاری بیضوی نامتقارن است).
کلید عمومی و خصوصی
درست است، آیا شما با دقت شنیدهاید؟ من میخواهم رمزنگاری کلید عمومی را در ۲۵۰ کلمه و یا کمتر از آن برای شما توضیح دهم.
رمزنگاری کلید عمومی یک رویکرد نامتقارن است؛ مطالب با استفاده از یک کلید رمزنگاریشده و با کلیدی دیگر رمزگشاییمیشود. هرکدام از طرفین دو کلید ایجادمیکنند (یک کلید عمومی و یک کلید خصوصی) که اولی را خصوصی نگهداشته و نوع عمومی را منتشرمیکند. همچنانکه قبلاً نیز توضیح دادیم، هرکدام از دو کلید مربوط به دو طرف از نظر ریاضی به یکدیگر مرتبط هستند.
اگر طرف الف بخواهد به طرف ب پیامی ارسالکند، طرف الف کلید عمومی طرف ب را میگیرد و از آن برای رمزگذاری پیام استفادهمیکند. هنگامی که طرف ب آن را دریافتمیکند از کلید خصوصی خود برای رمزگشایی این پیام استفادهمیکند سپس کار انجام خواهدشد.
استثنایی در میان نیست، برای اینکه کسی نمیتواند بگوید که پیامی به طرف ب از کسی که ادعامیکند طرف الف است ارسالمیشود؛ چراکه در اینجا یک مرحله اضافی نیز وجوددارد؛ طرف الف نیاز دارد تا پیام را امضاکند و طرف ب باید این «امضا» را بررسیکند.
برای انجام این کار، طرف الف پیام را برای یک نتیجه مناسب و جمعوجوری هشمیکند سپس طرف الف از کلید خصوصی برای رمزگذاری هش استفادهکرده و آن را به طرف ب میفرستد. طرف ب از کلید عمومی طرف الف استفادهکرده و هش را رمزگشاییمیکند.
همه آنچه که اکنون طرف ب باید انجامدهد این است که پیام اصلی را که طرف الف فرستادهاست با هشی که اکنون دریافت کردهاست رمزگشاییکند؛ اگر آنها یکی باشند، طرف ب میتواند مطمئنباشد که پیام واقعاً از سمت طرف الف ارسال شدهاست، زیرا تنها طرف الف است که میتواند آن را با کلید خصوصی خود رمزگذاریکند.
به همین دلیل است که اگر کلید خصوصی شما افشا شود، شما باید فوراً آن را لغو کنید و یک جفت کلید جدید بسازید، در غیر اینصورت کسی دیگر میتواند خود را به جای شما جا بزند.
گواهینامههای دیجیتال خودامضا
گفتیم که پنج چیز هستند که شما باید به یاد داشتهباشید، اکنون میخواهیم تقلب کرده و مورد شماره یک را بازبینیکنیم. شاید شما تابهحال اصطلاح گواهینامه خودامضا را شنیدهباشید؛ این همان گواهینامهای است که خود شما تولیدکردهاید ولی از سوی CA اعمال نشدهاست، اما این کار به چه معنی است.
با توجه به اینکه هدف از گواهینامه این است که اعتمادی برای ارتباط با طرف مقابل از طریق تأیید هویت آن ایجادشود تا اگر قرارباشد خود شما آن را امضاکنید بهوضوح این هدف محقق نخواهدشد؟ بسیار ساده: این گواهینامه کاری بیشتر از شناسایی شما انجاممیدهد؛ این گواهینامه علاوه بر کارهای دیگر، وسیلهای است که میتوانید با آن، کلید عمومی خود را منتشرکنید؛ بنابراین برای مثال میتوانم بهراحتی گواهینامه را در وبگاه Globalsign بررسیکنم و این وبگاه به من خواهدگفت که این گواهینامه دارای یک کلید عمومی ۲۵۶ بایتی است و محتوای آن را برای من فهرست خواهدکرد.
جمعبندی
رمزنگاری پر از مسائل عجیبوغریب ریاضی است. گاهی انسان احساسمیکند که شبیه جادوگری است (حداقل زمانی که شما از دیدن اینکه چگونه ریاضیدانان ابزاری را خلقمیکنند که با استفاده از آن پیامی را با یک کلید رمزگذاری کرده سپس با کلیدی دیگر آن را رمزگشاییکنند، شگفتزدهمیشود)؛ اما برای اینکه از آن آگاهی پیداکنید، لازم نیست که تمام جزییات آن را دریابید. تنها کافیاست که مفاهیم و نحوه عملکرد آن را بدانید.
کد مطلب: 11129