Сведения о проверке подписи фиксации
Вы можете локально подписывать фиксации и теги, чтобы обеспечить для других пользователей уверенность в происхождении внесенных изменений. Если у фиксации или тега есть подпись GPG, SSH или S/MIME, которая является криптографически проверяемой, GitHub Enterprise Cloud помечает фиксацию или тег "Проверено" или "Частично проверено".
Для большинства отдельных пользователей GPG или SSH будет лучшим выбором для подписывания фиксаций. Подписи S/MIME обычно требуются в контексте более крупной организации. Подписи SSH создавать проще всего. Вы даже можете отправить существующий ключ проверки подлинности в GitHub Enterprise Cloud для использования также в качестве ключа подписывания. Создание ключа подписывания GPG сложнее создания ключа SSH, но в GPG есть функции, отсутствующие у SSH. Если ключ GPG больше не используется, может истечь срок его действия или он может быть отозван. Подпись GPG может включать сведения об истечении срока действия или отмене.
Фиксации и теги имеют следующие состояния проверки в зависимости от того, включен ли режим бдительности. По умолчанию режим бдительности не включен. Сведения о включении режима бдения см. в разделе "Отображение состояний проверки для всех фиксаций".
Подписывание фиксаций отличается от утверждения фиксации. Дополнительные сведения о выходе из фиксаций см. в разделе "Управление политикой утверждения фиксаций для репозитория".
Состояния по умолчанию
Состояние | Description |
---|---|
Проверено | Фиксация подписана, а подпись успешно проверена. |
Непроверенные | Фиксация подписана, но подпись нельзя проверить. |
Состояние проверки отсутствует | Фиксация не подписана. |
Проверка подписи сохраняемой фиксации
Независимо от выбора подписи — GPG, SSH или S/MIME — после проверки подписи фиксации она остается проверенной в сети своего репозитория. См. раздел "Основные сведения о подключениях между репозиториями".
Когда подпись фиксации проверяется при отправке в GitHub Enterprise Cloud, запись проверки сохраняется вместе с фиксацией. Эта запись не может быть изменена и сохранится, чтобы подписи оставались проверенными с течением времени, даже если ключи подписи поворачиваются, отзываются или если участники покидают организацию.
Запись проверки включает метку времени при завершении проверки. Эта постоянная запись гарантирует согласованное проверенное состояние, предоставляя стабильный журнал вкладов в репозитории. Эту метку времени можно просмотреть, наведите указатель мыши на значок "Проверено" на GitHub Enterprise Cloud или путем доступа к фиксации через REST API, который включает verified_at
поле. См. раздел "Конечные точки REST API для фиксаций".
Проверка подписи сохраняемой фиксации применяется к новым фиксациям, отправленным на GitHub Enterprise Cloud. Для любых фиксаций, предопределенных этой функцией, сохраняемая запись будет создана при следующем проверке подписи фиксации на GitHub Enterprise Cloud, помогая гарантировать, что проверенные состояния остаются стабильными и надежными в журнале репозитория.
Записи сохраняются даже после отзыва и истечения срока действия
Проверка подписи сохраняемой фиксации отражает проверенное состояние фиксации во время проверки. Это означает, что если ключ подписи позже отозван, истек или изменен, ранее проверенные фиксации сохраняют их проверенное состояние на основе записи, созданной во время начальной проверки. GitHub Enterprise Cloud не будет повторно проверять ранее подписанные фиксации или ретроактивно изменять состояние проверки в ответ на изменения состояния ключа. Организациям может потребоваться управлять ключевыми состояниями напрямую, чтобы соответствовать их политикам безопасности, особенно если планируется частое смена ключей или отмена.
Запись проверки распространяется на сеть репозитория.
Запись проверки сохраняется в сети репозитория, то есть если одна и та же фиксация отправляется повторно в тот же репозиторий или в любой из его вилок, существующая запись проверки повторно используется. Это позволяет GitHub Enterprise Cloud поддерживать согласованное проверенное состояние в связанных репозиториях без повторной проверки фиксации при каждом отображении в сети. Это сохраняемость усиливает единое и надежное представление подлинности фиксации во всех экземплярах фиксации в сети репозитория.
Проверка подписи для перемещения из одной ветви в другую и слияния
При использовании варианта Перемещение и слияние для запроса на вытягивание важно помнить, что фиксации в головной ветви добавляются в базовую ветвь без проверки подписи фиксации. При использовании этого варианта GitHub создает измененную фиксацию, используя данные и содержимое исходной фиксации. Это означает, что GitHub не создает новую фиксацию и не может подписать ее как обычный пользователь системы. GitHub не имеет доступа к закрытым ключам для подписывания этой фиксации, поэтому не может подписать фиксацию от имени пользователя.
Дополнительные сведения см. в разделе Сведения о методах слияния в GitHub.
Состояния с включенным режимом бдительности
Состояние | Description |
---|---|
Проверено | Фиксация подписана, подпись успешно проверена, а пользователь, выполнивший фиксацию — единственный автор, который включил строгий режим. |
Частично проверено | Фиксация подписана, и подпись успешно проверена, но у фиксации есть автор, который: a) не является автором фиксации, и б) включил строгий режим. В этом случае подписывание фиксации не гарантирует согласие автора, поэтому фиксация проверяется только частично. |
Непроверенные | Любое из следующих утверждений верно: — фиксация подписана, но подпись невозможно проверить; — фиксация не подписана, и автор фиксации включил строгий режим; — фиксация не подписана, и автор включил строгий режим. |
Администраторы репозитория могут принудительно применить обязательное подписание фиксации в ветви, чтобы заблокировать все неподписанные и непроверенные фиксации. Дополнительные сведения см. в разделе Сведения о защищенных ветвях.
Вы можете проверить состояние проверки подписанных фиксаций или тегов в GitHub Enterprise Cloud и посмотреть, почему подписи фиксации могут быть не проверены. Дополнительные сведения см. в разделе Проверка состояния проверки сигнатуры фиксации и тега.
GitHub будет автоматически использовать GPG для подписывания фиксаций, созданных с помощью веб-интерфейса. У фиксаций, подписанных GitHub, будет проверенное состояние. Вы можете проверить подпись локально с помощью открытого ключа, доступного по адресу https://github.com/web-flow.gpg.
При необходимости можно выбрать подписывание фиксаций, созданных в GitHub Codespaces, GitHubс помощью GPG. Дополнительные сведения о включении проверки GPG для пространств кода см. в разделе "Управление проверкой GPG для GitHub Codespaces".
Проверка GPG подписи фиксации
Вы можете использовать GPG для подписывания фиксаций с помощью ключа GPG, который вы создаете самостоятельно.
GitHub Enterprise Cloud использует библиотеки OpenPGP для подтверждения того, что локальные подписанные фиксации и теги криптографически проверяются на открытый ключ, добавленный в учетную запись на GitHub.com.
Чтобы подписать фиксации с помощью GPG и проверить эти фиксации в GitHub Enterprise Cloud, выполните следующие действия:
- Проверьте наличие существующих ключей GPG.
- Создайте новый ключ GPG.
- Добавьте ключ GPG в учетную запись GitHub.
- Расскажите в Git о ключе для подписывания.
- Подпишите фиксации.
- Подпишите теги.
Проверка подписи фиксаций SSH
Вы можете использовать SSH для подписывания фиксаций с помощью ключа SSH, который вы создаете самостоятельно. Дополнительные сведения см. в справочной документации по Git.user.Signingkey
Если вы уже используете ключ SSH для проверки подлинности с помощью GitHub Enterprise Cloud, вы также можете отправить этот же ключ еще раз для использования в качестве ключа подписывания. Количество ключей подписывания, которые можно добавить в учетную запись, не ограничено.
GitHub Enterprise Cloud использует ssh_data, библиотеку ruby открытый код, чтобы убедиться, что ваши локальные подписанные фиксации и теги криптографически проверяются на открытый ключ, добавленный в учетную запись на GitHub.com.
Note
Проверка подписи SSH доступна в Git 2.34 или более поздней версии. Сведения об обновлении версии Git см. на веб-сайте Git.
Чтобы подписать фиксации с помощью SSH и проверить эти фиксации в GitHub Enterprise Cloud, выполните следующие действия:
- Проверьте существующие ключи SSH
- Создание нового ключа SSH
- Добавление ключа подписывания SSH в учетную запись GitHub
- Расскажите в Git о ключе для подписывания.
- Подпишите фиксации.
- Подпишите теги.
Проверка S/MIME подписи фиксации
Вы можете использовать S/MIME для подписывания фиксаций с помощью ключа X.509, выданного вашей организацией.
GitHub Enterprise Cloud применяет пакет сертификатов ЦС Debian, то же хранилище доверия, которое используют браузеры Mozilla, чтобы убедиться, что ваши локально подписанные фиксации и теги проверяются криптографически с помощью открытого ключа в доверенном корневом сертификате.
Note
Проверка подписи S/MIME доступна в Git 2.19 или более поздней версии. Сведения об обновлении версии Git см. на веб-сайте Git.
Чтобы подписать фиксации с помощью S/MIME и проверить эти фиксации в GitHub Enterprise Cloud, выполните следующие действия:
Вам не нужно отправлять открытый ключ в GitHub Enterprise Cloud.
Проверка подписи для ботов
Организации и GitHub Apps, для которых необходима подпись фиксации, могут для этого использовать боты. Если фиксация или тег имеют подпись бота, которая проверяется криптографически, GitHub Enterprise Cloud отмечает фиксацию или тег как проверенные.
Проверка подписи для ботов будет работать только в том случае, если запрос проверяется и проходит проверку подлинности как GitHub App или бот и не содержит пользовательских сведений об авторе, о пользователе, выполняющем фиксации, и о подписях, например API фиксаций.