Заинтересовался темой защиты своей переписки от всех и вся. Есть идея создания своего проекта, однако сначала надо убедиться в том, что не изобретаю велосипед. Ничего не обещаю, но пока у меня есть интерес, может что-нибудь и напишу. Хочу выслушать замечания и предложения.
Суть в том, что система обеспечивает защиту переговоров, но не анонимность (во всяком случае на начальном этапе). Каждый собеседник может теоретически определить IP другого участника разговора (во всяком случае этому не ставится специальных преград), хотя впрочем обычно в ходе самого разговора и так происходит деанонимизация, поэтому это во многих ситуациях не является критическим недостатком. С другой стороны никто из-вне (хакер Вася, провайдер, гугл, спецслужбы) не должен иметь возможности прочесть переписку.
Итак, пока есть такие идеи:
1) Каждый пользователь лично генерирует свой ключ ассиметричного шифрования. Секретный ключ хранит у себя на компьютере и никому не даёт. Открытый ключ даёт каждому с кем хочет пообщаться. Это и есть его username, хотя при желании можно сделать базу соответствия человекопонятных логиков и публичных ключей для удобства поиска. Чтобы послать человеку сообщение необходимо зашифровать его сначала своим секретным ключом (которому соответсвует наш открытый), а потом публичным ключём собеседника и послать любым доступным способом. Собеседник расшифровывает сообщение сначала нашим публичным ключом, потом своим секретным ключом. Таким образом с одной стороны сообщение не сможет прочитать никто кроме получателя, с другой стороны можно быть уверенным, что его послал именно отправитель. Обычно обмен публичными ключами происходит через открытый сервис, но при желании их всегда можно сверить через более безопасный канал (если вам действительно есть что скрывать).
2) Обмен сообщениями должен происходить преимущественно прямыми соединениями между клиентами. В случае если оба они за NAT, то использовать супер-ноды (всё равно никто не сможет прочитать сообщение).
3) В перспективе можно добавить конференции, обмен файлами, аудио- и видеозвонки.
Не следует путать эту систему с полноценными анонимными сетями (I2P, Tor) - в отличии от них я не приследую полную анонимность, зато даю минимальные задержки (если бы не NAT, то вообще равные времени пинга от одного контакта к другому). Это позволяет реализовать пункт 3 не дожидаясь включения в сеть 100500 пиров.
Возможно, это звучит бредово, но мне просто нечего делать. Интересно послушать мнения на этот счёт. Есть шанс, что я действительно что-то сделаю.