Достъпен е проектът gittuf 0.4, който развива йерархичната система за верификация на съдържанието на Git репозиторите, позволяваща минимизиране на рисковете при компрометиране на отделни разработчици с достъп до репозитория. Gittuf предоставя допълнителен слой сигурност на Git и набор от инструменти за управление на ключовете на всички разработчици с достъп до репозитория и за установяване на правила за достъп до клонове, тагове и отделни файлове. Кодът на проекта е написан на Go и е предоставен под лицензия Apache 2.0. Проектът е в активна разработка и е с качество на алфа-версия, подходяща за експерименти, но все още не е готова за производствени внедрения.
Информацията и артефактите, осигуряващи допълнителна верификация на направените промени, се съхраняват в обектния хранилище на Git в отделно специфично пространство от имената на gittuf, което позволява запазване на обратната съвместимост със съществуващите инструменти и услуги, включително GitHub и GitLab. При използване на инструменти без поддръжка на gittuf, репозиторият остава напълно достъпен, но е ограничена възможността за разширена верификация на неговата цялост. Архитектурата на gittuf се основава на проверени елементи от рамката TUF (The Update Framework), използвана за защита на процесите на генериране на обновления в проекти като Docker, Fuchsia, AGL (Automotive Grade Linux) и PyPI.
Моделът на верификация в gittuf се основава на прилагането на йерархична система за разпространение на доверие. Коренът на доверието принадлежи на собственика на репозитория, който може да генерира ключове за участниците в разработката и да определя правилата, съгласно които създадените ключове могат да се прилагат. Gittuf позволява създаването на гъвкави гранулирани правила, определящи правомощията на всеки разработчик и областта на репозитория, в която той има възможност да внася промени. Например, разработчикът може да бъде упълномощен да създава тагове, да внася промени в определени клонове или да променя само отделни файлове в репозитория.
Разработчиците и промените, които те извършват, се идентифицират по ключове и цифрови подписи. Gittuf позволява генерирането на нови ключове, безопасното им разпространение, периодичната ротация на ключове, отзоваването на компрометирани ключове, управлението на списъци за достъп (ACL) и именни пространства в Git репозитории. Gittuf също така поддържа референтен лог на всички промени (RSL — Reference State Log), като цялостността и защитата от фалшификация обратно във времето се осигуряват чрез дървовидната структура „дърво на Меркъл“ (Merkle Tree) — всеки клон верифицира всички подлежащи клонове и възли благодарение на дървовидното хеширане (имайки крайно хеш, потребителят може да се увери в коректността на цялата история на операциите, както и в коректността на предишните състояния).
За верификация на цифровите подписи на комитите и таговете собственикът на репозитория формира и разпространява публични ключове, които са директно свързани с репозитория. За противодействие на напредването на злонамерени промени, създадени след получаване на достъп до ключовете за формиране на цифрови подписи на отделни разработчици, се използват механизми за отзоваване и замяна на ключове. Ключовете имат ограничен срок на валидност и изискват постоянно обновление за защита срещу подписване с остарели ключове.
Източник: opennet.ru
