Проверка электронной цифровой подписи Authenticode. Часть 1. Теория - VB

Узнай цену своей работы

Формулировка задачи:

Привет! Я как-то довольно давно заинтересовался темой цифровых подписей, какова их защита, как они устроены изнутри, как с ними работать из-под CryptoAPI. По мере изучения возникало много подводных камней. Наконец, я готов рассказать и вам на доступном языке о принципах шифрования и подписания, практике и готовой реализации проверки подписей. Затронуто много косвенных тем, так что статья весьма объёмна. Запаситесь чипсами и пивом . А в перерывах, можете сразу пощупать 3-ю часть статьи, где вас ждёт готовая программа, а также несколько хорошо прокомментированных исходников, в т.ч. для пакетной проверки всех PE-файлов в системе с отчётом в формате CSV. Большинство примеров кода представлено на языке VB6, просто потому что на C++ примеров очень много в сети, а на этом языке подобных комплексных реализаций я не видел вообще, да и этот язык я лучше всего знаю. Итак, статья состоит из 3 частей:Часть 1. ТеорияЧасть 2. Описание реализацииЧасть 3. Набор программ

Содержание:

Часть 1. Кусочек теории.

1.1. Что такое электронная цифровая подпись (ЭЦП) и зачем она нужна? 1.2. Надёжность ЭЦП и эксплуатация вредоносным ПО.

1.2.1. Человеческий фактор и приватные ключи. 1.2.2. Уязвимости в структуре ЭЦП. 1.2.3. Стойкость алгоритма хеша.
1.3. Что означает, легитимна ли подпись? 1.4. Терминология, алгоритм подписания и проверки.
1.4.1. Что такое Authenticode (Code signing). 1.4.2. Что такое хеш. 1.4.3. Что такое выборка (digest). 1.4.4. Что такое приватный и публичный ключи, симметричное и асимметричное шифрование. 1.4.5. Что такое сертификат, центр сертификации и цепочка доверия. 1.4.6. Форматы файлов сертификатов и ключей для Authenticode подписи и их преобразование.
а) Виды форматов. б) Преобразование форматов.
1.4.7. Что такое подпись и подписание. 1.4.8. Что такое отпечаток (Thumbprint / Fingerprint). 1.4.9. Как проверяется подпись. 1.4.10. Чем отличаются понятия «алгоритм подписи», «алгоритм хеша подписи», «алгоритм хеша выборки», «алгоритм хеша отпечатка».
1.5. Само-подписанный (self-signed) сертификат. 1.6. Двойная (вторичная) подпись. 1.7. Способы подписания 1.8. Перечисление сертификатов в хранилище 1.9. Удаление подписи. 1.10. Покупка сертификата.

Часть 2. Описание реализации программы проверки подписей

2.1. Подготовка к проверке 2.2. Запуск процедуры проверки и обработка результатов 2.3. Очистка ресурсов. 2.4. Извлечение сертификатов и содержащейся в них информации 2.5. Извлечение атрибутов и крос-подписей

Часть 3. Программа проверки Authenticode ЭЦП

- Назначение - Совместимость / Требования - Примеры использования / Флаги и дополнительная информация

Заключение Приложения и исходные коды Дополнительная литература

Решение задачи: «Проверка электронной цифровой подписи Authenticode. Часть 1. Теория»

textual
Листинг программы
Private Function VerifySecondarySign(sFile As String) As SignResult_TYPE
  
    Dim SignResult As SignResult_TYPE
  
    ' we should disable checking by catologue, because in that case number of signatures will be unavailable
    SignVerify sFile, SV_DisableCatalogVerify, SignResult
  
    If (SignResult.NumberOfSigns > 1) Then
  
        SignVerify sFile, SV_CheckSecondarySignature, VerifySecondarySign
    End If
End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5