Оголошено про готовність системи криптографічної верифікації коду Sigstore

Компанія Google повідомила про формування перших стабільних випусків компонентів, що утворюють проект Sigstore, оголошений придатним для створення робочих впроваджень. Sigstore розвиває інструменти та послуги для верифікації програмного забезпечення за допомогою цифрових підписів та ведення публічного лога, що підтверджує справжність змін (transparency log). Проект розвивається під егідою некомерційної організації Linux Foundation компаніями Google, Red Hat, Cisco, vmWare, GitHub та HP Enterprise за участю організації OpenSSF (Open Source Security Foundation) та університету Пердью.

Sigstore можна розглядати як аналог Let's Encrypt для коду, що надає сертифікати для засвідчення коду цифровими підписами та інструментарій для автоматизації перевірки. За допомогою Sigstore розробники зможуть формувати цифрові підписи для пов'язаних з додатком артефактів, таких як файли з релізами, образи контейнерів, маніфести та файли, що виконуються. Матеріал, що використовується для підпису, відображається в захищеному від внесення змін публічному лозі, який можна використовувати для перевірки та аудиту.

Замість постійних ключів у Sigstore застосовуються короткоживучі ефемерні ключі, які генеруються на основі повноважень, підтверджених провайдерами OpenID Connect (у момент генерації ключів, необхідних для створення цифрового підпису, розробник ідентифікує себе через провайдера OpenID із прив'язкою до email). Справжність ключів перевіряється за публічним централізованим логом, який дозволяє переконатися, що автор підпису саме той, за кого себе видає, та підпис сформований тим самим учасником, що відповідав за минулі релізи.

Готовність Sigstore до впровадження обумовлена ​​формуванням релізів двох ключових компонентів - Rekor 1.0 і Fulcio 1.0, програмні інтерфейси яких оголошені стабільними і зберігають зворотну сумісність. Компоненти сервісу написані мовою Go та розповсюджуються під ліцензією Apache 2.0.

Компонент Rekor містить реалізацію лога для зберігання засвідчених цифровими підписами метаданих, що відображають інформацію про проекти. Для забезпечення цілісності та захисту від спотворення даних заднім числом застосовується деревоподібна структура «дерево Меркла» (Merkle Tree), в якій кожна гілка верифікує всі гілки і вузли, що знаходяться нижче, завдяки спільному (деревоподібному) хешування. Маючи кінцевий хеш, користувач може переконатися в коректності всієї історії операцій, а також у коректності минулих станів БД (кореневий перевірочний хеш нового стану бази обчислюється з урахуванням минулого стану). Для верифікації та додавання нових записів надається RESTful API, а також інтерфейс командного рядка.

Компонент Fulcio (SigStore WebPKI) включає систему для створення центрів, що засвідчують (root CA), що видають короткоживучі сертифікати на основі email, автентифікованого через OpenID Connect. Час життя сертифіката складає 20 хвилин, за які розробник повинен встигнути сформувати цифровий підпис (якщо надалі сертифікат потрапить до руки зловмисника, він вже буде прострочений). Додатково проектом розвивається інструментарій Соsign (Container Signing), призначений для формування підписів до контейнерів, перевірки підписів та розміщення підписаних контейнерів у репозиторіях, сумісних із OCI (Open Container Initiative).

Впровадження Sigstore дає можливість підвищити безпеку каналів розповсюдження програм та захиститися від атак, націлених на заміну бібліотек та залежностей (supply chain). Однією з ключових проблем безпеки у відкритому ПЗ є складність перевірки джерела отримання програми та верифікації процесу складання. Наприклад, для перевірки цілісності релізу більшість проектів використовують хеші, але часто необхідна для автентифікації інформація зберігається на незахищених системах і в загальних репозиторіях з кодом, в результаті компрометації яких атакуючі можуть підмінити необхідні для верифікації файли і, не викликаючи підозр, впровадити шкідливі зміни.

Застосування цифрових підписів для верифікації релізів поки що не набуло повсюдного поширення через складнощі в управлінні ключами, поширення відкритих ключів та відкликання скомпрометованих ключів. Щоб верифікація мала сенс додатково потрібно організувати надійний і безпечний процес поширення відкритих ключів і контрольних сум. Навіть за наявності цифрового підпису багато користувачів ігнорують перевірку, тому що необхідно витратити час на вивчення процесу верифікації і зрозуміти, який ключ заслуговує на довіру. Проект Sigstore намагається просити та автоматизувати ці процеси, надавши готове та перевірене рішення.

Джерело: opennet.ru

Додати коментар або відгук