nedoPC.org

Community for electronics hobbyists, established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 02 Nov 2024 10:55



Reply to topic  [ 25 posts ]  Go to page Previous  1, 2
Компьютерная сеть IDEC и возможные пути её расширения 
Author Message
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23386
Location: Silicon Valley
Reply with quote
Расширенные правила форматирования текста в ii/idec:

https://club.hugeping.ru/rOf069UX8K24yAzvWa9N

Пока работают только на этом конкретном сервере написанном на Go - надо такое в мою PHP-ноду тоже добавить...

P.S. Например там отображаются добавленные в текст сообщения картинки в формате XPM :lol:


Attachments:
Screenshot from 2024-09-24 10-18-09.png
Screenshot from 2024-09-24 10-18-09.png [ 59.71 KiB | Viewed 605 times ]

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973
23 Sep 2024 17:50
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23386
Location: Silicon Valley
Reply with quote
В своё время забыл опубликовать тут скриншоты текстового клиента IDEC, написанного на питоне:

Attachment:
screen-20211216-100440.png
screen-20211216-100440.png [ 94.92 KiB | Viewed 620 times ]


Attachment:
screen-20211216-100452.png
screen-20211216-100452.png [ 103.05 KiB | Viewed 620 times ]

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


23 Sep 2024 23:45
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23386
Location: Silicon Valley
Reply with quote
Shaos wrote:
Перенёс тему в подфорум "Проект nedoPC"

P.S. Интересным побочным эффектом перетаскивания ноды IDEC на сервер спринтернета стало то, что теперь к ней стало можно обращаться и по https:// :lol:

https://sprinternet.io/iii-web.php

P.P.S. Блин, гугол начал активно индексировать там контент через https:// :evil:

Настроил Rewrite чтобы урл для ii-клиентов был проще - теперь вместо домен/ii-point.php?q=/ можно просто писать домен/iii/
т.е. чтобы запросить список эх в текстовом виде надо вызвать https://sprinternet.io//iii/list.txt
(к этому же серверу можно по http:// обращаться, но через порт 8080: sprinternet.io:8080/iii/list.txt)
А открыв http://sprinternet.io:8085 можно перепрыгнуть прямиком в веб-интерфейс моей ii/IDEC-ноды по старому адресу http://shaos.net:8085/ii-web.php

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


29 Sep 2024 00:23
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23386
Location: Silicon Valley
Reply with quote
Стал раз в сутки по апачи логам считать самых активных качальщиков ноды - в списке как другие ноды сети IDEC, так и боты типа Google, Facebook и Yandex:
Code:
Last day top uplinks: tavern 41.7MB (5/hr), tgi 4.1MB (2/hr), ping 3.2MB (5/hr), Google 0.8MB (1/hr), Facebook 0.1MB
Строка пишется внизу вебстранички слева...

P.S. Плюс ещё в специальную эху посылаю ежедневный отчёт - вот например данные за 2 октября:
Quote:
TOP10 VISITORS:

[1] Google point=108 web=899 26.6MB <--- Google (4/hr)
[2] 62.109.31.x point=48 web=0 16.4MB <--- tavern (2/hr)
[3] DataForSeoBot point=0 web=26 8.3MB
[4] 92.63.98.x point=72 web=0 4.7MB <--- tgi (3/hr)
[5] 95.165.9.x point=144 web=0 3.7MB <--- ping (6/hr)
[6] 95.217.57.x point=0 web=1 1.1MB
[7] 24.6.124.x point=3 web=46 0.4MB
[8] 92.246.138.x point=0 web=1 0.1MB
[9] YandexBot point=0 web=17 0.1MB
[10] 172.56.46.x point=0 web=4 0.0MB
см. https://sprinternet.io/iii-web.php?echo=spnet.stats

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


02 Oct 2024 23:29
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23386
Location: Silicon Valley
Reply with quote
Shaos wrote:
Далее по всему этому считается хэш SHA256 (32 байта), бинарное представление которого переводится в base64 (что даёт 43 символа), от которого берутся первые 20 символов (46.9% от всей строки), но т.к. base64 наряду с буквами A...Z a...z и цифрами 0...9 ещё имеет 2 дополнительных небуквоциферных символа + и / для пущей читабельности они заменяются на символы A и z (именно так - большая A и маленькая z) - уникальность хэша от этого немного портится (покрытие уменьшается в 1.88 раз с 64^20 до 62^20, что даёт 7e35 вариаций), но хэш становится "безопасным" для передачи как угодно.
...
P.S. А вот относительно новый сервер ii-go, написанный на Go, заменяет небуквоциферные символы на A и Z (большую) - собственно так и было написано в документации (как пример). И плюс к этому разрешает редактировать сообщение после того как ему уже присвоен ID и оно сохранено на сервере (и даже уже передано на другие сервера) - при этом содержимое сообщения меняется, но его хэш остаётся прежним, что несколько противоречит всей концепции.

P.P.S. Если бы не последнее исключение (и ряд старых сообщений, в которых хэш считался как-то иначе), то имя сообщения можно было бы использовать как уникальный адрес объекта в сети IDEC - на всём этом можно было бы городить распределённое хранилище файлов и т.д.
Ради интереса посчитал статистику по соответствию хешей названиям мессагов

В старом ii архиве (46481 штук):

81.6% названий соответствуют хэшам
18.4% не соответствуют (например сообщения были отредактированы уже после того как сервер их посчитал)

В новых ii/IDEC мессагах (20760 штук):

28.0% названий соответствует хэшам
0.4% соответствуют после приведения к нижнему регистру (значит была подмена на Z вместо z)
71.6% не соответствует (почему стало так много непонятно)

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


06 Oct 2024 02:27
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23386
Location: Silicon Valley
Reply with quote
Первоначальный автор протокола ii (которому в марте этого года стукнуло 10 лет [протоколу стукнуло - не автору]) решил тряхнуть стариной и выкатил свой новый ii-сервер пропиарив его на лоре :)

https://www.linux.org.ru/forum/general/17755587

P.S. А лор похоже уже не торт...

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


11 Oct 2024 10:00
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23386
Location: Silicon Valley
Reply with quote
Автор сети и протокола ii (теперь он ходит в сеть ii под ником iiii) воссоздал эху про старые компьютеры у себя на узле http://ii.blcat.ru, составив её из старых сообщений старых эх oldpc.51t.ru (2020) и old.pc (2022) - я держу копию эхи у себя:

https://sprinternet.io/iii-web.php?echo=retro.talks

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


13 Oct 2024 21:31
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23386
Location: Silicon Valley
Reply with quote
Shaos wrote:
Автор сети и протокола ii (теперь он ходит в сеть ii под ником iiii) воссоздал эху про старые компьютеры у себя на узле http://ii.blcat.ru, составив её из старых сообщений старых эх oldpc.51t.ru (2020) и old.pc (2022) - я держу копию эхи у себя:

https://sprinternet.io/iii-web.php?echo=retro.talks
Автор зарелизил облегченный ii-сервер, в составе которого уже есть эха retro.talks на почитать :)
iiii wrote:
Nastene Retro 98 : версия сервера для старых систем. Для python 2.5-2.7, только lite интерфейс, вырезано всё, что можно.

Идеальный вариант для ваших серверов с Debian Etch (или в Etch максимум 2.4? тогда ничего не поделаешь, придётся обновиться до Lenny)

В комплекте архив эхи retro.talks, будет что почитать долгой зимней ночью. И на станции уже сразу есть контент. К сожалению, заметки о Debian Sarge туда не попали в связи с их ненаписанностью, но будут доступны позже в эхе.

http://ii.blcat.ru/s/nastene-retro-98.tar.gz

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


14 Oct 2024 18:51
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23386
Location: Silicon Valley
Reply with quote
Shaos wrote:
Интересный способ идентификации сообщений выбран в ii (перекочевавший затем в IDEC и использующийся в двух самых старых серверах реализующих этот протокол - ii-php написанном на PHP и iing написанном на Python) - сервер формирует текст сообщения для сохранения добавляя к нему заголовки, а именно:

  1. tags - теги (используются только для `repto` и для идентификатора `ii/ok`)
  2. echoarea - основная эхоконференция, в которую помещается сообщение
  3. date - число секунд от эпохи unix, в utc
  4. msgfrom - отправитель
  5. addr - адрес отправителя (практического смысла не имеет, служит для того, чтобы узнавать, с какой станции пришло сообщение)
  6. msgto - пользователь, которому предназначено сообщение (либо All)
  7. subj - тема сообщения
  8. пустая строка
  9. и далее - текст сообщения

Пример из документации:
Code:
ii/ok/repto/IZXhLBKJx0rhx0lXYu3L
im.16
1455789357
Vasya
Lunar, 2
Pupkin
Re: Мое первое сообщение в эху

текст сообщения
(в данном случае наличие ключевого слова repto в тегах означает, что это сообщение является ответом на сообщение с указанным ID - здесь IZXhLBKJx0rhx0lXYu3L)

Далее по всему этому считается хэш SHA256 (32 байта), бинарное представление которого переводится в base64 (что даёт 43 символа), от которого берутся первые 20 символов (46.9% от всей строки), но т.к. base64 наряду с буквами A...Z a...z и цифрами 0...9 ещё имеет 2 дополнительных небуквоциферных символа + и / для пущей читабельности они заменяются на символы A и z (именно так - большая A и маленькая z) - уникальность хэша от этого немного портится (покрытие уменьшается в 1.88 раз с 64^20 до 62^20, что даёт 7e35 вариаций), но хэш становится "безопасным" для передачи как угодно.

При передаче сообщения между сервером и клиентом также используется base64 (но только всего сообщения) - в виде base64url, в котором + заменяется на - а / заменяется на _
Для отправки сообщения от клиента к узлу ii/IDEC с самого начала применяется следующий формат:
Quote:
  1. echoarea
  2. msgto
  3. subject
  4. empty string
  5. repto
  6. message text

If repto starts with @repto:, the node places the tag repto. Otherwise the string belongs to the message text.
Пример:
Quote:
im.16
All
Тестируем

@repto:2hEUbMAxKSA83vcmgU4s
И вот я пишу своё первое письмо в нашу секту.
Меня видно?
Это сообщение заворачивается в base64url и засылается на узел либо через метод GET:
URL/u/point/PAUTH/B64STRING
либо через метод POST:
URL/u/point
pauth=PAUTH&tmsg=B64STRING

где PAUTH - строка авторизации для данного пользователя (поинта) - по сути пароль (который должен быть свой для каждого поинта).

Как можно видеть тут прямым текстом в сеть передаётся пароль - даже в случае https:// если он идёт через GET, то он считай засвечен (а в случае http:// будет засвечен и через POST), поэтому я думаю можно сделать альтернативный способ аутентификации пользователя скажем через подпись HMAC-RIPEMD-160-96. Алгоритм HMAC это hash-based message authentication code (код аутентификации сообщения на основе хеша), который использует один секретный ключ, известный обеим сторонам, и над каким-то стандартным хешом - в данном случае это RIPEMD-160 (алгоритм хеширования с наименьшей длиной хеша, который ещё не сломали), причём этот алгоритм был представлен ещё в 1992 году (т.е. ему уже 32 года!) - он в частности используется в биткоине (вместе с SHA-256). Ну и для укорачивания такой подписи берутся первые 96 бит (12 байт). Это всё стандартизовано на уровне RFC:

RFC2104 (February 1997) - HMAC: Keyed-Hashing for Message Authentication
https://datatracker.ietf.org/doc/html/rfc2104

RFC2286 (February 1998) - Test Cases for HMAC-RIPEMD160 and HMAC-RIPEMD128
https://datatracker.ietf.org/doc/html/rfc2286

RFC2857 (June 2000) - The Use of HMAC-RIPEMD-160-96 within ESP and AH
https://datatracker.ietf.org/doc/html/rfc2857

Конечно было бы лучше использовать SHA-256, но RIPEMD-160 проще в вычислительном плане, а нам надо будет его считать на слабых платформах. Вобщем суть такая - секретный ключ (это может быть строка текста длиной до 20 символов) загружается на узел через секьюрное соединение (https:// или скажем через емейл сисопу) один раз. Далее когда пользователь хочет отправить сообщение на узел (в описанном выше формате) по несекьюрному каналу, то его клиент считает по телу сообщения и секретному ключу подпись HMAC-RIPEMD-160-96 и посылает 12-байтовый результат как PAUTH (можно наверное в base64url его завернуть), а сервер при получении будет считать по полученному телу сообщения свой вариант HMAC-RIPEMD-160-96 и будет сравнивать с присланной подписью - если результат совпадёт, то отправитель считается аутентифицирован (плюс будет проверена целостность самого сообщения). До кучи в урл можно добавить кодировку, на тот случай если софт поинта не поддерживает UTF8:

URL/u/point2/koi7/B64AUTH/B64STRING

для больших сообщений можно задействовать метод POST:

URL/u/point2/koi7/B64AUTH
TEXT

причём тело сообщения в данном случае можно заслать прямым текстом без кодировки (Content-Type: plain/text)

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973


28 Oct 2024 23:30
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 23386
Location: Silicon Valley
Reply with quote
т.к. ii/IDEC передаёт сообщения в UTF-8, то там можно не только русский текст гнать, но и например emoji :)


Attachments:
emoji.jpg
emoji.jpg [ 82.37 KiB | Viewed 34 times ]

_________________
https://mastodon.social/@Shaos :dj:
https://www.youtube.com/@Shaos1973
01 Nov 2024 07:45
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 25 posts ]  Go to page Previous  1, 2

Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.