Red Hat та Google представили Sigstore, сервіс для криптографічної верифікації коду

Компанії Red Hat і Google, спільно з Університетом Пердью, заснували проект Sigstore, спрямований на створення інструментів та сервісів для верифікації програмного забезпечення за допомогою цифрових підписів та ведення публічного лога для підтвердження справжності (transparency log). Проект розвиватиметься під егідою некомерційної організації Linux Foundation.

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

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

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

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

Sigstore надає як готовий сервіс, яким можна користуватися, так і набір інструментів, що дозволяють розгорнути аналогічні сервіси на своєму обладнанні. Сервіс безкоштовний для всіх розробників та постачальників програмного забезпечення, і розгорнуть на нейтральному майданчику - Linux Foundation. Усі компоненти сервісу є відкритими, написані мовою Go та розповсюджуються під ліцензією Apache 2.0.

З компонентів, що розвиваються, можна відзначити:

  • Rekor – реалізація лога для зберігання засвідчених цифровими підписами метаданих, що відображають інформацію про проекти. Для забезпечення цілісності та захисту від спотворення даних заднім числом застосовується деревоподібна структура «Дерево Меркла» (Merkle Tree), в якій кожна гілка верифікує всі гілки і вузли, що знаходяться нижче, завдяки спільному (деревоподібному) хешування. Маючи кінцевий хеш користувач може переконатися у коректності всієї історії операцій, і навіть у коректності минулих станів БД (кореневий перевірочний хеш нового стану бази обчислюється з урахуванням минулого стану). Для верифікації та додавання нових записів надається Restful API, а також cli-інтерфейс.
  • Fulcio (SigStore WebPKI) — система для створення центрів, що засвідчують (Root-CA), що видають короткоживучі сертифікати на основі email, автентифікованого через OpenID Connect. Час життя сертифіката становить 20 хв, за які розробник повинен встигнути сформувати цифровий підпис (якщо надалі сертифікат потрапить до руки зловмисника, то він уже буде прострочений).
  • Соsign (Container Signing) — інструментарій для формування підписів до контейнерів, перевірки підписів та розміщення підписаних контейнерів у репозиторіях, сумісних з OCI (Open Container Initiative).

Джерело: opennet.ru

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