chat-bots:zaschischennaja_peredacha_dannyx._prosmotr_trafika._json
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| chat-bots:zaschischennaja_peredacha_dannyx._prosmotr_trafika._json [2025/09/23 02:30] – olegsklyarov | chat-bots:zaschischennaja_peredacha_dannyx._prosmotr_trafika._json [2025/09/24 07:25] (current) – [Заметки лектора] olegsklyarov | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ===== Защищенная передача данных ===== | ===== Защищенная передача данных ===== | ||
| + | |||
| + | ==== Дано ==== | ||
| + | |||
| + | * Alice — отправитель сообщения '' | ||
| + | * Bob — получатель ('' | ||
| + | |||
| + | ==== Задача ==== | ||
| + | |||
| + | Элис требуется отправить сообщение '' | ||
| + | |||
| + | ==== Алгоритм ==== | ||
| + | |||
| + | |||
| + | - Элис запрашивает у Боба его '' | ||
| + | - Элис шифрует свое сообщение '' | ||
| + | - Элис отправляет '' | ||
| + | - Боб расшифровывает '' | ||
| + | |||
| + | На выходе имеем: '' | ||
| + | |||
| + | То есть '' | ||
| + | |||
| + | ==== Правила безопасности ==== | ||
| + | |||
| + | * Открытый ключ можно и нужно опубликовать в открытом доступе для всех желающих. Например см. https:// | ||
| + | * Приватный ключ храним в секрете!!! | ||
| + | |||
| + | |||
| + | |||
| + | ===== Практика шифрования файла при помощи GNU Privacy Guard (GPG) ===== | ||
| + | |||
| + | https:// | ||
| + | |||
| + | <code bash> | ||
| + | # Боб создает связку GPG ключей: | ||
| + | (Bob) $ gpg --full-gen-key | ||
| + | > (1) RSA and RSA | ||
| + | > 4096 | ||
| + | > Bob Ivanov | ||
| + | > bob@example.com | ||
| + | > 8312 (ваша группа в ННГУ) | ||
| + | > придумать, | ||
| + | |||
| + | # Боб экспортирует открытый ключ, чтобы передать его Элис | ||
| + | (Bob) $ gpg --export -a bob@example.com > PublicKey_Bob.gpg | ||
| + | |||
| + | # Боб отправляет файл PublicKey_Bob.gpg Элис доступным способом (почта, | ||
| + | |||
| + | # Элис импортирует ключ Боба в GPG | ||
| + | (Alice) $ gpg --import PublicKey_Bob.gpg | ||
| + | |||
| + | # Элис делает ключ Боба доверенным | ||
| + | (Alice) $ gpg --edit-key bob@example.com | ||
| + | > trust | ||
| + | > 5 | ||
| + | > quit | ||
| + | |||
| + | # Элис шифрует файл с сообщением при помощи открытого ключа Боба | ||
| + | # результат сохраняется в message.txt.asc (aka message_encrypted) | ||
| + | (Alice) $ gpg -e -a -r bob@example.com message.txt | ||
| + | |||
| + | |||
| + | # Элис отправляет зашифрованный файл message.txt.asc Бобу | ||
| + | |||
| + | # Боб расшифровывает message.txt.asc (aka message_encrypted) | ||
| + | (Bob) $ gpg -d -o message_decrypted.txt message.txt.asc | ||
| + | </ | ||
| + | |||
| + | ==== Полезные команды ==== | ||
| + | |||
| + | |||
| + | <code bash> | ||
| + | # список открытых ключей | ||
| + | $ gpg -k | ||
| + | |||
| + | # список секретных ключей | ||
| + | $ gpg -K | ||
| + | </ | ||
| + | ===== Просмотр сетевого трафика ===== | ||
| + | |||
| + | ==== Замечания про HTTP ==== | ||
| + | |||
| + | * Сетевая модель OSI: стек протоколов, | ||
| + | * Первоисточник: | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | ==== Смотрим HTTP трафик ==== | ||
| + | |||
| + | Исходный код сервера [[https:// | ||
| + | |||
| + | <code bash> | ||
| + | # установка wireshark | ||
| + | $ sudo apt install wireshark | ||
| + | $ sudo dpkg-reconfigure wireshark-common | ||
| + | $ sudo chmod +x / | ||
| + | |||
| + | # запускаем wireshark | ||
| + | $ wireshark | ||
| + | |||
| + | # запускаем HTTP сервер | ||
| + | $ python3 http-server.py | ||
| + | |||
| + | # отправляем HTTP запрос | ||
| + | $ curl " | ||
| + | </ | ||
| + | |||
| + | https:// | ||
| + | |||
| + | |||
| + | ==== Смотрим HTTPS трафик ==== | ||
| + | |||
| + | <code bash> | ||
| + | # Генерируем самоподписанный ключ и сертификат | ||
| + | $ openssl req -newkey rsa:2048 -nodes -keyout key.pem -x509 -days 365 -out cert.pem | ||
| + | |||
| + | # запускаем HTTPS сервер | ||
| + | $ python3 https-server.py | ||
| + | |||
| + | # отправляем HTTPS запрос (ошибка curl: самоподписанный сертификат) | ||
| + | $ curl https:// | ||
| + | |||
| + | # отправляем HTTPS запрос (разрешаем самоподписанный сертификат) | ||
| + | $ curl --insecure " | ||
| + | </ | ||
| + | |||
| + | На будущее: | ||
| + | |||
| + | |||
| + | ===== JSON ===== | ||
| + | |||
| + | JavaScript Object Notation | ||
| + | * human-readable | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | |||
| + | ===== Д/З ===== | ||
| + | |||
| + | - Создать про помощи '' | ||
| + | - Отправить [[https:// | ||
| + | - Получить в ответ зашифрованное сообщение, | ||
| + | - Отправить [[https:// | ||
| + | |||
| + | |||
| + | ==== Заметки лектора ==== | ||
| + | * Данный контент занял примерно час, остальное время принимали GPG зачет. Можно добавлять ещё материал. | ||
| + | * Идея: написать [[chat-bots/ | ||
| + | * Открытые ключ можно смело слать в общий чат, отмечать выполненные реакцией emoji. Это добавит реальной атмосферы незащищенного канала связи (общий чат), но информация читается только получателем. | ||
chat-bots/zaschischennaja_peredacha_dannyx._prosmotr_trafika._json.1758583816.txt.gz · Last modified: by olegsklyarov
