powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Авторизация без сервера
25 сообщений из 117, страница 4 из 5
Авторизация без сервера
    #39755134
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поскольку ищется число, скажем так, оригинальное, то почему оно не может быть в виде массива сочетаний из 0 и 1 (естественно в битах)? Длина массива сочетаний - любая.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755136
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не до конца понял что разрабатывает Дима. Но RSA стандартизирован и имеет фиксированные
разрядности алгоритмов и ключей.

Хотя если брать математическое описание алгоритма - то его можно адаптировать под любые разрядности.
Главное чтоб наши комьютеры не захлебнулись.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755138
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ не до конца понял что разрабатывает Дима. Но RSA стандартизирован и имеет фиксированные
разрядности алгоритмов и ключей.

Хотя если брать математическое описание алгоритма - то его можно адаптировать под любые разрядности.
Главное чтоб наши комьютеры не захлебнулись.
RSA как по учебнику. Алгоритм с википедии, он же в каментах кода 21776202

Единственное ограничение - вписаться в 32 бита, чтобы использовать стандартные целые типы.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755139
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вобщем от 1024 бит и выше.

Код: sql
1.
2.
$ ssh-keygen -t rsa -b 1000
Invalid RSA key length: minimum is 1024 bits
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755141
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
До 16 килобайт.

Код: sql
1.
2.
$ ssh-keygen -t rsa -b 32768
key bits exceeds maximum 16384



Предыдущий запуск с 16к отработал но занял где-то 2 минуты.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755144
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЭто-то тут при чем?
Это тут при том, что авторизация не зависит от того кем она проводится. Если сервер верит Алисе на слово, а Боб доверяет серверу, то Боб может спокойно верить Алисе на слово и степень безопасности от этого не изменится. Получит ли Боб ключ Алисы от сервера или от Алисы непосредственно - совершенно всё равно.

Dima TСуть моей проблемы в том чтобы никто не смог писать от лица уже имеющейся учетки.
Например тебе в вацап напишут с неизвестного номера - ничего страшного, главное чтобы левые люди не писали с известных тебе номеров. Т.е. получатель изначально знает от кого принимать сообщения. Я эту проблему решаю.
Если Боб один раз получил ключ Алисы от сервера, то уже никто кроме самой Алисы не сможет ему написать с этой учётки даже при моментальном отсутствии сервера. Это тривиально и на "проблему" не тянет.

PS: Эх, а я-то считал себя безалаберным используя для идентификации 381-битные ключи...
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755145
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TНаткнулся на is_prime(233 * 1103) дает true, я на его основе делаю пару ключей, естественно они не рабочие.

Как с этим бороться?
Именно так и бороться: проверять сгенерированную пару ключей на "рабочесть". Если проверка не прошла - генерировать новую пару. Все так делают.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755147
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonRSA стандартизирован и имеет фиксированные
разрядности алгоритмов и ключей.
Как алгоритм он никаких ограничений не имеет. SSH/SSL имеет ограничения по используемым (генерируемым) ключам, но они связаны исключительно с соображениями безопасности снизу и используемым протоколом сверху.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755150
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне кажется надо еще раз проговорить архитектуру Димы.

Как я понял сеть - централизованная. Есть сервер но он иногда недоступен. Верно?
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755153
Gennadiy Usov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЯ не до конца понял что разрабатывает Дима. Но RSA стандартизирован и имеет фиксированные разрядности алгоритмов и ключей.
Хотя если брать математическое описание алгоритма - то его можно адаптировать под любые разрядности.
Главное чтоб наши комьютеры не захлебнулись.А если адаптировать алгоритмы под ключи?
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755162
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovDima TЭто-то тут при чем?
Это тут при том, что авторизация не зависит от того кем она проводится. Если сервер верит Алисе на слово, а Боб доверяет серверу, то Боб может спокойно верить Алисе на слово и степень безопасности от этого не изменится. Получит ли Боб ключ Алисы от сервера или от Алисы непосредственно - совершенно всё равно.

Dima TСуть моей проблемы в том чтобы никто не смог писать от лица уже имеющейся учетки.
Например тебе в вацап напишут с неизвестного номера - ничего страшного, главное чтобы левые люди не писали с известных тебе номеров. Т.е. получатель изначально знает от кого принимать сообщения. Я эту проблему решаю.
Если Боб один раз получил ключ Алисы от сервера, то уже никто кроме самой Алисы не сможет ему написать с этой учётки даже при моментальном отсутствии сервера. Это тривиально и на "проблему" не тянет.

PS: Эх, а я-то считал себя безалаберным используя для идентификации 381-битные ключи...
Еще раз - давай оставим в стороне тему создания новых учеток. Я ее не поднимал. Тема сильно зависит от области применения.

Обычно эта задача решается так что с улицы никого не пускают, а пускают из другой системы, где пользователь уже присутствует.
Если ты банк, то сначала пакет документов в ответ учетка. Если мессенджер, то давай номер телефона и получи код в смс-ке и т.д. и т.п.
У меня эта тема уже порешана, учетки заводятся не без участия администраторов. Проблем с нездоровой активностью фантомных учеток у меня нет и не было.
maytonКак я понял сеть - централизованная. Есть сервер но он иногда недоступен. Верно?
Верно, но при отсутствии сервера учетки могут обмениваться сообщениями, главное убедиться что тот кто пишет является тем за кого выдает. Это надо только при отсутствии сервера.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755168
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TmaytonКак я понял сеть - централизованная. Есть сервер но он иногда недоступен. Верно?
Верно, но при отсутствии сервера учетки могут обмениваться сообщениями, главное убедиться что тот кто пишет является тем за кого выдает. Это надо только при отсутствии сервера.
Ок. Тогда следующий вопрос-предложение. Или мысль. Или statement.
Если я буду неправ - сообщи.

1) При установке софта в каждое приложение прошивается сертификат (публичный ключ + реквизиты) сервера.
2) Все клиенты обмениваются сообщениями по принципу все-со всеми. Протокол и формат сейчас не имеет значения. TCP/UDP, Jabber, JMS.
3) Имеет значение аутентичноть. Тоесть все сообщения от всех имеют отправителя. Например.
Код: sql
1.
From mayton: Привед! Чо как?


В данном случае в сети может существовать только 1 mayton.
4) Сообщения от лже-mayton должны
- игнорироваться?
- помечаться как непроверенные? Ненадёжные? Non-confident.
5) Любой контрагент может войти в сеть без сервера и (теоретически) начать писать другим
сообщения. Данный пункт является архитектурной проблемой и его надо как-то разрешить.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755181
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TВерно, но при отсутствии сервера учетки могут обмениваться сообщениями, главное убедиться что тот кто пишет является тем за кого выдает. Это надо только при отсутствии сервера.
Тогда повторяю медленно: авторизационные токены всех участников рассылаются всем остальным участникам с сервера чем быстрее тем лучше. Если сообщение пытается отправить кто-то, чьего токена у получателя ещё нет - он получает отлуп. Всё.

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

Если ждать возвращения сервера невтерпёж, то подтверждение токена может быть запрошено у других участников сети и доверие к отправителю можно оценить по кворуму.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755185
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDima Tпропущено...

Верно, но при отсутствии сервера учетки могут обмениваться сообщениями, главное убедиться что тот кто пишет является тем за кого выдает. Это надо только при отсутствии сервера.
Ок. Тогда следующий вопрос-предложение. Или мысль. Или statement.
Если я буду неправ - сообщи.

1) При установке софта в каждое приложение прошивается сертификат (публичный ключ + реквизиты) сервера.
2) Все клиенты обмениваются сообщениями по принципу все-со всеми. Протокол и формат сейчас не имеет значения. TCP/UDP, Jabber, JMS.
3) Имеет значение аутентичноть. Тоесть все сообщения от всех имеют отправителя. Например.
Код: sql
1.
From mayton: Привед! Чо как?


В данном случае в сети может существовать только 1 mayton.
4) Сообщения от лже-mayton должны
- игнорироваться?
- помечаться как непроверенные? Ненадёжные? Non-confident.
5) Любой контрагент может войти в сеть без сервера и (теоретически) начать писать другим
сообщения. Данный пункт является архитектурной проблемой и его надо как-то разрешить.
1. Клиент как-то получает логин/пароль. Нет смысла расписывать всю схему. Клиент - это конкретный пользователь конкретной копии БД, но не только. Есть еще роботы.
2. Верно.
3. Верно.
4. лже-mayton вообще не должен попасть в систему, т.е. если один mayton онлайн в системе, то второй не может залогинится.
5. Собственно это и есть проблема о которой топик. Я придумал как ее минимизировать 21771725 .

С другой стороны мне хочется понять насколько полезно неполноценное шифрование: в общем случае мой самодельный RSA32 ломается меньше чем за секунду (до написания в инете видел заявления что до суток продержится, но увы и ах, kealon(Ruslan) отрезвил), с другой стороны он нужен для редких случаев когда нет инета. Мой RSA32 может и дырявый насквозь, но если обеспечить получение открытого ключа только проверенными пользователями, то он вполне будет криптостоек, т.к. при прослушке зашифрованное не прочитать без ключей.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755192
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заменил проверку на простое с Миллера-Рабина, на тупую проверку остатка от деления всех простых до 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.
// Проверка на простоту делением на простые
bool is_prime32(uint32_t x) {
	// Все 16 битные простые
	static uint16_t *prime = NULL;
	if (prime == NULL) { // Инициализация prime[]
		prime = new uint16_t[6543];
		uint16_t *cur = prime;
		*cur = 2;
		cur++;
		for (uint16_t i = 3; i != 65535; i += 2) {
			bool is_prime = true;
			for (uint16_t *c = prime; (uint32_t)i >= (uint32_t)(*c) * (*c); c++) {
				if (i % (*c) == 0) {
					is_prime = false;
					break;
				}
			}
			if (is_prime) {
				*cur = i;
				cur++;
			}
		}
		*cur = 0; // Ограничитель для чисел близких к максимуму
	}
	// Проверка x
	for (uint16_t *cur = prime; (*cur) != 0 && x >= (uint32_t)(*cur) * (*cur); cur++) {
		if (x % (*cur) == 0) return false;
	}
	return true;
}

...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755200
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tлже-mayton вообще не должен попасть в систему, т.е. если один mayton онлайн в системе, то второй не может залогинится.
А если сервера нет, то как этот первый сможет залогиниться?

Dima TСобственно это и есть проблема о которой топик. Я придумал как ее минимизировать
А я предлагаю как её устранить на корню. При этом центральный сервер вообще можно выкинуть из картины за ненадобностью. Что и сделано у биткоина и прочих блокчейнов.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755201
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T1. Клиент как-то получает логин/пароль. Нет смысла расписывать всю схему. Клиент - это конкретный пользователь конкретной копии БД, но не только. Есть еще роботы.
2. Верно.
3. Верно.
4. лже-mayton вообще не должен попасть в систему, т.е. если один mayton онлайн в системе, то второй не может залогинится.
5. Собственно это и есть проблема о которой топик. Я придумал как ее минимизировать 21771725 .

С другой стороны мне хочется понять насколько полезно неполноценное шифрование: в общем случае мой самодельный RSA32 ломается меньше чем за секунду (до написания в инете видел заявления что до суток продержится, но увы и ах, kealon(Ruslan) отрезвил), с другой стороны он нужен для редких случаев когда нет инета. Мой RSA32 может и дырявый насквозь, но если обеспечить получение открытого ключа только проверенными пользователями, то он вполне будет криптостоек, т.к. при прослушке зашифрованное не прочитать без ключей.
Хм. В твоей схеме шифрование-то вобщем не нужно.

В момент регистрации когад клиент как-то получает логин/пароль - сервер получает публичный ключ
клиента. Подписывает его. И сохраняет в свою базу. И с этого момента все участники чата если
обращаются на сервер могут получить образ этой базы и кешировать его так-же как браузер
хранит "печенюшки". Основываясь на TTL каждой записи. (Помним что сертификаты имеют
срок годности).

Есть еще схема когда участники между собой могут передавать образ этой базы.
Поскольку все записи заверены сервером (хардкод главного сертификата) то все
имеют возможность видеть публичные ключи всех.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755202
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот к примеру публичная часть RSA-ключа которую я сгенерил сегодня

Код: sql
1.
2.
3.
4.
5.
6.
7.
~/.ssh$ fold < id_rsa.pub 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDGSwaUaFwt8Yz7rqkLTQJw+lE2sx74EF9zQ+1GNbEE
/+OXtXhivDIDX+lLJg0KG2ZfXXrZPsvGslmDXYIK7D5jA7HY3bcB9/Z6Wg+HfJvoOvrSab8/mWFr51V9
8WuLAFv9AWj4je1A+Wrr1+IQjtRXgrBrDxmnomvYRn38/vK438WVxs7ByIMBj858u2p6xI6xtGtgt1Da
LvEjJnjKE6X9+MTZnpb/r7RVzXXvHODPnKLQDkVlm8IA47HYuKOCTAwqYETGQVEi6JXMJ481AoHTW21c
HxanOKcyiTObHpr+LiY+o2+Pzy6pyMbXyFIMIsljgiWhUDSe0PyETuaTWu91 mayton@mayton-HP-25
0-G4-Notebook-PC



В данном случае ssh-rsa - видимо сигнатура файла.
Длинная белиберда в base64 это и есть ключ.
Остальное - это пользователь-хост и протокол.

(P.S. всё побежал резать Оливье пока меня жена не убила...)
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755211
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поделюсь немного своим жизненным опытом: на клиенте шифрование БД было, обмен с сервером был по HTTP (не HTTPS) с открытой передачей пароля по самодельному протоколу.

Конкуренты (их прога стояла там же где моя) не стали вникать в тонкости, а пошли сначала путем подмены DNS, т.е. в hosts на мои домены прописали свои шлюзы, где пытались анализировать трафик и рубить им не угодный, хотели скомпромитировать что у меня обмен не надежен. Не получилось. Затем просто за DDOS-или мой сервер.

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

PS Никому не навязываю свою точку зрения, т.к. всем начальство может задать вопрос "а может быть что шпиьон прочитает нашу переписку?", ответить "нет" можно дать только при применении общеизвестных и проверенных способов шифрования.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755214
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, ведь в цикле вместо всех нечётных достаточно 6х+-1, т.е. 1/3 всех значений вместо половины.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755215
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
exp98Dima T, ведь в цикле вместо всех нечётных достаточно 6х+-1, т.е. 1/3 всех значений вместо половины.
Знаю, но для x32 это не сильно ускорит.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755218
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovDima Tлже-mayton вообще не должен попасть в систему, т.е. если один mayton онлайн в системе, то второй не может залогинится.
А если сервера нет, то как этот первый сможет залогиниться?
Никак. Но есть локалка, где 2-3 юзера заинтересованных в обмене друг с другом. Найти друг-друга элементарно через mailslot`ы. Дальше надо убедиться что они те за кого себя выдают, что и есть тема топика.

Dimitry SibiryakovDima TСобственно это и есть проблема о которой топик. Я придумал как ее минимизировать
А я предлагаю как её устранить на корню. При этом центральный сервер вообще можно выкинуть из картины за ненадобностью. Что и сделано у биткоина и прочих блокчейнов.
Не стоит исключение превращать в правило. Серверов я могу пачку поднять и наладить между ними репликацию и оповещение клиентов какие сервера доступны. Это неубиваемо и гораздо эффективней блокчейнов
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755221
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov, самое главное что по UDP не будет работать без сервера. Наты и брандмауры не пропустят.
Алиса спрашивает у сервера адрес Боба.
Сервер пишет Алисе адрес Боба и Бобу адрес Алисы .
Алиса и Боб начинают писать друг-другу и пробивают все наты и брандмауры.
Ключевое слово "друг-другу", без этого никак.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755226
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-то.... сумбурно все. Есть и DDOS. И локальная сеть. Вещи вобщем-то несовместимые.
Вобщем как для меня то надо отделить мух от котлет и понять что за проблема решается.
Какие есть бизнес-кейсы. Как это будет использоваться.

Вобщем сумбурно.
...
Рейтинг: 0 / 0
Авторизация без сервера
    #39755236
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TНе стоит исключение превращать в правило. Серверов я могу пачку поднять и наладить между ними репликацию и оповещение клиентов какие сервера доступны. Это неубиваемо и гораздо эффективней блокчейнов
Это неубиваемо только пока ты жив и твои сервера не блокируются целенаправленно. Но распределённая пировая сеть всё равно надёжнее. Хотя, конечно, с вендор-лок и зависимостью от тебя в этом случае будет облом, а значит монетизация может не заработает.
...
Рейтинг: 0 / 0
25 сообщений из 117, страница 4 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Авторизация без сервера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]