[О блоге] [наверх] [пред] [2022-06-28 11:13:08+03:00] [5db75c77e9dd6dea4f5f7c369a667138d59938a2]
Темы: [bsd][crypto]

Как мне доверять этому репозиторию?

https://anarc.at/blog/2020-03-17-git-gpg-verification/
https://lwn.net/SubscriberLink/898522/9cf50ee3f96f90c1/
https://stackoverflow.com/questions/23584990/what-data-is-being-signed-when-you-git-commit-gpg-sign-key-id
https://github.com/cgwalters/git-evtag
В Git до сих пор используется SHA1, что в общем то не очень хорошо чтобы
можно было спокойно доверять этому хэшу.

Поддержка SHA256 в Git пока плачевна, никакого interoperability между
репозиториями не будет. Хотя можно уже создавать репозиторий с SHA256.

Подписывать каждый коммит: по моему безумная трата ресурсов. Да и,
собственно, подписывает он всё равно те же самые SHA1 хэши.

Какая-то git-evtag утилита, про которую впервые услышал, подписывает уже
SHA512 хэши всего дерева. Плюс ряд других предложений имеется, но про
которые не слышал чтобы использовались.

Задался вопросом: а что есть штатного и стандартного чтобы можно было в
иерархии пройти по всем файлам и посчитать/проверить их хэши? Вообще
конечно и банальным shell-скриптом не сложно, но не очень эффективно.
Вспомнил про mtree и выглядит как то что надо:

    $ fields="type size sha512"
    $ mtree -p /my/dir -c -k "$fields" |
        mtree -F mtree -C -S -k "$fields" > checksum

Ну и выводит нечто что легко отпарсить и автоматизированно проверить:

    $ head checksum
    ./GPL type=file size=17987 sha512=5b3...49c
    ./INSTALL type=file size=1443 sha512=965...fbe
    ./.git/HEAD type=file size=23 sha512=76b...6cf
    $ mtree -p /my/dir < checksum

Если всё сошлось, то будет хороший return code без вывода. В противном
случае покажет что изменилось и вернёт ошибку.

Порты mtree для GNU/Linux существуют, должны прожевать такое.

Утилиты типа sha512sum судя по man могут проверить иерархию, но sha512 в
BSD не может, поэтому тоже это решение не совместимо между платформами.

    [оставить комментарий]