Форум программистов, компьютерный форум, киберфорум
Наши страницы
Компьютерная безопасность
Войти
Регистрация
Восстановить пароль
 
yodohapux
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 26
1

Бред параноика. Убийца телеграм и вацап. Анонимная переписка в сети

02.11.2018, 18:06. Просмотров 248. Ответов 11
Метки нет (Все метки)

Привет всем! Возможно, тут есть люди, которые интересуются и разбираются в безопасности.

Я хочу разработать веб-приложение для безопасного общения. Ну, конечно, я тут загнул на счет безопасности

Распишу вкратце, а вы скажите, в чем я неправ


Клиент заходит на сайт, вводит кодовое слово, которое служит для идентификации комнаты, в которую он попадает.
Это слово уходит на сервер, там используется для отправки клиентам имеющейся переписки.

Чтобы сервер не знал кодовое слово, отправляется только хэш от кодового слова.

Переписка отправляется в зашифрованном виде, ключ шифрования - хэш от кодового слова, только хэш функция другая.

Сервер хранит у себя 4 поля для каждого сообщения:
время, зашифрованное сообщение, хэш от кодового слова и имя отправителя сообщения


Прочитайте, пожалуйста изложенные мысли и напишите свои соображения по поводу безопасности предложенного решения. У меня есть ещё несколько идей по поводу передачи хэш функций на сервер и некоторые другие нюансы, но не нахожу идею написания огромного поста хорошей
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.11.2018, 18:06
Ответы с готовыми решениями:

Замедлилось быстродействие. Пропал звук при воспроизведении в браузере и вацап
После установления и неполного удаления программы VKMusic стало теряться быстродействие системы и...

Перехват сообщений вацап WhatsApp
А я все искал как осущесвить перехват сообщений вибер девушки. постоянно сидела в телефоне и с кем...

БП-убийца
Всем доброго времени суток! На работе случилась проблема, ломаю голову весь день; может, здесь...

Бюджетный игровой ПК Убийца Консолей
Давайте представим, вы любитель компьютерных игр, но в самом железе не разбираетесь, потому что вам...

Убийца консоли за 600-700 долларов
Предлагаю свою комплектацию сборки убийци консоли пс4)

11
yodohapux
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 26
05.11.2018, 10:05  [ТС] 2
Видимо, не на тот форум написал
0
WH
841 / 262 / 41
Регистрация: 10.09.2013
Сообщений: 1,028
Записей в блоге: 1
11.11.2018, 13:33 3
Цитата Сообщение от yodohapux Посмотреть сообщение
Переписка отправляется в зашифрованном виде, ключ шифрования - хэш от кодового слова, только хэш функция другая.
А что мешает другую хеш функцию вычислить любому человеку? По моему ерунда полная. Поизучайте для начала как устроены схемы переписки в шифрованном виде. Изучать нужно много и подробно.
А по сути все (или почти) новое это хорошо забытое старое. Уже давным давно, кроме телеграмов, вацапов и вайберов существуют проверенные средства шифрования чатов и почты (поизучайте например системы OTR и/или GnuPG). Просто с усиленным пиаром новомодных мессендежров в головы внедрили мысль, что это вдруг стало так необходимо и обязательно всем и каждому, а ранее, когда кто-то говорил об этом, все отмахивались - а что мне скрывать...
0
yodohapux
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 26
12.11.2018, 16:36  [ТС] 4
WH, с основами безопасности хорошо знаком, я так и назвал тему "Бред".

Цитата Сообщение от WH Посмотреть сообщение
А что мешает другую хеш функцию вычислить любому человеку?
Понятное дело, что функция должна быть необратимой.

Основная идея заключается в том, чтобы не было необходимости в регистрации и установке дополнительного ПО. Я не думаю, что хоть какая-то значимая часть пользователей переселится в jabber c otr или "ещё хуже" с pgp.

Раз тема возымела хоть какой-то интерес, то распишу подробнее.

Этот хэш отправляется по ssl каналу на сервер. Так как у нас доверия к ssl нету (можно подменить корневой сертификат), создаем пару открытый-секретный ключ на клиенте, отправляем открытый ключ серверу. У сервера открытый ключ мы получаем вместе со страничкой.

Вкратце, связь с сервером происходит в туннеле ssl + асимметричный шифр.

Почему мы используем хэш? Чтобы владелец сервера не знал, что находится внутри. По таймеру сообщения на сервере удаляются.
0
WH
841 / 262 / 41
Регистрация: 10.09.2013
Сообщений: 1,028
Записей в блоге: 1
12.11.2018, 19:18 5
Цитата Сообщение от yodohapux Посмотреть сообщение
Я не думаю, что хоть какая-то значимая часть пользователей переселится в jabber c otr или "ещё хуже" с pgp.
Я думаю только от того, что информация в сети об этом пиарится в 1000 раз меньше, чем о новомодных месенджерах. На самом деле и то и другое весьма неплохо и ставится на машину в пол-пинка )) И при этом даже специальный сервер не нужен.
Цитата Сообщение от yodohapux Посмотреть сообщение
создаем пару открытый-секретный ключ на клиенте
так это опять же установка какого-то дополнительного ПО ?
Цитата Сообщение от yodohapux Посмотреть сообщение
У сервера открытый ключ мы получаем вместе со страничкой.
Но можно получить ключ человека, выдающего себя за другого, разве нет? По крайней мере в том же OTR или GnuPG можно позвонить и сверить отпечатки или, в случае GPG, положиться на сеть доверия.
Цитата Сообщение от yodohapux Посмотреть сообщение
Почему мы используем хэш? Чтобы владелец сервера не знал, что находится внутри.
Может я чего-то не понял в вашей схеме, но вы говорили о кодовом слове. А кто это слово должен знать еще, кроме отправителя?
0
yodohapux
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 26
13.11.2018, 10:21  [ТС] 6
Цитата Сообщение от WH Посмотреть сообщение
так это опять же установка какого-то дополнительного ПО ?
Если только считать, что javascript это дополнительное ПО

Цитата Сообщение от WH Посмотреть сообщение
Но можно получить ключ человека, выдающего себя за другого, разве нет?
Мы и тут можем сделать проверку на случай "человека посередине" в автоматическом режиме. Тут проблем не вижу. Стоит ли мне углубляться подробнее?

Цитата Сообщение от WH Посмотреть сообщение
А кто это слово должен знать еще, кроме отправителя?
Отправитель и получатель договариваются о кодовом слове по открытым каналам связи

Заходят на сайт с помощью этого кодового слова. Чтобы сервер не знал какое именно кодовое слово, используется только хэш. При входе в "комнату" отображается количество пользователей, клиенты всегда знают, что их переписка доступна только им.
Если происходит такое, что несколько людей случайно договорятся об одном и том же кодовом слове, они все попадут в одну и ту же комнату, но всем будет видно сколько там пользователей.

У меня есть ещё детали реализации для повышения защиты и улучшения качества сервиса, но пока это все оффтоп. Мне больше интересно по поводу хэш функций от одного и того же значения.

Если грубо,

Pascal
1
2
3
var Password = "12345"
var hash1 = MD5(Password)
var hash2 = SHA1(Password)
Понятное дело, что именно эти функции я не буду использовать, т.к. они не стойки к коллизиям.
Мы можем использовать два кодовых слова, две хэш функции. Но это не так удобно.
Вопрос в следующем, насколько это снижает безопасность, когда мы получаем хэши от одного и того же значения?
0
WH
841 / 262 / 41
Регистрация: 10.09.2013
Сообщений: 1,028
Записей в блоге: 1
13.11.2018, 13:45 7
Цитата Сообщение от yodohapux Посмотреть сообщение
Отправитель и получатель договариваются о кодовом слове по открытым каналам связи
Думаю здесь многое упирается в проблему распределения ключей, в проблему их охраны, в данном случае. Во первых передача осуществляется по открытым каналам. Здесь можно гарантировать безопасность только при личной передаче, т.е. это уже не открытый канал. Во вторых один ключ должна знать группа людей. В случае необходимости смены ключа это может стать проблемой. И в третьих, в соответствие с пословицей - "что знают двое то знают все..." - такая конфиденциальность будет иметь серьезную уязвимость.

Цитата Сообщение от yodohapux Посмотреть сообщение
Заходят на сайт с помощью этого кодового слова. Чтобы сервер не знал какое именно кодовое слово, используется только хэш. При входе в "комнату" отображается количество пользователей, клиенты всегда знают, что их переписка доступна только им.
А если человек со стороны возьмет готовый хеш и отправит его серверу?

Цитата Сообщение от yodohapux Посмотреть сообщение
Вопрос в следующем, насколько это снижает безопасность, когда мы получаем хэши от одного и того же значения?
Думаю, что это не снижает безопасность с точки зрения взлома хеш-функции, но снижает безопасность с точки зрения "охраны ключей".
0
yodohapux
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 26
13.11.2018, 13:54  [ТС] 8
WH, Алиса и Боб договариваются о переписке в любом мессенджере. Сторонний наблюдатель видит их кодовое слово и тоже может войти в комнату.
Они, конечно же, будут знать, что кто-то другой есть в комнате.

С этим легко бороться, достаточно лишь ввести личные сообщения в комнатах. Сервер будет отправлять их непосредственно адресату. Кроме того, можно добавить возможность автоматического выхода в отдельную приватную комнату. То есть, кликаешь по сообщению пользователя, там кнопка пригласить в отдельную комнату. И можно даже сделать, чтобы никакого кодового слова там не было видно для пользователя.

Цитата Сообщение от WH Посмотреть сообщение
А если человек со стороны возьмет готовый хеш и отправит его серверу?
Думаю, что мое сообщение отвечает и на этот вопрос. Попадет в комнату.
0
WH
841 / 262 / 41
Регистрация: 10.09.2013
Сообщений: 1,028
Записей в блоге: 1
13.11.2018, 14:26 9
Вы ведь так или иначе собираетесь использовать пару ключей, открытый + закрытый? Тогда почему не шифровать сессионным случайным ключом, который будет доступен только авторизированным участникам? К тому же это должно снять проблему распределения одного и того же симметричного ключа (кодового слова) среди группы лиц и его охрану в долговременной перспективе.
0
yodohapux
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 26
13.11.2018, 14:43  [ТС] 10
WH, кодовое слово, можно сказать, никакой секретности не требует. Почему - написал в предыдущем сообщении.

Цитата Сообщение от WH Посмотреть сообщение
Тогда почему не шифровать сессионным случайным ключом, который будет доступен только авторизированным участникам?
Можно подробнее? Как мы поймем, кому давать авторизацию, а кому нет?

Технологии с описанием смысла:
HTTPS - защита от дурака-хакера
Асимметричное шифрование - попытка защиты от взлома HTTPS
Симметричное шифрование - чтобы сервер не знал о содержимом сообщений
Криптографические хэш функции - идентификация комнаты, генерация симметричного ключа
0
WH
841 / 262 / 41
Регистрация: 10.09.2013
Сообщений: 1,028
Записей в блоге: 1
13.11.2018, 16:11 11
Цитата Сообщение от yodohapux Посмотреть сообщение
Можно подробнее? Как мы поймем, кому давать авторизацию, а кому нет?
Цитата Сообщение от yodohapux Посмотреть сообщение
Асимметричное шифрование - попытка защиты от взлома HTTPS
Как раз оно и даст авторизацию. А как предприятия работают с банками через ЭЦП? Именно ЭЦП дает информацию о том, что авторизацию прошел дядя Вася, которого знает банк, а не Степан, который хочет украсть деньги дяди Васи )) Это ведь не только асимметричное шифрование, это еще и возможность ЭЦП (не распространяется на способ авторизации для физических лиц через пароль и ПИН из СМС).
Такой же способ авторизации применяется в webmoney light при использовании сертификатов.

Добавлено через 10 минут
И, кстати, точно так же строится ЭЦП при почтовой переписке как при использовании сертификатов X.509, так и при использовании GnuPG. Вы знаете что вам написал именно тот человек, а не другой, даже если почта прошла по открытым каналам через 10 разных серверов.
0
yodohapux
0 / 0 / 0
Регистрация: 02.11.2018
Сообщений: 26
13.11.2018, 16:18  [ТС] 12
WH, в целом, идея ясна. Мне нравится. Необходимость в кодовом слове все равно остается для идентификации комнаты.

Добавлено через 1 минуту
WH, по идее, подпись эцп тут временная, до следующей сессии. Но я вижу в ней альтернативу куки.
0
13.11.2018, 16:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.11.2018, 16:18

Анонимная функция
Небольшой код с анонимной функцией. Скажите каким образом при выводе сообщения через alert к Hello...

Анонимная кнопка
Казалось бы простой вопрос, но поковырявшись в методах и погуглив ответа не нашел. Если я ...

Не срабатывает анонимная функция
Добрый день! Подскажите, пожалуйста, почему текст 'connect' в данном случае виден, а 'inner...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru