Что такое подписанный коммит?
Что значит подписать коммит в Git? Даже после прочтения документации я все еще немного запутался в том, как это работает.
Если коммит подписан, значит ли это, что мы можем сказать, точны ли имя автора и электронная почта в коммите?
1 ответ
Технически это просто означает, что владелец соответствующего закрытого ключа подписал коммит. На практике можно сделать вывод, что 1) владелец указанного ключа является лицом с некоторой проверяемой репутацией, 2) этот человек претендовал на авторство кода, и 3) код не изменился с момента его подписания. У меня очень ограниченные знания о том, как обладатели ключей GPG устанавливают свою идентичность с другими, но это общая идея.
Зачем тебе все это проверять? Если рассматриваемое программное обеспечение имеет решающее значение для какого-либо типа безопасности, злоумышленник может скомпрометировать вас, заменив неработающее программное обеспечение на программное обеспечение, которое, как вы думаете, вы получаете, например что-то с бэкдором, которое вы не можете легко идентифицировать. В конце концов, вам нужен какой-то код, вы нажимаете "скачать" и вы верите, что то, что приходит по проводам, - это то, что было написано на кнопке. Но в идеале злоумышленник не сможет имитировать подпись настоящего автора, поскольку у него не будет личного ключа автора. И они не могут просто изменить код и оставить подпись в покое, потому что она включает в себя хэш самого кода.
См. Подписывание кода в Википедии.