ЭЛЕКТРОННАЯ ЦИФРОВАЯ ПОДПИСЬ
Комбинированное шифрование
Защита открытых ключей от подмены
Предположим, на компьютере абонента j хранится открытый ключ абонента i Kpi. Злоумышленник n имеет доступ к открытым ключам, хранящимся у абонента j. Он генерирует свою пару ключей Ksn и Kpn и подменяет у абонента j открытый ключ абонента i Kpi на свой открытый ключ Kpn. Для того, чтобы отправить некую информацию абоненту i абонент j зашифровывает ее на ключе Kpn, думая, что это ключ Kpi. Соответственно, это сообщение не сможет прочитать абонент i, но зато легко расшифрует и прочитает абонент n.
От подмены открытых ключей может спасти процедура сертификации ключей.
Комбинированное применение симметричного и асимметричного шифрования позволяет устранить основные недостатки, присущие обоим методам. Рассмотрим механизм обмена зашифрованными сообщениями:
1. Абонент j перед передачей сообщения M абоненту i генерирует случайный ключ Ksimm, который будет использован в алгоритме симметричного шифрования для шифрования конкретного сообщения или цепочки сообщений.
2. Абонент j зашифровывает асимметричным алгоритмом ключ Ksimm на ключе Kpi и отправляет его абоненту i.
3. Абонент j зашифровывает симметричным алгоритмом сообщение на ключе Ksimm и отправляет его абоненту i.
4. Абонент i расшифровывает асимметричным алгоритмом ключ Ksimm с помощью своего секретного ключа Ksi.
5. Абонент i расшифровывает симметричным алгоритмом сообщение M с помощью полученного ключа Ksimm.
Недостатки алгоритмов компенсируются следующим образом:
- проблема распространения ключей симметричного алгоритма устраняется тем, что ключ Ksimm, на котором шифруются собственно сообщения, передается по открытым каналам связи в зашифрованном виде; для шифрования ключа Ksimm используется асимметричный алгоритм.
- проблемы медленной скорости асимметричного шифрования в данном случае практически не возникает, поскольку асимметричным алгоритмом шифруется только короткий ключ Ksimm, а все данные шифруются быстрым симметричным алгоритмом.
В результате получаем быстрое шифрование в сочетании с удобным обменом ключами.
Помимо защиты от несанкционированной модификации электронная цифровая подпись (ЭЦП) позволяет также установить авторство подписанного электронного документа.
Процесс использования ЭЦП состоит из подготовительного этапа и собственно использования.
I. Подготовительный этап:
1. Абонент i генерирует пару ключей: секретный ключ Ksi и открытый ключ Kpi. Открытый ключ вычисляется из парного ему секретного ключа.
2. Открытый ключ Kpi рассылается остальным абонентам (или делается доступным, например, на разделяемом ресурсе).
II. Использование:
3. Абонент i подписывает сообщение с помощью своего секретного ключа Ksi.
4. Остальные абоненты могут проверить подпись сообщения с помощью открытого ключа абонента i Kpi.
Секретный ключ ЭЦП является тем самым уникальным элементом, без знания которого невозможно подделать ЭЦП его владельца. Поэтому необходимо обеспечить отсутствие несанкционированного доступа к секретному ключу. Секретный ключ ЭЦП аналогично ключу симметричного шифрования рекомендуется хранить на персональном ключевом носителе.
Электронная подпись представляет собой уникальное число, зависящее от подписанного документа и секретного ключа абонента. Однако, помещаемая в подписываемый файл (или в отдельный файл электронной подписи) структура ЭЦП обычно содержит дополнительную информацию, однозначно идентифицирующую автора подписанного документа. Эта информация добавляется к документу до вычисления ЭЦП, что обеспечивает и ее целостность. Обычно информация о конкретном абоненте записывается в файлы ключей ЭЦП при их генерации и для формирования ЭЦП считывается из файла секретного ключа.
Аналогично асимметричному шифрованию, необходимо обеспечить невозможность подмены открытого ключа ЭЦП.
Если предположить, что злоумышленник n имеет доступ к открытым ключам, которые хранит на своем компьютере абонент j, в том числе, к открытому ключу абонента i Kpi, то он может выполнить следующие действия:
- прочитать из файла, в котором содержится Kpi идентификационную информацию об абоненте i;
- сгенерировать собственную пару ключей Ksn и Kpn, записав в них идентификационную информацию абонента i;
- подменить хранящийся у абонента j ключ Kpi своим ключом Kpn, но содержащим идентификационную информацию абонента i.
После этого злоумышленник n может посылать документы абоненту j, подписанные своим ключом Ksn.
При проверке подписи этих документов абонент j получит результат, что документы подписаны абонентом i и их ЭЦП верна, т.е. они не были модифицированы кем-либо. До выяснения отношений непосредственно с абонентом i у абонента j может не появиться сомнений в полученном результате.
Открытые ключи ЭЦП можно защитить от подмены с помощью соответствующих сертификатов. Сегодня существует большое количество стандартов ЭЦП, например, отечественный стандарт ГОСТ 34.10-94.