User Tools

Site Tools


chat-bots:zaschischennaja_peredacha_dannyx._prosmotr_trafika._json

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
chat-bots:zaschischennaja_peredacha_dannyx._prosmotr_trafika._json [2025/09/23 02:36] – [Практика шифрования файла при помощи GNU Privacy Guard (GPG)] olegsklyarovchat-bots:zaschischennaja_peredacha_dannyx._prosmotr_trafika._json [2025/09/24 07:25] (current) – [Заметки лектора] olegsklyarov
Line 39: Line 39:
 # Боб создает связку GPG ключей: name = Bob, email = bob@example.com # Боб создает связку GPG ключей: name = Bob, email = bob@example.com
 (Bob) $ gpg --full-gen-key (Bob) $ gpg --full-gen-key
 +> (1) RSA and RSA
 +> 4096
 +> Bob Ivanov
 +> bob@example.com
 +> 8312 (ваша группа в ННГУ)
 +> придумать, запомнить и ввести Passphrase
  
-# Боб делает экспорт открытого ключа, чтобы передать его Элис +# Боб экспортирует открытый ключ, чтобы передать его Элис 
-(Bob) $ gpg --export -a bob@example.com > bob_public.gpg+(Bob) $ gpg --export -a bob@example.com > PublicKey_Bob.gpg
  
-# Боб отправляет файл bob_public.gpg Элис доступным способом (почта, telegram, флешка и тп)+# Боб отправляет файл PublicKey_Bob.gpg Элис доступным способом (почта, telegram, флешка и тп)
  
 # Элис импортирует ключ Боба в GPG # Элис импортирует ключ Боба в GPG
-(Alice) $ gpg --import bob_public.gpg+(Alice) $ gpg --import PublicKey_Bob.gpg
  
 # Элис делает ключ Боба доверенным # Элис делает ключ Боба доверенным
Line 55: Line 61:
  
 # Элис шифрует файл с сообщением при помощи открытого ключа Боба # Элис шифрует файл с сообщением при помощи открытого ключа Боба
 +# результат сохраняется в message.txt.asc (aka message_encrypted)
 (Alice) $ gpg -e -a -r bob@example.com message.txt (Alice) $ gpg -e -a -r bob@example.com message.txt
 +
  
 # Элис отправляет зашифрованный файл message.txt.asc Бобу # Элис отправляет зашифрованный файл message.txt.asc Бобу
  
-# Боб расшифровывает message.txt.asc +# Боб расшифровывает message.txt.asc (aka message_encrypted) 
-(Bob) $ gpg -d -o message.txt message.txt.asc+(Bob) $ gpg -d -o message_decrypted.txt message.txt.asc
 </code> </code>
  
Line 74: Line 82:
 </code> </code>
 ===== Просмотр сетевого трафика ===== ===== Просмотр сетевого трафика =====
 +
 +==== Замечания про HTTP ====
 +
 +  * Сетевая модель OSI: стек протоколов, инкапсуляция ("матрешка")
 +  * Первоисточник: стандарты RFC, публикуются организацией https://www.ietf.org. Сайт https://www.rfc-editor.org. Примеры:
 +    * [[https://www.rfc-editor.org/info/rfc793|RFC 793 Transmission Control Protocol, September 1981]]
 +    * [[https://www.rfc-editor.org/info/rfc791|RFC 791 Internet Protocol, September 1981]]
 +
 +==== Смотрим HTTP трафик ====
 +
 +Исходный код сервера [[https://github.com/olegsklyarov/unn-http-api-bots|см. в git]].
 +
 +<code bash>
 +# установка wireshark
 +$ sudo apt install wireshark
 +$ sudo dpkg-reconfigure wireshark-common
 +$ sudo chmod +x /usr/bin/dumpcap
 +
 +# запускаем wireshark
 +$ wireshark
 +
 +# запускаем HTTP сервер
 +$ python3 http-server.py
 +
 +# отправляем HTTP запрос
 +$ curl "http://127.0.0.1:8000?login=user&password=passwd"
 +</code>
 +
 +https://www.cloudflare.com/learning/ssl/why-is-http-not-secure/
 +
 +
 +==== Смотрим 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://127.0.0.1:8443
 +
 +# отправляем HTTPS запрос (разрешаем самоподписанный сертификат)
 +$ curl --insecure "https://127.0.0.1:8443?login=user&password=passwd"
 +</code>
 +
 +На будущее: в каждом запросе в Telegram Bot API используется секретный **token**. Это можно делать только в HTTPS!
  
  
 ===== JSON ===== ===== JSON =====
  
 +JavaScript Object Notation
 +  * human-readable
 +  * https://docs.python.org/3/library/json.html
 +  * https://jsonpath.com
 +  * https://jqlang.org
 +
 +
 +===== Д/З =====
 +
 +  - Создать про помощи ''gpg'' связку ключей. Экспортировать свой публичный ключ в текстовый файл.
 +  - Отправить [[https://t.me/olegsklyarov|Олегу Андреевичу]] файл, содержащий Ваш публичный ключ.
 +  - Получить в ответ зашифрованное сообщение, расшифровать его при помощи ''gpg''.
 +  - Отправить [[https://t.me/olegsklyarov|Олегу Андреевичу]] расшифрованное сообщение.
 +
 +
 +==== Заметки лектора ====
 +  * Данный контент занял примерно час, остальное время принимали GPG зачет. Можно добавлять ещё материал.
 +  * Идея: написать [[chat-bots/projects/gpg-checker-bot#бот для приема GPG зачета]]
 +  * Открытые ключ можно смело слать в общий чат, отмечать выполненные реакцией emoji. Это добавит реальной атмосферы незащищенного канала связи (общий чат), но информация читается только получателем.
  
  
chat-bots/zaschischennaja_peredacha_dannyx._prosmotr_trafika._json.1758584218.txt.gz · Last modified: by olegsklyarov