Менеджер задач со сквозным шифрованием для своего сервера, который Claude Code написал за 19 часов

olerast 1 час назад Объяснить с Менеджер задач со сквозным шифрованием для своего сервера, который Claude Code написал за 19 часов Средний 9 мин 780 Open source * Криптография * Информационная безопасность *...
Will Anthropic have the best AI model at the end of October 2026?
В сфере искусственного интеллекта произошло заметное событие. olerast 1 час назад Объяснить с Менеджер задач со сквозным шифрованием для своего сервера, который Claude Code написал за 19 часов Средний 9 мин 780 Open source * Криптография * Информационная безопасность * Искусственный интеллект Разработка мобильных приложений * Кейс Я сделал менеджер задач Dela, который ставится на свой сервер. Задачи шифруются на устройстве, сервер хранит и раздаёт только зашифрованный текст, а телефон и компьютер сводят правки сами, по отдельным полям с метками гибридных часов. Весь код написал Claude Code.
Задачи я веду в Todoist, на главном экране телефона у меня стоит его виджет со списком. Ещё часть задач я вёл в Obsidian. В бесплатной версии Todoist ограничено число проектов, а платить за подписку я не хотел.
Технические детали
Мне был нужен свой менеджер задач, содержимое которого не может прочитать никто, кроме меня, даже сервер, на котором оно лежит. Ещё он должен был синхронизировать телефон и компьютер, открываться без сети и уметь то, чем я пользуюсь в Todoist каждый день: добавлять задачу одной фразой и показывать список задач на виджете. Dela работает в браузере, на Windows и на Android, код открыт под лицензией AGPL-3.
Сервер ставится через Docker. Свой сервер я поднял на VPS, где уже работают другие мои проекты. Регистрация там закрыта, и пользуюсь им только я.
Dela: «Сегодня» и календарь на компьютере, «Сегодня» и «Предстоящие» на телефонеЧто видит серверНа одном VPS с Dela у меня работают боты и сайты. Если кто-то получит root через один из них, база задач должна остаться для него набором шифротекстов. Поэтому шифрование в Dela включено всегда и выключить его нельзя.
Отраслевые последствия
Сервер видитСервер не видитАдреса почты, устройства, участников общих проектовНазвания задач, описания, комментарии и файлыСколько операций пришло и их метки времениНазвания проектов, разделов и метокРазмер каждой операции с точностью до 64 байтСроки, повторы, приоритетыВремя напоминанийКакую таблицу, запись и поле меняет операцияКлючи выводятся из пароля на устройстве:пароль ──Argon2id(соль)──► 64 байта ├─ 32: секрет входа → серверу (сервер хранит его хеш) └─ 32: ключ обёртки (KEK) → расшифровывает мастер-ключ мастер-ключ (случайный, 32 байта) ├─ обёрнут KEK и ключом восстановления, хранится на сервере ├─ шифрует секретный ключ X25519 пользователя └─ шифрует ключи личных пространств Сам пароль на сервер не уходит. Из секрета входа сервер не может получить ключ обёртки. При смене пароля перешифровывается только мастер-ключ, задачи остаются как есть.
Ключ восстановления состоит из 32 случайных байт и показывается один раз при регистрации. Без пароля и без этого ключа задачи расшифровать нельзя, у сервера нет способа восстановить доступ. Соль для Argon2id сервер выдаёт по адресу почты до входа.
Для адреса, которого нет в базе, он отвечает поддельной солью, вычисленной HMAC от своего секрета. Ответ получается одинаковым при каждом запросе, и по нему нельзя проверить, зарегистрирован ли адрес.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.






