جعل گواهینامه CA با استفاده از تصادم در MD5

سلام

MD5 considered harmful today, Creating a rogue CA certificate

سطح این مقاله بالاست و نیاز به پیش‌زمینه در خصوص رمزنگاری داره. این مطلب بخش کوتاهی از مقاله‌ی اصلیه و صرفا قسمت Outline of the attack رو ترجمه کردم اگر خوشتون اومد می تونید کل مقاله رو از اینجا بخونید. قبلا به پیشنهاد یکی از دوستانی که یادم نیست کیه(!!) روی این کار کرده بودم. درسته که این مقاله خیلی قدیمیه (سال ۲۰۰۸) اما امروز یه مقاله‌ی جدید خوندم که ترکیب این دوتا با هم دیگه می‌تونه محشر بشه. به دلایلی تصمیم گرفتم این مطلب رو امروز منتشرش کنم اما در خصوص مطلب دیگه فعلا تصمیمی ندارم. بیشتر از این توضیحات نمی‌دم و کسی که این مطلب رو درک کنه خودش به خیلی چیزهای دیگه هم می‌رسه:

MD5 considered harmful today

سناریوی حمله در ادامه آمده است. ما درخواست یک گواهینامه را برای سایت قانونی خود به یک مرکز صدور گواهینامه ی تجاری - که از طرف تمام مرورگرها مورد اعتماد است- ارسال می کنیم. با توجه به قانونی بودن درخواستمان، CA گواهینامه را امضا کرده و به ما باز می گرداند. ما از CA ای استفاده می کنیم که برای تولید امضای گواهینامه از هش MD5 بهره می برد و این مورد بسیار با اهمیت است؛ چراکه  در ادامه می خواهیم درخواست گواهینامه را برداشته و از تصادم موجود در MD5 برای گواهینامه ی دوم استفاده کنیم. گواهینامه ی دوم برای یک وب سایت نیست، بلکه از آن برای صدور گواهینامه ی یک CA میانی استفاده می کنیم تا بتوانیم از آن برای صدور سایر گواهینامه های سایت استفاده کنیم. با توجه به یکسان بودن هش MD5 هر دو گواهینامه (سایت قانونی + CA جعلی)، امضای دیجیتال بدست آمده از CA تجاری به سادگی قابل کپی کردن  در گواهینامه ی CA جعلی است و بنابراین CA جعلی نیز معتبر خواهد ماند.

دیاگرام و توضیحات مربوط به چگونگی عملکرد گواهینامه‌ی سایت ها:

MD5 considered harmful today-normal

۱) مرکز صدور گواهینامه، گواهینامه ی ریشه CA را به بین مرورگرها و سایر فروشنده ها توزیع می کند.  گواهینامه های ریشه در «لیست مورد اعتماد» از کامپیوتر کاربران ذخیره می شود. این موضوع به این معناست که گواهینامه های صادر شده به وسیله ی این CA به صورت پیش فرض توسط تمام کاربران مورد اعتماد خواهد بود.

۲) شرکت هایی که می خواهند سایت های خود را امن کنند، بابت گواهینامه ی سایت شان به CA مبلغی را پرداخت می کنند. این گواهینامه به وسیله ی CA امضا شده و بنابراین ضامن هویت وب سایت به کاربران خواهد بود.

۳) زمانی که کاربر می خواهد سایت امنی را مشاهده کند، مرورگر وب در ابتدا از وب سرور درخواست گواهینامه اش را می کند. اگر این گواهینامه توسط CA موجود در لیست مورد اعتماد تصدیق شود، گواهینامه ی سایت مورد قبول خواهد بود و تمام ترافیک بین مرورگر و سایت به وسیله ی رمزنگاری امن خواهد شد.

و در ادامه دیاگرام مشابهی را مشاهده می کنید که چگونگی سناریوی حمله ی ما که می تواند جهت جعل هویت یک وب سایت موجود استفاده شود را توضیح می دهد.

MD5 considered harmful today-attack

۱-الف) گواهینامه ی یک سایت قانونی از یک CA تجاری بدست می آید. (رنگ آبی در دیاگرام)
۱-ب) یک گواهینامه ی CA جعلی ساخته می شود ( رنگ مشکی در دیاگرام) و از امضای دقیقا یکسانی بهره می برد و ظاهر کار این است که توسط CA امضاء شده است. در حالی که CA هرگز آن را دیده است.

۲- گواهینامه ی وب سایت، خود را به جای سایت اصلی جا می زند در حالیکه کلید عمومی آن تفاوت داشته و به وسیله CA جعلی امضاء شده است. یک کپی از سایت اصلی ساخته می شود و روی وب سرور دیگری قرار می گیرد و به گواهینامه ی جعلی مجهز می شود.

۳- زمانی که کاربر می خواهد سایت امن را مشاهده مکند،‌ مرورگر در اینترنت به دنبال وب سرور اصلی می گردد، یک حمله ی ریدایرکت اجرا می شود و مرورگر به سایت جعلی، ریدایرکت می شود. سایت جعلی، گواهینامه اش را همراه گواهینامه ی CA جعلی ارائه می دهد. امضای موجود در گواهینامه ی جعلی توسط گواهینامه ی CA جعلی تصدیق می شود و گواهینامه ی این CA جعلی در جای خودش توسط مرورگر مورد پذیرش خواهد بود و امضای آن توسط گواهینامه ی CA ریشه که در لیست اعتماد است، تصدیق می شود و مرورگر به هیچ چیز شک نخواهد کرد.

راه مقابله...

یک راه عملی و موثر برای مقابله با این آسیب پذیری متوقف کردن استفاده از MD5 در امضای دیجیتال است. به عنوانی جایگزینی مناسب برای MD5 می توان از SHA-1 یا SHA-2 نام برد. خوشبختانه اکثر CAها از قبل این کار را انجام داده اند. قطعا استفاده از MD5 در ساخت گواهینامه ها را باید متوقف کرد وگرنه ممکن است به مشکلات امنیتی بیشتری منجر شود. در شرایطی هم که امکان  متوقف کردن فوری MD5 وجود ندارد، CA می تواند از نوع دیگری از روش مقابله استفاده کند و آن هم تولید تصادفی سریال نامبر های مورد استفاده در صدور گواهینامه های جدید است. البته این راه حل به کاملی راه حل اساسی نیست.

البته پیشنهاد می دهیم که در زمان استفاده از SHA-1 نیز برای جلوگیری از مشکلاتی در محصولات جدید باید دقتی مشابه داشت. در تئوری، این روش نیز از مشکلاتی مشابه با MD5 رنج می برد. هرچند که در حال حاضر به لحاظ عملی برای مواجه شدن SHA-1 با مشکلی مشابه با آنچه در MD5 داشتیم بسیار فاصله داریم اما متخصصین معتقند که سرانجام SHA-1 نیز با همان مشکل مواجه روبرو شد.

ترجمه توسط: تمدن