Каковы способы контроля целостности потока сообщений

Контроль целостности сообщений

Контрольная сумма

Контрольная сумма—некоторое значение, рассчитанное изПоследовательностиданных путѐм применения определѐнногоалгоритма, используемое для проверки правильности передачиданных (для исключения влияния каких-либо помех припередаче).

F:Сообщения n,n+1,n+2…бит->контрольная сумма nбит.

Добавляется к блоку данных: . Получатель вычисляетконтрольную сумму от полученного сообщения и проверяетсоответствие переданному значению.

Продольный контроль четности (XOR )

Общий принцип постоения:

Входное сообщение рассматривается как

последовательность n-битных блоков.Сообщение обрабатываетсяпоследовательно блок за блоком, исоздается m-битное значение кода.

(продольный избыточный контроль).

побитный XOR всех блоков:

M= bi1| bi2| . . .| bik

Сi = bi1 +bi2+. . .+bik

ЗдесьСi -i-ыйбитхэш-кода, 1 i n.k -число n-битных блоков входа.bij -i-ый бит в j-омблоке.-операция XOR.В результатеполучается хэш-код длины n, известныйкак продольный избыточный контроль. Этоэффективно при случайных сбоях дляпроверки целостности данных.Деление сообщения на 32-или 16-битные слова и ихсуммирование, что применяется, например, в TCP/IP.

Ротационный контроль четности

(RXOR ):

однобитный циклический сдвиг послевычисления кода:

1. Установить n-битный код в ноль.

2. Для каждого n-битного блокаданных выполнить следующиеоперации:

– сдвинуть циклически текущийкод влево на один бит;

– выполнить операцию XOR дляочередного блока и кода.

Циклический избыточный код

(CRCангл.Cyclicredundancycode)

Алгоритм CRC базируется на свойствах деления состатком двоичных многочленов:

При «правильном» выборе порождающегомногочлена G(x), остатки от деления на него будутобладать нужными свойствами—хорошейперемешиваемостью и быстрым алгоритмомвычисления. Второе обеспечивается тем, что степеньпорождающего многочлена обычно пропорциональнадлине байта или машинного слова (например 8, 16или 32).

19. Контроль целостности. Защита от намеренных изменений. Недостатки XOR и RXOR в режиме ECB. Недостатки XOR в режиме CBC. Шифрование, хэш-функция, код аутентичности.

Контроль целостности

Способы контроля целостности.

1.Шифрование (симметричное,

Шифрование может быть использовано для контроляцелостности сообщения при условии структурированностисообщения. Пример: структурированность протокола пакетаIPv4 позволяет использовать шифрование для контроляцелостности.

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

Хэш-функцией называется односторонняяфункция, предназначенная для получения хэш-кода (дайджеста,»отпечатков пальцев«) файла,сообщения или некоторого блока данных.

Хэш-код создается функцией Н:

hM= H (M), где М является сообщениемпроизвольной длины и hMявляется хэш-кодомфиксированной длины.

3.Код аутентичности сообщения

Простым способом преобразовать однонаправленную хэш-функцию вимитовставку (MAC) является шифрование хэш-значения симметричнымалгоритмом. Такой MAC может быть преобразован в однонаправленную хэш-функцию с помощью раскрытия ключа.

Другим способом является выработка имитовставки (MAC) с помощьюспециализированного алгоритма имитозащиты на основе симметричногоалгоритма шифрования.

CBC-MAC: Простейшим способом создать зависящую от ключаимитовставку—шифрование сообщения блочным алгоритмом в режимахCBC или CFB. Имитовставкой является последний шифрованный блок,зашифрованный в этих режимах. Потенциальная проблема, связанная сбезопасностью этого метода, состоит в том, что получатель должен знатьключ, и этот ключ позволяет ему генерировать сообщения с тем жезначением имитовставки, что и у присланного сообщения, таким образом,имитовставка на основе симметричного шифра не дает знания—отправитель или получатель сформировал эту имитовставку. Отсюда следует,что имитовставка на основе симметричного шифра не может заменять собойэлектронную подпись.

Источник

Компьютерные технологии (архив 2012г. КГУ, Богомолов)

Лекция 12. Контроль целостности данных. Хеш-функции. Имитовставка. ЭЦП. Аутентификация. Протоколы AAA.

Контроль целостности данных.

Целостности данных — при котором отсутствует любое ее изменение либо изменение осуществляется только преднамеренно субъектами, имеющими на него право.

Методы контроля целостности данных:

    Полная копия данных

Полная копия данных.

Создаются полные копии данных и потом сверяются.

  • простота реализации
  • полный контроль данных (до бита)
  • большой объем
  • копии можно подменить
  • копиями можно воспользоваться (например: если данные — пароль)

Рис. Контроль целостности с помощью полной копии данных

  1. контроль целостности файлов

Контрольная сумма.

Контрольная сумма — значение, рассчитанное по входным данным с помощью определённого алгоритма.

  • высокая скорость вычисления
  • малый размер
  • стандартный размер
  • можно подменить
  • для одного значения существует множество исходных данных
  • можно подобрать исходные данные к значению за приемлемое время (например: получить пароль)
Читайте также:  Caviar platinum natura siberica маска способ применения

Рис. Контроль целостности с помощью контрольной суммы

Примеры контрольных сумм: CRC8, CRC16, CRC32

исходный текст: Контроль целостности данных

crc32 (длина 32 бита)

  1. контроль целостности файлов
  2. контроль передаваемых данных по каналам связи
  3. контроль целостности при считывании данных (например: c HDD)

Хеш (хэш, криптографический хеш) — значение, рассчитанное по входным данным с помощью криптографического алгоритма.

  • малый размер
  • стандартный размер
  • нельзя подобрать исходные данные к значению за приемлемое время (например: получить пароль)
  • низкая скорость вычисления (сопоставима с шифрованием)
  • можно подменить
  • для одного значения существует множество исходных данных

Рис. Основная задача хеш функций

Вычисляют хеш шифрованием данных блочным алгоритмом в режимах CBC, но со стандартным (известным) ключом. Хешем является последний шифрованный блок.

ГОСТ Р 34.11-94

Входное сообщение M разделяется на блоки mn,mn ? 1,mn ? 2. m1 по 256 бит. В случае если размер последнего блока mn меньше 256 бит, то к нему приписываются слева нули для достижения заданной длины блока.

Рис. Вычисление хеш по ГОСТ Р 34.11-94 (сравните с CBC)

h — значение хеш-функции сообщения M

Len(M) — длина сообщения

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

исходный текст: Контроль целостности данных

md2 (длина 128 бит)

md4 (длина 128 бит)

md5 (длина 128 бит)

sha1 (длина 160 бит)

sha224 (длина 224 бит)

sha256 (длина 256 бит)

sha384 (длина 384 бит)

sha512 (длина 512 бит)

ГОСТ Р 34.11-94 (длина 256 бит)

  1. контроль целостности файлов
  2. контроль передаваемых данных по каналам связи
  3. контроль целостности при считывании данных (например: c HDD)
  4. хеши паролей
  5. аутентификация (CRAM-MD5, DIGEST-MD5 и т.д.)

Имитовставка (MAC, message authentication code — код аутентичности сообщения)

Имитовставка — значение, рассчитанное по входным данным с помощью криптографического алгоритма с использованием секретного элемента (ключа), известного только отправителю и получателю.

  • малый размер
  • стандартный размер
  • нельзя подобрать исходные данные к значению за приемлемое время (например: получить пароль)
  • нельзя подменить без секретного элемента (ключа)
  • низкая скорость вычисления (сопоставима с шифрованием)
  • для одного значения существует множество исходных данных
  • секретный ключ известен как минимум двоим

Вычисляют имитовставку шифрованием данных блочным алгоритмом в режимах CBC. Имитовставкой является последний шифрованный блок.

Рис. Вычисление имитовставки

Имитовставка по ГОСТ 28147-89

Длина имитовставки от 1 до 32 бит.

Открытый текст TO разбивается на блоки длиной 64 бита. Последний блок в случае необходимости дополняется нулями.

Первый блок шифруется, что и сообщение, но с применением 16 циклов вместо 32. Результат по битам по модулю 2 складывается с вторым блоком и так же шифруется. Результат складывается с третьим блоком. и так далее.

Первые 32 бита получившегося блока составляют имитовставку. Спецификация шифра предусматривает использование в качестве имитовставки и меньшее количество бит по желанию, но не большее.

Рис. Проблема имитовставки

Получатель должен знать ключ, и этот ключ позволяет ему генерировать сообщения с тем же значением имитовставки, что и у присланного сообщения, таким образом, имитовставка на основе симметричного шифра не дает знания — отправитель или получатель сформировал эту имитовставку.

Отсюда следует, что имитовставка на основе симметричного шифра не может заменять собой электронную подпись!

  1. контроль целостности файлов
  2. контроль передаваемых данных по каналам связи
  3. аутентификации источника данных (не во всех случаях)

Обычные хэш-алгоритмы использовать для вычисления имитовставки нельзя (MD5 и т.д.) т.к. отсутствует секретный ключ. Поэтому создан HMAC .

HMAC (H ash-based Message Authentication Code ) — механизм включения секретного ключа в существующие хэш-алгоритмы.

Электронная цифровая подпись — зашифрованное значение вычисленного хеша по входным данным.

  • малый размер
  • стандартный размер
  • нельзя подобрать исходные данные к значению за приемлемое время (например: получить пароль)
  • нельзя подменить без секретного элемента (ключа)
  • секретный ключ известен одному
  • низкая скорость вычисления (сопоставима с шифрованием)
  • для одного значения существует множество исходных данных

Рис. Создание и проверка ЭЦП

  1. вычисляется хеш
  2. шифруется хеш
  1. контроль целостности файлов
  2. контроль передаваемых данных по каналам связи
  3. аутентификации источника данных (кто создал подпись)

Аутентификация

Аутентификация (Authentication) — проверка принадлежности субъекту доступа по предъявленному им идентификатору (пароль, ключ и т.д.); подтверждение подлинности.

  • парольные (PIN коде и т.д.) — уникальная последовательность символов, которую пользователь должен знать.
  • «ключе» — в случае электронных систем это электронный ключ, который хранится на носителе (смарт-карты, электронные таблетки iButton, USB-токены и т. д.)
  • биометрические (отпечаток пальца, рисунок радужной оболочки глаза, форма лица, параметры голоса и т. д.)
  • криптографические
Читайте также:  Способы обмена данных с внешними устройствами

Рис. Методы аутентификации

Аутентификация по многоразовым паролям

Используется один пароль многократно.

Хотя аутентификация может использоваться не только к удаленным системам, методы аутентификации будем рассматривать сразу на примерах к удаленным системам

Протоколы аутентификации

PAP (Password Authentication Protocol)

PAP — аутентификация по имени и паролю пользователя. Протокол PAP ненадежен при использовании в сетях, т.к. пароли можно перехватить.

  1. клиент посылает имя и пароль серверу
  2. сервер сверяет присланный пароль с паролем в своем хранилище

Рис. Протокол PAP

Недостатки и пути решения:

  1. подбор паролей
  2. просмотр паролей в системе
  3. перехват паролей при передачи

Решение проблемы «подбора паролей» :

  1. использовать «сильные» пароли
  2. блокировка при неправильных попытках (например: 5 раз) ввода пароля

Рис. Плохие пароли

Почему эти пароли плохие:

«2» — один символ, легко перебрать.

«123456» — один из популярных паролей (еще примеры — 123; 111; qwerty; qazwsx; qazwsxedc; password; «ваш логин»; «номер телефона»; «дата рождения» и т.д.).

«пароль» — словарное слово, после перебора популярных паролей, перебирают слова из словаря.

«Gjhs6129dgGF_9eK_sj2vc9d« — пароль очень сложный, его не запомнят, а запишут и приклеят к монитору, пароль должен быть только в голове (или в сейфе).

Наиболее хорошим вариантом являются пароли построенные на фразах:

  1. хорошо запоминаются
  2. достаточно длинные
  3. словарные атаки не проходят

Рис. Хорошие пароли

Решение проблемы «просмотра паролей в системе» :

  1. шифрование (для расшифровывания нужно будет при себе носить ключ шифрования, при хранении на диске не защищенного ключа шифрования шифрование пароля не имеет смысла).
  2. не хранить пароль в системе, а хранить его контрольную сумму или хэш.

Рис. Пароли не хранятся в системе, а хранятся их хэши

Пароли в системе не хранятся, при этом пользователь проходит аутентификацию по паролю.

В большинстве современных систем именно так и сделано. Не только в ОС, но и в СУБД, форумах, сайтах и т.д.

Решение проблемы «перехвата паролей при передачи»:

  1. шифровать передаваемые пароли
  2. использовать алгоритмы без передачи паролей (рассмотрены ниже ( CHAP ))

Рис. Шифрование передаваемых паролей

В настоящее время чаще всего для шифрования паролей используется протокол SSL ( Secure Sockets Layer — уровень защищённых сокетов, http://ru.wikipedia.org/wiki/SSL).

Протоколы аутенти фикации вызов-ответ

CHAP (Challenge Handshake Authentication Protocol)

CHAP — аутентификация без передачи пароля.

  1. пользователь посылает серверу запрос на доступ (login)
  2. сервер отправляет клиенту случайное число
  3. на основе этого случайного числа и пароля пользователя клиент вычисляет хеш
  4. клиент пересылает хеш серверу
  5. сервер сверяет присланный хеш со своим вычисленным
  6. в случайные промежутки времени сервер отправляет новый и повторяет шаги с 2 по 5.

Рис. Протокол CHAP

Основной недостаток — необходимо хранить пароль на сервере.

CRAM — ( challenge-response authentication mechanism)

Основан на вычислении имитовставки по алгоритму HMAC, роль симметричного ключа выполняет пароль.

В зависимости от алгоритма хэширования — CRAM-MD5, CRAM-MD4, CRAM-SHA1 и т.д.

  1. пользователь посылает серверу запрос на доступ (login)
  2. сервер вычисляет имитовставку с секретным ключом-паролем пользователя для строки (случайное число + временная метка + доменное имя сервера) (например: )
  3. сервер отправляет клиенту имитовставку
  4. клиент вычисляет имитовставку из строки — (идентификатор клиента (login) + пробел + имитовставка сервера)
  5. отправляет серверу
  6. сервер сверяет полученное с ожидаемым


Рис. Протокол CRAM

В CRAM вместо пароля на сервере может хранится хэш.

Digest access authentication (DIGEST-MD5)

Схема аналогичная CHAP.

  1. запрос клиента (без аутентификации)
  2. ответ сервера (Unauthorized), содержащий
    «realm» — строка (например: realm=testrealm@host.com)
    «nonce» — случайное число сервера (например: nonce=»dcd98b7102dd2f0e8b11d0f600bfb0c093″)
  3. клиент вычисляет хэш HA1 = MD5 (username: realm: password)
  4. клиент вычисляет хэш HA2 = MD5 (URI)
  5. клиент вычисляет хэш для ответа Response = MD5(HA1:nonce:nc:cnonce:qop:HA2)
    «nc» — счётчика запросов
    «cnonce» — клиентское случайное значение
    «qop» — код качества защиты
  6. клиент посылает ответ
  7. сервер сравнивает значение полученное и вычисленное

HA1 = MD5( «Mufasa:testrealm@host.com:Circle Of Life» )
= 939e7578ed9e3c518a452acee763bce9

HA2 = MD5( «GET:/dir/index.html» ) = 39aff3a2bab6126f332b942af96d3366

Response = MD5( «939e7578ed9e3c518a452acee763bce9:\
dcd98b7102dd2f0e8b11d0f600bfb0c093:\
00000001:0a4f113b:auth:\
39aff3a2bab6126f332b942af96d3366″ )

Взаимная аутентификация

Т.к. сервер может быть ложным, необходимо провести взаимную аутентификацию.

  1. клиент отправляет запрос серверу, содержащий его login и случайное число N1
  2. сервер зашифровывает число N1, генерирует случайное число N2, и отправляет их оба клиенту
  3. клиент расшифровывает числа (N1,N2) и сравнивает первое (N1) число с N1. Идентичность означает, что сервер обладает тем же уникальным ключом, что и клиент
  4. клиент зашифровывает число N2 и результат отправляет серверу
  5. сервер расшифровывает полученное сообщение. При совпадении результата с исходным числом N2, взаимная аутентификация прошла успешно.

Рис. Протокол взаимной аутентификации

Аутентификация по одноразовым паролям (One-time password)

Различные подходы к созданию одноразовых паролей:

  • использующие математические алгоритмы для создания нового пароля на основе предыдущих (пароли фактически составляют цепочку, и должны быть использованы в определённом порядке).
  • основанные на временной синхронизации между сервером и клиентом, обеспечивающей пароль (пароли действительны в течение короткого периода времени)
  • использующие математический алгоритм, где новый пароль основан на запросе (например. случайное число, выбираемое сервером или части входящего сообщения) и/или счётчике.

Одноразовые пароли клиент может получать:

  1. на бумаге
  2. в токене
  3. пересылкой (по СМС)

Рис. пример банковской карты

Многофакторная аутентификация

Иногда используются сразу несколько методов аутентификации.

Например: электронный ключ и логин.

При использовании SIM-карт в мобильных телефонах. Субъект вставляет свою SIM-карту в телефон и при включении вводит свой PIN-код (пароль).

В случае банковской карты. Субъект вставляет свою банковскую карту в банкомат и вводит свой PIN-код (пароль).

Протоколы AAA

AAA ( Authentication, Authorization, Accounting ) — используется для описания процесса предоставления доступа и контроля за ним.

  • Authentication — аутентификация.
  • Authorization — авторизация (проверка уровня доступа).
  • Accounting — учёт, контроль (слежение за потреблением ресурсов пользователем, например, для тарификации (биллинга)).

Рис. Для чего нужен протокол AAA

Представьте организацию (например университет) с множеством систем (серверы, АТС, WI-FI, здания, помещения и т.д.). Необходимо регистрировать в каждой системе одного и того-же пользователя. Чтобы этого не делать, ставится сервер AAA и все пользователи регистрируются только в нем. Все системы организации обращаются к серверу AAA.

  1. пользователь посылает запрос на аутентификацию системе (пароль, ключ и т.д)
  2. система пересылает его серверу AAA (т.к. не может провести аутентификацию)
  3. сервер AAA посылает ответ системе
  4. пользователь получает или не получает доступ

Основные протоколы AAA:

  • RADIUS, DIAMETER
  • TACACS, TACACS+ (компании Cisco)

Наибольшее распространение получил RADIUS ему на смену создан DIAMETER. Закрытые протоколы не выдерживают конкуренции.

RADIUS ( Remote Authentication in Dial-In User Service )

Протокол опубликован в 1997, был опубликован как RFC 2058 и RFC 2059.

Последние версии (2012) RFC 2865 (rus PDF) и RFC 2866 (rus PDF).

Основные особенности:

  • используется транспортный протокол UDP протокол
  • поддерживает аутентификацию PAP, CHAP, EAP.
  • предоставляет более 50 пар атрибут/значение с возможностью создавать специфичные для производителя пары
  • учетные данные могут хранится локально или во внешних источниках (базы SQL, Kerberos, LDAP, Active Directory)

Рис. Запрос клиента и варианты ответа сервера RADIUS

Пользователь посылает свои данные для аутентификации и авторизации серверу (FTP,POP,WWW,PROXY и т.д.), такие серверы называются Network Access Server (NAS).

Сервер NAS и сервер RADIUS используют общий секретный ключ (для аутентификации друг друга, и хэширования открытых паролей пользователей).

NAS (клиент) формирует запрос серверу RADIUS Access Request, сервер RADIUS может ответить:

Access Request — может содержать:

Ответ Ac­cess-Chal­lenge может использоваться для посылки случайного числа пользователю, для дальнейшего хеширования его с паролем (см. CHAP).

При выполнении всех условий в отклик Access-Accept включается список всех конфигурационных параметров для данного пользователя.

К таким параметрам относятся тип сервиса (например, SLIP, PPP, Login User) и все требуемые для предоставления этого сервиса значения.

Для протоколов SLIP и PPP могут включаться такие параметры, как

Взаимодействие с PAP и CHAP

PAP

CHAP

DIAMETER

Название DIAMETER — игра слов, отражающая превосходство нового протокола над предшественником RADIUS (диаметр — удвоенный радиус).

Таблица. Сравнение протоколов Diameter и RADIUS

Источник

Читайте также:  Способы не спать утром
Оцените статью
Разные способы