Сообщения в ii.14

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

Ответ на сообщение
Идея личной переписки мёртворождённая. Потому что без шифрования она никому кроме меня не нужна, а с шифрованием мы теряем простоту технологии.
Andrew Lobanov to vit01 (2017-07-20 08:17:21) [ссылка]

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

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

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

Ответ на сообщение
Peter>> В принципе, адреса то у нас есть. Это имя ноды и номер поинта. В качестве примера, если сообщение адресовано - то это netmail ко мне.
vit01> Адреса не уникальны. Мы можем подключить в сеть ещё хоть 10 узлов под названием syscall и отлавливать твою почту.
В сеть то их кто пустит? А я не предлагал разве между узлами обмениваться нетмейлом только по отдельному паролю? Это позволит создать "круг доверия" между узлами и позволит ходить личной переписке между ними без этой уязвимости. Ведь внутри сети у нас не повторяются имена узлов.
vit01> Также любые метаданные сообщений можно подменять на пути следования. И отправителя, и получателя, и адреса, и всё остальное. То есть я тупо захожу в админку на станции, ввожу msgid и меняю любые данные в сообщении. Если уложился в 10 минут - атака MITM сработала. Иногда мне приходится очепятки так править, если случайно загнал сообщение, не подумав =)
Ну и долой такого сисопа при первом палеве из сети. Все так радеют за безопасность, всё время забывая, что это просто шутка. Не бывает информационной безопасности.
vit01> Нас спасёт только шифрование, потому что именно оно может гарантировать сохранность переписки. И это гораздо надёжнее в плане транспортов, потому что подойдёт под любую схему синхронизации, какую только можно придумать.
Тогда я пас.
Andrew Lobanov to vit01 (2017-07-20 08:17:20) [ссылка]

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

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

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

Ответ на сообщение
Peter> В любом случае, описанные атаки, не совсем атаки. Так как любая нода может забрать netmail если она доверена.
Если вдруг нода скомпрометирована, то она может вылавливать нетмейл чужих нод и вывешивать его публично.
Peter> Доверенность подтверждается ЭЦП. Так что я не понял суть твоего примера до конца. Если я доверяю твоей ноде, и убеждаюсь с помощью ЭЦП в аутентичности твоих запросов, почему бы мне и не слить тебе netmail?
Мы совершенно про разные вещи говорим. При схеме
                      abcde
                        |
нода1(from) > нода2 > нода3 > syscall (to)
нода 2 может организовывать атаку MITM, подменяя части сообщений. Например, подменив адрес получателя, она может добиться того, что нода3 отправит сообщение не получателю syscall, а левой ноде abcde. А если она подменит адрес отправителя, то может сама отлавливать чужую почту. Поэтому схемы без шифрования обречены на провал.

Возвращаясь к полю адреса, мы уже высказывали когда-то идею, что в поле адреса можно вписывать открытый ключ или ID этого ключа (неважно, для станции или для самого человека). При этом ЭЦП должна применяться не только для текста сообщения, но и для этого самого поля адреса, чтобы остальные ноды во время синхронизации не смогли подделать "обратный адрес" следования.

И теперь насчёт того, делать шифрование + ЭЦП на ноде или на клиенте.

1. На клиенте
+ не надо доверять сисопам
+ не надо сильно переделывать код станций
+ юзверь может получить свою почту с любой станции, с какой захочет
- надо совершенствовать клиенты
- нужен актуальный keystore для базы данных поинтов

2. На станции
+ не надо переделывать клиенты
+ реализация проще и легковеснее
- юзверь может получить почту только со своей станции
- поинт должен доверять своему "боссу"
- все ноды/юзвери должны знать, на какой станции живёт получатель, чтобы сообщение расшифровалось там, где это надо
vit01 to Peter (2017-07-19 20:49:05) [ссылка]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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: Мысли о стандартах

Ответ на сообщение
> В очередной раз задумался о расширении стандарта.
> Первое (уже озвученное ранее) это нетмейл. То есть личная переписка.
> Удобного и действительно безопасного варианта я так и не придумал. Или привлекать 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: idec mobile

Ответ на сообщение
vit01> Что на сегодня:
vit01> 1. Учтены замечания Петра
vit01> 2. Попытался починить очередной баг с падением
vit01> Всем обновиться!
Обновился! Полет нормальный.
Peter to vit01 (2017-07-16 20:30:27) [ссылка]

Re: idec mobile

Ответ на сообщение
Что на сегодня:

1. Учтены замечания Петра
2. Попытался починить очередной баг с падением

Всем обновиться!
vit01 to vit01 (2017-07-16 10:43:45) [ссылка]

Re: android клиент

Ответ на сообщение
vit01> Он и так добавляется. Просто предупреждение выдаётся, дабы человек запомнил. Но могу его убрать.
Я обновил клиент и отредактировал ноду, дописав к урлу :3000. Забыл вписать /. Не видел сообщения, и получил ошибку.
Peter to vit01 (2017-07-16 07:07:01) [ссылка]

Re: android клиент

Ответ на сообщение
Peter> Из замечаний: все таки стоит добавлять / к урлу станции, если его не ввели, имхо.
Он и так добавляется. Просто предупреждение выдаётся, дабы человек запомнил. Но могу его убрать.
vit01 to Peter (2017-07-16 05:25:45) [ссылка]

Re: iing

Ответ на сообщение
В мобильном виде вроде не работает. :)
В не-мобильном все ок.
Peter to Andrew Lobanov (2017-07-15 21:15:10) [ссылка]

android клиент

Наконец, обновил. Клиент стал мега-крутым!
Из замечаний: все таки стоит добавлять / к урлу станции, если его не ввели, имхо.
И кнопку написать новое сообщение сделать можно рядом с ответить. Но это все мелочи! В целом, мега удобно!
Peter to All (2017-07-15 20:44:26) [ссылка]

Обратный фетч с iing-ноды в INSTEAD клубе

Пробросил обратный фетч с http://club.syscall.ru:3000/
Теперь, теоретически, можно пользоваться как gk11 интерфейсом на http://club.syscall.ru,
так и iing интерфейсом на http://club.syscall.ru:3000/
Если что-то пойдет не так, пишите... =)
Peter to All (2017-07-15 19:58:08) [ссылка]

tavern

По моей оплошности при обновлении сабжа, несколько дней не ходили сообщения с других станций. Всё исправил.

// Спасибо, vit01 =)
Andrew Lobanov to All (2017-07-12 19:43:55) [ссылка]

Re: iing

Ответ на сообщение
У сабжа появился параметр nosubscription, убирающий механизм подписок в веб-интерфейсе.

// Это всё пока делается для перехода инстед клуба на сабж.
Andrew Lobanov to All (2017-07-11 04:35:40) [ссылка]

Re: idec mobile

Ответ на сообщение
IDEC Mobile переведён на английский язык!

Уделено внимание даже таким мелочам как дефолтный конфиг (т.е. русским пользователям подставляется Станция мира и Таверна, а всем остальным Mira Station и Tavern).

Даже несмотря на то, что у русскоязычного народа почти ничего не поменяется, следует всё-таки сабж обновить.

И если у вас есть забугорные друзья, то можно их теперь приглашать к нам. Кстати, даже это я предусмотрел. В англоязычной версии справки для новичков написано, что, дескать, не пугайтесь, когда увидите кучу русского текста (и ещё написано, что мы дружбомагичные ребята, которые совершенно не против общения на других языках)
vit01 to vit01 (2017-07-10 17:26:44) [ссылка]

Re: Клиенты, ноды, интерфейсы и мысли обо всём

Ответ на сообщение
Очень здравая мысль!

Нужно так и делать.

Вынес в либу реализацию на Go -- https://github.com/Difrex/go-idec.

Фетчер и dynamic сегодня или завтра на нее переедут.
Difrex to vit01 (2017-07-10 08:35:34) [ссылка]