Сетевые протоколы в Linux: вопросы безопасности
Безопасность: надежность и секретность.
Ненадежная природа всемирной сети и борьба с ней
- Повышение связности
- IPv6: решение возможных вопросов гарантированного канала
- Overprovisioning
Секретность и Интернет
- Проблемы аутентичности данных
- Проблемы скрытия данных
Чрезмерно упрощенная классификация видов атак:
- Порча данных и DOS
- Трансляция фальшивых данных
- Чтение
- Модификация
История сетевых протоколов в свете защиты данных
Просто протоколы: FTP, SMTP, POP, ? (см. man dsniff)
- Security through obscurity и другие наивные методы шифрования (например, обмен ключами в начале сеанса), Basic HTTP Auth, MIT-MAGIC-COOKIE-1 и т. п.
- Проблема обмена ключами
- Введение алгоритмов шифрования:
- в прикладной протокол
- в ?уровень представления? согласно модели ISO/OSI
- Использование асимметричного шифрования
IPSec и другие методы шифрования низкоуровневого трафика
?Полицейские и воры? в современной криптографии (см. историю атак на SSL/T%LS)
Симметричное и асимметричное шифрование
Симметричное шифрование:
- Обмен ключами ? вероятность засвечивания
- Мнение папаши Мюллера: ?Что знают двое, знает и свинья?
- Нет аутентичности
Асимметричное шифрование (Диффи, Хеллман, Меркель 1975), (Ривест, Шамир, Адельман 1977), (неизвестные британские ученые ранних 70-х):
- Начало:
- (Диффи, Хеллман, Меркель 1975) Использование различных, не выводимых друг из друга функций шифрования и дешифрования
- (Ривест, Шамир, Адельман 1977) RSA
- (неизвестные британские ученые ранних 70-х) ?Мы это раньше открыли, но нас засекретили?
- Открытый (передаваемый) и закрытый (секретный) ключи:
- запрет передачи секретного ключа
обеспечение секретности: A: ОБ(данные) ? B: ЗБ(данные)
обеспечение аутентичности: A: ЗА(данные) ? B: ОА(данные)
- Вычислительная сложность, использование симметричного шифрования
- Проблема надежности первоначального обмена ключами
- Атака ?man-in-the-middle?
- Подписывание ключа?
Использование шифрования
- ?родной? IPSec: шифрование payload IP-пакета
NAT ? невозможность расшифровки
- туннелированый IPSec: инкапсуляция исходного пакета (? MTU-=H, FW)
- ?родной? IPSec: шифрование payload IP-пакета
- PGP (Циммерман)
- серверы публикации открытых ключей
- цепочка достоверности
- TLS/SSL:
- сертификат
- подписанный сертификат и торговля ими
- SSH
- шифрование учетных записей и трафика
- авторизация по ключу
- проброс портов и другая сетевая активность в защищенном туннеле
Д/З
Открытая передача учетных записей в старых протоколах
- Убедиться в небезопасности FTP (login: "user", password: "user"):
[root@uneex ~]# dsniff -i enp0s8 ? [root@uneexclient ~]# ftp srv ? Name (srv:root): user ? Password: user ?
SSL-сертификаты
- создание самоподписанного сертификата
короткая команда: [root@uneex ~]# cert-sh generate lighttpd (это просто небольшой сценарий)
- посмотреть, какими командами генерируется самоподписанный сертификат:
[root@uneex ~]# rm -rf tmp/test; mkdir -p tmp/test/{private,certs} [root@uneex ~]# SSLDIR=tmp/test sh -x cert-sh generate lighttpd 2>&1 | egrep '^[+] (openssl|cat|ln)'
должно быть четыре стадии: создание ключа, создание запроса на подпись этим ключом, подпись самим собой и склеивание подписи с ключом перезагрузить http-сервер: [root@uneex ~]# service lighttpd restart
- проверка разных сертификатов:
[root@uneexclient ~]# openssl s_client -verify on -connect srv:443 < /dev/null
[root@uneexclient ~]# LC_ALL=C lynx https://www.uneex.org
[root@uneexclient ~]# LC_ALL=C lynx https://uneex.ru
[root@uneexclient ~]# LC_ALL=C lynx https://srv