• XSS.stack #1 – первый литературный журнал от юзеров форума

Безопасный aim

r00nix вполне согласен. Но должен заметить, что тогда нужно будет проверять криптостойкость и стойкость клиента к разного рода атакам. а кто это будет тестировать?
 
Спустя два месяца после публикации статьи, написал для себя небольшую заметку о том, как должен выглядеть протокол безопасного IM.

1)Полностью бинарный протокол(не символьный как у xmpp). Меньше времени на обработку и размер пакетов относительно небольшой.
2)Поддержка шифрования на уровне протокола. Регистрация на сервере отсутствует.
Вместо неё каждый клиент генерирует пару закрытый-открытый ключ(эллиптическая кривая secp256k1), и на её основе 32-х значный идентификатор вида Yts535...@dlab.im.
Сервер после знака "@" указывается как хранящий ваш history.
Таким образом, нет привязки к какому-либо серверу - если объединить всех в сеть - то обладая закрытым ключом, можно отправлять сообщения с любого.
При отправке сообщения клиентом, серверу достаточно лишь проверить цифровую подпись.
3)Теперь переходим к главному. То, для чего эта тема была создана - как избежать флуда.
На мой взгляд, проще воспользоваться готовым - Proof-of-work схемой ( https://en.bitcoin.it/wiki/Proof_of_work ). Подробнее: в процессе авторизации, сервер отсылает клиенту текущую сложность. Далее при отправке сообщений, клиент выполняет PoW расчёт. Фишка в том, что атакующему потребуется больше мощностей, чем серверу для проверки правильности выполненной работы + отсеивание флудеров.
Для контроля параметра сложности, в расчёт формулы можно брать разницу во времени между 5 сообщениями и поставить ограничение на отправку в 10секунд(на выбор).
Помимо всего, серверу не обязательно на убой слать offline-сообщения, достаточно уведомить клиента спец. пакетом, содержащим ID(vCard) и кол-во пропущенных мессаг. Ненужные отбраковываются удалением из временного ростера(contact-list) и добавляются во временный ignore-список.
4)Модель протокола такая же как у xmpp, т.е clients-server-clients, не P2P-подобная. Во-первых, чтобы не палить свой ip. Во-вторых, возможность любому поднять свой приватный и уютненький сервер.
Также был замечен недостаток в реализации некоторых jabber серверов - когда подключается клиент, идут методичные коннекты к другим сервакам для проверки статусов и пр. информации. Во избежание этого, можно организовать P2P сеть между серверами как в IRC протоколе.
5)В групповом чате использовать пароль для доступа в комнату в качестве временного ключа для шифрования общей переписки. Избыточная схема.

Прошу заинтересованных - отписаться. Усилиями форума, вполне добиться создания своего клиента.
 
Chococream
Идея интересная. С удовольствием бы поучаствовал, но есть нюанс:
Суть мессенджера, как мне кажется, заключается в доступности и универсальности. Т.е. разрабатываем протокол, мессенджер итд, а что потом? Этим будет пользоваться 2,5 человека?
Просто как-то обидно вложить столько сил, убить пол года-год и на выходе получить никому не нужный мессенджер.
 
Идея в том что бы пересадить весь андеграунд на действительно безопасный клиент. А комьюнити подтянется... Не только нам нужна безопасность. Публикация на том же хабре некоторых подробностей даст +1000 пользователей сходу. Каждый 10 из них привлечет еще 1 и т.д. А далее клиент обрастает популярностью быстрее чем вам может показаться.
Главное грамотно все сделать.
 
Chococream
Как я могу убедиться в безопасности Твино?
Приложение написано на Java™ так что в общем-то любой желающий, обладающий необходимым минимумом знаний, может посмотреть что там и как внутри.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх