Я знаю немного теории аутентификации, но хотел бы знать, как это реально реализовать на практике.Аутентификация с использованием цифровых подписей
Существуют такие программные исправления, которые необходимо периодически распространять. Чтобы обеспечить доступ только к подлинному контенту нашим пользователям, нам рекомендуется подписать наш контент до распространения.
Планируется создание пары ключей с открытым доступом. Патч сначала будет подписан нашим закрытым ключом, а получатели затем аутентифицируют загруженный патч, используя наш открытый ключ. Наша идея подписания - генерировать хэш патча и шифровать хеш с помощью нашего личного ключа. Зашифрованный хэш (подпись) должен быть связан вместе с патчем перед распределением.
Нам также сообщается, что это хорошая практика получения цифрового сертификата для нашего открытого ключа от ЦС и его публикации на сервере сертификатов в наших помещениях. Нам говорят, что CA создаст этот сертификат, используя его закрытый ключ. Ожидается, что наши пользователи загрузят сертификат открытого ключа с нашего сервера и подтвердят его подлинность с помощью открытого ключа CA. Таким образом, наши пользователи будут уверены, что у них есть правильный открытый ключ от нас, чтобы аутентифицировать подлинность патча.
И, наконец, вопрос:
Как/где можно точно открытый ключ ЦС можно загрузить для проверки подлинности сертификата открытого ключа, загруженного с нашего сервера?
В каких форматах доступны эти сертификаты? Являются ли эти простые текстовые файлы или XML или?
Обратите внимание, что генерация подписи RSA не совпадает с хэшированием + шифрованием. Подписание состоит из хэширования, затем заполнения для генерации подписи, а затем модульного возведения в степень с использованием частного экспонента. Шифрование - это просто * padding * *** для шифрования ***, а затем модульное возведение в степень с использованием общедоступного экспонента. Не путайте эти два, разные механизмы заполнения как минимум. –
@owlstead: Точка взята. Чтобы уточнить, мы в основном ищем минимальную/элементарную аутентификацию. В этом контексте зашифрованный хэш, похоже, служит нашей цели. – Raj
Я не вижу, как шифрование хэша проще, чем использовать существующую стандартную реализацию генерации подписи. Я буду придерживаться стандартов, если вы не хотите попасть в кошмар для обслуживания. Кроме того, шифрование с использованием открытого ключа обычно не требует никакой защиты от атак боковых каналов, с другой стороны, генерация сигнатур. Таким образом, вы можете жертвовать безопасностью. –