В последней главе мы обсудили угрозы целостности данных и использование метода хеширования, чтобы определить, имели ли место какие-либо модификации изменений в данных.
Другим типом угрозы, которая существует для данных, является отсутствие аутентификации сообщений . В этой угрозе пользователь не уверен в источнике сообщения. Аутентификация сообщения может быть обеспечена с использованием криптографических методов, которые используют секретные ключи, как это делается в случае шифрования.
Код аутентификации сообщения (MAC)
Алгоритм MAC — это криптографический метод с симметричным ключом, обеспечивающий аутентификацию сообщения. Для установления процесса MAC отправитель и получатель совместно используют симметричный ключ K.
По сути, MAC — это зашифрованная контрольная сумма, сгенерированная для базового сообщения, которое отправляется вместе с сообщением для обеспечения аутентификации сообщения.
Процесс использования MAC для аутентификации изображен на следующей иллюстрации —
Давайте теперь попробуем понять весь процесс в деталях —
-
Отправитель использует какой-то общеизвестный алгоритм MAC, вводит сообщение и секретный ключ K и выдает значение MAC.
-
Подобно хешу, функция MAC также сжимает произвольный длинный вход в выход фиксированной длины. Основное различие между хешем и MAC заключается в том, что MAC использует секретный ключ во время сжатия.
-
Отправитель пересылает сообщение вместе с MAC. Здесь мы предполагаем, что сообщение отправлено открытым текстом, поскольку мы заинтересованы в обеспечении аутентификации источника сообщения, а не конфиденциальности. Если требуется конфиденциальность, то сообщение нуждается в шифровании.
-
При получении сообщения и MAC получатель передает полученное сообщение и общий секретный ключ K в алгоритм MAC и повторно вычисляет значение MAC.
-
Получатель теперь проверяет равенство только что вычисленного MAC с MAC, полученным от отправителя. Если они совпадают, то получатель принимает сообщение и уверяет себя, что сообщение было отправлено предполагаемым отправителем.
-
Если вычисленный MAC-адрес не совпадает с MAC-адресом, отправленным отправителем, получатель не может определить, было ли это сообщение изменено или источник был фальсифицирован. Как итог, получатель безопасно предполагает, что сообщение не является подлинным.
Отправитель использует какой-то общеизвестный алгоритм MAC, вводит сообщение и секретный ключ K и выдает значение MAC.
Подобно хешу, функция MAC также сжимает произвольный длинный вход в выход фиксированной длины. Основное различие между хешем и MAC заключается в том, что MAC использует секретный ключ во время сжатия.
Отправитель пересылает сообщение вместе с MAC. Здесь мы предполагаем, что сообщение отправлено открытым текстом, поскольку мы заинтересованы в обеспечении аутентификации источника сообщения, а не конфиденциальности. Если требуется конфиденциальность, то сообщение нуждается в шифровании.
При получении сообщения и MAC получатель передает полученное сообщение и общий секретный ключ K в алгоритм MAC и повторно вычисляет значение MAC.
Получатель теперь проверяет равенство только что вычисленного MAC с MAC, полученным от отправителя. Если они совпадают, то получатель принимает сообщение и уверяет себя, что сообщение было отправлено предполагаемым отправителем.
Если вычисленный MAC-адрес не совпадает с MAC-адресом, отправленным отправителем, получатель не может определить, было ли это сообщение изменено или источник был фальсифицирован. Как итог, получатель безопасно предполагает, что сообщение не является подлинным.
Ограничения MAC
Есть два главных ограничения MAC, оба из-за его симметричного характера работы —
-
Установление общего секрета.
-
Он может обеспечить аутентификацию сообщений среди заранее определенных законных пользователей, которые имеют общий ключ.
-
Это требует установления общего секрета до использования MAC.
-
-
Неспособность обеспечить невозвращение
-
Безотказность — это гарантия того, что отправитель сообщения не может отрицать ранее отправленные сообщения, а также обязательства или действия.
-
Метод MAC не предоставляет услугу безотказности. Если отправитель и получатель участвуют в споре о происхождении сообщения, MAC не может предоставить доказательство того, что отправитель действительно отправил сообщение.
-
Хотя никакая третья сторона не может вычислить MAC, отправитель может отрицать отправку сообщения и утверждать, что получатель подделал его, так как невозможно определить, какая из двух сторон вычислила MAC.
-
Установление общего секрета.
Он может обеспечить аутентификацию сообщений среди заранее определенных законных пользователей, которые имеют общий ключ.
Это требует установления общего секрета до использования MAC.
Неспособность обеспечить невозвращение
Безотказность — это гарантия того, что отправитель сообщения не может отрицать ранее отправленные сообщения, а также обязательства или действия.
Метод MAC не предоставляет услугу безотказности. Если отправитель и получатель участвуют в споре о происхождении сообщения, MAC не может предоставить доказательство того, что отправитель действительно отправил сообщение.
Хотя никакая третья сторона не может вычислить MAC, отправитель может отрицать отправку сообщения и утверждать, что получатель подделал его, так как невозможно определить, какая из двух сторон вычислила MAC.
Оба эти ограничения можно преодолеть с помощью цифровых подписей на основе открытого ключа, которые обсуждаются в следующем разделе.