V6.2.7 Algorithms
Requirement:#
Verify that encrypted data is authenticated via signatures, authenticated cipher modes, or HMAC to ensure that ciphertext is not altered by an unauthorized party.
Explanation:#
Данное требование подчеркивает необходимость проверки целостности и подлинности зашифрованных данных. Это достигается с помощью HMAC (Hash-based Message Authentication Code) для обеспечения того, что шифротекст остается неизменным и не был подделан неавторизованными сторонами.
Remediation:#
Рассмотрим несколько реальных примеров того, как можно реализовать это требование:
Signatures#
Подписи обеспечивают способ проверки целостности и подлинности зашифрованных данных. Они предполагают использование алгоритмов с асимметричными ключами, когда отправитель подписывает данные своим закрытым ключом, а получатель может проверить подпись с помощью соответствующего открытого ключа.
В этом примере данные шифруются с помощью открытого ключа получателя. Затем отправитель подписывает шифрованный текст с помощью своего закрытого ключа. Получатель может проверить подпись с помощью открытого ключа отправителя, чтобы обеспечить целостность и подлинность зашифрованных данных.
Authenticated Cipher Modes#
Authenticated cipher modes, такие как AES-GCM (Galois/Counter Mode), обеспечивают как конфиденциальность, так и подлинность. Они генерируют метку аутентификации вместе с шифротекстом, которая может быть использована для проверки целостности расшифрованных данных.
В этом примере данные шифруются с использованием режима AES-GCM, который генерирует аутентификационную метку вместе с шифротекстом. При расшифровке аутентификационная метка сравнивается с ожидаемым значением для обеспечения целостности расшифрованных данных.
HMAC (Hash-based Message Authentication Code)#
HMAC - это механизм проверки целостности и подлинности данных с использованием общего секретного ключа и криптографической хэш-функции. Он генерирует хэш-значение фиксированного размера, которое добавляется к данным, а получатель может проверить целостность путем повторного вычисления HMAC и сравнения его с полученным хэш-значением.
В этом примере алгоритм HMACSHA256 используется для вычисления HMAC открытого текста. Затем HMAC добавляется к данным, и во время проверки получатель повторно вычисляет HMAC и сравнивает его с полученным хэш-значением для проверки целостности.
Используя подписи, аутентифицированные режимы шифрования или HMAC, вы можете гарантировать, что зашифрованные данные остаются неизменными и не были подделаны неавторизованными сторонами, обеспечивая целостность и подлинность ваших криптографических операций.
Additional:#
CWE - CWE-326: Недостаточная надежность шифрования (4.10) (mitre.org)