Различия между версиями 9 и 10
Версия 9 от 2013-12-13 15:26:44
Размер: 5790
Редактор: FrBrGeorge
Комментарий:
Версия 10 от 2013-12-15 16:49:53
Размер: 6197
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 67: Строка 67:
## * gpg (импорт ключа и идентификация сообщения) ==== Открытая передача учётных записей в старых протоколах ====
Строка 79: Строка 79:
==== SSL-сертификаты ====
Строка 86: Строка 87:
  должно быть четыре стадии: создание ключа, создание запроса на подпись этим ключом, подпись самим собой и склеивание подписи с ключом
  * перезагрузить http-сервер: `[root@uneex ~]# service lighttpd restart`

Сетевые протоколы в Linux: вопросы безопасности

Безопасность: надёжность и секретность.

  • Ненадёжная природа всемирной сети и борьба с ней

    • Повышение связности
    • IPv6: решение возможных вопросов гарантированного канала
    • Overprovisioning
  • Секретность и Интернет :)

    • Проблемы аутентичности данных
    • Проблемы скрытия данных

Чрезмерно упрощённая классификация видов атак:

  • Порча данных и DOS
  • Трансляция фальшивых данных
  • Чтение
  • Модификация

История сетевых протоколов в свете защиты данных

  1. Просто протоколы: FTP, SMTP, POP, … (см. man dsniff)

  2. Security through obscurity и другие наивные методы шифрования (например, обмен ключами в начале сеанса), Basic HTTP Auth, MIT-MAGIC-COOKIE-1 и т. п.
    • Проблема обмена ключами
  3. Введение алгоритмов шифрования:
    • в прикладной протокол
    • в «уровень представления» согласно модели ISO/OSI
  4. Использование асимметричного шифрования
  5. IPSec и другие методы шифрования низкоуровневого трафика

  6. «Полицейские и воры» в современной криптографии (см. историю атак на SSL/T%LS)

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

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

  • Обмен ключами ⇒ вероятность засвечивания
  • Мнение папаши Мюллера: «Что знают двое, знает и свинья»
  • Нет аутентичности

Асимметричное шифрование (Диффи, Хеллман, Меркель 1975), (Ривест, Шамир, Адельман 1977), (неизвестные британские учёные ранних 70-х):

  • Начало:
    • (Диффи, Хеллман, Меркель 1975) Использование различных, не выводимых друг из друга функций шифрования и дешифрования
    • (Ривест, Шамир, Адельман 1977) RSA
    • (неизвестные британские учёные ранних 70-х) «Мы это раньше открыли, но нас засекретили»
  • Открытый (передаваемый) и закрытый (секретный) ключи:
    • запрет передачи секретного ключа
    • обеспечение секретности: A: ОБ(данные) → B: ЗБ(данные)

    • обеспечение аутентичности: A: ЗА(данные) → B: ОА(данные)

  • Вычислительная сложность, использование симметричного шифрования
  • Проблема надёжности первоначального обмена ключами
    • Атака «man-in-the-middle»
    • Подписывание ключа?

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

  • IPSec

    • «родной» IPSec: шифрование payload IP-пакета
      • NAT ⇒ невозможность расшифровки :)

    • туннелированый IPSec: инкапсуляция исходного пакета (⇒ MTU-=H, FW)
  • 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

LecturesCMC/LinuxNetwork2013/08-NetworkProtocolsSecurity (последним исправлял пользователь FrBrGeorge 2013-12-15 16:49:53)