24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна.
Подробности случившегося. Мы призываем всех неравнодушных
помочь нам с восстановлением утраченного контента!
Пользователи наноборды создают нанопосты - изображения, являющиеся стеганографическими контейнерами, затем постят их на обычной имиджборде, в тумблере, инстаграме, где угодно. Затем создают правило в клиенте наноборды, по этому правилу клиент загружает нанопосты. Все нанопосты шифруются ключем борды.
Терминология:
нанопост - данные, содержащиеся в стеганографическом контейнере (пока что это PNG LSB), они зашифрованы с AES, но можно попробовать и другие алгоритмы.
Нанопост содержит:
- Свой SHA-256 хеш
- SHA-256 хеш того поста, на который он отвечает (хеш родителя), либо нули, если он не отвечает на какой-либо пост
- Пакет данных в формате JSON, в котором содержится таймстемп создания и текст поста, в будущем там могут содержаться любые данные, в том числе правила для других нанопостов,что угодно
- Данные аттача, если аттач есть. Аттачем может быть любой файл, который может уместиться в контейнере
правило - набор данных, по которому клиент наноборды может в будущем подбирать другие нанопосты из известных ему расположений (напр. альбомов или тредов).
Правило состоит из:
- URL страницы, на которой расположены ссылки на изображения
- Регулярное выражение, по которому будут извлекаться (обычно из HTML-кода) адреса изображений
- Имя правила
Клиент наноборды загружает все изображения, которые подходят по правилу, затем пытается декодировать их содержимое, используя ключ борды и принимая заранее тот факт, что изображение может хранить данные стеганографически. Если произошла неудача на одном из шагов (обычно это сбой проверки хеша, либо сбой при попытке дешифровать данные), то картинка не считается нанопостом и пропускается. Успешно декодированные нанопосты сохраняются в папку nanoposts и добавляются к дереву постов.
ключ борды - набор байт (пароль), по которому клиент будет пытаться расшифровать стеганографический контейнер нанопоста. Использование разных ключей позволяет создавать бесконеное множество наноборд, даже если все изображения будут находиться в одном месте и будут доступны по одному правилу.
Исходный код доступен на гитхабе: https://github.com/Cr0s/JNanoBoard
Реквестирую критику (конструктивную) и предложения, а может даже и помощь в улучшении реализации. На данный момент это самая доведённая до ума реализация того, что уже много раз обсасывалось в целой цепочке наноборда-тредов.
Этот тред - тоже нанобордовый, ключ: anuspes