Метка времени подписи кода все еще истекает с помощью сервера меток времени


Не знаю почему, но при использовании подписи кода с помощью сервера временных меток symantec он устанавливает срок действия на 2020 год. Это нарушает цель использования сервера меток времени, если срок действия моей программы все еще истекает.

Ниже приведен вывод при использовании signtool.exe для проверки приложения timestamp:

Signature Index: 0 (Primary Signature)
Hash of file (sha1): A6F0CEC09F02900D7977C60A87567031D0D96C7A

    Signing Certificate Chain:
        Issued to: thawte Primary Root CA
        Issued by: thawte Primary Root CA
        Expires:   Wed Jul 16 19:59:59 2036
        SHA1 hash: 91C6D6EE3E8AC86384E548C299295C756C817B81

            Issued to: Thawte Code Signing CA - G2
            Issued by: thawte Primary Root CA
            Expires:   Fri Feb 07 19:59:59 2020
            SHA1 hash: 808D62642B7D1C4A9A83FD667F7A2A9D243FB1C7

                Issued to: My Company
                Issued by: Thawte Code Signing CA - G2
                Expires:   Tue Aug 11 19:59:59 2015
                SHA1 hash: E45B4CBFBA095DB9465F2371C161EF500201561B

    The signature is timestamped: Wed Oct 22 12:15:44 2014
    Timestamp Verified by:
        Issued to: Thawte Timestamping CA
        Issued by: Thawte Timestamping CA
        Expires:   Thu Dec 31 19:59:59 2020
        SHA1 hash: BE36A4562FB2EE05DBB3D32323ADF445084ED656

            Issued to: Symantec Time Stamping Services CA - G2
            Issued by: Thawte Timestamping CA
            Expires:   Wed Dec 30 19:59:59 2020
            SHA1 hash: 6C07453FFDDA08B83707C09B82FB3D15F35336B1

                Issued to: Symantec Time Stamping Services Signer - G4
                Issued by: Symantec Time Stamping Services CA - G2
                Expires:   Tue Dec 29 19:59:59 2020
                SHA1 hash: 65439929B67973EB192D6FF243E6767ADF0834E4


    Successfully verified: SetupGoVivoConsole.exe

    Number of files successfully Verified: 1
    Number of warnings: 0
    Number of errors: 0
Обратите внимание, что срок действия этого сертификата составляет 1 год, поэтому он использует временную метку с сервера, предоставляемого Symantec. Согласно (ограниченному) документация по этому вопросу использование сервера меток времени при подписании приложения должно исключить возможность истечения срока действия приложения после истечения срока действия сертификата. Согласно информации, которую я вижу выше, это не так, поскольку мое приложение перестанет функционировать на Tue Dec 29 19:59:59 2020.

Команда, которую я использую для signtool, выглядит следующим образом:

signtool.exe sign /f "certificate.pfx" /ac "thawte.crt" /p "mypassword" /t http://timestamp.verisign.com/scripts/timstamp.dll "ExecutableToSign.exe"

3   2  

3 ответа:

Я могу проверить из моего болезненного опыта сегодня: истекший сертификат метки времени (в моем случае, сертификат метки времени Comodo) приведет к тому, что Windows (7) не выполнит общую проверку подписи кода с ошибкой 0x80096005.

Так что да, вопреки тому, что было заявлено всеми поставщиками сертификатов, которые я рассматривал, timestamping не гарантирует, что ваш подписанный исполняемый файл остается действительным в течение вечности.

Найдите службу меток времени с помощью сертификата. с датой истечения срока годности loooong в будущее.

Цель использования временной штамповки не в том, чтобы сделать вашу подпись действительной навсегда. Его цель-продлить срок полезного использования вашей подписи, с обычных 1 до 3 лет, что сертификаты подписи кода действительны, до 10 лет. Это достаточно долго для большинства потребностей-кто действительно думает, что их код будет путешествовать по небезопасным сетям (и поэтому нуждается в подписывании кода)и выполняться через 10 лет.

Служба штамповки времени не делает ничего больше, чем подписывает хэш ваша собственная цифровая подпись плюс текущее время (как это предусмотрено службой штамповки времени) с сертификатом службы штамповки времени, который они (надеюсь) охраняют намного лучше, чем большинство пользователей цифровых сертификатов, и который поэтому был предоставлен гораздо более длительный срок хранения. Как бы долго они ни жили, они все еще являются всего лишь цифровыми сертификатами, и для обеспечения базовой безопасности каждый из них в конечном итоге должен истечь. Учитывая, что компьютеры продолжают становиться все более мощными, даже самые безопасные алгоритмы и самые длинные ключи подписи, поддерживаемые сегодня, в конечном счете будут небезопасны.

Обратите внимание, что дата истечения срока действия-это не более чем самое продолжительное время, в течение которого сертификат (либо подписывающий код, либо помечающий время) может быть действителен. Даже сегодня некоторые серверы с отметкой времени используют SHA-1 для подписи (например, это то, что используется в вашем примере с отметкой времени). Когда этому алгоритму больше не доверяют (а это не должно быть слишком долго), все эти временные метки SHA-1 больше не будут доверять. Эта воля случиться, даже если срок годности еще не достигнуто.

Вам следует изучить другие службы штамповки времени. Есть несколько, которые истекают намного дальше и используют SHA256

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

Ура!

Согласно информации, которую я вижу выше, это не так, поскольку мое приложение перестанет функционировать во вторник 29 декабря 19: 59: 59 2020.

Почему он перестал функционировать? А вы пробовали? Попробуйте установить дату на вашем компьютере до 2021 года и посмотреть, что произойдет. Лично я не пробовал, но мой коллега сделал. Windows по-прежнему будет запускать программу. Он будет проверять заявление на дату подписания. Сертификат сервера TSA был действителен тогда, поэтому он не должен быть проблема.

Если бы у вас не было метки времени на подписи приложения, это было бы проблемой. После истечения срока действия сертификата подписавшего windows не будет запускать приложение. Но при использовании timestamp windows не заботится о дате истечения срока действия сертификата TSA.