HMACMD5 Класс (System.Security.Cryptography) | Microsoft Learn
- Ссылка
Определение
- Пространство имен:
- System.Security.Cryptography
- Сборка:
- System.Security.Cryptography.Algorithms.dll
- Сборка:
- System.Security.Cryptography.dll
- Сборка:
- mscorlib.dll
- Сборка:
- netstandard. dll
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Вычисляет хэш-код аутентификации сообщения (HMAC) с помощью хэш-функции MD5.
public ref class HMACMD5 : System::Security::Cryptography::HMAC
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")] public class HMACMD5 : System.Security.Cryptography.HMAC
public class HMACMD5 : System.Security.Cryptography.HMAC
[System.Runtime.InteropServices.ComVisible(true)] public class HMACMD5 : System.Security.Cryptography.HMAC
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>] type HMACMD5 = class inherit HMAC
type HMACMD5 = class inherit HMAC
[<System. Runtime.InteropServices.ComVisible(true)>] type HMACMD5 = class inherit HMAC
Public Class HMACMD5 Inherits HMAC
- Наследование
Object
HashAlgorithm
KeyedHashAlgorithm
HMAC
HMACMD5
- Атрибуты
UnsupportedOSPlatformAttribute ComVisibleAttribute
HMACMD5 — это тип хэш-алгоритма, созданного на основе хэш-функции алгоритма хэширования сообщений 5 (MD5) и используемого в качестве кода проверки подлинности на основе хэша сообщений (HMAC). Процесс HMAC смешивает секретный ключ с данными сообщения, хэширует результат с хэш-функцией, перемешивает это хэш-значение с секретным ключом еще раз, а затем применяет хэш-функцию еще раз.
HMAC можно использовать для определения того, было ли сообщение, отправленное по небезопасным каналам, изменено, при условии, что отправитель и получатель совместно используют секретный ключ. Отправитель вычисляет хэш-значение для исходных данных и отправляет исходные данные и хэш-значение в виде одного сообщения. Получатель пересчитывает хэш-значение полученного сообщения и проверяет, соответствует ли вычисляемый HMAC переданный HMAC.
Любое изменение данных или хэш-значения приводит к несоответствию, так как знание секретного ключа требуется для изменения сообщения и воспроизведения правильного хэш-значения. Таким образом, если исходные и вычисляемые хэш-значения совпадают, сообщение проходит проверку подлинности.
MD5 — это криптографический хэш-алгоритм, разработанный в RSA Лаборатории. HMACMD5 принимает ключи любого размера и создает хэш-последовательность длиной 128 бит.
Из-за конфликта с MD5 корпорация Майкрософт рекомендует использовать SHA256.
Конструкторы
HMACMD5() | Инициализирует новый экземпляр класса HMACMD5 ключом, созданным с помощью алгоритма генерации случайных чисел. |
HMACMD5(Byte[]) | Инициализирует новый экземпляр класса HMACMD5, используя указанный ключ. |
Поля
HashSizeInBits | Хэш-размер, создаваемый алгоритмом HMAC MD5 в битах. |
HashSizeInBytes | Хэш-размер, созданный алгоритмом HMAC MD5 в байтах. |
HashSizeValue | Представляет размер вычисленного хэш-кода в битах. (Унаследовано от HashAlgorithm) |
HashValue | Представляет значение вычисляемого хэш-кода. |
KeyValue | Ключ, используемый в хэш-алгоритме. (Унаследовано от KeyedHashAlgorithm) |
State | Представляет состояние процесса вычисления хэша. (Унаследовано от HashAlgorithm) |
Свойства
BlockSizeValue | Получает или задает размер блока, используемый в значении хэша. (Унаследовано от HMAC) |
CanReuseTransform | Получает значение, указывающее на возможность повторного использования текущего преобразования. |
CanTransformMultipleBlocks | Если переопределено в производном классе, возвращает значение, указывающее, возможно ли преобразование нескольких блоков. (Унаследовано от HashAlgorithm) |
Hash | Получает значение вычисленного хэш-кода. (Унаследовано от HashAlgorithm) |
HashName | Возвращает или задает имя используемого хэш-алгоритма. (Унаследовано от HMAC) |
HashSize | Возвращает размер вычисляемого значения HMAC в битах. |
HashSize | Получает размер вычисленного хэш-кода в битах. (Унаследовано от HashAlgorithm) |
InputBlockSize | При переопределении в производном классе получает размер входного блока. (Унаследовано от HashAlgorithm) |
Key | Возвращает или задает ключ, используемый при вычислении HMAC. |
Key | Возвращает или задает ключ, используемый при вычислении HMAC. (Унаследовано от HMAC) |
OutputBlockSize |
Методы
Clear() | Освобождает все ресурсы, используемые классом HashAlgorithm. (Унаследовано от HashAlgorithm) |
ComputeHash(Byte[]) | Вычисляет хэш-значение для заданного массива байтов. (Унаследовано от HashAlgorithm) |
ComputeHash(Byte[], Int32, Int32) | Вычисляет хэш-значение для заданной области заданного массива байтов. (Унаследовано от HashAlgorithm) |
ComputeHash(Stream) | Вычисляет хэш-значение для заданного объекта Stream. (Унаследовано от HashAlgorithm) |
ComputeHashAsync(Stream, CancellationToken) | Асинхронно вычисляет хэш-значение для заданного объекта Stream. (Унаследовано от HashAlgorithm) |
Dispose() | Освобождает все ресурсы, используемые текущим экземпляром класса HashAlgorithm. (Унаследовано от HashAlgorithm) |
Dispose(Boolean) | Освобождает неуправляемые ресурсы, используемые объектом HMACMD5, а при необходимости освобождает также управляемые ресурсы. |
Dispose(Boolean) | Освобождает неуправляемые ресурсы, используемые объектом HMAC, и, если допускается изменение ключа, опционально освобождает управляемые ресурсы. (Унаследовано от HMAC) |
Equals(Object) | Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
GetHashCode() | Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
GetType() | Возвращает объект Type для текущего экземпляра. (Унаследовано от Object) |
HashCore(Byte[], Int32, Int32) | Передает данные из объекта в HMAC-алгоритм для вычисления HMAC. |
HashCore(Byte[], Int32, Int32) | Если переопределено в производном классе, передает данные, записанные в объект, в HMAC-алгоритм для вычисления значения HMAC. (Унаследовано от HMAC) |
HashCore(ReadOnlySpan<Byte>) | Передает данные из объекта в HMAC-алгоритм для вычисления HMAC. |
HashCore(ReadOnlySpan<Byte>) | Передает данные из объекта в HMAC-алгоритм для вычисления HMAC. (Унаследовано от HMAC) |
HashData(Byte[], Byte[]) | Вычисляет HMAC данных с помощью алгоритма MD5. |
HashData(Byte[], Stream) | Вычисляет HMAC потока с помощью алгоритма MD5. |
HashData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>) | Вычисляет HMAC данных с помощью алгоритма MD5. |
HashData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>) | Вычисляет HMAC данных с помощью алгоритма MD5. |
HashData(ReadOnlySpan<Byte>, Stream) | Вычисляет HMAC потока с помощью алгоритма MD5. |
HashData(ReadOnlySpan<Byte>, Stream, Span<Byte>) | Вычисляет HMAC потока с помощью алгоритма MD5. |
HashDataAsync(Byte[], Stream, CancellationToken) | Асинхронно вычисляет HMAC потока с помощью алгоритма MD5. |
HashDataAsync(ReadOnlyMemory<Byte>, Stream, CancellationToken) | Асинхронно вычисляет HMAC потока с помощью алгоритма MD5. |
HashDataAsync(ReadOnlyMemory<Byte>, Stream, Memory<Byte>, CancellationToken) | Асинхронно вычисляет HMAC потока с помощью алгоритма MD5. |
HashFinal() | Завершает вычисление HMAC после обработки последних данных алгоритмом. |
HashFinal() | Если переопределено в производном классе, завершает вычисление HMAC после обработки последних данных алгоритмом. (Унаследовано от HMAC) |
Initialize() | Сбрасывает хэш-алгоритм в исходное состояние. |
Initialize() | Инициализирует новый экземпляр реализации по умолчанию класса HMAC. (Унаследовано от HMAC) |
MemberwiseClone() | Создает неполную копию текущего объекта Object. (Унаследовано от Object) |
ToString() | Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |
TransformBlock(Byte[], Int32, Int32, Byte[], Int32) | Вычисляет хэш-значение для заданной области входного массива байтов и копирует указанную область входного массива байтов в заданную область выходного массива байтов. (Унаследовано от HashAlgorithm) |
TransformFinalBlock(Byte[], Int32, Int32) | Вычисляет хэш-значение для заданной области заданного массива байтов. (Унаследовано от HashAlgorithm) |
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) | Пытается вычислить хэш-значение для заданного массива байтов. (Унаследовано от HashAlgorithm) |
TryHashData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32) | Пытается вычислить HMAC данных с помощью алгоритма MD5. |
TryHashFinal(Span<Byte>, Int32) | Пытается завершить вычисление HMAC после обработки последних данных алгоритмом HMAC. |
TryHashFinal(Span<Byte>, Int32) | Пытается завершить вычисление HMAC после обработки последних данных алгоритмом HMAC. (Унаследовано от HMAC) |
Явные реализации интерфейса
IDisposable.Dispose() | Освобождает неуправляемые ресурсы, используемые объектом HashAlgorithm, а при необходимости освобождает также управляемые ресурсы. (Унаследовано от HashAlgorithm) |
Применяется к
См. также раздел
- службы шифрования
Онлайн генератор HMAC — iCoder.Uz
Инструмент будет генерировать хэш-код аутентификации сообщения (hmac) строки сообщения, используя ключ для AES, HMAC-MD5, HMAC-RIPEMD160, HMAC-SHA1, HMAC-SHA3, HMAC-SHA224, HMAC-SHA256, HMAC-SHA384 , HMAC-SHA512, MD5, PBKDF2, Rabbit-Legacy, rabbit, rc4, RIPEMD160, SHA1, SHA3, SHA224, SHA256, SHA384, SHA512, Tripledes.
Алгоритмы AESHMAC-MD5HMAC-RIPEMD160HMAC-SHA1HMAC-SHA3HMAC-SHA224HMAC-SHA256HMAC-SHA384HMAC-SHA512MD5PBKDF2Rabbit-Legacyrabbitrc4RIPEMD160SHA1SHA3SHA224SHA256SHA384SHA512Tripledes
Инструменты для украшения и уменьшения
Украшатель CSS
Украшает, форматирует и сделает CSS код более читаемым.Уменьшитель CSS
Сделает CSS код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.Украшатель HTML
Украшает, форматирует и сделает HTML код более читаемым.Уменьшитель HTML
Сделает HTML код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.Украшатель Javascript
Украшает, форматирует и сделает Javascript код более читаемым.Уменьшитель Javascript
Сделает Javascript код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.Обфускатор Javascript
Сделает Javascript код более сложным для понимания или чтения для защиты.Украшатель JSON
Украшает, форматирует и сделает JSON код более читаемым.Уменьшитель JSON
Сделает JSON код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.Украшатель XML
Украшает, форматирует и сделает XML код более читаемым.Уменьшитель XML
Сделает XML код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.Украшатель OPML
Украшает, форматирует и сделает OPML код более читаемым.Уменьшитель OPML
Сделает OPML код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.Украшатель SQL
Украшает, форматирует и сделает SQL код более читаемым.Уменьшитель SQL
Сделает SQL код уменьшенным, сжатым путем удаления новых строк, пробелов, комментариев и отступов.Конвертеры
Конвертер CSV в JSON
Конвертирует CSV данные в JSON и украшает.Конвертер CSV в TSV
Конвертирует CSV данные в TSV и украшает.Конвертер CSV в Excel
Конвертирует CSV данные в Excel и украшает.Конвертер CSV в HTML
Конвертирует CSV данные в HTML, просматривая его ниже.Конвертер CSV в SQL
Конвертирует CSV в SQL формат и украшает.Конвертер CSV в Многострочные данные
Конвертирует CSV в многострочные данные и делает его более читаемым.Конвертер CSV в Текст
Конвертирует CSV в обычный текст и делает его более читаемым.Конвертер CSV в XML/JSON
Конвертирует CSV в XML и JSON онлайн.Конвертер CSV в XML
Конвертирует CSV в XML и украшает.Конвертер CSV в YAML
Конвертирует CSV в YAML и украшает.Извлечь столбец CSV
Извлекает один столбец из CSV.Конвертер Excel в CSV
Конвертирует Excel в CSV и украшает.Конвертер Excel в TSV
Конвертирует Excel в TSV и украшает.Конвертер Excel в HTML
Конвертирует Excel в HTML и украшает.Excel в формульный вид
Конвертирует Excel в формульный вид и украшает.Конвертер Excel в SQL
Конвертирует Excel в SQL и украшает.Конвертер Excel в JSON
Конвертирует Excel в JSON и украшает.Конвертер Excel в XML
Конвертирует Excel в XML и украшает.Конвертер Excel в YAML
Конвертирует Excel в YAML и украшает.Конвертер Excel в Текст
Конвертирует Excel в Текст и украшает.Извлечь столбец Excel
Извлекает один столбец из Excel.Конвертер TSV в JSON
Конвертирует данные TSV в JSON и украшает.Конвертер TSV в CSV
Конвертирует данные TSV в CSV и украшает.Конвертер TSV в Excel
Конвертирует данные TSV в Excel и украшает.Конвертер TSV в HTML
Конвертирует данные TSV в HTML, с просмотром ниже.Конвертер TSV в SQL
Конвертирует TSV в SQL формат и украшает.Конвертер TSV в Многострочные данные
Конвертирует TSV в многострочные данные и делает более читаемым.Конвертер TSV в Текст
Конвертирует TSV в обычный текст и делает более читаемым.Конвертер TSV в XML/JSON
Конвертирует TSV в XML/JSON и украшает.Конвертер TSV в XML
Конвертирует TSV в XML и украшает.Конвертер TSV в YAML
Конвертирует TSV в YAML и украшает.Извлечь столбец TSV
Извлекает один столбец из TSV.Конвертер HTML в CSV
Конвертирует HTML в CSV и украшает.Конвертер HTML в EXCEL
Конвертирует HTML в EXCEL и украшает.Конвертер HTML в TSV
Конвертирует HTML в TSV и украшает.Конвертер HTML в Многострочные данные
Конвертирует HTML в Многострочные данные и украшает.Конвертер HTML в JSON
Конвертирует HTML в JSON и украшает.Конвертер HTML в XML
Конвертирует HTML в XML и украшает.Конвертер HTML в YAML
Конвертирует HTML в TAML и украшает.Конвертер HTML в SQL
Конвертирует HTML в SQL и украшает.Конвертер HTML в PHP
Конвертирует HTML в PHP и украшает.Конвертер HTML в Javascript
Конвертирует HTML в Javascript и украшает.Конвертер HTML в Asp
Конвертирует HTML в Asp и украшает.Конвертер HTML в JSP
Конвертирует HTML в JSP и украшает.Конвертер HTML в Perl
Конвертирует HTML в Perl и украшает.Конвертер HTML в Jade
Конвертирует HTML в Jade и украшает.Конвертер HTML в Текст
Конвертирует HTML в обычный текст.Конвертер Jade в HTML
Конвертирует Jade в HTML и украшает.Конвертер Markdown в HTML
Конвертирует Markdown в HTML код.Конвертер JSON в XML
Конвертирует JSON в XML и украшает.Конвертер JSON в CSV
Конвертирует JSON в CSV и украшает.Конвертер JSON в Excel
Конвертирует JSON в Excel и украшает.Конвертер JSON в TSV
Конвертирует JSON to TSV и украшает.Конвертер JSON в YAML
Конвертирует JSON в YAML и украшает.Конвертер JSON в HTML
Конвертирует JSON в HTML и украшает.Конвертер JSON в SQL
Конвертирует JSON в SQL и украшает.Конвертер JSON в C# класс
Конвертирует JSON в C# класс и украшает.Конвертер JSON в Текст
Конвертирует JSON в Текст и украшает.Конвертер SQL в HTML
Конвертирует SQL в HTML и украшает.Конвертер SQL в CSV
Конвертирует SQL в CSV и украшает.Конвертер SQL в Excel
Конвертирует SQL в Excel и украшает.Конвертер SQL в TSV
Конвертирует SQL в TSV и украшает.Конвертер SQL в XML
Конвертирует SQL в XML и украшает.Конвертер SQL в JSON
Конвертирует SQL в JSON и украшает.Конвертер SQL в YAML
Конвертирует SQL в YAML и украшает.Конвертер SQL в Text
Конвертирует SQL в Text и украшает.Конвертер XML в JSON
Конвертирует XML в JSON и украшает.Конвертер XML в CSV
Конвертирует XML в CSV и украшает.Конвертер XML в Excel
Конвертирует XML в Excel и украшает.Конвертер XML в TSV
Конвертирует XML в TSV и украшает.Конвертер XML в YAML
Конвертирует XML в YAML и украшает.Конвертер XML в HTML
Конвертирует XML в HTML и украшает.Конвертер XML в SQL
Конвертирует XML в SQL и украшает.Конвертер XML в Текст
Конвертирует XML в Текст и украшает.Конвертер YAML в XML/JSON/CSV
Конвертирует YAML в JSON/CSV/XML и украшает.Конвертер YAML в Excel
Конвертирует YAML в Excel и украшает.Конвертер YAML в HTML
Конвертирует YAML в HTML и украшает.Конвертер XML в PDF
Конвертировать XML в PDF и Скачать.Конвертер CSV в PDF
Конвертировать CSV в PDF и Скачать.Конвертер TSV в PDF
Конвертировать TSV в PDF и Скачать.Конвертер EXCEL в PDF
Конвертировать EXCEL в PDF и Скачать.Конвертер JSON в PDF
Конвертировать JSON в PDF и Скачать.Конвертер YAML в PDF
Конвертировать YAML в PDF и Скачать.Конвертер SQL в PDF
Конвертировать SQL в PDF и Скачать.Конвертер Текст в PDF
Конвертировать Текст в PDF и Скачать.Конвертер PDF в JPG
Конвертировать PDF в JPG и Скачать.Конвертер PDF в PNG
Конвертирует PDF в PNG и украшает.Конвертер Текст в HTML
Конвертирует Текст в HTML и украшает.Конвертер RSS в JSON
Конвертирует RSS в JSON и украшает.Конвертер OPML в JSON
Конвертирует OPML в JSON и украшает.Инструменты проверки валидности кода
Валидатор CSS
Проверьте ваш исходник CSS.Валидатор Javascript
Проверьте ваш исходник Javascript.Тестер Javascript
Проверьте ваш Javascript код.Тестер HTML
Проверьте ваш HTML код.Валидатор JSON
Проверьте ваш JSON код и украсьте.Валидатор XML
Проверьте ваш XML код и украсьте.Валидатор YAML
Проверьте ваш YAML код и украсьте.Валидатор UUID
Проверьте ваш UUID код.Тестер XPath
Онлайн Xpath тестер.Тестер и генератор регулярных выражений
Проверка регулярного выражения и создание кода.Препроцессоры CSS
Компилятор LESS
Создает отформатированные стили CSS из меньшего источника.Компилятор Stylus
Создает украшенные стили CSS из StylusКонвертер CSS в LESS
Конвертирует CSS в Less и украшает.Конвертер CSS в SCSS
Конвертирует CSS в SCSS и украшает.Конвертер CSS в SASS
Конвертирует CSS в SASS и украшает.Другие утилиты
Генераторы
- Генератор случайных паролей
- Генератор Favicon
- Безопасный каталог htaccess
- Генератор htpasswd
- Генератор Lorem Ipsum
- Генератор адресов IPv4
- Генератор адресов IPv6
- Генератор MAC адресов
- Генератор календарных дат
Конвертеры величин
- Конвертер веса
- Конвертер площади
- Конвертер плотности и массы
- Конвертер байтов/битов
- Конвертер электроэнергии
- Конвертер энергии
- Конвертер силы
- Конвертер Топлива
- Конвертер длины
- Конвертер объема и емкости
- Конвертер температуры
- Конвертер скорости и ускорения
- Конвертер угла
- Конвертер массы
- Конвертер мощности
- Конвертер давления и напряжения
- Конвертер времени
- Астрономический конвертер
- Конвертер частоты
Утилиты
- Информация о браузере
- Конвертер Base64 в Изображение
- Конвертер Изображение в Base64
- Конвертер Файла в Base64
- Генератор символов
- Конвертер текста в HTML объекты
- Парсер URL
- Автообновление страницы
Экранирование и разэкранирование
- Экранирование и разэкранирование JSON
- Экранирование и разэкранирование C#
- Экранирование и разэкранирование Javascript
- Экранирование и разэкранирование Java
- Экранирование и разэкранирование CSV
- Экранирование и разэкранирование SQL
- Экранирование и разэкранирование HTML
- Экранирование и разэкранирование XML
Шифрование
- Генератор HMAC
- Хэш калькулятор
- Стеганография изображений
- Стеганографический декодер
- Генератор паролей MySQL/MariaDB
- Генератор паролей Postgres
Строчные утилиты
- Конвертер базового номера
- Кодер/Декодер Base64
- Средство просмотра различий
- Кодировщик Url
- Декодер Url
- Кодировщик Html
- Декодер Html
- Добавить слэш
- Убрать слеш
- Конвертер числа в слово
- Утилиты строк
- Трансформер текста
- Конвертер регистра
- Калькулятор даты
- Конвертер Даты/Времени в временную метку Unix
- Конвертер временную метку Unix в время Дата/Время
- Конвертер Секунд в человеческое время
- Конвертер Секунд в Часы:Минуты:Секунды
Конверторы изображений
- Конвертер JPG в PNG
- Конвертер PNG в JPG
- Конвертер GIF в PNG
- Конвертер PNG в GIF
- Конвертер BMP в PNG
- Конвертер BMP в JPG
- Генератор изображений с закругленными углами
Инструменты домена и IP
- Получить IP и имя хоста
- Просмотр имени хоста
- Whois сервис
- Просмотр DNS
- Просмотр MX
- Просмотр сервера имён
- Проверка IP сайта
- IP утилиты
- Мой IP адрес
Редакторы кода
- Просмотр исходного кода
- Онлайн Редактор Кода
- Пример кода
Конвертеры цвета
- Конвертер RGB в HEX
- Конвертер RGB в CMYK
- Конвертер RGB в HSV
- Конвертер HEX в HSV
- Конвертер HEX в CMYK
- Конвертер HSV в CMYK
HMAC — frwiki.
wikiHMAC , стоя на хэш-ключом кода аутентификации сообщения , представляет собой тип кода аутентификации сообщения (CAM), или MAC ( сообщение кода аутентификации ), вычисляется с использованием криптографической хеш — функции в комбинации с секретным ключом . Как и любой CAM, его можно использовать для одновременной проверки целостности данных и подлинности сообщения. Любая итеративная хеш-функция, например MD5 или SHA-1., может использоваться при расчете HMAC; имя результирующего алгоритма — HMAC-MD5 или HMAC-SHA-1. Криптографическое качество HMAC зависит от криптографического качества хэш-функции, а также размера и качества ключа.
Итеративная хеш-функция разбивает сообщение на блоки фиксированного размера и выполняет итерацию по ним с помощью функции сжатия . Например, MD5 и SHA-1 работают с 512-битными блоками. Размер вывода HMAC такой же, как и у хэш-функции (128 или 160 бит в случае MD5 и SHA-1), хотя при необходимости он может быть усечен.
Резюме
- 1 Строительство
- 2 См. Также
- 2.1 Библиография
- 2.2 Связанная статья
- 2.3 Внешние ссылки
- 3 ссылки
Строительство
Генерация HMAC SHA-1.
Функция HMAC определяется следующим образом:
- HMACK(м)знак равночас((K⊕опвd)||час((K⊕япвd)||м)){\ displaystyle \ operatorname {HMAC} _ {K} (m) = h {\ Bigg (} (K \ oplus opad) \; || \; h {\ Big (} (K \ oplus ipad) \; || \; m {\ Big)} {\ Bigg)}}
с участием:
- h : итеративная хеш-функция,
- K : секретный ключ, хешируемый функцией h, если он длиннее, чем размер ее блока, затем дополняется нулями, чтобы он достиг размера блока функции h
- m : сообщение для аутентификации,
- «||» обозначает конкатенацию и « » исключающее «или» ,⊕{\ displaystyle \ oplus}
- ipad и opad , каждый размер блока, определяется следующим образом: ipad = 0x363636 . .. 3636 и opad = 0x5c5c5c … 5c5c. Таким образом, если размер блока хеш-функции составляет 512 бит, ipad и opad — это 64-байтовые повторения, соответственно, 0x36 и 0x5c.
Построение и анализ HMAC были впервые опубликованы в 1996 году Михиром Белларе, Ран Канетти и Хьюго Кравчиком (написавшим RFC 2104). FIPS PUB 198 обобщает и стандартизирует использование HMAC. HMAC-SHA-1 и HMAC-MD5 используются в протоколах IPsec и TLS . HMAC SHA-256 используется для веб-токенов JWT Json ( RFC 7519).
Смотрите также
Библиография
- (ru) Михир Белларе, Ран Канетти и Хьюго Кравчик, Ключ хеш-функций для аутентификации сообщений , CRYPTO 1996, стр. 1–15 (PS или PDF) .
- (ru) Михир Белларе, Ран Канетти и Хьюго Кравчик, Аутентификация сообщений с использованием хэш-функций: конструкция HMAC , CryptoBytes 2 (1), лето 1996 г. (PS или PDF) .
Связанная статья
- CBC-MAC
Внешние ссылки
- RFC 2104: HMAC: хеширование с ключом для аутентификации сообщений
- RFC 2202: набор тестов для HMAC-MD5 и HMAC-SHA1, а также реализация C алгоритма HMAC-SHA1
- (ru) FIPS PUB 198, Код аутентификации сообщения с ключом-хешем
- (ru) Инструменты генератора HMAC, поддерживающие SHA256.
- (ru) https://convert-tool.com/
Рекомендации
- ↑ а и б (о) Запрос комментариев п уплотнительных 2104 .
- ↑ (в) Запрос на комментарии п O 7519 .
- ↑ (в) Запрос на комментарии п O 2202 .
<img src=»https://fr.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1×1″ alt=»» title=»»>
Является ли HMAC-MD5 безопасным для проверки подлинности зашифрованных данных?
Спросил
Изменено 5 лет, 7 месяцев назад
Просмотрено 22k раз
$\begingroup$
Я что-то читал о том, что конструкция HMAC способна уменьшить проблему коллизий в базовом хеше.
Означает ли это, что что-то вроде HMAC-MD5 по-прежнему можно считать безопасным для проверки подлинности зашифрованных данных?
- hmac
- md5
$\endgroup$
2
$\begingroup$
Да, в настоящее время нет известных атак на HMAC-MD5.
В частности, после первых коллизионных атак на MD5 Михир Белларе (один из изобретателей HMAC) придумал новое доказательство безопасности для HMAC, не требующее сопротивления коллизиям:
» Abstract: HMAC был доказан Белларом, Канетти и Кравчиком (1996) в качестве PRF, предполагая, что (1) базовая функция сжатия является PRF и (2) итерируемая хеш-функция слабо устойчива к коллизиям. Однако недавние атаки показывают, что предположение (2) неверно для MD5 и SHA-1, что исключает поддержку HMAC на основе доказательств в этих случаях. В этой статье доказывается, что HMAC является PRF при единственном предположении, что функция сжатия является PRF. Это восстанавливает гарантию, основанную на доказательствах, поскольку никакие известные атаки не ставят под угрозу псевдослучайность функции сжатия, а также помогает объяснить устойчивость к атакам, которую HMAC продемонстрировал даже при реализации с хеш-функциями, чья (слабая) устойчивость к коллизиям скомпрометирована. Мы также показываем, что даже более слабое, чем PRF, условие для функции сжатия, а именно то, что это MAC с сохранением конфиденциальности, достаточно, чтобы установить, что HMAC является безопасным MAC, пока хэш-функция удовлетворяет очень слабому требованию вычислительной почти универсален, где опять-таки ценность заключается в том факте, что известные атаки не делают недействительными сделанные предположения»9.0005
Однако , а не означает, что вы должны использовать HMAC-MD5 в новых проектах криптосистем. Перефразируя Брюса Шнайера, «атаки становятся только лучше, а не хуже. » У нас уже есть практические атаки столкновений для MD5, показывающие, что он не соответствует своим первоначальным целям безопасности; вполне возможно, что в любой момент кто-то может придумать способ распространить их на какую-нибудь новую атаку, которая поставит под угрозу безопасность HMAC-MD5. Гораздо лучшим выбором было бы использование HMAC с хеш-функцией, не имеющей известных атак, таких как SHA-2 или SHA-3.
$\endgroup$
3
$\begingroup$
Ответ Илмари Каронена верен, когда HMAC используется по назначению, но это не означает, что HMAC совершенно не подвержен коллизиям MD5:
Учитывая конкретный ключ, обратите внимание, что K xor opad
и K xor ipad
не зависят от сообщения m
. Это означает, что любое столкновение в H((K xor ipad) || m)
приведет к столкновению HMAC
, даже с двумя разными сообщениями.
Для HmacMd5, K xor ipad
будет иметь длину 64 байта. Таким образом, если вы найдете два сообщения m1
и m2
с по крайней мере 64-байтовым общим префиксом pre
, вы можете вычислить ключ K = pre xor ipad
, который создаст коллизию между H((K xor ipad ) || m1)
и H((K xor ipad) || m2)
, что приводит к полной коллизии во всем HMAC.
Это можно использовать двумя способами:
- Вы не доверяете человеку, сгенерировавшему ключ, и HMAC неправильно используется как своего рода контрольная сумма.
- Злоумышленник получает доступ к ключу и может использовать атаку с выбранным префиксом MD5, чтобы вызвать коллизии.
Но, как говорится в принятом ответе, если ключ является секретным и контролируется вами или доверенными сторонами, HmacMd5 по-прежнему безопасен.
$\endgroup$
3
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
9{64}$ оценки MD5. Вы могли бы сделать то же самое для HMAC-MD5, , если бы знали ключ , что делает его непригодным для необычных приложений, таких как обязательства.Но стандартная гипотеза безопасности HMAC-MD5 заключается в том, что это семейство псевдослучайных функций , что предполагает, что злоумышленник не знает ключа. Любая написанная противником программа, которая принимает функцию в качестве параметра и оценивает ее как оракул при произвольных сообщениях по своему выбору, не будет вести себя сильно по-разному, независимо от того, скармливаете ли вы ей (а) HMAC-MD5 при единообразном случайном выборе ключа, или ( б) равномерный случайный выбор функции.
f0_memo = {} защита f0(x): если x не в f0_memo: f0_memo[x] = os.urandom(16) вернуть f0_memo[x] k = os.urandom(32) защита f1(x): вернуть hmac_md5 (к, х) отличительный признак (prf): y0 = prf('привет, мир') y1 = prf('запросить запрос совершенно наоборот, как растет ваша криптовалюта') . {256}$, где $c$ — это количество раз, которое $D$ может позволить себе вычислить HMAC-MD5. 9{64}$ разные входные данные, вы, вероятно, обнаружите коллизию. Это верно для HMAC-MD5 при универсальном случайном ключе и верно для универсальной случайной функции, поэтому априори обнаружение коллизии не нарушает безопасность PRF , различая их самостоятельно. Однако MD5 также обладает тем свойством, что если $x_0 \ne x_1$ сталкивается с MD5, с $\operatorname{MD5}(x_0) = \operatorname{MD5}(x_1)$, то $x_0 \mathbin также \Vert y$ и $x_1 \mathbin\Vert y$ для любого общего суффикса $y$, если $x_0$ и $x_1$ имеют одинаковую длину. 9{64}$ входов, с высокой вероятностью вы найдете коллизию $x_0\ne x_1$; затем, чтобы узнать, является ли оракул HMAC-MD5 или универсальной случайной функцией, выберите суффикс $y$, скажем, один нулевой бит или GIF-файл забавного видео с котом, и запросите оракула еще на двух входах: $x_0 \mathbin \Vert y$ и $x_1 \mathbin\Vert y$. {-128}$ для однородной случайной функции. Для 9{128}$. ‡Как насчет использования HMAC-MD5 в приложении, например, в качестве кода аутентификации сообщения? Оказывается, любое семейство псевдослучайных функций дает хороший код аутентификации сообщения. Целью безопасности кода аутентификации сообщения является невозможность подделки: противник выигрывает, если после запроса к оракулу узнать аутентификаторы для $q$ сообщений по своему выбору, он может подделать аутентификатор для сообщения , ранее не отправленного оракулу 9{64}$ запрашивает оракул и, вероятно, находит коллизию $x_0 \ne x_1$; затем запросите у оракула аутентификатор для $x_0 \mathbin\Vert y$ и подделайте его как аутентификатор для сообщения $x_1 \mathbin\Vert y$. Это единственный способ? Мы могли бы изучить стратегии для подделки HMAC-MD5 напрямую, но есть более простой способ понять безопасность MAC HMAC-MD5, если мы примем безопасность PRF HMAC-MD5, используя приведенный выше формализм.
Предположим, у нас есть успешная подпрограмма подделки, которая и завершается успешно с вероятностью $p$. Тогда мы можем определить различитель: 9{64}$ сообщений под одним ключом! Я также рекомендую не сообщать противнику свой ключ.
* Если $D$ попробует 1000 ключей, у него, очевидно, будет больше шансов на успех, чем если бы он попробовал только 1, но попытка 1000 ключей обходится дороже, независимо от того, пробуете ли вы их на одном компьютере последовательно или тысяча компьютеров параллельно. Обратите внимание, что многоцелевых атак против $n$ целей сразу могут быть дешевле, чем $n$ атак по одной цели по отдельности, но для 256-битного ключа разница не имеет значения для всего мыслимого количества целей $n$ в человеческом существовании. Но будьте осторожны, используя HMAC-MD5 со 128-битными ключами!
† Конечно, точно такая же стратегия отличит любую повторяющуюся хеш-функцию от однородной случайной функции, но не отличит две разные повторяющиеся хеш-функции! С таким же успехом это может быть HMAC-HAVAL128 или что-то еще со 128-битным состоянием. Это не касается заявления о безопасности семейства псевдослучайных функций, которое только об отличии рассматриваемого семейства (HMAC-MD5) от однородной случайной функции того же домена и кодомена.
‡ Может показаться, что сохранение всех выходных данных оракула для поиска коллизий требует больших затрат $c$, но на самом деле поиск коллизий можно выполнить с незначительными дополнительными вычислениями и памятью, используя $\rho$ Полларда, и, если позволяет оракул, можно распараллелить для запуска быстрее (при тех же общих затратах) с помощью алгоритма ван Оршота-Винера.
RFC 2403 — Использование HMAC-MD5-96 в ESP и AH
[Поиск] [txt|html|pdf|bibtex] [Отслеживание] [WG] [Электронная почта] [Diff1] [Diff2] [Nits] From: draft-ietf-ipsec-auth-hmac-md5-96-02 Предлагаемый стандартNetwork Working Group C. Мэдсон Запрос комментариев: 2403 Cisco Systems Inc. Категория: Трек стандартов Р. Гленн НИСТ 19 ноября98 Использование HMAC-MD5-96 в ESP и AH Статус этого меморандума Этот документ определяет протокол отслеживания стандартов Интернета для Интернет-сообщество, а также запросы на обсуждение и предложения по улучшения. Пожалуйста, обратитесь к текущему выпуску «Интернет Стандарты официальных протоколов» (STD 1) для состояния стандартизации и статус этого протокола. Распространение этой памятки не ограничено. Уведомление об авторских правах Авторское право (C) Общество Интернета (1998 г.). Все права защищены. Абстрактный В этом меморандуме описывается использование алгоритма HMAC [RFC-2104] в в сочетании с алгоритмом MD5 [RFC-1321] в качестве аутентификации механизм в пересмотренном IPSEC Encapsulating Security Payload [ESP] и пересмотренный заголовок аутентификации IPSEC [AH]. HMAC с MD5 обеспечивает аутентификацию источника данных и защиту целостности. Дополнительная информация о других компонентах, необходимых для ESP и AH реализации предоставлены [Thayer97а]. 1. Введение В этом меморандуме указано использование MD5 [RFC-1321] в сочетании с HMAC. [RFC-2104] в качестве механизма аутентификации по ключу в контексте Инкапсулирующая полезная нагрузка безопасности и заголовок аутентификации. Цель HMAC-MD5-96 — убедиться, что пакет является аутентичным и не может быть изменен в пути. HMAC — это алгоритм аутентификации с секретным ключом. Целостность данных и аутентификация источника данных, предоставляемая HMAC, зависит от область распространения секретного ключа. Если только источник и пункт назначения знает ключ HMAC, это обеспечивает как источник данных аутентификация и целостность данных для пакетов, отправляемых между двумя стороны; если HMAC правильный, это доказывает, что он должен был быть добавлено источником. Отслеживание стандартов Madson & Glenn [Страница 1]RFC 2403 Использование HMAC-MD5-96 в ESP и AH, ноябрь 1998 г. В этом меморандуме HMAC-MD5-96 используется в контексте ESP и AH. Для получения дополнительной информации о том, как различные части ESP, включая механизм конфиденциальности -- сочетаются друг с другом для обеспечения безопасности службы, см. [ESP] и [Thayer97a]. Для получения дополнительной информации о AH, см. [AH] и [Thayer97a]. Ключевые слова «ДОЛЖЕН», «НЕ ДОЛЖЕН», «ТРЕБУЕТСЯ», «ДОЛЖЕН», «НЕ ДОЛЖЕН», "СЛЕДУЕТ", "НЕ СЛЕДУЕТ", "РЕКОМЕНДУЕТСЯ", "МОЖЕТ" и "ДОПОЛНИТЕЛЬНО" в этом документ следует интерпретировать, как описано в [RFC-2119]. 2. Алгоритм и режим [RFC-1321] описывает базовый алгоритм MD5, а [RFC-2104] описывает алгоритм HMAC. Алгоритм HMAC обеспечивает основу для вставки различных алгоритмов хеширования, таких как MD5. HMAC-MD5-96 работает с 64-байтовыми блоками данных. Требования к заполнению указаны в [RFC-1321] и являются частью алгоритма MD5. Если MD5 построен в соответствии с [RFC-1321], нет необходимости добавлять какие-либо дополнительная прокладка в отношении HMAC-MD5-96. Относительно к «неявному заполнению пакета», как определено в [AH], без неявного пакета требуется прокладка. HMAC-MD5-96 создает 128-битное значение аутентификатора. Этот 128-битный значение может быть усечено, как описано в RFC 2104. Для использования с любым ESP или AH, усеченное значение, использующее первые 96 бит, ДОЛЖНО быть поддерживается. При отправке усеченное значение сохраняется в поле аутентификатора. При получении все 128-битное значение вычисляются, и первые 96 бит сравниваются со значением, хранящимся в поле аутентификатора. Никакие другие длины значений аутентификатора не поддерживается HMAC-MD5-96. Длина 96 бит было выбрано, потому что это значение по умолчанию длина аутентификатора, как указано в [AH] и соответствует требованиям безопасности требования, описанные в [RFC-2104]. 2.1 Производительность [Bellare96a] утверждает, что «производительность (HMAC) по существу такая же, как у базовая хэш-функция». [RFC-1810] обеспечивает некоторую производительность анализ и рекомендации по использованию MD5 с интернетом протоколы. На момент написания этой статьи анализ производительности не проводился. HMAC или HMAC в сочетании с MD5. [RFC-2104] описывает модификацию реализации, которая может улучшить производительность для каждого пакета, не влияя на совместимость. Отслеживание стандартов Madson & Glenn [Страница 2]RFC 2403 Использование HMAC-MD5-96 в ESP и AH, ноябрь 1998 г. 3. Ключевой материал HMAC-MD5-96 — это алгоритм секретного ключа. Хотя фиксированная длина ключа не указанный в [RFC-2104], для использования с ESP или AH фиксированный ключ длина 128 бит ДОЛЖНА поддерживаться. Длины ключей отличные от 128- биты НЕ ДОЛЖНЫ поддерживаться (т. е. только 128-битные ключи должны использоваться HMAC-MD5-96). Длина ключа 128 бит была выбрана исходя из рекомендации в [RFC-2104] (т. е. длина ключа меньше, чем длина аутентификатора уменьшает силу безопасности и ключи длиннее, чем длина аутентификатора существенно не повышает безопасность прочность). [RFC-2104] обсуждает требования к ключевому материалу, который включает обсуждение требований сильной случайности. Сильный псевдо- случайная функция ДОЛЖНА использоваться для генерации требуемого 128-битного ключа. На момент написания этой статьи нет указанных слабых ключей для использования. с ХМАК. Это не означает, что слабых ключей не существует. Если в какой-то момент будет выявлен набор слабых ключей для HMAC, использование этих слабых ключей должно быть отклонено с последующим запросом на заменяющие ключи или вновь согласованную ассоциацию безопасности. [ARCH] описывает общий механизм получения ключевого материала. когда для одной SA требуется несколько ключей (например, когда ESP SA требуется ключ для конфиденциальности и ключ для аутентификации). Чтобы обеспечить аутентификацию источника данных, распределение ключей механизм должен гарантировать, что уникальные ключи выделены и что они распределяются только между сторонами, участвующими в коммуникация. [RFC-2104] дает следующую рекомендацию относительно смена ключей. Текущие атаки не указывают конкретных рекомендуемых частоту ключевых изменений, так как эти атаки практически невыполнимо. Тем не менее, периодическое обновление ключа является фундаментальным практика безопасности, которая помогает против потенциальных слабых мест функции и клавиши, сокращает доступную информацию до криптоаналитик и ограничивает ущерб от открытого ключа. 4. Взаимодействие с механизмом шифрования ESP На момент написания этой статьи не было известных проблем, препятствующих использованию HMAC-MD5-96 с любым конкретным алгоритмом шифрования. Madson & Glenn Standards Track [Страница 3]RFC 2403 Использование HMAC-MD5-96 в ESP и AH, ноябрь 1998 г. 5. Вопросы безопасности Безопасность, обеспечиваемая HMAC-MD5-96, основана на прочности HMAC и, в меньшей степени, сила MD5. [RFC-2104] претензии что HMAC не зависит от свойства сильного столкновения сопротивление, что важно учитывать при оценке использования MD5, алгоритм, который, как показали недавние исследования, гораздо менее устойчив к столкновениям, чем предполагалось вначале. В момент это письмо не существует практических криптографических атак против HMAC-MD5-96. [RFC-2104] утверждает, что для «минимально разумных хеш-функций» «Атака дня рождения», самая сильная известная атака против HMAC, это непрактично. Для хэша блока размером 64 байта, такого как HMAC-MD5-96, атака включая успешную обработку 2**64 блоков, будет невозможно, если только не будет обнаружено, что базовый хэш коллизий после обработки 2**30 блоков. Хэш с такой слабой характеристики сопротивления столкновению, как правило, считаются быть непригодным. Также важно учитывать, что хотя MD5 никогда не разрабатывался для использования в качестве алгоритма хеширования с ключом, HMAC имел эти критерии от начало. Хотя использование MD5 в контексте безопасности данных подвергается переоценке, комбинированный HMAC с алгоритмом MD5 имеет подвергается криптографической проверке. [RFC-2104] также обсуждает потенциальную дополнительную безопасность, которая обеспечивается усечением полученного хэша. Характеристики которые включают HMAC, настоятельно рекомендуется выполнять этот хеш усечение. Поскольку [RFC-2104] обеспечивает основу для включения различных алгоритмы с HMAC, можно заменить MD5 на другие алгоритмы, такие как SHA-1. [RFC-2104] содержит подробное обсуждение о сильных и слабых сторонах алгоритмов HMAC. Как и в случае любого криптографического алгоритма, часть его силы заключается в правильности реализации алгоритма, безопасности механизма управления ключами и его реализации, сила соответствующего секретного ключа и правильности реализация во всех участвующих системах. [RFC-2202] содержит тестовые векторы и пример кода, чтобы помочь в проверке правильность HMAC-MD5-96 код. Madson & Glenn Standards Track [Страница 4]RFC 2403 Использование HMAC-MD5-96 в ESP и AH, ноябрь 1998 г. 6. Благодарности Этот документ частично основан на предыдущих работах Джима Хьюза, те люди, которые работали с Джимом над комбинированным DES/CBC+HMAC-MD5 ESP-преобразования, участники конкурса ANX и члены Рабочая группа IPsec. Мы также хотели бы поблагодарить Хьюго Кравчика за его комментарии и рекомендации относительно некоторых специфических криптографических текстов в этот документ. 7. Ссылки [RFC-1321] Ривест, Р., «Алгоритм дайджеста MD5», RFC 1321, апрель. 1992. [RFC-2104] Кравчик Х., Белларе М. и Р. Канетти, "HMAC: Ключевое хеширование для аутентификации сообщений», RFC 2104, Февраль 1997 года. [RFC-1810] Тач, Дж., «Отчет о производительности MD5», RFC 1810, июнь. 1995. [Bellare96a] Белларе, М., Канетти, Р., и Х. Кравчик, "Keying Hash Функции аутентификации сообщений», Достижения в Криптография, Материалы Crypto96, июнь 1996 г. [ARCH] Кент С. и Р. Аткинсон, "Архитектура безопасности для Интернет-протокол», RFC 2401, 19 ноября.98. [ESP] Кент, С., и Р. Аткинсон, "IP-инкапсуляция безопасности Полезная нагрузка», RFC 2406, ноябрь 1998 г. [AH] Кент С. и Р. Аткинсон, "Заголовок IP-аутентификации", RFC 2402, ноябрь 1998 г. [Thayer97a] Тайер, Р., Дорасвами, Н., и Р. Гленн, "IP Security Дорожная карта документа», RFC 2411, ноябрь 1998 г. [RFC-2202] Ченг П. и Р. Гленн, "Тестовые примеры для HMAC-MD5 и HMAC-SHA-1", RFC 2202, март 1997 г. [RFC-2119] Брэднер, С., "Ключевые слова для использования в RFC для указания Уровни требований», BCP 14, RFC 2119, март 1997 г. Madson & Glenn Standards Track [Страница 5]RFC 2403 Использование HMAC-MD5-96 в ESP и AH, ноябрь 1998 г. 8. Обращение редакции Шерил Мэдсон Сиско Системс, Инк. Электронная почта: [email protected] Роб Гленн НИСТ Электронная почта:С рабочей группой IPsec можно связаться через председателей: Роберт Московиц ИКСА Электронная почта: [email protected] Тед Т'со Массачусетский Институт Технологий Электронная почта: [email protected] Отслеживание стандартов Madson & Glenn [Страница 6]
RFC 2403 Использование HMAC-MD5-96 в ESP и AH, ноябрь 1998 г. 9. Полное заявление об авторских правах Авторское право (C) Общество Интернета (1998 г.). Все права защищены. Этот документ и его переводы могут быть скопированы и предоставлены другие и производные работы, которые комментируют или иным образом объясняют это или содействовать в его реализации, могут быть подготовлены, скопированы, опубликованы и распространяется полностью или частично без ограничения каких-либо вид, при условии, что приведенное выше уведомление об авторских правах и этот параграф включены во все такие копии и производные работы. Однако это сам документ не может быть изменен каким-либо образом, например, путем удаления уведомление об авторских правах или ссылки на Internet Society или другие Интернет-организациям, за исключением случаев, когда это необходимо для целей разработка интернет-стандартов, и в этом случае процедуры для авторские права, определенные в процессе Интернет-стандартов, должны быть следовала или по мере необходимости переводила его на языки, отличные от Английский. Ограниченные разрешения, предоставленные выше, являются бессрочными и не будут отозвано Internet Society или его правопреемниками или правопреемниками. Настоящий документ и информация, содержащаяся в нем, предоставлены на Основа «КАК ЕСТЬ» и ИНТЕРНЕТ-ОБЩЕСТВО И ИНТЕРНЕТ-ИНЖИНИРИНГ TASK FORCE ОТКАЗЫВАЕТСЯ ОТ ВСЕХ ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ НО НЕ ОГРАНИЧИВАЯСЯ ЛЮБОЙ ГАРАНТИЕЙ ТОГО, ЧТО ИСПОЛЬЗОВАНИЕ ИНФОРМАЦИИ ЗДЕСЬ НЕ БУДЕТ НАРУШАТЬ НИКАКИХ ПРАВ ИЛИ ЛЮБЫХ ПОДРАЗУМЕВАЕМЫХ ГАРАНТИЙ КОММЕРЧЕСКАЯ ПРИГОДНОСТЬ ИЛИ ПРИГОДНОСТЬ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ.