Шифрование. Распределение ключа

Содержание

Слайд 2

Виды шифрования

Виды шифрования

Слайд 3

Симметричные Типы Атаки Side-channel attack Brute force attack Распределение ключа

Симметричные

Типы
Атаки
Side-channel attack
Brute force attack
Распределение ключа

Слайд 4

Асимметричные RSA - самая массовая криптосистема с открытым ключом (асимметричная криптосистема).

Асимметричные

RSA - самая массовая криптосистема с открытым ключом (асимметричная криптосистема). Повсеместно

используется для подписи в составе SSL-сертификатов.
Слайд 5

В RSA однонаправленная функция имеет "лазейку" или "чёрный ход", знание которого

В RSA однонаправленная функция имеет "лазейку" или "чёрный ход", знание которого

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

Параметрами криптосистемы RSA являются модуль и открытая (шифрующая) экспонента - то

Параметрами криптосистемы RSA являются модуль и открытая (шифрующая) экспонента - то

есть, показатель степени, в которую возводится сообщение.
Модуль в RSA является составным числом: N = pq, где p и q - достаточно большие простые числа.
Разложение N держится в секрете. Знание этого разложения позволяет построить "лазейку", с помощью которой можно обратить однонаправленную функцию, лежащую в основе RSA.
Слайд 7

Секретным ключом является экспонента, обратная к шифрующей (расшифровывающая). В случае TLS,

Секретным ключом является экспонента, обратная к шифрующей (расшифровывающая).
В случае TLS,

сервер публикует модуль N и шифрующую экспоненту e, а в секрете сохраняется соответствующая e расшифровывающая экспонента d = e-1 
Таким образом, открытый ключ состоит из N и e, а закрытый - из (N,p,q,d).
Открытый ключ обычно публикуется в составе сертификата TLS
Открытый ключ служит для проверки подписей, а для их генерации необходимо знать соответствующий секретный.
RSA позволяет зашифровать сообщение, выступая в роли асимметричного шифра. 
C = me mod N, где C - шифротекст, а m - открытый текст. Соответственно, зная расшифровывающую экспоненту, можно расшифровать C: m = Cd mod N
Слайд 8

При использовании для создания и проверки электронной подписи в TLS, RSA

При использовании для создания и проверки электронной подписи в TLS, RSA

работает следующим образом. Сторона, генерирующая подпись, вычисляет значение хеш-функции от подписываемого сообщения (H = Hash(M)), приводит это значение к разрядности используемого модуля N и вычисляет значение подписи при помощи секретной (расшифровывающей) экспоненты: S = Hd mod N.
Для проверки подписи требуется знать открытую часть ключа: модуль и шифрующую экспоненту e. Значение подписи возводится в степень e, а получившееся значение сравнивается с вычисленным значением хеш-функции сообщения: Se mod N = H, если значения совпали, то подпись верна. Для вычисления корректной подписи (подделки) третьей стороне необходимо знать секретную экспоненту d, что обеспечивает защиту от подделки.
Слайд 9

Свойства функции хэширования Необратимость Стойкость к коллизиям

Свойства функции хэширования

Необратимость
Стойкость к коллизиям

Слайд 10

Использования Хранение пароля Проверка эцп Сертификаты Проверка целостности, HMAC

Использования

Хранение пароля
Проверка эцп
Сертификаты
Проверка целостности, HMAC

Слайд 11

MAC/HMAC Message Authentication code – стандарт обмена данными при помощи общего

MAC/HMAC

Message Authentication code – стандарт обмена данными при помощи общего ключа
HMAC

– MAC c использованием hash
HMAC позволяет получить код аутентичности HMAC (k, text)
Безопасность эквивалентна безопасности используемой хэш функции
Быстрее симметричного шифрования
Используется в TLS, IPSec
Слайд 12

Хэши В марте 2012 года вышла последняя на данный момент редакция

Хэши

В марте 2012 года вышла последняя на данный момент редакция FIPS PUB 180-4, в

которой были добавлены функции SHA-512/256 и SHA-512/224, основанные на SHA-512 (поскольку на 64-битных архитектурах SHA-512 работает быстрее, чем SHA-256)[4].
В июле 2006 года появился стандарт RFC 4634 «Безопасные хеш-алгоритмы США (SHA и HMAC-SHA)», описывающий SHA-1 и семейство SHA-2.
Слайд 13

Рекомендации Отказаться от SHA 1/ MD5 Использовать SHA2, следить

Рекомендации

Отказаться от SHA 1/ MD5
Использовать SHA2, следить

Слайд 14

Использование шифрования в TLS TLS Record Protocol : symmetric, MAC –

Использование шифрования в TLS

TLS Record Protocol : symmetric, MAC – privacy,

integrity
TLS Handshake Protocol: communicate keys.
Specification of key exchange is left with the upper level
higher layers should not be overly reliant on whether TLS always negotiates the strongest possible connection between two peers. There are a number of ways in which a man-in-the-middle attacker can attempt to make two entities drop down to the least secure method they support
Слайд 15

Handshake Protocol – hello phase The client sends a ClientHello message

Handshake Protocol – hello phase

The client sends a ClientHello message to

which the server must respond with a ServerHello message, or else a fatal error will occur and the connection will fail.
The ClientHello and ServerHello are used to establish security enhancement capabilities between client and server. The ClientHello and ServerHello establish the following attributes: Protocol Version, Session ID, Cipher Suite, and Compression Method.
Additionally, two random values are generated and exchanged: ClientHello.random and ServerHello.random.
Слайд 16

Handshake Protocol – key exchange the server Certificate, the ServerKeyExchange, the

Handshake Protocol – key exchange

the server Certificate, the ServerKeyExchange, the client

Certificate, and the ClientKeyExchange.
New key exchange methods can be created by specifying a format for these messages and by defining the use of the messages to allow the client and server to agree upon a shared secret.
secrets that range from 46 bytes upwards
Слайд 17

Handshake Protocol клиент подключается к серверу, поддерживающему TLS, и запрашивает защищённое

Handshake Protocol

клиент подключается к серверу, поддерживающему TLS, и запрашивает защищённое соединение;
клиент

предоставляет список поддерживаемых алгоритмов
сервер выбирает из списка, предоставленного клиентом, наиболее надёжные алгоритмы среди тех, которые поддерживаются сервером, и сообщает о своём выборе клиенту;
сервер отправляет клиенту цифровой сертификат для собственной аутентификации: имя сервера, открытый ключ, имя центра сертификации
клиент, до начала передачи данных, проверяет валидность (аутентичность) полученного серверного сертификата, относительно имеющихся у клиента корневых сертификатов удостоверяющих центров (центров сертификации).
для шифрования сессии используется  общий сеансовый ключ (Диффи Хеллман).
Слайд 18

Установление защищенного соединения Клиент посылает сообщение ChangeCipherSpec, которое указывает на то,

Установление защищенного соединения

Клиент посылает сообщение ChangeCipherSpec, которое указывает на то, что вся

последующая информация будет зашифрована установленным в процессе подтверждения связи алгоритмом, используя общий секретный ключ.
Клиент посылает зашифрованной сообщение Finished, которое содержит хеш и MAC, сгенерированные на основе предыдущих сообщений процедуры подтверждения связи;
Сервер пытается расшифровать Finished-сообщение клиента и проверить хеш и МАС. Если процесс расшифровки или проверки не удаётся, подтверждение связи считается неудавшимся, и соединение должно быть оборвано;
Сервер посылает ChangeCipherSpec и зашифрованное сообщение Finished, и в свою очередь клиент тоже выполняет расшифровку и проверку.
С этого момента подтверждение связи считается завершённым, протокол установленным. Всё последующее содержимое пакетов идет с типом 23, а все данные будут зашифрованы.
Слайд 19

Алгоритм DH параметры протокола Диффи-Хеллмана (DH) должны быть подписаны. Если используется

Алгоритм DH

параметры протокола Диффи-Хеллмана (DH) должны быть подписаны.
Если используется классический

вариант, то в сообщении ServerKeyExchange передаётся значение модуля и вычисленный сервером открытый ключ DH.
В варианте на эллиптических кривых (ECDH) - идентификатор самой кривой и, аналогично DH, открытый ключ. Параметры подписываются сервером
В зависимости от используемой криптосистемы, подпись может быть DSA (сейчас практически не встречается), RSA или ECDSA.
Подпись на параметрах DH очень важна, так как позволяет защитить соединение от атаки типа "Человек посередине".
Слайд 20

Master secret Основа ключей - общий секрет Master Secret - генерируется

Master secret

Основа ключей - общий секрет Master Secret - генерируется из

нескольких переменных составляющих: так называемый Premaster Secret, ClientRandom и ServerRandom. Premaster Secret - согласуется в рамках обмена ключами, это либо последовательность случайных байтов, зашифрованная открытым ключом сервера, либо значение, полученное в результате обмена по протоколу Диффи-Хеллмана.
master_secret = PRF(pre_master_secret, "master secret", ClientHello.random + ServerHello.random)[0..47];
Слайд 21

Методы установления ключа PSK - pre-shared key. Схема основана на использовании

Методы установления ключа

PSK - pre-shared key. Схема основана на использовании общего секретного

ключа и симметричной криптосистемы, при условии, что ключ был согласован заранее;
2. временный ключ RSA - его поддержка послужила основой для атаки FREAK, опубликованной в 2014 году;
3. SRP - протокол SRP (Secure Remote Password), RFC 5054. Протокол, позволяющий сгенерировать общий симметричный секретный ключ достаточной стойкости на основе известного клиенту и серверу пароля, без раскрытия этого пароля через незащищённый канал;
Слайд 22

Еще SS KDE Trusted timestamnig EKE OTP ….

Еще

SS
KDE
Trusted timestamnig
EKE
OTP
….

Слайд 23

Распределение ключа

Распределение ключа

Слайд 24

SSS

SSS

Слайд 25

AES-TOKEN

AES-TOKEN

Слайд 26

Diffie-Hellman

Diffie-Hellman

Слайд 27

PAKE

PAKE

Слайд 28

PKE

PKE