Образовательный проект «SnakeProject» Михаила Козлова

Навигация

⇒ Общая ⇐

CISCO

Voice(Asterisk\Cisco)

Microsoft

Powershell

Python

SQL\T-SQL

FreeBSD and Nix

WEB Разработка

ORACLE SQL \ JAVA

Мото

Стрельба, пневматика, оружие

Саморазвитие и психология


Атаки на симетричное и ассиметричное шифрование


 

Атаки на симетричное и ассиметричное шифрование


Симметричное шифрование

Способ шифрования, в котором:
Для шифрования и расшифровывания применяется один и тот же криптографический ключ

Отправитель и получатель должны иметь pre-shared key

Для работы симметричного шифрования применяется один ключ: 
Математический алгоритм шифрования берет текст и ключ
На выходе получается зашифрованный текст
При дешифровке, применяется тот же самый ключ с алгоритмом дешифрования

Если злоумышленник узнает наш ключ, безопасность сведется к нулю


Асимметричное шифрование

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

У отправителя и получателя не имеется pre-shared key
Получатель имеет приватный и публичный ключ
При установке соединения получатель дает отправителю публичный ключ
 
Протокол SSL работает на данном принципе

Протокол HTTPS по сути проткол HTTP, вложенный в протокол TLS в TCP протоколе



Злоумышленник не имея приватного ключа не сможет расшифровать сообщение




Однако злоумышленник может представиться получателем и сделать подмену ключей
Дать отправителю свой публичный ключ
Отправитель зашифрует данные открытым ключом злоумышленника, отправит злоумышленнику
Злоумышленник расшифрует своим секретным ключом данные отправителя (например пароль)
Злоумышленник уже установит шифрованную сессию с настоящим получателем
И в установленной сессии использует расшифрованные данные (например пароль)


Чтоб защититься используют удостоверяющие центры (CA)

Получатель (например банк) делает запрос CA на подпись сертификата

CA получает метаданные от получателя:
Открытый ключ
Доменное имя
Алгоритм хэширования
Срок действия

Получив запрос, CA вычисляет хэш на основе этих данных
Шифрует открытый ключ получателя (например банка) уже своим закрытым ключом
Зашифрованный ключ является сертификатом и содержит метаданные из запроса

Теперь при установлении соединения Отправитель - Получатель (например банк)
Отправитель получает сертификат от получателя вместо обычного открытого ключа




 

На самом деле в современные браузеры импотртированы ключи из CA

При проверке получателя происходит процедура:
Отправитель получает открытый ключ самого CA 
Т.к. сертификат был зашифрован закрытым ключом CA
Отправитель расшифровывает его открытым ключом CA
На основе метаданных вычисляем хэш
Вычисленный хэш сравнивается с расшифрованным
Если совпадают, то ключ действительно принадлежит получателю (например банку)

 

 

У злоумышленника не может быть закрытого ключа CA
Соответственно он не сможет подписать сертификат


Посмотреть, как это выглядит в консоли Linux

# openssl s_client -connect ya.ru:443
...Вывод с обменом ключами...
GET / HTTP/1.1
Host: ya.ru
...Дальнейший вывод...

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика





Поддержать автора и проект