Это зашифрованный чат через командную строку! Это было сделано с использованием Ncurses для создания всего пользовательского интерфейса. Я хотел сделать пример чата с клиентом, а также сообщения были бы зашифрованы от конца до конца.
При принятии подключения нового клиента первое сообщение, которое получает сервер, является public key от клиента, который впоследствии отправляется всем соктетам для прослушивания (клиенты). Сообщения сначала зашифруются с использованием public keys клиента, прежде чем отправляться на сервер. Другие клиенты для прослушивания будут не заклинить свои сообщения, используя их private key .
Проект состоит из 3 основных частей,
В приведенных ниже GIF -файлах правильный терминал был открыт с использованием Telnet (Install on Linux), чтобы продемонстрировать, как человек, не использующий клиента, увидит сообщения от пользователей, использующих клиент этого проекта.
| Официальный клиент | Подключено с помощью Telnet |
|---|---|
![]() | ![]() |
В приведенном ниже примере показаны два клиента: сообщения были зашифрованы в конце.
Официальный клиент A | Официальный клиент B |
|---|---|
![]() | ![]() |
Conntact Me в Twitter | Создать проблему
Что я могу сказать, я люблю Ncurses, и я хотел сделать пример чего -то, что требовало шифрования, идея чата TCP была первой вещью, которая пришла мне в голову.
Это был просто проект, созданный из любопытства, использование, которое вы могли бы дать этому инструменту, на ваш собственный риск.
Этот чат TCP командной строки был построен с использованием Ncurses.
Сервер работает постоянно, а также может использоваться на Raspberry Pi в сочетании с Ngrok. Таким образом, вы можете открыть свой чат с другими сверстниками и иметь безопасный способ обмена сообщениями.
У клиента есть хороший пользовательский интерфейс, который будет использоваться на терминале. Клиент сначала подключается к серверу и отправляет свой public key на сервер. Сервер получает эту информацию и отправляет ее всем пользователям, использующим этот клиент.
Затем каждый клиент будет шифровать свои сообщения с помощью public keys других клиентов. Затем сервер получит каждое соответствующее сообщение клиента прослушивания и отправит его соответствующим образом.
Как только зашифрованное сообщение будет получено со стороны других клиентов, оно не зашифровано с помощью private key пользователя.
Клиент обновляет свои пары ключей каждый раз, когда вы начинаете их.
Как только установка была сделана,
По умолчанию, порт, к которому подключается сервер, 54000
Запуск сервера (если вы запускаете сервер)
source silver_serverЗапуск клиента
source silver_sniffle -a 127.0.0.1 54000 127.0.0.1 и порт 54000 можно изменить, например, на ваш собственный адрес TCP , если у вас есть. Конечно, сервер должен работать по этому адресу.
sudo apt install libncurses5-dev libncursesw5-devsudo apt-get install libssl-devsudo apt-get -y install cmake Клонировать этот репозиторий, как так,
git clone https://github.com/edghyhdz/silver-sniffle.git Оказавшись в папке корневого проекта silver-sniffle ,
# Lets start by creating the build directory
mkdir build && cd build
# cmake that guy
cmake ..
# Finally
source install.sh install.sh запустит окончательную установку, которая создаст теримальный ярлык с именем silver_server и silver_sniffle .
Окончательная структура папки проекта является следующей,
.
├── ...
├── build # Directory were project was built
│ ├──silver_server # Server executable
│ ├── executable # Client executable location
│ │ └─── silver_sniffle # Client executable
│ └── certificates # key pair location
└── ...
Если все было сделано в порядке, вы сможете запустить сервер, выполнив следующее,
source silver_serverКак только сервер будет запущен и запускается, вы сможете запустить клиента так, так,
source silver_sniffle -a 127.0.0.1 54000Вы всегда можете перенаправить клиента на другой адрес.
Наиболее актуальными ссылками являются следующие,
Больше ссылок можно найти внутри кода.
Эдгар Эрнандес