Red Hat و Google به همراه دانشگاه پوردو پروژه Sigstore را با هدف ایجاد ابزارها و خدمات برای تأیید نرم افزار با استفاده از امضای دیجیتال و حفظ یک گزارش عمومی برای تأیید صحت (گزارش شفافیت) تأسیس کردند. این پروژه زیر نظر سازمان غیرانتفاعی بنیاد لینوکس توسعه خواهد یافت.
پروژه پیشنهادی امنیت کانالهای توزیع نرمافزار را بهبود میبخشد و در برابر حملاتی که با هدف جایگزینی مؤلفهها و وابستگیهای نرمافزار (زنجیره تأمین) انجام میشود، محافظت میکند. یکی از مشکلات امنیتی کلیدی در نرم افزارهای متن باز، دشواری تایید منبع برنامه و تایید فرآیند ساخت است. به عنوان مثال، اکثر پروژهها از هشها برای تأیید یکپارچگی نسخه استفاده میکنند، اما اغلب اطلاعات لازم برای احراز هویت در سیستمهای محافظتنشده و در مخازن کد مشترک ذخیره میشود، در نتیجه مهاجمان میتوانند فایلهای لازم برای تأیید را به خطر بیاندازند و تغییرات مخرب ایجاد کنند. بدون ایجاد شک
تنها بخش کوچکی از پروژهها از امضای دیجیتالی هنگام توزیع نسخههای منتشر شده استفاده میکنند، زیرا در مدیریت کلیدها، توزیع کلیدهای عمومی و باطل کردن کلیدهای در معرض خطر وجود دارد. برای اینکه راستیآزمایی منطقی باشد، همچنین لازم است که یک فرآیند مطمئن و مطمئن برای توزیع کلیدهای عمومی و چکسامها سازماندهی شود. حتی با امضای دیجیتال، بسیاری از کاربران تأیید را نادیده میگیرند، زیرا باید برای مطالعه فرآیند تأیید و درک اینکه کدام کلید قابل اعتماد است، وقت بگذارند.
Sigstore به عنوان معادل Let's Encrypt برای کد معرفی می شود که گواهی هایی برای امضای دیجیتالی کد و ابزارهایی برای تأیید خودکار ارائه می دهد. با Sigstore، توسعه دهندگان می توانند مصنوعات مرتبط با برنامه مانند فایل های انتشار، تصاویر کانتینر، مانیفست ها و فایل های اجرایی را به صورت دیجیتالی امضا کنند. ویژگی خاص Sigstore این است که مواد مورد استفاده برای امضا در یک گزارش عمومی ضد دستکاری منعکس می شود که می تواند برای تأیید و ممیزی استفاده شود.
به جای کلیدهای دائمی، Sigstore از کلیدهای زودگذر کوتاه مدت استفاده می کند، که بر اساس اعتبار تایید شده توسط ارائه دهندگان OpenID Connect تولید می شوند (در زمان تولید کلید برای امضای دیجیتال، توسعه دهنده خود را از طریق یک ارائه دهنده OpenID که به یک ایمیل مرتبط است شناسایی می کند). صحت کلیدها با استفاده از یک گزارش متمرکز عمومی تأیید میشود، که این امکان را فراهم میکند تا تأیید شود که نویسنده امضا دقیقاً همان کسی است که ادعا میکند و امضا توسط همان شرکتکنندهای که مسئول انتشارات گذشته بود تشکیل شده است.
Sigstore هم یک سرویس آماده ارائه می دهد که می توانید از قبل استفاده کنید و هم مجموعه ای از ابزارهایی که به شما امکان می دهد خدمات مشابهی را بر روی تجهیزات خود مستقر کنید. این سرویس برای همه توسعه دهندگان و ارائه دهندگان نرم افزار رایگان است و بر روی یک پلت فرم خنثی - بنیاد لینوکس - مستقر شده است. تمام اجزای این سرویس منبع باز هستند، در Go نوشته شده و تحت مجوز آپاچی 2.0 توزیع شده اند.
در میان اجزای توسعه یافته می توان به موارد زیر اشاره کرد:
- Rekor یک پیاده سازی گزارش برای ذخیره ابرداده امضا شده دیجیتالی است که اطلاعات پروژه ها را منعکس می کند. برای اطمینان از یکپارچگی و محافظت در برابر خرابی داده ها پس از این واقعیت، از ساختار درخت مانند "Merkle Tree" استفاده می شود که در آن هر شاخه به لطف هش کردن مشترک (درخت مانند) همه شاخه ها و گره های زیرین را تأیید می کند. با داشتن هش نهایی، کاربر می تواند صحت کل تاریخچه عملیات و همچنین صحت وضعیت های گذشته پایگاه داده را تأیید کند (هش تأیید ریشه وضعیت جدید پایگاه داده با در نظر گرفتن وضعیت گذشته محاسبه می شود. ). برای تأیید و افزودن رکوردهای جدید، یک API Restful و همچنین یک رابط cli ارائه شده است.
- Fulcio (SigStore WebPKI) سیستمی برای ایجاد مقامات صدور گواهینامه (Root-CAs) است که گواهی های کوتاه مدت را بر اساس ایمیل تأیید شده از طریق OpenID Connect صادر می کند. طول عمر گواهی 20 دقیقه است، که در طی آن توسعه دهنده باید زمان داشته باشد تا یک امضای دیجیتال تولید کند (اگر گواهی بعداً به دست مهاجم بیفتد، منقضی شده است).
- Сosign (امضای کانتینر) یک جعبه ابزار برای تولید امضا برای کانتینرها، تأیید امضا و قرار دادن ظروف امضا شده در مخازن سازگار با OCI (ابتکار کانتینر باز) است.
منبع: opennet.ru