Удостоверение подлинности Практика использования Code Signing сертифікатів для подписи кода☰
Удостоверение подлинности ПО - Практика подписания кода
Ограничьте доступ к ключу
Ограничить доступ к закрытым ключам на основе ролей
Сведите к минимуму количество машин, на которых хранятся ключи подписи кода
Сведите к минимуму количество сотрудников, которые могут получить доступ к ключам
Используйте меры физической безопасности, чтобы свести к минимуму доступ к ключу, например, двери, защищенные ключ-картой, и запертые ящики, шкафы, сейфы
Всегда держите закрытый ключ под замком
Обеспечьте максимальную безопасность ключей
Защищайте закрытые ключи с помощью безопасных хранилищ и аппаратных модулей безопасности (HSM), которые представляют собой специальные криптографические процессоры, предназначенные исключительно для защиты ключей.
Продукты для защиты ключей должны быть сертифицированы как минимум FIPS-140 Level 2.
Для транспортировки закрытых ключей используйте оборудование, которое защищено надежным паролем длиной не менее 16 символов и содержит прописные и строчные буквы, цифры и специальные символы.
Убедитесь, что закрытые ключи никогда и ни по какой-либо причине не добавляются в легкодоступные места, такие как GitHub, PasteBin, общедоступные серверы и т. д.
Используйте отметку времени
Отметки времени позволяют проверять код даже после того, как срок действия оригинального сертификата подписи кода истек или он был отозван.
Сертификаты с отметкой времени можно использовать для подтверждения в течение 11 лет после выдачи.
Используйте тестовую подпись только тогда, когда это уместно.
Сертификаты с тестовой подписью либо самозаверяющие, либо поступают от внутреннего частного центра сертификации, поэтому их следует использовать только в безопасной тестовой среде.
Сертификаты с тестовой подписью не требуют того же уровня безопасности, что и сертификаты подписи производственного кода.
Сертификаты с тестовой подписью не могут быть привязаны к тому же корню, что и ваши производственные сертификаты.
Инфраструктура тестовой подписи должна быть полностью отделена от производственной инфраструктуры.
Проверьте код перед подписанием
Перед подписанием код необходимо тщательно проверить и подтвердить его подлинность.
Следует создать и использовать процесс отправки и утверждения для подписи кода, чтобы избежать подписания неутвержденного и / или вредоносного кода.
Все действия по подписанию кода должны регистрироваться на случай будущих аудитов или инцидентов безопасности.
Сначала сканирование
Важно помнить, что подписывание кода не гарантирует безопасность того, что находится внутри - вы можете подписать код вируса или вредоносной программы, случайно или если захотите ;)
Будьте особенно осторожны при включении открытого исходного кода из внешних источников.
Выполните сканирование на вирусы и вредоносные программы перед подписанием кода
Сканеры вредоносных программ не могут обнаружить все, поэтому убедитесь, что каждое изменение кода / компонента проверялось вручную.
Не полагайтесь на один сертификат
Использование нескольких сертификатов помогает распределять риски
Несколько сертификатов могут помочь упростить отслеживание любых проблем, которые могут возникнуть.
Не бойтесь отзывать сертификат
Любые скомпрометированные сертификаты должны быть немедленно отозваны и сообщены в центр сертификации.
«Взломанный» означает любое подозрение, что закрытый ключ мог попасть в руки неавторизованного пользователя или что сертификат был использован для подписи приложения, содержащего вредоносное ПО или другой вредоносный код.
Используйте метки времени, чтобы определить последнюю возможную дату отзыва, которая может быть использована, чтобы минимизировать влияние на безопасный код.
Централизуйте управление сертификатами.
Постоянно отслеживайте состояние сертификатов для подписи кода
Регулярно проверяйте использование ключей, чтобы гарантировать точность политик
Будьте в курсе событий
Будьте в курсе любых новых криптографических алгоритмов или отраслевых практик, чтобы обеспечить наилучшую доступную защиту
Немедленно реагируйте при обнаружении новых недостатков или уязвимостей в системе безопасности.
Создание организационной политики и процедур.
Создайте письменный документ политики, которому должны следовать все в организации - это должен быть «живой документ», который адаптируется к любым внутренним или внешним изменениям.
Политика подписи кода должна касаться:
Кто может подписывать код
Какие инструменты подписи кода одобрены для использования
Какие сертификаты разрешены
Кто утверждает запросы на подпись кода
Как / где хранятся и защищаются приватные ключи
Контролируйте своих сотрудников для соблюдения этих правил