Любые идеи по развитию MyChat. Запросы на новые функции, предложения по улучшению уже работающих сервисов. Если вы знаете, что нужно добавить в MyChat — welcome!
yurasek
В случае использования шифрования оптимальный вариант – это возможность использования клиента с жёстко заданным открытым ключом (он может распространяться после установки при первом подключении к серверу), чтобы предотвратить вероятность подмены ключей (осуществления атаки человек по середине).
Аватара пользователя
Андрей Раков
И вы готовы заниматься распространением закрытого ключа между пользователями?
yurasek
Нет, немного не так. На сервере закрытый и открытый ключи, но в рамках протокола открытый ключ доступен для чтения клиентам по аналогии с HTTPS.
У клиента определённым образом однократно сохраняется открытый ключ (например, при первом подключении или встраивается в инсталятор), который в дальнейшем сравнивается с открытым ключом сервера и, если он отличается, то выполняется предупреждение пользователя и подключение к серверу дальше не происходит.
Аватара пользователя
Алексей Пикуров
А смысл? У нас динамические сеансовые ключи используются. Самый оптимальный вариант, и самый удобный в корпоративной сети. Если какой-то клиент изъявит желание самостоятельно генерировать открытый (и/или закрытые) ключи, мы реализуем эту возможность, за дополнительную оплату.

Пока что подобных заявок не было, ввиду очевидного неудобства таких операций.
yurasek
Ничего генерировать не надо. Принцип аналогичен HTTPS, только сертификат (открытый ключ) один и тот же у всех клиентов жёстко вшит.
Ваша текущая реализация с динамическими сеансовыми ключами защищена от атак MitM?
Аватара пользователя
Алексей Пикуров
Абсолютной защиты нет и быть не может. Мы полагаемся в этом вопросе на библиотеку OpenSSL. Насколько я знаю, там против этих типов атак есть ряд защит. Жёстко вшитый сертификат - это всё равно, что никакого сертификата. Он элементарно достаётся и может быть использован злоумышленником.
yurasek
Вшитый сертификат никак не поможет злоумышленнику, т.к. он и так в открытом доступе.
Я просто хочу понять каким образом применено шифрование в MyChat, т.к. OpenSSL - это криптографический инструмент, и только грамотный подход при его использовании может гарантировать высокий уровень безопасности. Именно подход меня и интересует. MitM - это самый распространённый вариант атаки на применяемое шифрование.
И всё-таки устойчив ли к таким атакам MyChat?
Аватара пользователя
Алексей Пикуров
Специалистов для аудита безопасности мы не нанимали. Если есть квалификация - попробуйте сделать атаку, отпишите, что получилось.