Основные примечания к прочтению 08-Аутентификация сообщения_Хэш-функция_MD5

Безопасность

Предисловие:

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

1. Аутентификация шифрования сообщения

Его основная цель — проверить, было ли сообщение изменено, так как же это проверить? Распространенным методом является использование кода аутентификации сообщения (MAC). Дайджест сообщения (msg), чтобы получить результатMAC=CK1(msg)MAC=C_{K1}(msg). Затем он склеивается с открытым текстом (М), и результат шифрования получается под действием функции шифрования Е и секретного ключа К2.C=EK2(msg+mac)C=E_{K2}(msg+mac), отправьте его другой стороне.

После того, как другая сторона получает зашифрованный текст C, она сначала использует функцию дешифрования D и секретный ключ K1 для расшифровки, чтобы получить открытый текст.MAC+M=DK2(C)MAC+M=D_{K2}(C), а затем используйте функцию алгоритма дайджеста и ключ K1 для шифрования открытого текста M, чтобы получить результатMAC2=CK1(M)MAC2=C_{K1}(M),какMAC2=MAC MAC2=MACЭто означает, что сообщение нормальное и отправлено доверенной стороной, если оно не равно, результат будет отброшен.

消息认证流程.png

2. Хеш-функция

Также известная как хеш-функция, ее сила заключается в способности преобразовывать данные переменной длины в строки фиксированной длины.Хеш-функция является односторонней функцией, и результат необратим. формулаh=H(M)h=H(M)хэш-значение h обычно составляет 128 бит или 160 бит.

Хэш-функция в основном используется для извлечения дайджеста сообщения в цифровой подписи.

2.1 MD5

Наиболее часто MD5 используется для определения того, был ли файл изменен.Например, если вы хотите отправить сжатый пакет другим, вы можете сгенерировать значение MD5 файла сжатого пакета и отправить его другой стороне вместе. Другая сторона также генерирует значение MD5 после получения файла и сравнивает его с отправленным значением MD5, если оно непротиворечиво, проблем нет.

import hashlib 

name = "我爱信息安全"
name_md5 = hashlib.md5(name.encode('utf8')).hexdigest()
print(f"原文:{name}\nMD5:{name_md5}")

# 原文:我爱信息安全
# MD5:f88750f47f532a82055d741060a993e2

Пример приложения MD5:

MD5 также можно использовать для борьбы с пиявками контента CDN.Предположим, у вас есть видеосайт для научно-популярных знаний, а его видеоконтент хранится в облаке.Экономические потери. Итак, что вы будете делать дальше?

Общие методы защиты от пиявки включают в себя: значение Referer, Cookie, IP, заголовок и т. д., но они могут быть подделаны и не очень безопасны. Затем вы можете использовать метод проверки токена, чтобы проверить действительность ссылки. Конкретные методы заключаются в следующем:

Например, ссылка: /test/p/java.image?token=0, секретный ключ: secret, set secret="java"

  1. настраиватьсрок действия ссылкисоставляет 60 минут, expire_time = now_time + 3600, формат — метка времени. expire_time=1620814643+3600=1620818243
  2. Рассчитать значение MD5, tok = MD5(url_path+expire_time+secret). tok = MD5("/test/p/java.image"+1620818243+"java")=ef9a78bf0fa14e20304a5fce49342f3c
  3. Конечный результат: tok = tok[средние 6 цифр]+expire_time, tok=e20304+1620818243=e203041620818243
  4. Конечный URL:/test/p/java.image?token=e203041620818243

Когда пользователь запрашивает этот URL-адрес, платформа CDN получает время истечения срока действия.1620818243, затем выполните тот же расчет MD5, чтобы увидеть,tokenЗначения совпадают.Если они совпадают, вы можете проверить, просрочено ли время истечения.

Суммировать

Аутентификация сообщения в основном предназначена для проверки конфиденциальности сообщения, что по-прежнему очень важно.

Справочная статья:

сегмент fault.com/ah/119000002…

cloud.Tencent.com/developer/you…