[О блоге]
[наверх]
[пред]
[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 не может, поэтому тоже это решение не совместимо между платформами.
[оставить комментарий]