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

  1. Привет! Я как-то довольно давно заинтересовался темой цифровых подписей, какова их защита, как они устроены изнутри, как с ними работать из-под 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 ЭЦП- Назначение - Совместимость / Требования - Примеры использования / Флаги и дополнительная информацияЗаключение Приложения и исходные коды Дополнительная литература


textual

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

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



Похожие ответы
  1. Это продолжение. См. также другие части этой статьи:Часть 1. Кусочек теории.Часть 3. Программа проверки Authenticode ЭЦПЧасть 2. Описание реализации программы проверки подписейСодержание: 2.1. Подготовка к проверке 2.2. Запуск процедуры проверки и обработка результатов 2.3. Очистка ресурсов. 2.4. Извлечение сертификатов и содержащейся в них информации 2.5. Извлечение атрибутов и крос-подписей

  1. Доброго времени суток народ!!! Написал кривой чекер подключения USB(flash) к компу вроде работает но нужно сделать следующие что бы при подключение он искал на флешке файлы *.ini и выводил в лист бокс (сам чекер кривой т.к. руки кривые ) так что если у кого есть пример хотя бы чекера прошу в студию! Ну и вообщем вопрос решить бы))) Орущие о вирусах троянах идт идут лесом!!!!

  1. Здравствуйте!Очень прошу помощи!Суть такова: есть 3 поля для ввода текстовой информации и одна кнопка. Нужно чтобы при нажатии на эту кнопку появлялось сообщение. Если правильно написано, то - ответ правильный, и наоборот. Другими словами - проверить условие. Слово "ЛОБ". В первом текстовом поле буква "Л", во втором - "О", в третьем - "Б" На кнопке делаю следующий код, но не выходит то, что хотелось бы:

  1. Составить программу для проверки утверждения: «результатами вычислений по формуле x2+x+17 при 0≤х≤15 являются простые числа». Все результаты вывести на экран. вот мой код

  1. В моей игре есть момент когда нужно 600 монет и тут возникает вопрос, если у игрока не 600 ,а 607 или 601 Можне без долго писания текста если 601 то, если 602 то. А просто взять и написать например если от 600 до 1000 то написать в текст1 что нибуть. Если да, то как? Прошу написать код.Добавлено через 5 минут или например меньше 600

  1. Какой будет код для проверки слова на палиндром? очень срочно Например вводим слово казак и нам выдаёт это слово является палиндром очень нужно я не как разобратся не могу

  1. Программу сделал. Но когда введу некорректные данные, то выдает ошибку. Как проверить ситуации, когда нет корней?

  1. Здравствуйте, столкнулся с такой проблемой не могу найти код для проверки на знак "@" Нашел вот такой код но что-то не так не принимает "TextBox1.Text.Contains":PureBasic1 If TextBox1.Text.Contains("@") ThenСпасибо

  1. дана последовательность скобок. Проверить является ли она правильной. Например: ([{}])() -правильное выражение, а (){}{) неправильное.Задачу с одинаковыми скобками решил без стека, а тут мне каж нужно с помощью стека. ну вобщем дня два путал себе мозги, не смог решить