Что такое подписанный коммит?

Что значит подписать коммит в Git? Даже после прочтения документации я все еще немного запутался в том, как это работает.

Если коммит подписан, значит ли это, что мы можем сказать, точны ли имя автора и электронная почта в коммите?

1 ответ

Решение

Технически это просто означает, что владелец соответствующего закрытого ключа подписал коммит. На практике можно сделать вывод, что 1) владелец указанного ключа является лицом с некоторой проверяемой репутацией, 2) этот человек претендовал на авторство кода, и 3) код не изменился с момента его подписания. У меня очень ограниченные знания о том, как обладатели ключей GPG устанавливают свою идентичность с другими, но это общая идея.

Зачем тебе все это проверять? Если рассматриваемое программное обеспечение имеет решающее значение для какого-либо типа безопасности, злоумышленник может скомпрометировать вас, заменив неработающее программное обеспечение на программное обеспечение, которое, как вы думаете, вы получаете, например что-то с бэкдором, которое вы не можете легко идентифицировать. В конце концов, вам нужен какой-то код, вы нажимаете "скачать" и вы верите, что то, что приходит по проводам, - это то, что было написано на кнопке. Но в идеале злоумышленник не сможет имитировать подпись настоящего автора, поскольку у него не будет личного ключа автора. И они не могут просто изменить код и оставить подпись в покое, потому что она включает в себя хэш самого кода.

См. Подписывание кода в Википедии.

Другие вопросы по тегам