0

Я знаю немного теории аутентификации, но хотел бы знать, как это реально реализовать на практике.Аутентификация с использованием цифровых подписей

Существуют такие программные исправления, которые необходимо периодически распространять. Чтобы обеспечить доступ только к подлинному контенту нашим пользователям, нам рекомендуется подписать наш контент до распространения.

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

Нам также сообщается, что это хорошая практика получения цифрового сертификата для нашего открытого ключа от ЦС и его публикации на сервере сертификатов в наших помещениях. Нам говорят, что CA создаст этот сертификат, используя его закрытый ключ. Ожидается, что наши пользователи загрузят сертификат открытого ключа с нашего сервера и подтвердят его подлинность с помощью открытого ключа CA. Таким образом, наши пользователи будут уверены, что у них есть правильный открытый ключ от нас, чтобы аутентифицировать подлинность патча.

И, наконец, вопрос:

  1. Как/где можно точно открытый ключ ЦС можно загрузить для проверки подлинности сертификата открытого ключа, загруженного с нашего сервера?

  2. В каких форматах доступны эти сертификаты? Являются ли эти простые текстовые файлы или XML или?

+1

Обратите внимание, что генерация подписи RSA не совпадает с хэшированием + шифрованием. Подписание состоит из хэширования, затем заполнения для генерации подписи, а затем модульного возведения в степень с использованием частного экспонента. Шифрование - это просто * padding * *** для шифрования ***, а затем модульное возведение в степень с использованием общедоступного экспонента. Не путайте эти два, разные механизмы заполнения как минимум. –

+0

@owlstead: Точка взята. Чтобы уточнить, мы в основном ищем минимальную/элементарную аутентификацию. В этом контексте зашифрованный хэш, похоже, служит нашей цели. – Raj

+0

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

ответ

0

Чтобы ответить на ваши вопросы в порядке:

  1. Использование браузера и SSL. В этом случае вы полагаетесь на хранилище сертификатов уже в браузере. Может быть хорошей идеей также опубликовать отпечаток вашего собственного сертификата. Обратите внимание, что вы также распространяете сертификат - или цепочку сертификатов - в своем программном обеспечении. Если загрузка программного обеспечения доверена, тогда вам может даже не понадобиться внешний центр сертификации. Но в этом случае вы держите свой секретный ключ в CA очень безопасным.

  2. Сертификаты X5.09 создаются с использованием кодировки DER ASN.1. DER - двоичное кодирование (и текстовые определения ASN.1 определяют содержимое). Сертификаты также часто распространяются в формате PEM. Это базовое 64-битное кодирование двоичного сертификата с дополнительным верхним и нижним колонтитулом.

+0

Загрузка программного обеспечения не заслуживает доверия. Мы в основном хотим, чтобы наши пользователи узнали о происхождении патча, только что загруженного.Если это исходит от нас, все в порядке. Если это произошло от кого-то другого, пользователи должны решить, хотят ли они продолжить установку. Наш инструмент на ПК пользователя, который устанавливает эти исправления, загрузит наш сертификат открытого ключа, выданный центром сертификации. Вопрос в том, как мы можем аутентифицировать наш собственный сертификат открытого ключа с использованием открытого сертификата CA? Например, Verisign предоставляет несколько классов общедоступных корневых сертификатов. Как мы узнаем, какой из них нужно использовать? – Raj

+0

Ну, это легко: * попросить Verisign *. Тип запроса сертификата, который вы хотите подписывать (создание сертификата), называется ** сертификатом подписи **. Я настоятельно призываю вас использовать этот термин в сообщениях. –

+0

Итак, вы говорите, что как только запрос на CA будет сделан, он предоставит запрашивателю 2 ключа. The firsr – Raj

Смежные вопросы