|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Продолжаю проектировать свой транспорт сообщений по UDP. В прошлой попытке сделал его централизованным: сначала авторизуйся на сервере, а затем сервер тебя сведет с получателем. С сервером все прекрасно: он авторизует обоих и подтвердит что они те, за кого себя выдают. Но тут получилась фундаментальная ошибка проектирования. Сервер может быть недоступен, а отправитель и получатель в локалке и им надо общаться. Не знаю как поступить при отсутствии сервера. Отправитель и получатель в локалке найдут друг-друга, но встает вопрос безопасности, как убедиться что тот кого ты нашел является тем за кого себя выдает. Напрашивается тупое решение: всем заинтересованным хранить пароль для обмена без сервера авторизации, далее этот пароль используем как ключ шифрования. Может у кого есть другие идеи? PS Исходники и описаловку хочу выложить как опенсорц, поэтому запрятать алгоритмы не подходит. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2018, 17:26 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TПродолжаю проектировать свой транспорт сообщений по UDP. В прошлой попытке сделал его централизованным: сначала авторизуйся на сервере, а затем сервер тебя сведет с получателем. С сервером все прекрасно: он авторизует обоих и подтвердит что они те, за кого себя выдают. Но тут получилась фундаментальная ошибка проектирования. Сервер может быть недоступен, а отправитель и получатель в локалке и им надо общаться. Не знаю как поступить при отсутствии сервера. Отправитель и получатель в локалке найдут друг-друга, но встает вопрос безопасности, как убедиться что тот кого ты нашел является тем за кого себя выдает. Напрашивается тупое решение: всем заинтересованным хранить пароль для обмена без сервера авторизации, далее этот пароль используем как ключ шифрования. Может у кого есть другие идеи? PS Исходники и описаловку хочу выложить как опенсорц, поэтому запрятать алгоритмы не подходит. Я бы кэшировал последнюю аутентикацию (nonce and hash) юзера на получателе. Ну.... зависит от протокола сервера аутентикации. Вся идея сервера аутентикации - не хранить пароли на получателях. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2018, 18:23 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima T, а кто такой "получатель"? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2018, 18:56 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TПродолжаю проектировать свой транспорт сообщений по UDP. В прошлой попытке сделал его централизованным: сначала авторизуйся на сервере, а затем сервер тебя сведет с получателем. С сервером все прекрасно: он авторизует обоих и подтвердит что они те, за кого себя выдают. Но тут получилась фундаментальная ошибка проектирования. Сервер может быть недоступен, а отправитель и получатель в локалке и им надо общаться. Не знаю как поступить при отсутствии сервера. Отправитель и получатель в локалке найдут друг-друга, но встает вопрос безопасности, как убедиться что тот кого ты нашел является тем за кого себя выдает. Напрашивается тупое решение: всем заинтересованным хранить пароль для обмена без сервера авторизации, далее этот пароль используем как ключ шифрования. Может у кого есть другие идеи? PS Исходники и описаловку хочу выложить как опенсорц, поэтому запрятать алгоритмы не подходит. Я не знаю предыстории, но предполагаю, что сервер может как-то идентифицировать клиентов и далее работать с ними по закрытому каналу связи. Тогда для идентификации используем сервер как первоначальный источник сертификатов, удостоверяющих клиентов. В дальнейшем эти "сертификаты" используются для аутентификации клиентов без участия сервера. То есть, во время сеанса работы клиентов А и Б с сервером, после того, как сервер убедился в истинности тех, кто себя за них выдает за клиентов, сервер по каждому клиенту генерирует пары ключей: секретный Кф - для формирования электронной подписи и несекретный Кп - для проверки электронной подписи. И отсылает эти ключи клиентам. Клиент А получает секретный ключ КАф для формирования подписи, клиент Б (и, в общем, все остальные клиенты тоже) получает несекретный ключ КАп для проверки подписи, сформированной клиентом А. И наоборот, клиент Б получает секретный ключ КБф для формирования подписи, клиент А (и все остальные клиенты) получает несекретный ключ КБп для проверки подписи, сформированной клиентом Б. Позднее, когда клиенты А и Б желают общаться между собой без сервера, они формируют общий ключ шифрования на основе алгоритма Диффи-Хеллмана, но не в классической форме, а подписывая своим секретным ключом Кф отсылаемую корреспонденту свою часть ключа. Корреспондент проверяет подпись с помощью открытого ключа Кп, и, если все ОК, принимает решение, что корреспондент именно тот, кто себя выдает. То есть, чтобы избежать дырки в алгоритме Д-Х "противник посередине". Далее используем сформированный с помощью Д-Х ключ для обычного быстрого симметричного шифрования. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2018, 01:16 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonDima T, а кто такой "получатель"? Речь про передачу сообщения. Одна прога отправляет, вторая получает. У каждой есть свой логин, который ее идентифицирует. В некоторых случаях эти проги могут оказаться в локалке без инета. Найти друг-друга не проблема, проблема проверить что нашел того, кого искал. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2018, 11:53 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Фэйтл Эра, это классика, хочется что-то попроще. Сертификаты потребуют использовать криптобиблиотеку какую-нибудь. И в итоге это вырождается в то что я придумал: "ключ-пароль" храним на клиенте. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2018, 12:08 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima T, было бы можно проще - про такую возможность все бы уже знали. "Проще" либо нельзя, либо это секрнтный способ. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2018, 13:02 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima Tхочется что-то попроще Проще всего наконец всё-таки поднять сервер. Либо выкинуть его к чертям и сделать пир-ту-пир сеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2018, 14:26 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TНайти друг-друга не проблема, проблема проверить что нашел того, кого искал. Если этот "кто-то" прислал тебе challenge, зашифрованное приватным ключом, соответствующим имеющемуся у тебя открытому ключу того кого ты искал - он именно тот, кого ты искал. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2018, 14:54 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Фэйтл ЭраDima T, было бы можно проще - про такую возможность все бы уже знали. "Проще" либо нельзя, либо это секрнтный способ. Знаю, но все-таки немного уточню постановку задачи: можно решить не идеально, достаточно защититься от условного "студента". На одном компе может оказаться мой софт и софт тех кому интересно вытащить у меня инфу. Я бы не хотел чтобы они проникли в мою транспортную систему. Инфа не стоит миллиарды, поэтому профи тут вряд ли будет ковыряться, а "студент" вполне возможно. В случае когда инет есть у отправителя и получателя (подавляющее большинство случаев) их сведет сервер, предварительно проверив пароль, а если нет инета у одного или обоих, то тут им все-равно надо общаться и как-то авторизовывать друг-друга. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2018, 18:19 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Если поможет - можно вводить сеансовые ключи которые живут сутки или другое время (как записи в DNS). И за это время Алиса и Боб могут спокойно продолжать работу а на следующий день им придется как-то искать арбитра или вручную синхронизироваться по надежному каналу. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2018, 18:59 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Подведу итоги. По сути возможны 3 состояния: 1. Отправитель и Получатель имеют выход в инет. Большинство случаев. 2. Один из них имеет выход в инет. Некоторым компам м.б. ограничен выход в инет. 3. Инет у обоих отсутствует. Инет сломался. В первом все просто - сервер проверяет обоих. Во втором тот кто с инетом должен предоставить выход в инет второму, т.е. предоставляет своего рода прокси, далее как в п.1. Предоставление прокси - это ключевое отличие, изначально я думал обмениваться по безсерверной схеме. Остается проблемный п.3, но т.к. это редкая ситуация (инет сломался) и программно ее никак не сделать средствами другого софта, то можно сильно не заморачиваться на взлом в этот момент. Как вариант, при отсутствии инета, транспорт может информировать получателя что отправитель не проверен, а там уже ему решать игнорировать сообщение или нет в зависимости от важности данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 08:26 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima T, А почему бы не сделать вторичные сервера? Если у тебя есть сегменты сети которые могут отвалится от других сегментов - поставь в каждый сегмент по собственному серверу (или микро-серверу который будет ожидать только клиентов из своего сегмента). И пусть твои юзера авторизуются в первую очередь на локальном сервере, а уже эти "вторичные" сервера при наличии связи будут синхронизироваться между собой. Эти локальные сервера могут быть как специально выделенными и ставиться на гейт в большой интернет, так и динамическими. Клиент сначала кидает в свою локалку броадкаст "кто локальный сервер?" Не получив ответа, пытается связаться напрямую с центральным, выкачивает оттуда свежайший список юзеров и принимает на себя обязанности локального сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 19:57 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
White Owl, это попытка слегка упорядочить хаос. Сейчас в локалке разворачивается сетевая версия, т.е. нужен сервер, на нем расшарить, дать права. Но зачастую даже это сделать некому, т.к. все экономят на админах. Если вместо одного расшаренного экземпляра моей проги будет несколько локальных копий, но эти несколько будут реплицироваться онлайн даже при отсутствии инета, то я смогу дать клиенту то, в чем сегодня отказываю из-за отсутствия у них админа. PS Думаю понятно объяснил что вторичный сервер там не поднять. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 20:39 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima T, Просто возьмите OpenSSL или любую из многих SSL либ, и соединяйтесь между клиентами при помощи TLS с проверкой сертификатов обеими сторонами. А сервер пусть выдает сертификаты клиентам после проверки. Сертификат самого сервера (самоподписанный сервером) зашит в код клиентов и используется как доверенный CA. Никаких паролей хранить на клиентах не нужно. Только приватный ключ от своего сертификата выданного сервером, зашифрованный паролем от учетной записи юзера. Вот тут можно посмотреть с чего начать в openssl. https://stackoverflow.com/questions/21050366/testing-ssl-tls-client-authentication-with-openssl ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2018, 23:05 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TWhite Owl, это попытка слегка упорядочить хаос. Сейчас в локалке разворачивается сетевая версия, т.е. нужен сервер, на нем расшарить, дать права. Но зачастую даже это сделать некому, т.к. все экономят на админах. Если вместо одного расшаренного экземпляра моей проги будет несколько локальных копий, но эти несколько будут реплицироваться онлайн даже при отсутствии инета, то я смогу дать клиенту то, в чем сегодня отказываю из-за отсутствия у них админа. PS Думаю понятно объяснил что вторичный сервер там не поднять.Да почему не поднять то??? Сделай вторичный сервер как составную часть клиента. Первый клиент утром загружается - не нашел серверов в локалке - запускает свой сервер как сервис/демон/отдельную программу. Все. Теперь пока первую машину не перезагрузят вторичный сервер будет работать. Перезагрузили - сервер исчез - следующий клиент который попытается авторизоваться не найдет сервер и запустит новую копию. Клиенты к центральному серверу сами ходить вообще не будут. А уж вторичный сервер сам будет пытаться достучаться до центрального и как получит обновления - будет их пихать всем своим локальным клиентам (при авторизации) чтобы они обновили базы для своих копий сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2018, 20:24 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
White OwlСделай вторичный сервер как составную часть клиента. Первый клиент утром загружается - не нашел серверов в локалке - запускает свой сервер как сервис/демон/отдельную программу. Все. Не, это решается задача обнаружить друг-друга. Тут проблем нет. Проблема в том что такой вторичный сервер без инета не сможет проверить пароль клиента. Думаю не стоит заливать на каждого клиента все логины с паролями (или хэшами паролей). ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 07:12 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
SESPAKE . Смысл в том, что для перебора паролей требуется участие владельца этого самого пароля. Владелец в переборе не заинтересован, а это эффективно ограничивает число попыток для потенциального взломщика. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 14:06 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TПроблема в том что такой вторичный сервер без инета не сможет проверить пароль клиента. А зачем у тебя вообще пароль? Учись у биткоина, там клиент идентифицируется и удостоверяется ключом. Открытые ключи всех клиентов можно безопасно заливать на каждого, что биткоин и делает. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 14:39 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDima TПроблема в том что такой вторичный сервер без инета не сможет проверить пароль клиента. А зачем у тебя вообще пароль? Учись у биткоина, там клиент идентифицируется и удостоверяется ключом. Открытые ключи всех клиентов можно безопасно заливать на каждого, что биткоин и делает. Откуда он генерируется? Рискну предположить что это просто случайное число типа GUID. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 15:06 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Basil A. Sidorov SESPAKE . Смысл в том, что для перебора паролей требуется участие владельца этого самого пароля. Владелец в переборе не заинтересован, а это эффективно ограничивает число попыток для потенциального взломщика. Почитал немного. Если правильно понял это Дифи-Хэллман с зашитой от "человека посредине" с помощью пароля известного двум сторонам. Я похожий велосипед изобрел, разве что реализация попроще и менее криптостойкая. Dima TНапрашивается тупое решение: всем заинтересованным хранить пароль для обмена без сервера авторизации, далее этот пароль используем как ключ шифрования. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 16:10 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDima TПроблема в том что такой вторичный сервер без инета не сможет проверить пароль клиента. А зачем у тебя вообще пароль? Учись у биткоина, там клиент идентифицируется и удостоверяется ключом. Открытые ключи всех клиентов можно безопасно заливать на каждого, что биткоин и делает. А майнить кто будет? Да и инфа закрытая, ее не надо всем и каждому показывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 16:12 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonDimitry Sibiryakovпропущено... А зачем у тебя вообще пароль? Учись у биткоина, там клиент идентифицируется и удостоверяется ключом. Открытые ключи всех клиентов можно безопасно заливать на каждого, что биткоин и делает. Откуда он генерируется? Рискну предположить что это просто случайное число типа GUID. Пока особо не заморачивался на эту тему. Можно гуид или хэш какой-нибудь. Без разницы. Он нужен не всегда, а только в редкие случаи отсутствия инета. Поэтому когда инет есть необходимо как-то придумать случайное число и согласовать с другими, а при отключении инета воспользоваться им. Тут надо будет поизобретать алгоритм согласования. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 16:19 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TПочитал немного. Если правильно понял это Дифи-Хэллман с зашитой от "человека посредине" с помощью пароля известного двум сторонам.Нет. Пароль (секрет) известен только одной стороне и не передаётся серверу. Сервер располагает огрызком от секрета, но не может проверить, подходят ли предъявленные "верительные грамоты" к этому огрызку без активного участия владельца секрета. Кроме этого сервер может удостовериться, что все ответы приходят от того же клиента, который начинал обмен. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 18:32 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Basil A. SidorovDima TПочитал немного. Если правильно понял это Дифи-Хэллман с зашитой от "человека посредине" с помощью пароля известного двум сторонам.Нет. Пароль (секрет) известен только одной стороне и не передаётся серверу. Сервер располагает огрызком от секрета, но не может проверить, подходят ли предъявленные "верительные грамоты" к этому огрызку без активного участия владельца секрета. Кроме этого сервер может удостовериться, что все ответы приходят от того же клиента, который начинал обмен. Заинтриговал. Я не сильно разбираюсь в криптографии, просто опираюсь на здравый смысл: Алиса пишет Бобу письмо, Боб должен быть уверен что письмо от Алисы. Известный обоим секрет может подтвердить что письмо от Алисы, но "огрызок секрета" ... я не понимаю. Хотя в случае "огрызка секрета" все-равно важен факт наличия секрета известного обоим сторонам. Наверно это просто продвинутая реализация моих дилетантских идей. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2018, 20:23 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima T, Алиса и Боб встречаются на станции метро. Обмениваются флешками где их публичные ключи. типа. /home/alice/.ssh/alice.pub /home/bob/.ssh/bob.pub Или фоткают QR-коды прям с экранов телефонов. Это безопасно. Если даже кто-то третий тоже фоткает ключ Алисы - это ником образом не нарушает протокол. Ключ - публичный. Главное чтоб он не был изменён на лету. Алиса присылает Бобу сообщение + его MD5 зашифрованный секретной половинкой своего ключа. Боб берет известный ему публичный ключ Алисы и проверяет что после дешифровки MD5 совпал. Это магия ЭЦП. Изменить текст без повреждения MD5 нельзя. И изменить сам MD5 нельзя. В этой схеме всё идеально кроме процедуры рукопожатия и обмена ключами. Ее не всегда можно осуществить в реале. Есть еще вариант что Алиса посылает секретный конверт с печатями... но ... дальше похоже на сценарий конспирологического фильма про разведку. Фигня короче. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 00:31 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
В студенчестве мне был интересен PGP. Насколько я помню фреймворк предлагал комплекс утилит для децентрализованной сети доверия. Тоесть например: Если мне шлёт письмо Basil A. Sidorov а я его не знаю. Но я вижу что за него подписался Dima T а я его знаю и доверяю и следовательно я могу делать какие-то допущения в части надёжности источника. Как PGP обменивается уровнями доверия - это загадка. Я щас не помню. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 01:48 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonВ этой схеме всё идеально кроме процедуры рукопожатия и обмена ключами. Ее не всегда можно осуществить в реале. Есть еще вариант что Алиса посылает секретный конверт с печатями... но ... дальше похоже на сценарий конспирологического фильма про разведку. Фигня короче. Добавь Диффи-Хеллмена , а обмен подписывай ЭЦП и все будет идеально. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 08:00 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonКак PGP обменивается уровнями доверия - это загадка. Я щас не помню. Получатель сообщает свой открытый ключ, а ты им шифруешь. тынц С обменом открытыми ключами там тоже не все гладко . ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 08:14 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TИзвестный обоим секрет может подтвердить что письмо от Алисы, но "огрызок секрета" ... я не понимаю.Насколько я всё это понимаю, предполагается, что мы принимаем результат начальной процедуры регистрации пользователя, когда сервер и получает "огрызок секрета" без каких-либо оговорок. Т.е. не заморачиваемся личностью владельца и вмешательством третьего на этом эпапе. Дальше всё работает по протоколу (которого лично я не понимаю) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 14:02 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TmaytonВ этой схеме всё идеально кроме процедуры рукопожатия и обмена ключами. Ее не всегда можно осуществить в реале. Есть еще вариант что Алиса посылает секретный конверт с печатями... но ... дальше похоже на сценарий конспирологического фильма про разведку. Фигня короче. Добавь Диффи-Хеллмена , а обмен подписывай ЭЦП и все будет идеально. Так Диффи Хелман это не про это. Это про то что Алиса и Боб переходят от открытого обмена документами с ЭЦП к закрытому алгоритму шифрования (типа 3Des). Но и в данном конкретном случае уязвимость рукопожатия остается. В части браузеров это решается хардкодом корневых сертификатов которые подписывают другие сертификаты DNS записей от корня к листьям. Но и эта схема предполагает например надёжный DNS и неигнорирование пользователем сообщения об принятии нового сертификата. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 14:03 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TА майнить кто будет? Да и инфа закрытая, ее не надо всем и каждому показывать. О чём это ты? Асимметричные ключи, используемые в биткоине или SSH для идентификации не майнятся, а просто генерятся. И любой пир может подтвердить личность другого по вернувшемуся правильному challenge (который почти случайный набор байт). Открытый ключ по определению инфа открытая, а инфу, им зашифрованную, показывай хоть кому - правильно прочесть сможет только владелец закрытого ключа. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 14:45 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonНо и в данном конкретном случае уязвимость рукопожатия остается. В части браузеров это решается хардкодом корневых сертификатов которые подписывают другие сертификаты DNS записей от корня к листьям. Но и эта схема предполагает например надёжный DNS и неигнорирование пользователем сообщения об принятии нового сертификата. В смысле Алиса получит сертификат Боба сгенеренный не Бобом, а Васей? В моем случае такого не будет, т.к. есть сервер, который в нормальном режиме (с инетом) подтвердит что Алиса это Алиса, а Боб это Боб. Вобщем обмен открытыми ключами не проблема. Этот вариант уже предлагали 21771246 . Тут придется задействовать какую-нибудь криптобиблиотеку, а я хочу решение попроще, без сторонних dll. В принципе я его уже придумал 21771725 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 14:47 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TТут придется задействовать какую-нибудь криптобиблиотеку, а я хочу решение попроще, без сторонних dll Если не брать готовую библиотеку, то криптография обязательно будет реализована с дырами )). ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 15:24 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Погуглил немного: оказывается RSA c 32-битным ключом это пара десятков строк кода ))) Пошел писать. Криптостойкость мизерная, ломается в течении суток, но в моем случае сойдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 18:43 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TПогуглил немного: оказывается RSA c 32-битным ключом это пара десятков строк кода ))) Пошел писать. Криптостойкость мизерная, ломается в течении суток, но в моем случае сойдет.а у вас лицензия есть? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 20:08 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
kealon(Ruslan)Dima TПогуглил немного: оказывается RSA c 32-битным ключом это пара десятков строк кода ))) Пошел писать. Криптостойкость мизерная, ломается в течении суток, но в моем случае сойдет.а у вас лицензия есть? ИМХО это не лицензируется. Лицензии требует софт полноценной ЭЦП, но только если продаешь его на сторону. Я не заявляю что у меня используется полноценная ЭЦП. Это просто защита от взлома студентом и не более того. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 20:23 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TКриптостойкость мизерная, ломается в течении суток, но в моем случае сойдет. На любую криптографию найдется лом в виде кейлоггера )) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 20:45 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyDima TКриптостойкость мизерная, ломается в течении суток, но в моем случае сойдет. На любую криптографию найдется лом в виде кейлоггера )) На клавиатуре вводить ничего не потребуется. Есть оболочка с шифрованным хранилищем, там же можно хранить закрытый ключ, а сгенерить ключ можно без участия пользователя. PS Антикейлоггер легко делается, точно не помню как, у Рихтера написано как. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2018, 20:53 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima Tkealon(Ruslan)пропущено... а у вас лицензия есть? ИМХО это не лицензируется. Лицензии требует софт полноценной ЭЦП, но только если продаешь его на сторону. Я не заявляю что у меня используется полноценная ЭЦП. Это просто защита от взлома студентом и не более того. Боюсь что нет если на продажу, тынц ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 00:20 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
kealon(Ruslan)Dima Tпропущено... ИМХО это не лицензируется. Лицензии требует софт полноценной ЭЦП, но только если продаешь его на сторону. Я не заявляю что у меня используется полноценная ЭЦП. Это просто защита от взлома студентом и не более того. Боюсь что нет если на продажу, тынц под это 2. Разработка защищенных с использованием шифровальных (криптографических) средств информационных систем. подпадает обращение к WebAPI по HTTPS или использование ODBC-драйвера, который при коннекте к серверу БД шифрует пароль. Потом любое шифрование под это подходит, т.е. не только RSA, а даже просто XOR с константой - это же тоже шифрование. Каждому разработчику предлагаешь лицензию выдать? Если я не буду заявлять что мой софт использует шифрование, то кто должен доказать обратное? Мутный этот закон, любую прогу можно под него подвести. В реальности он работает только там где юридически-значимая ЭЦП используется. И даже там не везде, а только для разработки непосредственно софта для ЭЦП. Я консультировался на предмет: могу ли я в свою прогу встроить готовую библиотеку для подписи ЭЦП - оказывается могу и лицензии не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 09:33 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima T, да, наши законы такие... если специально кто-то возьмётся, то можно вдовесок и по ярой подкинуть конечно ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 10:27 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Anatoly MoskovskyDima TКриптостойкость мизерная, ломается в течении суток, но в моем случае сойдет. На любую криптографию найдется лом в виде кейлоггера )) Криптография как часть информационной безопасности изучает взаимодействие субъектов типа Алисы и Боба в определённом enviromnent где нет вирусов троянов и кейлоггеров. Кейлоггеры можно просто рассмотреть отдельной темой. И я думаю что протокол Димы скорее всего предполагает априори приложение установленное на каноническую операционку без шпионского софта. Если этих начальных условий нет - то мы дальше просто никуда не сдвинемся. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 10:29 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TВ моем случае такого не будет, т.к. есть сервер, который в нормальном режиме (с инетом) подтвердит что Алиса это Алиса Осталось только понять как сервер определит, что Алиса это Алиса. Или у тебя как обычно: Алисой считается тот, кто первый ею назовётся?.. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 14:57 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDima TВ моем случае такого не будет, т.к. есть сервер, который в нормальном режиме (с инетом) подтвердит что Алиса это Алиса Осталось только понять как сервер определит, что Алиса это Алиса. Или у тебя как обычно: Алисой считается тот, кто первый ею назовётся?.. Элементарно: если кто-то назовется Алисой, то при этом реальная Алиса зайти не сможет, поэтому она позвонит и скажет: "ваша корявая прога не работает". Ну и пароль у Алисы есть, криптостойкий, хранится в шифрованном хранилище, никуда не передается открытым текстом. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 15:08 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TПогуглил немного: оказывается RSA c 32-битным ключом это пара десятков строк кода ))) Пошел писать. Строк мало, а в 32 бита вписаться проблематично :( Есть проблемы с генерацией ключей. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 21:10 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonКейлоггеры можно просто рассмотреть отдельной темой. И я думаю что протокол Димы скорее всего предполагает априори приложение установленное на каноническую операционку без шпионского софта. Если этих начальных условий нет - то мы дальше просто никуда не сдвинемся. Вообще, я будучи студентом, не сильно напрягаясь написал кейлоггер и методом т.н. социальной инженерии установил его на комп админа сети на кафедре чтобы узнать его пароль и сделать себе права на запись в нужный раздел на сервере, чтобы не таскать дискетки. Так что это вопрос вполне практический и его тоже надо рассматривать при защите от студентов, а не рассчитывать на их некомпетентность. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 23:39 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Я не буду возражать. Но обсуждение кейлоггера в данном топике - неконструктивно. Оно - не поможет Диме. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2018, 23:42 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TDima TПогуглил немного: оказывается RSA c 32-битным ключом это пара десятков строк кода ))) Пошел писать. Строк мало, а в 32 бита вписаться проблематично :( Есть проблемы с генерацией ключей.какие проблемы то? гдет тема была с генерацией простых чисел фигня только выйдет, взламывается на ура тупым перебором ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 00:15 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Победил разрядность, черновик без тюнинга производительности Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Далее шифрование Код: plaintext 1.
и расшифровка Код: plaintext 1.
где Код: plaintext 1. 2. 3.
Тут еще один вопрос: я не совсем понимаю про допустимую разрядность шифруемого. Т.к. в итоге происходит "% n", то могу ли я ожидать что все значения до n (0 <= x < n) будут корректно зашифрованы и расшифрованы? Планирую двухбайтными блоками шифровать, плюс флаг для указания что один байт зашифрован, т.е. шифруемые значения 0 <= x <= 0x100FF. Поэтому ограничил 0x100000 <= n <= 0xFFFFFF. Т.е. минимальный n почти в 16 раз больше максимального шифруемого. Тесты погоняю, но ключей множество, все комбинации не проверить. Хотелось бы найти какое-то мат.доказательство. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 09:25 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima T Тут еще один вопрос: я не совсем понимаю про допустимую разрядность шифруемого. Т.к. в итоге происходит "% n", то могу ли я ожидать что все значения до n (0 <= x < n) будут корректно зашифрованы и расшифрованы? не все, ограничение из теоремы Эйлера m, p1, p2 - должны быть взаимнопросты ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 09:33 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
kealon(Ruslan)Dima T Тут еще один вопрос: я не совсем понимаю про допустимую разрядность шифруемого. Т.к. в итоге происходит "% n", то могу ли я ожидать что все значения до n (0 <= x < n) будут корректно зашифрованы и расшифрованы? не все, ограничение из теоремы Эйлера m, p1, p2 - должны быть взаимнопросты В смысле для pow_mod(base, exp, n) взаимнопросты exp и n, т.к. специально генерятся, а base тоже должно быть взимнопростое к exp и n? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 09:38 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima T Код: plaintext 1. 2. 3. 4. 5. 6. 7.
вот это нехорошо, гугли расширенный алгоритм Евклида ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 09:40 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima Tkealon(Ruslan)пропущено... не все, ограничение из теоремы Эйлера m, p1, p2 - должны быть взаимнопросты В смысле для pow_mod(base, exp, n) взаимнопросты exp и n, т.к. специально генерятся, а base тоже должно быть взимнопростое к exp и n?не к експоненте, а к p и q ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 09:46 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
kealon(Ruslan)Dima Tпропущено... В смысле для pow_mod(base, exp, n) взаимнопросты exp и n, т.к. специально генерятся, а base тоже должно быть взимнопростое к exp и n?не к експоненте, а к p и q Добавил тупой перебор Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Не срабатывает, хотя вот например значения Код: plaintext 1. 2.
Как понимаю должно сглючить на каждом кратном 1823, т.е. 3646, 5469, 7292, 9115 и т.д. но работает. Оставим этот вопрос открытым, пока просто добавлю эту проверку в генерацию ключей. kealon(Ruslan)вот это нехорошо, гугли расширенный алгоритм Евклида Евклида загуглил, спасибо за подсказку, а то хотел свой велосипед изобретать. kealon(Ruslan)фигня только выйдет, взламывается на ура тупым перебором Думаю прежде чем тюнинг устраивать надо перебор запустить: генерить ключи и писать в какой-нибудь std::map, посмотреть как быстро будет увеличиваться количество уникальных комбинаций, как часто повторы случаются. Если их относительно немного получится, например миллиард, то можно сложить их в табличку и по открытому ключу получать закрытый. Написал, посмотрел код: Код: plaintext 1.
Для начала разрядность n и e надо повысить. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 10:32 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TДумаю прежде чем тюнинг устраивать надо перебор запустить: генерить ключи и писать в какой-нибудь std::map, посмотреть как быстро будет увеличиваться количество уникальных комбинаций, как часто повторы случаются. Если их относительно немного получится, например миллиард, то можно сложить их в табличку и по открытому ключу получать закрытый. Написал, посмотрел код: Код: plaintext 1.
Для начала разрядность n и e надо повысить.Зачем??? просто n разложить на множители и дальше расчёт ключей тривиален - вот и весь "взлом" ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 11:46 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
kealon(Ruslan)просто n разложить на множители и дальше расчёт ключей тривиален - вот и весь "взлом" Точно. На перебор всех простых от 2 до sqrt(n) надо меньше секунды. Потом немного перебора с подбором d. Все равно допилю, без исходников сложно понять что это за алгоритм. А в случае необходимости всегда можно перейти на полноценный RSA. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 14:04 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
kealon(Ruslan)Dima T Код: plaintext 1. 2. 3. 4. 5. 6. 7.
вот это нехорошо, гугли расширенный алгоритм Евклида Алгоритм нагуглил , только как его тут применить не понимаю. Алгоритм Евклида можно расширить так, что он не только даст НОД(a,b)=d, но и найдет целые числа x и y, такие что ax + by = d. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 14:11 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Вроде нашел как https://foxford.ru/wiki/informatika/rasshirennyy-algoritm-evklida Одним из применений расширенного алгоритма Евклида является нахождение обратного элемента в кольце вычетов по модулю.... ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 14:18 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TЭлементарно: если кто-то назовется Алисой, то при этом реальная Алиса зайти не сможет, поэтому она позвонит и скажет: "ваша корявая прога не работает". Вопрос не во входе, вопрос в регистрации нового пользователя. В системе ещё нет Алисы. Как Алиса докажет, что это она Алиса, а не Хрен-с-горы, который ею представился час назад? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 14:39 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TВроде нашел как https://foxford.ru/wiki/informatika/rasshirennyy-algoritm-evklida Одним из применений расширенного алгоритма Евклида является нахождение обратного элемента в кольце вычетов по модулю.... не помню откуда брал, нерекурсивный вариант: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 15:22 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDima TЭлементарно: если кто-то назовется Алисой, то при этом реальная Алиса зайти не сможет, поэтому она позвонит и скажет: "ваша корявая прога не работает". Вопрос не во входе, вопрос в регистрации нового пользователя. В системе ещё нет Алисы. Как Алиса докажет, что это она Алиса, а не Хрен-с-горы, который ею представился час назад? Это-то тут при чем? Тут каждый сам решает как при регистрации убедиться что пользователь тот за кого себя выдает. Эта проблема не этого топика, но она мне известна, как-то ее тоже надо будет решать, как один из вариантов вводить спец.учетку(и) админа: юзер саморегается, но изначально получает права писать только админам, передает админам инфу о себе, на основании полученной инфы админ дает серверу команду подтверждения или удаления новичка. В общем это тема для отдельного топика. Суть моей проблемы в том чтобы никто не смог писать от лица уже имеющейся учетки. Например тебе в вацап напишут с неизвестного номера - ничего страшного, главное чтобы левые люди не писали с известных тебе номеров. Т.е. получатель изначально знает от кого принимать сообщения. Я эту проблему решаю. Например резервное копирование: есть получатель "backup", ему сообщил что слать файлы могут "proga1", "proga2" и "proga3". От этих учеток принимает, остальным пишет "Извините, а вы кто?" ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 15:33 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
kealon(Ruslan)не помню откуда брал, нерекурсивный вариант: Спасибо. А то в инете только с рекурсией. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 15:36 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima Tkealon(Ruslan)не помню откуда брал, нерекурсивный вариант: Спасибо. А то в инете только с рекурсией.та нет, мусорка просто та ещё тынц ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 15:37 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
kealon(Ruslan)Dima Tпропущено... Спасибо. А то в инете только с рекурсией.та нет, мусорка просто та ещё тынц Я уже твой переписал Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.
Вроде работает ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 16:05 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Затестил перебор. За полчаса нагенерил 7 млн. пар ключей, количество уникальных остановилось на 3`607`581 и даже по одному не добавляется. Можно ломать таблицей ключей ))) Понаблюдаю еще пару часов. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 17:53 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
kealon(Ruslan)Dima Tпропущено... Строк мало, а в 32 бита вписаться проблематично :( Есть проблемы с генерацией ключей.какие проблемы то? гдет тема была с генерацией простых чисел фигня только выйдет, взламывается на ура тупым перебором Тест Миллера-рабина применяется. Для чисел которые во много раз больше чем мы генерили несколько лет назад. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 18:04 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonТест Миллера-рабина применяется. Для чисел которые во много раз больше чем мы генерили несколько лет назад.этот тест для проверки простоты числа используется, когда ищут пару для ключа. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 18:34 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TЗатестил перебор. За полчаса нагенерил 7 млн. пар ключей, количество уникальных остановилось на 3`607`581 и даже по одному не добавляется. Можно ломать таблицей ключей ))) Понаблюдаю еще пару часов. Полтора часа прошло, 27 млн. обработано, а уникальных те же 3`607`581. Все понятно, вырубаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2018, 19:28 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Оказывается Тест Миллера — Рабина иногда имеет ложноположительные срабатывания Однако, с его помощью нельзя строго доказать простоту числа. Тем не менее тест Миллера — Рабина часто используется в криптографии для получения больших случайных простых чисел. Наткнулся на is_prime(233 * 1103) дает true, я на его основе делаю пару ключей, естественно они не рабочие. Как с этим бороться? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 10:35 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Да. Это нормально. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 11:26 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
А все-таки, ключ - это одно число, или система чисел? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 13:48 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
С точки зрения криптографии ключ - это просто массив битов. Но для нашего (человеческого восприятия) мы можем его представлять в виде - Целого десятичного числа: 12345678 - Двоично десятичного (binhex) Например: 00 FF AB C1 - Base64 - кодированного представления (система счисления с основанием 64) Но есть формы генерации ключа когда он должен удовлетворять каким-то требованиям Разложимость на небольшое число простых множителей - это просто один из частных случаев. Для симметричной криптографии (например шифр DES) например ключ это просто массив из 56 битов. Для тройного ДЕС-а - соотвествтенно бутерброд из трех ключей 3*56. И формулы там - другие. Но в большинстве случаев это просто очень хороший случайный поток битов. Без повторов и авто-корреляций. Есть формулы отображающие пароль в ключ. Но они все соотв. имею слабые места зависящие от длины пароля. Выше Дима привёл замечание к методу Раввина-Миллера. Од даёт ложные сообщения о том что число простое. Но это допустимо. Во первых у него - ошеломительная скорость по сравнению с традиционными методами. Во вторых он параметризируется числом раундов. (Здесь я точно не помню надо почиать). Ну вобщем в беря во внимание длинну целых чисел с коротыми он работает - его предсказание простоты вполне себе подходит для практических задач. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 14:02 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Поскольку ищется число, скажем так, оригинальное, то почему оно не может быть в виде массива сочетаний из 0 и 1 (естественно в битах)? Длина массива сочетаний - любая. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 14:11 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Я не до конца понял что разрабатывает Дима. Но RSA стандартизирован и имеет фиксированные разрядности алгоритмов и ключей. Хотя если брать математическое описание алгоритма - то его можно адаптировать под любые разрядности. Главное чтоб наши комьютеры не захлебнулись. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 14:24 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonЯ не до конца понял что разрабатывает Дима. Но RSA стандартизирован и имеет фиксированные разрядности алгоритмов и ключей. Хотя если брать математическое описание алгоритма - то его можно адаптировать под любые разрядности. Главное чтоб наши комьютеры не захлебнулись. RSA как по учебнику. Алгоритм с википедии, он же в каментах кода 21776202 Единственное ограничение - вписаться в 32 бита, чтобы использовать стандартные целые типы. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 14:36 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Вобщем от 1024 бит и выше. Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 14:36 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
До 16 килобайт. Код: sql 1. 2.
Предыдущий запуск с 16к отработал но занял где-то 2 минуты. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 14:42 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TЭто-то тут при чем? Это тут при том, что авторизация не зависит от того кем она проводится. Если сервер верит Алисе на слово, а Боб доверяет серверу, то Боб может спокойно верить Алисе на слово и степень безопасности от этого не изменится. Получит ли Боб ключ Алисы от сервера или от Алисы непосредственно - совершенно всё равно. Dima TСуть моей проблемы в том чтобы никто не смог писать от лица уже имеющейся учетки. Например тебе в вацап напишут с неизвестного номера - ничего страшного, главное чтобы левые люди не писали с известных тебе номеров. Т.е. получатель изначально знает от кого принимать сообщения. Я эту проблему решаю. Если Боб один раз получил ключ Алисы от сервера, то уже никто кроме самой Алисы не сможет ему написать с этой учётки даже при моментальном отсутствии сервера. Это тривиально и на "проблему" не тянет. PS: Эх, а я-то считал себя безалаберным используя для идентификации 381-битные ключи... ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 15:02 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TНаткнулся на is_prime(233 * 1103) дает true, я на его основе делаю пару ключей, естественно они не рабочие. Как с этим бороться? Именно так и бороться: проверять сгенерированную пару ключей на "рабочесть". Если проверка не прошла - генерировать новую пару. Все так делают. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 15:05 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonRSA стандартизирован и имеет фиксированные разрядности алгоритмов и ключей. Как алгоритм он никаких ограничений не имеет. SSH/SSL имеет ограничения по используемым (генерируемым) ключам, но они связаны исключительно с соображениями безопасности снизу и используемым протоколом сверху. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 15:10 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Мне кажется надо еще раз проговорить архитектуру Димы. Как я понял сеть - централизованная. Есть сервер но он иногда недоступен. Верно? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 15:33 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonЯ не до конца понял что разрабатывает Дима. Но RSA стандартизирован и имеет фиксированные разрядности алгоритмов и ключей. Хотя если брать математическое описание алгоритма - то его можно адаптировать под любые разрядности. Главное чтоб наши комьютеры не захлебнулись.А если адаптировать алгоритмы под ключи? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 16:03 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDima TЭто-то тут при чем? Это тут при том, что авторизация не зависит от того кем она проводится. Если сервер верит Алисе на слово, а Боб доверяет серверу, то Боб может спокойно верить Алисе на слово и степень безопасности от этого не изменится. Получит ли Боб ключ Алисы от сервера или от Алисы непосредственно - совершенно всё равно. Dima TСуть моей проблемы в том чтобы никто не смог писать от лица уже имеющейся учетки. Например тебе в вацап напишут с неизвестного номера - ничего страшного, главное чтобы левые люди не писали с известных тебе номеров. Т.е. получатель изначально знает от кого принимать сообщения. Я эту проблему решаю. Если Боб один раз получил ключ Алисы от сервера, то уже никто кроме самой Алисы не сможет ему написать с этой учётки даже при моментальном отсутствии сервера. Это тривиально и на "проблему" не тянет. PS: Эх, а я-то считал себя безалаберным используя для идентификации 381-битные ключи... Еще раз - давай оставим в стороне тему создания новых учеток. Я ее не поднимал. Тема сильно зависит от области применения. Обычно эта задача решается так что с улицы никого не пускают, а пускают из другой системы, где пользователь уже присутствует. Если ты банк, то сначала пакет документов в ответ учетка. Если мессенджер, то давай номер телефона и получи код в смс-ке и т.д. и т.п. У меня эта тема уже порешана, учетки заводятся не без участия администраторов. Проблем с нездоровой активностью фантомных учеток у меня нет и не было. maytonКак я понял сеть - централизованная. Есть сервер но он иногда недоступен. Верно? Верно, но при отсутствии сервера учетки могут обмениваться сообщениями, главное убедиться что тот кто пишет является тем за кого выдает. Это надо только при отсутствии сервера. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 16:41 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TmaytonКак я понял сеть - централизованная. Есть сервер но он иногда недоступен. Верно? Верно, но при отсутствии сервера учетки могут обмениваться сообщениями, главное убедиться что тот кто пишет является тем за кого выдает. Это надо только при отсутствии сервера. Ок. Тогда следующий вопрос-предложение. Или мысль. Или statement. Если я буду неправ - сообщи. 1) При установке софта в каждое приложение прошивается сертификат (публичный ключ + реквизиты) сервера. 2) Все клиенты обмениваются сообщениями по принципу все-со всеми. Протокол и формат сейчас не имеет значения. TCP/UDP, Jabber, JMS. 3) Имеет значение аутентичноть. Тоесть все сообщения от всех имеют отправителя. Например. Код: sql 1.
В данном случае в сети может существовать только 1 mayton. 4) Сообщения от лже-mayton должны - игнорироваться? - помечаться как непроверенные? Ненадёжные? Non-confident. 5) Любой контрагент может войти в сеть без сервера и (теоретически) начать писать другим сообщения. Данный пункт является архитектурной проблемой и его надо как-то разрешить. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 16:53 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TВерно, но при отсутствии сервера учетки могут обмениваться сообщениями, главное убедиться что тот кто пишет является тем за кого выдает. Это надо только при отсутствии сервера. Тогда повторяю медленно: авторизационные токены всех участников рассылаются всем остальным участникам с сервера чем быстрее тем лучше. Если сообщение пытается отправить кто-то, чьего токена у получателя ещё нет - он получает отлуп. Всё. Если последний пункт тебя не устраивает, то ты можешь завести "временное доверие", при котором принятое сообщение помещается в карантин и ждёт до тех пор когда сервер вернётся и подтвердит подлинность отправителя. Если ждать возвращения сервера невтерпёж, то подтверждение токена может быть запрошено у других участников сети и доверие к отправителю можно оценить по кворуму. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 18:01 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonDima Tпропущено... Верно, но при отсутствии сервера учетки могут обмениваться сообщениями, главное убедиться что тот кто пишет является тем за кого выдает. Это надо только при отсутствии сервера. Ок. Тогда следующий вопрос-предложение. Или мысль. Или statement. Если я буду неправ - сообщи. 1) При установке софта в каждое приложение прошивается сертификат (публичный ключ + реквизиты) сервера. 2) Все клиенты обмениваются сообщениями по принципу все-со всеми. Протокол и формат сейчас не имеет значения. TCP/UDP, Jabber, JMS. 3) Имеет значение аутентичноть. Тоесть все сообщения от всех имеют отправителя. Например. Код: sql 1.
В данном случае в сети может существовать только 1 mayton. 4) Сообщения от лже-mayton должны - игнорироваться? - помечаться как непроверенные? Ненадёжные? Non-confident. 5) Любой контрагент может войти в сеть без сервера и (теоретически) начать писать другим сообщения. Данный пункт является архитектурной проблемой и его надо как-то разрешить. 1. Клиент как-то получает логин/пароль. Нет смысла расписывать всю схему. Клиент - это конкретный пользователь конкретной копии БД, но не только. Есть еще роботы. 2. Верно. 3. Верно. 4. лже-mayton вообще не должен попасть в систему, т.е. если один mayton онлайн в системе, то второй не может залогинится. 5. Собственно это и есть проблема о которой топик. Я придумал как ее минимизировать 21771725 . С другой стороны мне хочется понять насколько полезно неполноценное шифрование: в общем случае мой самодельный RSA32 ломается меньше чем за секунду (до написания в инете видел заявления что до суток продержится, но увы и ах, kealon(Ruslan) отрезвил), с другой стороны он нужен для редких случаев когда нет инета. Мой RSA32 может и дырявый насквозь, но если обеспечить получение открытого ключа только проверенными пользователями, то он вполне будет криптостоек, т.к. при прослушке зашифрованное не прочитать без ключей. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 18:14 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Заменил проверку на простое с Миллера-Рабина, на тупую проверку остатка от деления всех простых до sqrt(x). Стало быстрее в два раза. Наверно это особенность x32, на больших разрядностях такая проверка захлебнется. bool is_prime32(uint32_t x) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 18:54 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima Tлже-mayton вообще не должен попасть в систему, т.е. если один mayton онлайн в системе, то второй не может залогинится. А если сервера нет, то как этот первый сможет залогиниться? Dima TСобственно это и есть проблема о которой топик. Я придумал как ее минимизировать А я предлагаю как её устранить на корню. При этом центральный сервер вообще можно выкинуть из картины за ненадобностью. Что и сделано у биткоина и прочих блокчейнов. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 19:30 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima T1. Клиент как-то получает логин/пароль. Нет смысла расписывать всю схему. Клиент - это конкретный пользователь конкретной копии БД, но не только. Есть еще роботы. 2. Верно. 3. Верно. 4. лже-mayton вообще не должен попасть в систему, т.е. если один mayton онлайн в системе, то второй не может залогинится. 5. Собственно это и есть проблема о которой топик. Я придумал как ее минимизировать 21771725 . С другой стороны мне хочется понять насколько полезно неполноценное шифрование: в общем случае мой самодельный RSA32 ломается меньше чем за секунду (до написания в инете видел заявления что до суток продержится, но увы и ах, kealon(Ruslan) отрезвил), с другой стороны он нужен для редких случаев когда нет инета. Мой RSA32 может и дырявый насквозь, но если обеспечить получение открытого ключа только проверенными пользователями, то он вполне будет криптостоек, т.к. при прослушке зашифрованное не прочитать без ключей. Хм. В твоей схеме шифрование-то вобщем не нужно. В момент регистрации когад клиент как-то получает логин/пароль - сервер получает публичный ключ клиента. Подписывает его. И сохраняет в свою базу. И с этого момента все участники чата если обращаются на сервер могут получить образ этой базы и кешировать его так-же как браузер хранит "печенюшки". Основываясь на TTL каждой записи. (Помним что сертификаты имеют срок годности). Есть еще схема когда участники между собой могут передавать образ этой базы. Поскольку все записи заверены сервером (хардкод главного сертификата) то все имеют возможность видеть публичные ключи всех. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 19:36 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Вот к примеру публичная часть RSA-ключа которую я сгенерил сегодня Код: sql 1. 2. 3. 4. 5. 6. 7.
В данном случае ssh-rsa - видимо сигнатура файла. Длинная белиберда в base64 это и есть ключ. Остальное - это пользователь-хост и протокол. (P.S. всё побежал резать Оливье пока меня жена не убила...) ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 19:42 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Поделюсь немного своим жизненным опытом: на клиенте шифрование БД было, обмен с сервером был по HTTP (не HTTPS) с открытой передачей пароля по самодельному протоколу. Конкуренты (их прога стояла там же где моя) не стали вникать в тонкости, а пошли сначала путем подмены DNS, т.е. в hosts на мои домены прописали свои шлюзы, где пытались анализировать трафик и рубить им не угодный, хотели скомпромитировать что у меня обмен не надежен. Не получилось. Затем просто за DDOS-или мой сервер. Если учетка связана с деньгами, например вход в инет-банк, то да, согласен, есть интерес взломать и деньги украсть, а если явных денег нет, то проще заддосить и попросить денег за остановку атаки. Я исхожу из того что заддосить меня нельзя, а в остальном я нафиг не интересен, я Неуловимый Джо. PS Никому не навязываю свою точку зрения, т.к. всем начальство может задать вопрос "а может быть что шпиьон прочитает нашу переписку?", ответить "нет" можно дать только при применении общеизвестных и проверенных способов шифрования. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 20:18 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima T, ведь в цикле вместо всех нечётных достаточно 6х+-1, т.е. 1/3 всех значений вместо половины. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 20:36 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
exp98Dima T, ведь в цикле вместо всех нечётных достаточно 6х+-1, т.е. 1/3 всех значений вместо половины. Знаю, но для x32 это не сильно ускорит. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 20:45 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovDima Tлже-mayton вообще не должен попасть в систему, т.е. если один mayton онлайн в системе, то второй не может залогинится. А если сервера нет, то как этот первый сможет залогиниться? Никак. Но есть локалка, где 2-3 юзера заинтересованных в обмене друг с другом. Найти друг-друга элементарно через mailslot`ы. Дальше надо убедиться что они те за кого себя выдают, что и есть тема топика. Dimitry SibiryakovDima TСобственно это и есть проблема о которой топик. Я придумал как ее минимизировать А я предлагаю как её устранить на корню. При этом центральный сервер вообще можно выкинуть из картины за ненадобностью. Что и сделано у биткоина и прочих блокчейнов. Не стоит исключение превращать в правило. Серверов я могу пачку поднять и наладить между ними репликацию и оповещение клиентов какие сервера доступны. Это неубиваемо и гораздо эффективней блокчейнов ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 21:08 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, самое главное что по UDP не будет работать без сервера. Наты и брандмауры не пропустят. Алиса спрашивает у сервера адрес Боба. Сервер пишет Алисе адрес Боба и Бобу адрес Алисы . Алиса и Боб начинают писать друг-другу и пробивают все наты и брандмауры. Ключевое слово "друг-другу", без этого никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 21:15 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Как-то.... сумбурно все. Есть и DDOS. И локальная сеть. Вещи вобщем-то несовместимые. Вобщем как для меня то надо отделить мух от котлет и понять что за проблема решается. Какие есть бизнес-кейсы. Как это будет использоваться. Вобщем сумбурно. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 21:42 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TНе стоит исключение превращать в правило. Серверов я могу пачку поднять и наладить между ними репликацию и оповещение клиентов какие сервера доступны. Это неубиваемо и гораздо эффективней блокчейнов Это неубиваемо только пока ты жив и твои сервера не блокируются целенаправленно. Но распределённая пировая сеть всё равно надёжнее. Хотя, конечно, с вендор-лок и зависимостью от тебя в этом случае будет облом, а значит монетизация может не заработает. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.12.2018, 23:00 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonХм. В твоей схеме шифрование-то вобщем не нужно. В момент регистрации когад клиент как-то получает логин/пароль - сервер получает публичный ключ клиента. Подписывает его. И сохраняет в свою базу. И с этого момента все участники чата если обращаются на сервер могут получить образ этой базы и кешировать его так-же как браузер хранит "печенюшки". Основываясь на TTL каждой записи. (Помним что сертификаты имеют срок годности). Есть еще схема когда участники между собой могут передавать образ этой базы. Поскольку все записи заверены сервером (хардкод главного сертификата) то все имеют возможность видеть публичные ключи всех.в принципе да, схема с сертификатами для идентификации вполне работоспособна Клиент1 генерит открытый и закрытый ключ для сессии Клиент1 отправляет серверу запрос авторизации со сгенеренным паблик-ключом Сервер например добавляет время, берёт подпись хэшсумму с этого добра, подписывает её своим закрытым ключом и отправляет подпись назад клиенту клиент1 подцепляется к клиенту2 отправив свой открытый ключ и ответ сервера клиент2 знает паблик-ключ сервера и расшифровывает исходную хэш-сумму из предполагаемого ответа сервера, считает хэш-сумму по тому же алгоритму из предоставленных данных и сравнивает. Совпадает - доверяет но естественно ключи должны быть адекватной длины ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2018, 00:36 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
https://crypto.stackexchange.com/questions/12479/how-to-perform-authentication-without-central-server-in-p2p там правда ссылка на проект битая. Ещё можно использовать https://en.m.wikipedia.org/wiki/Public_key_fingerprint для идентификации. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2018, 10:52 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonВобщем сумбурно. Это разные части одной большой системы, но к теме это не относится. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2018, 11:50 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
kealon(Ruslan)maytonХм. В твоей схеме шифрование-то вобщем не нужно. В момент регистрации когад клиент как-то получает логин/пароль - сервер получает публичный ключ клиента. Подписывает его. И сохраняет в свою базу. И с этого момента все участники чата если обращаются на сервер могут получить образ этой базы и кешировать его так-же как браузер хранит "печенюшки". Основываясь на TTL каждой записи. (Помним что сертификаты имеют срок годности). Есть еще схема когда участники между собой могут передавать образ этой базы. Поскольку все записи заверены сервером (хардкод главного сертификата) то все имеют возможность видеть публичные ключи всех.в принципе да, схема с сертификатами для идентификации вполне работоспособна Клиент1 генерит открытый и закрытый ключ для сессии Клиент1 отправляет серверу запрос авторизации со сгенеренным паблик-ключом Сервер например добавляет время, берёт подпись хэшсумму с этого добра, подписывает её своим закрытым ключом и отправляет подпись назад клиенту клиент1 подцепляется к клиенту2 отправив свой открытый ключ и ответ сервера клиент2 знает паблик-ключ сервера и расшифровывает исходную хэш-сумму из предполагаемого ответа сервера, считает хэш-сумму по тому же алгоритму из предоставленных данных и сравнивает. Совпадает - доверяет но естественно ключи должны быть адекватной длины ИМХО Сервер выступает в роли удостоверяющего центра, просто подтверждает своей подписью валидность сертификата внутри которого указан логин и его открытый ключ. Дальше как угодно можно взаимодействовать. Желающий что-то послать сначала посылает рандомный секрет (ключ сессии) получателю, зашифрованный его открытым ключом, затем сообщение зашифрованное рандомным секретом. В общем я пришел к выводу что надо задействовать полноценное шифрование. Делаем один сервер подписывающий сертификаты (логин, открытый ключ, срок действия), т.е. УЦ, а дальше логины как угодно могут общаться, любыми каналами. PS Велосипед проиграл :( ... |
|||
:
Нравится:
Не нравится:
|
|||
31.12.2018, 19:43 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonДима. Ты когда нибудь с этой штукой разбирался? Должна поверх UDP работать на порту 4672 Не разбирался. Судя по ссылке - это классический P2P. Обмен файлами. Интересно порешана проблема обхода законодательства об авторских правах ))) Что по теме топика, то, как понял, там доступ открыт всем желающим, т.е. никому не интересно Алиса ты или Боб. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2019, 08:26 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TmaytonДима. Ты когда нибудь с этой штукой разбирался? Должна поверх UDP работать на порту 4672 Не разбирался. Судя по ссылке - это классический P2P. Обмен файлами. Интересно порешана проблема обхода законодательства об авторских правах ))) Что по теме топика, то, как понял, там доступ открыт всем желающим, т.е. никому не интересно Алиса ты или Боб. Обмен файлами это уже финал. И это не интересно. Интересно как работает DHT. (Параллельно меня интересовало как работает ZooKeeper, и как вообще реплицировать настройки в распределенной среде (интернет) где нет централизованного управления) Кое-что я начал писать для себя и собирать сведения. автор Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Основной API этого протокола содержит всего 4 команды PING, STORE, FIND_NODE, FIND_VALUE. Благодаря им узлы обмениваются сведениями и ищут и что характерно находят информацию по хешу. Это настоящая магия, чувак. Здесь 21768887 один господин выкладывал полноценный Torrent клиент. Но он меня не интересовал. Мне была нужна только та часть клиента которая оперирует с DHT. Если тебе интересна тема распределенных хеш таблиц и поиска - можем поднять отдельный топик. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2019, 12:49 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonЭто настоящая магия, чувак. Это хрень. Там ни слова про надежность. Ну не смог скачать ты сейчас кинчик который искал, ну и ладно, скачай другой. Лично меня интересует гарантированная доступность искомых данных, а тут никаких гарантий, носители куска скачиваемого недоступны - обломись. Для обмена кино-аудио сгодится, но не более того. PS Повторю: они порешали проблему обхода авторских прав. Ни одна их нод не хранит файл целиком, т.е. не предъявить незаконное копирование. Это основная мысль той системы ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2019, 20:14 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
maytonЕсли тебе интересна тема распределенных хеш таблиц и поиска - можем поднять отдельный топик. Неинтересна. Это понижение надежности. Распределяем данные на 2 узла, надежность получения данных снижается в два раза. Мне интересна тема как записать сообщение на несколько (минимум) узлов и получить гарантированную возможность получения сообщения в любой момент. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2019, 20:35 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TmaytonЭто настоящая магия, чувак. Это хрень. Там ни слова про надежность. Ну не смог скачать ты сейчас кинчик который искал, ну и ладно, скачай другой. Лично меня интересует гарантированная доступность искомых данных, а тут никаких гарантий, носители куска скачиваемого недоступны - обломись. Для обмена кино-аудио сгодится, но не более того. PS Повторю: они порешали проблему обхода авторских прав. Ни одна их нод не хранит файл целиком, т.е. не предъявить незаконное копирование. Это основная мысль той системы Ну... DHT - то вообще не про файлы. Это про обмен ключей и значений в распеделённом интернете. Где половина хостов в любой момент времени могут быть выключены или недоступны. Где в сеть заходят новые машины за NAT, proxy и vpn. Где непрерывно идет репликация и появляются и исчезают новые ключи. Вобщем если захочешь - продолжим отдельным топиком. Меня в этой модели интересует вариант как быстро (после публикации) ключ станет доступен в условиях этой неопределённой доступности хостов. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2019, 21:35 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TmaytonЕсли тебе интересна тема распределенных хеш таблиц и поиска - можем поднять отдельный топик. Неинтересна. Это понижение надежности. Распределяем данные на 2 узла, надежность получения данных снижается в два раза. Мне интересна тема как записать сообщение на несколько (минимум) узлов и получить гарантированную возможность получения сообщения в любой момент. Ну... это вообще не про надёжность. Это про ... Криптономикон что-ли. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2019, 21:36 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima Tтема как записать сообщение на несколько (минимум) узлов и получить гарантированную возможность получения сообщения в любой момент. Опаньки!! Уж полночь близится, снова на работу скоро, а они всё о своём ... Не смог удержаться: может это в сторону кодирования с автоматическим исправлением ошибок? хэмминг и т.п.? вспомнились раиды, где можно на лету выдёргивать не только диск из общей кучи, но и процессор ... Но это заведомая избыточность записи, чудес не бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.01.2019, 23:45 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
exp98Dima Tтема как записать сообщение на несколько (минимум) узлов и получить гарантированную возможность получения сообщения в любой момент. Опаньки!! Уж полночь близится, снова на работу скоро, а они всё о своём ... Не смог удержаться: может это в сторону кодирования с автоматическим исправлением ошибок? хэмминг и т.п.? вспомнились раиды, где можно на лету выдёргивать не только диск из общей кучи, но и процессор ... Но это заведомая избыточность записи, чудес не бывает. В блокчейн писать можно. В FreeNet или DarkNet Не помню точно где есть репликация контента по машинкам юзеров. Можно публиковать ресурс на torrent-ах, и надеятся что кто-то пару раз скачал. AWS S3. Google Drive. Microsoft Drive. Или просто купить любой жлобский хостинг для хомяка. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2019, 00:05 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TЭто понижение надежности. Распределяем данные на 2 узла, надежность получения данных снижается в два раза. Наоборот, она повышается. Это RAID уровня 1, а не 0. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2019, 14:53 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Может я невнимательно прочитал, понял что куски файлов по нодам рассовываются. Не важно. Все-равно речь о протоколе P2P для хранения файлов, а это другое, не то что нужно мне. Меня интересует обмен сообщениями, которые никак хранить не надо. P2P в моем случае это прямая отправка между получателем и отправителем. Есть отдельная подтема оффлайн доставки при недоступности получателя, но ее можно пока не рассматривать. Я не собираюсь отказываться от центральной части, которая разрешает вход клиентам, помогает находить друг-друга, вводить новых участников и т.д. Задача не стоит сделать абсолютно децентрализованную систему. Меня и централизованная устроила бы, но она должна быть неубиваемой. Неубиваемость серверной части я вижу в подъеме нескольких серверов и репликации их состояний. Т.е. каждый сервер имеет инфу о всех открытых клиентских сессиях. Каждый клиент знает все сервера, поэтому при падении одного сервера клиент может легко переключиться на другой даже не теряя сессии. От P2P мне нужна только передача данных между клиентами, где все будет быстро и без ограничений, хоть гигабайты бэкапов гоняй. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2019, 19:14 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
И блокчейн не особо интересен. Да, туда можно внести логины клиентов с их открытыми ключами. Но это не все функции центра. Т.к. это UDP, то одна из задач сервера определить внешний IP:порт клиента и сообщить тому кто захочет с ним связаться. Т.к. связаться в одностороннем порядке не получится из-за NAT, из-за брэндмауэра, то кто-то третий должен сообщить клиенту что с ним хотят связаться с такого-то IP:порт. Нужен центр. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2019, 19:29 |
|
Авторизация без сервера
|
|||
---|---|---|---|
#18+
Dima TМожет я невнимательно прочитал, понял что куски файлов по нодам рассовываются. Не важно. Все-равно речь о протоколе P2P для хранения файлов, а это другое, не то что нужно мне. Меня интересует обмен сообщениями, которые никак хранить не надо. P2P в моем случае это прямая отправка между получателем и отправителем. Есть отдельная подтема оффлайн доставки при недоступности получателя, но ее можно пока не рассматривать. Я не собираюсь отказываться от центральной части, которая разрешает вход клиентам, помогает находить друг-друга, вводить новых участников и т.д. Задача не стоит сделать абсолютно децентрализованную систему. Меня и централизованная устроила бы, но она должна быть неубиваемой. Неубиваемость серверной части я вижу в подъеме нескольких серверов и репликации их состояний. Т.е. каждый сервер имеет инфу о всех открытых клиентских сессиях. Каждый клиент знает все сервера, поэтому при падении одного сервера клиент может легко переключиться на другой даже не теряя сессии. От P2P мне нужна только передача данных между клиентами, где все будет быстро и без ограничений, хоть гигабайты бэкапов гоняй. Коробочное решение - Infinispan. Посмотри. Возможно сойдет. http://infinispan.org/ ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2019, 21:44 |
|
|
start [/forum/topic.php?all=1&fid=16&tid=1340007]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
51ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
160ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 277ms |
0 / 0 |