код аутентификации сообщения
Код аутентификации сообщения может реализовать две функции «аутентификации» и «обнаружения несанкционированного доступа». Содержание секретного текста может быть изменено во время передачи, что приведет к изменениям в расшифрованном содержании, что приведет к недопониманию. Код аутентификации сообщения — это механизм, предотвращающий это.
Иллюстрация подделки сообщения
нормальная ситуация
Предположим, A покупает товар в B и должен сообщить B номер продукта abc.
- Здесь A шифрует сообщение, используя шифрование с общим ключом. A отправляет ключ B безопасным способом.
- A шифрует сообщение, используя ключ, общий для обеих сторон.
- A отправляет зашифрованный текст B, а B расшифровывает зашифрованный текст после его получения и, наконец, получает исходный номер продукта abc.
сообщения отслеживаются
Выше приведен поток, когда проблем нет, а затем во время этого процесса может возникнуть следующая ситуация.
- Предположим, что зашифрованный текст, отправленный А к В, был злонамеренно изменен Х во время процесса связи, и В не осознал проблему после получения зашифрованного текста.
- B расшифровывает подделанный зашифрованный текст, чтобы получить сообщение xyz.
- В подумал, что А заказал товар с маркировкой xyz, поэтому В отправил А неправильный товар.
Решить проблему с мониторингом
Если используется код аутентификации сообщения, можно обнаружить, что сообщение было подделано. Затем мы вернемся к моменту, когда А собирался послать зашифрованный текст В.
- A генерирует ключ для создания кода аутентификации сообщения и отправляет ключ B, используя безопасный метод.
- Затем A использует зашифрованный текст и ключ для генерации значения, которое здесь равно 7f05. это по"Значение, сгенерированное ключом и зашифрованным текстом, является кодом аутентификации сообщения.", именуемый в дальнейшем МАК.
- A отправляет MAC (7f05) и зашифрованный текст B.
- Как и A, B также должен использовать зашифрованный текст и ключ для генерации MAC. После сравнения B может подтвердить, что рассчитанное им 7f05 согласуется с 7f05, отправленным A.
- Затем В должен использовать ключ только для расшифровки зашифрованного текста, и, наконец, В успешно получает товарный номер abc, отправленный А.
Проверить код аутентификации сообщения
Затем мы проверяем, что после использования кода аутентификации сообщения данные прослушивает X. В это время мы возвращаемся к моменту, когда A собирается отправить зашифрованный текст B.
- Предположим, что X подделал зашифрованный текст, когда A отправил зашифрованный текст и MAC в B.
- B использует зашифрованный текст для вычисления MAC, и полученное значение равно b85c, которое оказывается несовместимым с полученным MAC.
- В результате B понимает, что зашифрованный текст или Mac, или даже оба могут быть подделаны. Затем B отбрасывал полученный шифротекст и Mac, а запрос, отправленный повторно, предлагался.
❝Шифрование — это всего лишь процесс численного расчета и обработки, поэтому даже если зашифрованный текст подделан, можно выполнить вычисления, связанные с дешифрованием.
❞
сцены, которые будут использоваться
Если исходное сообщение представляет собой длинное предложение, оно будет иметь странный смысл после подделки, поэтому получатель может обнаружить, что оно было подделано.
Однако, если исходное сообщение представляет собой номер продукта и другое содержимое, которое люди не могут понять напрямую, получателю будет сложно определить, было ли оно подделано после расшифровки. Поскольку сам пароль не может сказать людям, было ли сообщение подделано, для обнаружения необходимо использовать код аутентификации сообщения.
дефект
В процессе использования кода аутентификации сообщения обе стороны могут зашифровать сообщение и вычислить MAC. То есть мы не можем доказать, было ли исходное сообщение сгенерировано А или Б.
Поэтому, добавив, что А — плохой парень, он может после отправки сообщения заявить, что «это сообщение было сфабриковано Б», и отрицать свои действия. Если B плохой парень, он также может сам подготовить сообщение и заявить, что «это сообщение от A мне».
При использовании MAC сторона-генератор и сторона-обнаружитель имеют один и тот же ключ, поэтому невозможно определить, какая сторона сгенерировала MAC.Эта проблема может быть решена с помощью приведенной ниже «цифровой подписи».
цифровой подписи
Цифровая подпись может не только реализовать аутентификацию и обнаружение несанкционированного доступа к кодам аутентификации сообщений, но и предотвратить возникновение проблем с отказом. Поскольку шифрование с общим ключом используется в коде аутентификации сообщения, получатель, у которого есть ключ, может также быть отправителем сообщения, что не может предотвратить последующий отказ. Цифровая подпись может быть создана только отправителем, поэтому ее можно использовать для определения отправителя сообщения.
Сюжет
- Предположим, A хочет отправить сообщение B
- Цифровая подпись сообщения перед его отправкой. Цифровая подпись может быть сгенерирована только А.
- Пока отправленное сообщение имеет цифровую подпись А, можно определить, что отправителем сообщения является А.
- B может проверить правильность цифровой подписи, но не может сгенерировать цифровую подпись.
Иллюстрация генерации цифровой подписи
Цифровая подпись создается с помощью"шифрование с открытым ключом".
- Сначала А подготавливает информацию для отправки, закрытый ключ и открытый ключ. Два ключа подготавливаются отправителем сообщения, в отличие от шифрования с открытым ключом.
- A отправляет открытый ключ B
- A использует закрытый ключ для шифрования сообщения, а зашифрованное сообщение представляет собой цифровую подпись.
- A отправляет сообщение и подпись B
- B расшифровывает зашифрованный текст (подпись) с помощью открытого ключа.
- B подтверждает расшифрованное сообщение, чтобы убедиться, что оно согласуется с полученным сообщением. На этом процесс заканчивается.
дефект
Шифрование и дешифрование шифрования с открытым ключом требуют много времени.Чтобы сэкономить время операции, сообщение не шифруется напрямую, но получается хеш-значение сообщения, а затем хэш-значение шифруется, а затем используется в качестве подписи для использовать.После использования цифровой подписи B будет полагать, что отправителем сообщения является A, но на самом деле это может быть X, выдающий себя за A. Основная причина заключается в том, что невозможно определить, кто производитель открытого ключа использует шифрование с открытым ключом, и отсутствует информация о производителе полученного открытого ключа. Поэтому вполне возможно, что открытый ключ был сгенерирован кем-то, кто выдавал себя за А.
решение
Цифровые сертификаты могут решить эту проблему.Статья о цифровых сертификатах будет опубликована позже.Заинтересованные разработчики могут продолжать обращать внимание.
напиши в конце
- Картинки, использованные в этой статье, взяты из "Моя первая книга алгоритмов". Если есть какие-либо нарушения, пожалуйста, оставьте сообщение в области комментариев, и автор немедленно удалит соответствующие картинки.
- Если в тексте есть ошибка, добро пожаловать в зону комментариев, если эта статья вам помогла, добро пожаловать на похвалу и внимание
- Эта статья была впервые опубликована на Наггетс, перепечатка без разрешения запрещена 💌