LINUX.ORG.RU

Хочу сделать чат

 ,


0

1

Хочу сделать чат для двоих. Идея такая, генерирую себе gpg-ключ, друг делает то же самое. Затем при встрече обмениваемся открытыми ключами (которые gpg --export --armor > pub.key). Сама идея программы такова, в папке лежит его публичный ключ. Я читаю его, подписываю свое сообщение этим ключом, затем передаю по net.Dial(«tcp», ip). Он его расшифровывает своим ключом и читает. Ну вот, я еще не начал писать, пока продумываю как это все должно быть, с сокетами (net.Dial) я уже имею опыт, чтение файлов, консольный интерфейс тоже. Затык на библиотеке https://golang.org/x/crypto/openpgp Там предлагают генерировать ключ и постоянно вводить пароль. Если кто-то работал с этой библиотекой, покажите, плиз, пример как использовать свой готовый ключ после msg := bufio.NewReader(os.Stdin)

★★★★

Ответ на: комментарий от derlafff

Мне нужно :) Не хочу пользоваться чужим, хочу своим.

dnb ★★★★
() автор топика

Зачем gpg? Go умеет сам прекрасно генерировать и работать с RSA, EC, DH, you name it.

Копай лучше в сторону TLS с клиентскими сертификатами. (В Go это тоже всё есть.)

Схема такая: сервер и N клиентов. Клиент генерирует сертификат (rsa или ec по вкусу), который подписывает сервер. Сервер принимает коннекты только от клиентов с подписанными им сертификатами.

Всё давно обкатано и известно.

Альтернативная схема: клиенты общаются на прямую с использованием DH. Тоже надёжно.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от beastie

Ну мне кажется GPG самый безопасный способ и нравится система открытый-закрытый ключ.

dnb ★★★★
() автор топика
Ответ на: комментарий от dnb

Когда кажется крестится надо. GPG — это частный случай. И там фишка не в криптографии, а в chain of trust. Что тебе в данном случае абсолютно ортогонально.

beastie ★★★★★
()
Ответ на: комментарий от beastie

Про TLS сейчас читаю, в википедии пишут что это протокол транспортный. А я хочу еще и историю переписки хранить зашифрованной. Мне кажется GPG самый раз для такого.

dnb ★★★★
() автор топика
Ответ на: комментарий от dnb

История — это уже не проблема передачи по прослушиваемым каналам. Шифруй чем хочешь, хоть тем же AES. GPG тут опять лишний. ;)

beastie ★★★★★
()
Ответ на: комментарий от dnb

Ну, раз ты слушать не хочешь, удачи! ¯\_(ツ)_/¯

beastie ★★★★★
()
Ответ на: комментарий от anonymous

Это когда у тебя есть только ключ Васи. Но у Васи есть ключ Пети под которым он подписался, а у Пети есть ключ Коли под которым подписался Петя, а у Коли есть ключ Юли подписанный Колей. То, если ты получишь сообщение подписанное ключом Юли GPG скажет что это действительно Юля, а не Оля, косящая под Юлю.

В общем, там всё очень запущенно. ;)

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)
Ответ на: комментарий от anonymous

С тем дополнением, что уровней доверия там минимум 5. От «не знаю, кто этот хрыч», до «верю, мамой клянусь». ;)

beastie ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.