Сообщения в Мысли о стандартах

Re: Мысли о стандартах

Ответ на сообщение
Ты стандарт всё равно опиши в документации, да поподробнее, другим ведь тоже у себя реализовывать надо.

Плюс можно будет определённые куски текста на доработку отправлять, если спор возникнет.
vit01 to Andrew Lobanov (2017-06-15 15:53:25) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
> Ты стандарт всё равно опиши в документации, да поподробнее, другим ведь тоже у себя реализовывать надо.
> Плюс можно будет определённые куски текста на доработку отправлять, если спор возникнет.
Пока давай просто обсудим, если остальные участники дискусссии не против. Моя реализация во-первых проста, а во-вторых пока ещё не окончена. Когда будет устаканившийся стандарт, тогда и займусь описанием. А живое обсуждение в эхе для меня проще.

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

Спешить же с реализацией стандарта совершенно ни к чему. Куда мы торопимся то? Джва года без файлэх жили, ещё несколько недель/месяцев проживём без проблем. Острой необходимости то нет =)
Andrew Lobanov to vit01 (2017-06-15 16:58:16) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Начал играться с фэхами и фреками (реализовал свою мсль о том, чтобы файлы из фэх сразу попадали на фреки для поинтов). И вот что подумал: теперь уже не нужна получается схема f/f, так как файл лежит на фреках. Предлагаю упростить всё и оставить только схемы f/e для индексов и f/p для посылки файлов, а для загрузки уже использовать существующую схему x/file. Не то чтобы красиво, но зачем дублировать функционал?
Andrew Lobanov to All (2017-06-19 04:55:27) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
AL> Предлагаю упростить всё и оставить только схемы f/e для индексов и f/p для посылки файлов, а для загрузки уже использовать существующую схему x/file.
Отличная идея, полностью за. Только в какой список будем файлы (для /x/file) складывать: в приватный или публичный?
vit01 to Andrew Lobanov (2017-06-19 05:50:20) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
>> Предлагаю упростить всё и оставить только схемы f/e для индексов и f/p для посылки файлов, а для загрузки уже использовать существующую схему x/file.
> Отличная идея, полностью за. Только в какой список будем файлы (для /x/file) складывать: в приватный или публичный?
У меня пока в приватный складывается. Только вот gl00my (сисоп инстед-клуба) поднял вполне закономерный вопрос. В такой ситуации имя файла должно быть уникальным во всех фэхах. Надо этого каким-то образом избежать, по пути не усложнив чрезмерно реализацию.

Продолжаю думать.

Пока пришло в голову только добавление в индекс хеша содержимого файла (fileid) и сверка имени перед сохранение с автоматической подстановкой суффикса в случае необходимости.
Andrew Lobanov to vit01 (2017-06-19 06:34:25) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
А может тупо в начало названия файла дописывать имя фэхи при загрузке?

То есть какое-нибудь my.fecho_file1.jpg и my.fecho_text.txt?
vit01 to Andrew Lobanov (2017-06-19 07:00:43) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Хотя нет, не очень удобно с точки зрения юзабилити.
А вот для хранения в ФС - сгодится
vit01 to vit01 (2017-06-19 07:03:18) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Кстати, а если на нескольких разных станциях поинты одновременно загрузят два файла с одинаковыми именами?
Как-то конфликты разрешать надо будет при синхронизации.

Поэтому различать файлы по хэшу - это неплохая идея.
vit01 to vit01 (2017-06-19 07:05:17) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
vit01> Кстати, а если на нескольких разных станциях поинты одновременно загрузят два файла с одинаковыми именами?
vit01> Как-то конфликты разрешать надо будет при синхронизации.
vit01> Поэтому различать файлы по хэшу - это неплохая идея.
Именно к этому я и пришёл. Получается, UID это хеш по содержимому. А имя нода локально может и поменять (например, добавить индекс в имя перед расширением). Пока обмозговываю это. С точки зрения хранения в ФС опять таки пока не придумал как быть. Если ложить на существующий x/file, то у нас нет никакой иерархии. Только плоский список файлов. Так что или расширять имя файла именем фэхи или отказаться от x/file или усложнять x/file, что совсем не хочется.

Не было у бабы забот, так купила порося. Вот нафига я это решил делать? =)
Andrew Lobanov to vit01 (2017-06-19 07:15:40) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Имхо, имя файла имеет смысл только при записи его клиентом себе на диск. Во всех остальных случаях ключ -- это хеш контента.
В этом смысле, обмен файлами не сильно отличается от обменом сообщениями. Но я пока не могу придумать ничего конкретного. Если появятся идеи -- напишу. В принципе, у нас 2 типа информации. 1- сам бинарный блоб и 2- метаинформация (размер, имя файла, mime???). Имхо все это может быть частью одного "сообщения". Ну почти как наши текущие :)
Peter to Andrew Lobanov (2017-06-19 08:02:54) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Вы знаете как выложить игру в INSTEAD?
Demon to Peter (2017-06-19 08:40:44) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Demon> Вы знаете как выложить игру в INSTEAD?
Нет.
Andrew Lobanov to Demon (2017-06-19 08:59:47) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Demon>> Вы знаете как выложить игру в INSTEAD?
AL> Нет.
Сказал держатель репозитория или что ты там хостишь :)
vit01 to Andrew Lobanov (2017-06-19 09:19:15) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Demon>>> Вы знаете как выложить игру в INSTEAD?
AL>> Нет.
vit01> Сказал держатель репозитория или что ты там хостишь :)
Ну не мог я удержаться. Извиняюсь =)

2Demon: Заходишь на http://instead-games.ru/, нажимаешь кнопку "Войти" (нужен google-аккаунт). После входа появится кнопка "Загрузить игру".

ЗЫЖ На моей памяти это первый раз, когда у человека возникла проблема с загрузкой игры в репозиторий.
Andrew Lobanov to vit01 (2017-06-19 09:29:27) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
>Первое (уже озвученное ранее) это нетмейл. То есть личная переписка.
Самое важное, ИМХО.
Не обязательно монстрячить PGP. Можно взять AES или RSA. Обмен откртыми ключами - да, доверять сисопу. Т.е. теоритически может быть MitM.

Нужно хотя бы драфт накидать.
Difrex to Andrew Lobanov (2017-06-19 13:17:18) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
AL>> Первое (уже озвученное ранее) это нетмейл. То есть личная переписка.
Difrex> Самое важное, ИМХО.
Difrex> Не обязательно монстрячить PGP. Можно взять AES или RSA. Обмен откртыми ключами - да, доверять сисопу. Т.е. теоритически может быть MitM.
Difrex> Нужно хотя бы драфт накидать.
Да я бы только за, но пока красиво ничего не придумалось по теме. Вот единственное, что мне видится, это необходимость отделения личной переписки от общих конференций. В остальном пока чёткого представления, удовлетворяющего меня самого, нет.
Andrew Lobanov to Difrex (2017-06-19 14:10:14) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
> В очередной раз задумался о расширении стандарта.
> Первое (уже озвученное ранее) это нетмейл. То есть личная переписка.
> Удобного и действительно безопасного варианта я так и не придумал. Или привлекать PGP и монстрячить способ распросстранения открытых ключей или доверять всем сисопам сети личную переписку, отдавая поинтам только их сообщения. Если честно, мне оба варианта не нравятся. Может, у кого есть идеи получше?
Хочу озвучить мысли по нетмылу.

1) как ни крути, иметь возможность послать личное сообщение -- это нужная фича
2) шифрование может быть, а может не быть. делать его неотъемлемой частью нетмыла не вижу смысла. нетмыло - транспортировка, которая не противоречит шифрованию, но не заточено на него.
3) реализация должна быть простой
4) для работы netmail нужно понятие адресации, и эта адресация должна быть глобальной

Сначала, очевидные вещи.

Я вижу 2 способа реализации netmail. В обоих случаях есть специальная скрытая эха netmail. При ее фетчинге -- клиент получает только те сообщения, которые адресованы именно ему. В качестве адреса -- имя ноды и номер поинта (то, что у нас есть). Авторицация по authstr. Но вот как сообщение доходит до ноды, отдельный разговор. Итак, первый способ.

1) Сообщение распостроняется путем фетчинга как и сейчас. При этом, нужно решить 2 проблемыЖ

a) фетчить netmail могут только те ноды, которым мы доверяем;
b) сообщение в netmail должны убиваться после доставки;

Про b) решить можно радикально. Просто заложить в стандарт время жизни таких сообщений. Например 2 дня. Если за 2 дня сообщение не дошло -- все равно это какая-то проблема. Считаю, приемлемым.
Про a) к сожалению, единственный нормальный способ, это механизм ЭЦП. Нода, которой мы доверяем фетч, дает нам открытый ключ, который мы используем для проверки подписи запроса. Реализовать можно прямо на питоне, без сторонних библиотек. Еще один вариант -- тупо по ip запроса, но мне он не нравится. Вариант с авторизацией по authstr не нравится вообще.

Теперь переходим к варианту 2)

Идея в том, что сообщение идет так:
поинт -> нода поинта -> целевая нода

То есть, нет никакой сложной маршрутизации, сообщение от ноды поинта сразу коннектится к целевой ноде и отправляет сообщение на нее. Я считаю это нормальным, так как нода по определению доступна в сети интернет, и нет смысла делать какую то хитрую маршрутизацию (которая может происходить при схеме 1 с фетчингом).
Но надо решить вопрос:

a) кто может посылать таким образом сообщения нашим поинтам?
Варианты ответа.
1) все, кто угодно.
2) ????

вариант 1 неуниверсален.
а вариант 2 - мне не понятен. Так как в общем случае, я не знаю от кого получу запрос.

В итоге, вариант 1 с фетчингом мне нравится больше.

Кто что думает?
Peter to Andrew Lobanov (2017-07-17 13:46:29) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Peter> поинт -> нода поинта -> целевая нода
Peter> То есть, нет никакой сложной маршрутизации, сообщение от ноды поинта сразу коннектится к целевой ноде и отправляет сообщение на нее. Я считаю это нормальным, так как нода по определению доступна в сети интернет, и нет смысла делать какую то хитрую маршрутизацию
Это противоречит самым основам IDEC (да и ii), а именно:

1. Интернет не должен быть единственным транспортом
2. Никто, абсолютно никто не обязан быть доступным 24/7 (это самое важное правило, на котором построена наша сеть)
3. Один и тот же человек сегодня может подключаться к одной станции, а завтра - к другой
Peter> есть специальная скрытая эха netmail. При ее фетчинге -- клиент получает только те сообщения, которые адресованы именно ему. В качестве адреса -- имя ноды и номер поинта (то, что у нас есть). Авторицация по authstr. Но вот как сообщение доходит до ноды, отдельный разговор. Итак, первый способ.
Peter> 1) Сообщение распостроняется путем фетчинга как и сейчас. При этом, нужно решить 2 проблемы
> a) фетчить netmail могут только те ноды, которым мы доверяем;
> b) сообщение в netmail должны убиваться после доставки;
Мне нравится идея с "убиваться после доставки". Но предлагаю реализовать её немного по-другому.

Опишу целиком.

Основа: есть единый реестр поинтов, у каждого - свой открытый ключ, который записывается в общую корзину и есть на всех станциях

1. Есть публичная эха netmail, которую может фетчить каждый. Все сообщения в netmail зашифрованы.
2. Все ноды открыто забирают друг у друга netmail и смотрят на поле получателя. Если получатель числится на ноде, то сообщение сохраняется там навечно (ну или на очень долгое время вроде 3 месяцев). Иначе (если нода ведёт транзит, т.е. такого поинта на ней нет) - держится около 5-10 дней, на усмотрение сисопа.
3. Шифрование всё end-to-end, сервера в нём не участвуют. Смог расшифровать - сообщение твоё. Не расшифровал - значит не твоё.

Мой вариант уже совместим с любыми текущими реализациями. Просто до этого я не задумывался про то, что они могут быть "сгораемыми".
vit01 to Peter (2017-07-17 15:49:47) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
> Это противоречит самым основам IDEC (да и ii), а именно:
Согласен, этот вариант тоже мне не нравится.
> Мне нравится идея с "убиваться после доставки". Но предлагаю реализовать её немного по-другому.
Твой вариант с шифрованием мне понятен, более того, я сам был ее сторонником. Сейчас мне кажется, это не должно быть частью стандарта (неотъемлемой частью). Может быть, я не прав. Нужно мнение остальных. Кроме того, для кого-то может возникнуть вопрос о прогонки через ноду шифрованного трафика. Если же фича шифрования -- дополнительная. На усмотрение абонентов, то кажется -- так лучше.

Моя идея на фетчинге, если ее упростить/уточнить.

Фетч для абонента (избранные сообщения netmail). Эха доступна для фетчинга по authstr, при этом забираются только те сообщения, которые адресованы этому абоненту.

Фетч для ноды (вся почта netmail). Доверенный фетчинг всей эхи нодой, но степень доверия строится на ЭЦП. На худой конец, тоже по authstr.

Все узлы, которые не обслуживают данного поинта, стирают netmail сообщения спустя n дней.
Узел, обслуживающий поинта -- не стирает. Или стирает после забора поинтом. Короче соответствует твоему 2 пункту.

Что мне не нравится. Не нравится 2 разных типа фетичнга. Клиент (забирает свое). И нода (забирает весь нетмыл).

С шифрованием, конечно, частично все упрощается. Но по моему, все таки, делать его частью стандарта не очень...
Peter to vit01 (2017-07-17 16:24:01) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Peter> С шифрованием, конечно, частично все упрощается. Но по моему, все таки, делать его частью стандарта не очень...
Шифрование и не предлагается делать частью стандарта. Можно использовать абсолютно любые алгоритмы, которые в голову взбредёт. Если хочешь - можно вообще не шифровать. Правда, тогда найдутся любопытные, которые захотят читать чужие письма.

А так-то фильтрация по получателю будет работать в любом случае. Только на клиенте, а не на ноде. Нода пойдёт осуществлять только самое базовое обслуживание (вроде удаления через N дней).
vit01 to Peter (2017-07-17 17:15:49) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
> Шифрование и не предлагается делать частью стандарта. Можно использовать абсолютно любые алгоритмы, которые в голову взбредёт. Если хочешь - можно вообще не шифровать. Правда, тогда найдутся любопытные, которые захотят читать чужие письма.
Просто в этом случае, ЛЮБОЙ сможет прочитать эти сообщения. В моей схеме (которая мне тоже до конца не нравится пока) -- только доверенная нода.
Peter to vit01 (2017-07-17 18:00:17) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
> Просто в этом случае, ЛЮБОЙ сможет прочитать эти сообщения. В моей схеме (которая мне тоже до конца не нравится пока) -- только доверенная нода.
Еще бы послушать мнение Андрея.
Peter to Peter (2017-07-17 18:37:48) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Мне кажется, что сначала, нужно решить проблему синхронизации поинтов.

Чтобы доставить поинту сообщение(не важно шифрованное или нет), нужно знать его координаты. Либо нужно расширить схему сети и сделать ее обязаловкой, а так же наконец-то начать использовать адреса -- тогда узнать, где поинт не сложно.

Либо можно придумать скрытоэху, которая синкается всеми. В ней можно устроить e2e шифрование, например с GPG ключами. На ноде хранить сообщения от туда по-минимуму. Но тут нужно развитие клиентов. Чтобы они генерили ключи. Ключи можно синкать по надам в SKS.
Difrex to Andrew Lobanov (2017-07-19 07:34:19) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
> Чтобы доставить поинту сообщение(не важно шифрованное или нет), нужно знать его координаты. Либо нужно расширить схему сети и сделать ее обязаловкой, а так же наконец-то начать использовать адреса -- тогда узнать, где поинт не сложно.
В принципе, адреса то у нас есть. Это имя ноды и номер поинта. В качестве примера, если сообщение адресовано - то это netmail ко мне.
> Либо можно придумать скрытоэху, которая синкается всеми. В ней можно устроить e2e шифрование, например с GPG ключами. На ноде хранить сообщения от туда по-минимуму. Но тут нужно развитие клиентов. Чтобы они генерили ключи. Ключи можно синкать по надам в SKS.
Вот этот вариант по сути и предложил vit, а я думаю в сторону возможности работы без gpg. В приниципе, мы уже повторяемся. Значит, все идеи уже кончились?
Peter to Difrex (2017-07-19 08:25:21) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Difrex> Но тут нужно развитие клиентов. Чтобы они генерили ключи. Ключи можно синкать по надам в SKS.
Ключи может нагенерировать сисоп и просто выдавать пару поинту вместе с authstr при регистрации.

При желании юзверь может дать сисопу собственный открытый ключ, если его такой вариант не устраивает.
vit01 to Difrex (2017-07-19 09:20:32) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
> Ключи может нагенерировать сисоп и просто выдавать пару поинту вместе с authstr при регистрации.
Мысль интересна в том плане, что в таком случае, шифровать/расшифровывать сообщения может сама нода. Но тогда на ноду возлагается функция хранения адресной книги поинтов.

Ну то есть:
На ноде должен быть доступ ко всем открытым ключам абонентов сети idec.
На ноде должны быть приватные ключи своих поинтов.

В таком случае, внешне, для поинтов вопрос шифрования вообще не стоит. Они могут дополнительно делать что угодно.

Почему то мне такой вариант нравится больше. А вам? :)
Peter to vit01 (2017-07-19 10:18:27) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
> На ноде должен быть доступ ко всем открытым ключам абонентов сети idec.
Хотя это вот, реальное ограничение. Но нода может выдавать по запросу public ключи своих поинтов, что возвращает нас к схеме "шифрования на клиентах". Не знаю, как то не идеально. :)
Peter to Peter (2017-07-19 10:35:10) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
Peter> В принципе, адреса то у нас есть. Это имя ноды и номер поинта. В качестве примера, если сообщение адресовано - то это netmail ко мне.
Адреса не уникальны. Мы можем подключить в сеть ещё хоть 10 узлов под названием syscall и отлавливать твою почту.

Также любые метаданные сообщений можно подменять на пути следования. И отправителя, и получателя, и адреса, и всё остальное. То есть я тупо захожу в админку на станции, ввожу msgid и меняю любые данные в сообщении. Если уложился в 10 минут - атака MITM сработала. Иногда мне приходится очепятки так править, если случайно загнал сообщение, не подумав =)

Нас спасёт только шифрование, потому что именно оно может гарантировать сохранность переписки. И это гораздо надёжнее в плане транспортов, потому что подойдёт под любую схему синхронизации, какую только можно придумать.
vit01 to Peter (2017-07-19 12:15:45) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
> Адреса не уникальны.
В теории, мы можем потребовать уникальности. В любом случае, описанные атаки, не совсем атаки. Так как любая нода может забрать netmail если она доверена.
Доверенность подтверждается ЭЦП. Так что я не понял суть твоего примера до конца. Если я доверяю твоей ноде, и убеждаюсь с помощью ЭЦП в аутентичности твоих запросов, почему бы мне и не слить тебе netmail?
> Нас спасёт только шифрование
Вероятно, так и есть. :( Для меня, это выглядит скорее как отсутствие перспектив на netmail.
Peter to vit01 (2017-07-19 12:44:45) [ссылка]

Re: Мысли о стандартах

Ответ на сообщение
>Ключи может нагенерировать сисоп и просто выдавать пару поинту вместе с authstr при регистрации.
Плохая идея.
>При желании юзверь может дать сисопу собственный открытый ключ, если его такой вариант не устраивает.
На самом деле никому ключ передавать не нужно. Можно воспользоваться тем же pgp.mit.edu. Либо, чтобы сисоп поднял sks и грузить ключик туда. Это не сложно =)
Difrex to vit01 (2017-07-19 13:29:31) [ссылка]