Мой Windows Server недавно запросил обновление сертификата, связанного с взломом корневого сертификата. Я помню, что Firefox, Safari, Flash, куча файлов .Net и Internet Explorer запрашивали это обновление ранее.
Я знаю, что код подписан сертификатом, и поэтому мой вопрос:
связаны ли эти сертификаты каким-либо образом,
если это так, то может ли факт взлома корневого сертификата быть риском для подписанного кода (например, разрешить выполнение какого-то вредоносного кода или, возможно, позволить кому-то вмешаться в подписанный код?)
и, наконец, в случае iOS, будет ли это означать, что каждое отдельное приложение необходимо перекомпилировать с новыми сертификатами, или это не окажет негативного воздействия на ранее подписанный код?
Во-первых, корень подписи кода Apple не связан со скомпрометированным корнем (DigiNotar), поэтому, на ваш первый вопрос, это не оказывает прямого влияния на подписывание кода iOS. Этот сертификат находится в корневом хранилище iOS, поэтому он может повлиять на приложения, включая Safari или всех, кто использует встроенную систему загрузки URL-адресов или корневой ключевой камень.
Если ключ подписи кода Apple (или один из основных посредников) был скомпрометирован, то теоретически это могло иметь катастрофические последствия для системы подписи кода. На практике злоумышленнику также придется маскироваться под сервер обновлений Apple, что представляет собой другую проблему. Но если сложить эти две вещи вместе, да, теоретически они смогут продвинуть все, что захотят.
Как правило, существует только два способа справиться с компрометацией ключа в X.509: дождаться истечения срока действия сертификата или отозвать его. Большинство корневых сертификатов имеют довольно длительный срок действия (часто десятилетия). Сертификаты более низкого уровня имеют более короткий срок (месяцы или годы).
Отзыв сертификата означает, что программное обеспечение (в данном случае iOS) должно проверить список отзыва и отклонить содержащиеся в нем сертификаты. Это сломало бы все существующие программы, пока все они не были уволены и не переустановлены.
Поскольку Apple контролирует магазин приложений и iOS, в их распоряжении есть и другие варианты. Они могут исправить iOS, чтобы выполнить одноразовую проверку каждого программного обеспечения по хешам в магазине приложений, а затем применить новую подпись. Когда вы контролируете все части системы, легче определить доверие.
То, что корневые сертификаты скомпрометированы, само по себе не означает, что вредоносный код внезапно запустится на всех устройствах (или на чьих-либо устройствах). Взлом сертификата - это лишь часть более сложной атаки. Но это была бы полезная штука.
Имейте в виду, что Mac, Windows, Unix и т. Д. Существовали многие годы без подписи кода. В большинстве современных ОС есть какая-то подпись кода, но она не очень широко используется (часто только при установке пакета). Когда это не удается, пользователи обычно игнорируют это. Схема iOS - большой шаг вперед, но вы можете обойтись и без нее.
Подписание кода не гарантирует его безвредность. Я мог бы сделать несколько злонамеренных действий, которые Apple было бы почти невозможно обнаружить до утверждения приложения. И то, что у них есть кредитная карта, не означает, что Apple действительно знает, кто отправил приложение.
Таким образом, подпись кода - важная мера безопасности, но не единственная мера безопасности. Как вы предполагаете, ключи очень важны, но они всего лишь одна часть системы.
Если вы установили подписанный код на основе сертификата X.509, подписанного фиктивным корнем, возможно, это был фиктивный код. И это могло сделать с вашей системой какие-то неприятные вещи.
Однако это не влияет на код, подписанный сертификатами, которые не были подписаны скомпрометированным корнем.