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 міну, за якія распрацоўшчык павінен паспець сфарміраваць лічбавы подпіс (калі ў далейшым сертыфікат трапіць да рукі зламысніка, то ён ужо будзе пратэрмінаваны).
  • Сosign (Container Signing) - інструментарый для фарміравання подпісаў да кантэйнераў, праверкі подпісаў і размяшчэння падпісаных кантэйнераў у рэпазітарах, сумяшчальных з OCI (Open Container Initiative).

Крыніца: opennet.ru

Дадаць каментар