Особисте сховище інформації – локальне, зашифроване
Розміщений екземпляр – працює лише в Chromium-браузері.
Вихідний код - ліцензія MIT, відкритий код.
TLDR
Ідея – особисте сховище інформації, яке може цілком жити на твоїй машині. Мінімум залежностей, легко хостити самому. Використовує нативний File System Access API браузера Chrome для читання й запису зашифрованих даних.
Реальна мотивація
Мені здається, світ змінюється надто швидко, як і всі наші речі, документи тощо. Думаю, розумно мати добрий цифровий огляд усього, що залишається в реальному світі (іноді нерозібраного, безладного або в дивних місцях). Я навряд чи довірив би комусь іншому зберігання таких даних – тож ось застосунок. Думаю, варіантів використання більше, ніж я можу зараз уявити, і це буде не найзручніший з усіх застосунків – але принаймні, з моєї точки зору, він доволі безпечний. Якщо ти зрештою вирішиш ним користуватися, я буду радий, що комусь іншому не доведеться витрачати кілька місяців на обдумування цієї ідеї та кілька днів на реалізацію.
Q&A
1. Ти зробив це за допомогою ШІ?
Так. Ідея моя, промпти складені й доопрацьовані разом зі ШІ, код на 100 % написаний ШІ. AGENTS.md, промпти та інструкції – це кілька шарів у циклі зворотного зв’язку людина–ШІ. Я читав markdown-файли й коригував (зі ШІ) ті частини, з якими був не згоден – здебільшого це стосувалося формулювань і деяких функцій, від яких я вирішив відмовитися, наприклад обробки вкладень. Я також використовував ШІ для тестів (Fable 5): він їх пройшов і виправив баги (як знайдені ним самим, так і ті, на які вказав я). На цьому етапі написати це без ШІ зайняло б у мене, найімовірніше, місяці – і я б просто цього не робив.
2. Чому не KeePass?
Бо справа не в паролях. Назва «vault» не має вводити в оману – фізично в сейфі можна зберігати значно більше, ніж пароль. Я хотів зробити проєкт, який:
- має мінімум залежностей
- хоститься локально
- легко перевіряється
І я не зміг одразу знайти добре рішення, якому міг би довіряти. Цей застосунок ближчий до Obsidian чи Tolaria, але їхній інтерфейс просто містить забагато всього, і це мене дратує. До того ж частину цих рішень розробляють комерційні компанії, вони теоретично можуть виконувати хмарну синхронізацію – а я просто не бачу причин довіряти інтерактивно складним системам, які так чи інакше завжди перебувають у полі уваги хакерів.
3. Чи мушу я цьому довіряти? Чи безпечно цим користуватися?
Ні, не мусиш. Варто перевіряти все, що бачиш в інтернеті, особливо якщо це походить від незнайомої людини й стосується критичної приватної інформації. Проте поточна конфігурація дає змогу легко перевірити, безпечне це рішення чи ні. Це ванільний HTML/CSS/JS-застосунок, він не залежить від зовнішніх бібліотек і легко тестується. До того ж, якщо запускати його локально, ним можна користуватися без підключення до інтернету, що ускладнює доступ до твоїх даних.
АЛЕ. Оскільки я не знаю твоєї конфігурації, запускати його може виявитися небезпечно – попри всі мої зусилля зробити його захищенішим. Якщо в тебе стоять браузерні розширення, слабкий пароль і ти загубиш ноутбук, або ти вирішиш розгорнути свій екземпляр в інтернеті без належної обережності – тоді неважливо, наскільки безпечний сам застосунок: він буде вразливим через зовнішні причини.
4. Чому лише Chrome?
Бо File System Access API – це фіча Chromium; у Firefox і Safari її немає. Я думав про різні кросплатформні варіанти й просто вирішив зупинитися на цьому. Chrome доступний на всіх основних операційних системах, ним можна користуватися офлайн – або ж форкнути репозиторій і переписати під клієнт, якому надаєш перевагу. Якби я взяв надто широкий стек технологій, я був би менш задоволений рішенням, яке намагається охопити все – бо операційний ризик просто зависокий, як і мої витрати на пошук проблем. Це також ускладнило б іншим завдання переконатися, що застосунком безпечно користуватися.
5. Чи проведено належний аудит?
Ні. Я не планую проводити (чи залучати) жодних аудитів, окрім перевірок Claude Fable, і залишаю це на розсуд того, хто захоче цим користуватися. Проведи аудит сам, виріши, які саме пункти викликають у тебе занепокоєння, і за потреби розроби виправлення. Проте пропоную почати з docs та security-audit-by-fable, щоб перевірити, чи не зняті вже твої питання.
6. Чи підтримуватиметься це вічно?
Не думаю. Надія в тому, щоб отримати одну-єдину версію, настільки добру, що вона просто працює й не викликає жодних питань. Утім, я розглядав би приватні повідомлення про проблеми безпеки й вирішував, чи хочу їх включити, або пропонував би створити форк. Якщо побачу, що ризик зависокий, я вимкну VPS, на якому працює розміщений екземпляр, і залишу репозиторій як архів, найімовірніше розкривши знайдені проблеми. Оскільки я не збираю email-адреси чи дані користувачів, у мене не буде способу повідомити про вразливості – а отже, той, хто це хостить, несе відповідальність за те, щоб постійно перевіряти, чи досі безпечно цим користуватися.
Передісторія
Я загубив SIM-карту, яка, як виявилося, стирчала в старому телефоні, знайденому через три місяці після того, як я деактивував SIM. Ось і вся передісторія. Я більше не хочу губити SIM-карти :D