محبوبترین مرجع صدور گواهینامهی رایگان به نام Let’s Encrypt بیش از ۳ میلیون گواهینامهی TLS را که احتمالاً به اشتباه و بهخاطر وجود یک اشکال در نرمافزار Certificate Authority صادر شدهاند، ابطال میکند.
این اشکال که در ۲۹ فوریه توسط Let’s Encrypt تأیید و دو ساعت پس از کشف آن رفع شد، بر نحوهی بررسی مالکیت نام دامنه قبل از صدور گواهینامههای TLS جدید تأثیر میگذارد.
درنتیجه این اشکال سناریویی را مطرح میکند که ممکن است در آن یک گواهینامه بدون اعتبارسنجی کافی کنترل صاحب نام دامنه صادر شود.
سیاست امنیت اینترنت، Certificate Authority Authorization (CAA)، به صاحبان نام دامنه این امکان را میدهد تا به مراجع صدور گواهینامه (CA) نشان دهند که آیا مجاز به صدور گواهینامههای دیجیتال برای یک نام دامنهی خاص هستند یا خیر.
Let’s Encrypt نتایج اعتبارسنجی دامنه را تنها برای ۳۰ روز پس از اعتبارسنجی خوب در نظر میگیرد، پس از آن مجدداً رکورد CAA را که قبل از صدور گواهینامه به دامنه مجوز میدهد، بررسی میکند. این اشکال در کد Boulder، نرمافزار امضای گواهینامهی مورد استفادهی Let’s Encrypt کشف شده است.
هنگامی که یک درخواست گواهینامه شامل N نام دامنه نیاز به بررسی مجدد CAA داشته باشد، Boulder ی نام دامنه را انتخاب میکند و آن را N بار بررسی میکند. به عبارت دیگر، هنگامی که Boulder به parse نیاز دارد و بهعنوان مثال گروهی از ۵ نام دامنه وجود داردکه نیاز به بررسی مجدد CAA دارند، این نرمافزار یک نام دامنه را ۵ بار بررسی میکند به جای اینکه هر ۵ دامنه را یک بار بررسی کند.
این اشکال بهعنوان بخشی از یک بهروزرسانی منتشرشده در ماه جولای سال ۲۰۱۹ میلادی معرفی شده بود. این به این معنا است که Let’s Encrypt ممکن است گواهینامههایی را صادر کرده باشد که نباید صادر میکرد و درنتیجه همهی گواهینامههای TLS را که تحت تأثیر این اشکال قرار گرفتند، ابطال میکند.
این اتفاق زمانی رخ داد که Let’s Encrypt اعلام کرد که از زمان راهاندازی آن در سال ۲۰۱۵ میلادی تاکنون یک میلیاردم گواهینامههای TLS رایگان خود را صادرکرده است.
Let’s Encrypt بیان کرد که ۲٫۶ درصد از ۱۱۶ میلیون گواهینامهی فعال (حدود ۳٬۰۴۸٬۲۸۹) تحت تأثیر قرار گرفته است که از این تعداد حدود یک میلیون گواهینامه نسخههای دیگری از گواهینامههای آسیبدیده هستند.
صاحبان وبگاههای آسیبدیده باید تا تاریخ ۴ مارس بهصورت دستی گواهینامههای خود را تمدید و جایگزین کنند، در صورت عدم انجام این کار بازدیدکنندگان این وبگاهها تا زمان تکمیل فرآیند تمدید گواهینامه، با اخطارهای امنیتی TLS مواجه میشوند.
قابل ذکر است که گواهینامههای صادرشده توسط Let’s Encrypt به مدت ۹۰ روز معتبر هستند و کلاینتهای ACME ازجمله Certbot میتوانند آنها را بهصورت خودکار تمدید کنند. اما با ابطال همهی گواهینامههای آسیبدیده توسط Let’s Encrypt، مدیران وبگاه برای جلوگیری از هرگونه وقفه باید یک تمدید اجباری انجام دهند.
علاوهبر استفاده از https://checkhost.unboundtest.com/ برای بررسی اینکه آیا یک گواهینامه نیاز به تعویض دارد یا خیر؟ Let’s Encrypt یک فهرست قابل بارگیری از شمار سریالهای آسیبدیده منتشر کرده است که امکان انجام این کار را به مشترکین میدهد.
ظاهراً Let’s Encrypt درحالحاضر ابطال گواهینامهها را به تأخیر انداخته و تأیید کرده است که بیش از ۱٫۷ میلیون گواهینامهی آسیبدیده قبل از مهلت اولیه جایگزین شده و توسط سیستم آنها ابطال شده است.
بااینحال این شرکت درحالحاضر تصمیم گرفته است که فرآیند ابطال را برای بیش از ۱ میلیون گواهینامه به تعویق بیندازد و معتقد است آنها قبل از مهلت مقرر جایگزین نخواهند شد.
Let’s Encrypt بیان کرده است که به نفع سلامتی اینترنت است که گواهینامهها را تا پایان مهلت مقرر ابطال نکنند.
اگرچه اکثر گواهینامههایی که به اشتباه صادر شدهاند خطر امنیتی ندارند، اما این شرکت در ابتدا تصمیم گرفت که برای رعایت استانداردهای این صنعت همهی ۳ میلیون گواهینامه را ابطال کند.