EnotApp: как из личной проблемы получился софт для защищенного хранения

За первое полугодие 2022 количество записей персональных данных, попавших в свободный доступ, превысило по размеру население России. Пароли, важные документы, базы клиентов стали общим достоянием. Рассказываю, какой продукт для безопасного хранения любой информации мы разрабатывали в 2022 году, и что получилось.

Немного предыстории или зачем изобретать велосипед

Меня зовут Альберт, я работаю в сфере инфобеза. Ежедневно по работе нужно обрабатывать много данных: пароли, списки сетевых ресурсов организаций, идеи, рассуждения, оценки ситуаций и прочее. Всё это нужно записывать и хранить. Самый удобный формат для меня - заметка. Записал, к примеру, идею новой функции, сохранил, а потом в нужный момент перечитал.

На фоне новостей о сливе конфиденциальной информации (утечки пользовательских данных у Ростелеком и Geekbrains и других), а также в связи с высокой вероятностью ухода с рынка зарубежных сервисов, у меня возник вопрос, где хранить свои заметки.

Перед тем, как начать поиск, набросал основные критерии идеального для меня приложения с точки зрения безопасности:

  • Хранение только в облаке, а не локально.
  • Шифрование данных должно осуществляться на стороне клиента.
  • Кроссплатформенность, независимость от Play Market и AppStore.
  • Возможность хранить в заметке не только текст, но и прикрепить аудио, видео, изображения и иные файлы.

Начал изучать варианты.

Увы, популярные решения для хранения данных мне не подошли.

И вот почему:

  • Notion - не использует шифрование данных. Сразу отмел этот вариант.
  • Evernote - тоже мимо. Он позволяет шифровать только часть заметки. Файлы, изображения, списки, чек-лист, таблицы зашифровать нельзя.
  • В OneNote есть возможность шифрования, но документы придется сохранять локально и отправлять в свое облако.
  • Хранить данные в криптографическом контейнере типа VeraCrypt тоже неудобно. Во-первых, придется устанавливать ПО на все используемые устройства. Во-вторых, каждый раз или носить с собой контейнер с информацией, или его откуда-то скачивать. В-третьих, нужно еще как-то синхронизировать данные. Очень сложно, короче.
Я изучаю очередную альтернативу
Я изучаю очередную альтернативу

Можно, конечно, взять любой хостинг и хранить информацию в архивах 7-Zip с длинным паролем. Но о комфортной работе на всех устройствах тогда можно забыть. Придется скачивать архив, вводить пароль, распаковывать и после работы с информацией совершать обратные действия. Опять очень сложно.

Так и не нашел для себя идеальный сервис, пришел к идее, что есть потребность создать собственное решение, которое полностью будет отвечать заявленным выше критериям. Так появился EnotApp.

EnotApp: как из личной проблемы получился софт для защищенного хранения

Бот для шифрования

EnotApp (Encrypted NOTes APPlication - вот такая аббревиатура) - сервис зашифрованных заметок на основе Telegram-бота.

Если у вас уже есть Telegram, дополнительно ничего скачивать и устанавливать не нужно. Предполагаю, что у читателя этой статьи Telegram уже есть.

Главный экран
Главный экран
Главное меню
Главное меню

Контент перед отправкой на сервер шифруется на устройстве пользователя. Это значит, что никто, кроме вас, не сможет прочитать текст, увидеть названия папок, заметок и хэштегов.

Зашифровать можно не только текст, но и картинку, аудио, видео и другие файлы. Срочно нужно сохранить важный документ? Не вопрос. Прикрепляете его к заметке и он зашифровывается автоматически.

Чем отличается наш веб-телеграм-бот от других подобных сайтов? Тем, что для регистрации и авторизации нам не нужны личные данные пользователя. Используется только Telegram id.

Текущая версия EnotApp работает на серверах дата-центра в РФ. Это сделано по нескольким причинам. Во-первых, чтобы избежать блокировки сервиса (как уже сотни сервисов заблокировали по гео-признаку) политически и проблем с приемом оплат. А во-вторых, чтобы быстро расширить ресурсы, если количество пользователей резко увеличится.То есть убиваем двух зайцев сразу: обеспечиваем приложению стабильную работу и устойчивость от внешних недружественных воздействий. Ну и в-третьих, используемые дата-центры удовлетворяют требованиям к защите персональных данных.

Интерфейс приложения интуитивно понятен. Напоминает работу со стандартным проводником любой известной операционной системы. Хранилище приложения состоит из дисков, а на дисках располагаются папки и заметки.

Мы с командой вдохновлялись https://mega.io и https://privnote.com, так что общую логику удобства постарались заимствовать оттуда, она уже явно проверена десятками итераций.

EnotApp: как из личной проблемы получился софт для защищенного хранения

EnotApp оптимизирован для работы с мобильных устройств. При первой загрузке вес составляет 500 кб, при повторной снижается до 100 кб.

Для чего полезен EnotApp

Пригодится всем, кто хочет перестать беспокоиться о безопасности данных. Начиная от паролей к соцсетям и заканчивая важными рабочими файлами.

Вот несколько вариантов применения:

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

Как хранятся данные

После регистрации пользователь создает диск и задает ему пароль. На основе введённого им пароля, генерируется криптографический ключ, который в дальнейшем будет использоваться для шифрования.

Шифрование заметок производится на стороне пользователя. Доступа у администрации ресурса к зашифрованному контенту нет. Каждая запись шифруется рандомным криптографическим ключом, который в свою очередь зашифрован ключом от диска.

При этом сами заметки состоят из нескольких зашифрованных файлов, размер которых не превышает 1 Мб. На всякий случай поясню подробнее.

Заметка состоит из частей (текст, картинки и т.п.). Каждая часть заметки хранится в виде одного или нескольких файлов (их еще называют chunks - кусочки, “чанки”). Размер такого чанка не превышает 1 Мб.

Чтобы прочитать заметку, надо сначала расшифровать криптографический ключ к ней, раскодировать полученным ключом каждый из файлов, а затем собрать их в единое целое. И только после этого откроется содержимое.

При первом запуске телеграм-бота будет показано предупреждение о том, что IP-адрес станет доступным владельцу Телеграм-бота. Почему это происходит? Каждый веб-телеграмм-бот - это сайт. Все сайты в интернете, хотят они этого или нет, работают с IP-адресами пользователей, а также знают информацию о браузере.

На самом устройстве контент заметок тоже зашифрован, расшифрованы имена папок и файлов. Для безопасности хранения информации на нем есть кнопка “Очистить кэш”. Нажав ее, вы стираете локальные данные.

При регистрации и авторизации личные данные (адреса электронной почты или номера телефонов) не используются. Хотя вы при регистрации уже отдали номер телефона Телеграму, но это уже неизбежный компромисс между безопасностью и удобством использования.

Что еще есть в EnotApp

  • Заметки поддерживают ввод форматированного текста в разметке markdown. Если вам не нужно форматирование, его можно отключить.
  • Фотографии сжимаются автоматически.
  • Для быстрой навигации по диску можно добавить папку или заметку в раздел “Избранное”, кликнув на значок с сердцем.
Так выглядят папки с заметками. Нажав на сердечко, вы сохраняете нужные файлы в Избранном.
Так выглядят папки с заметками. Нажав на сердечко, вы сохраняете нужные файлы в Избранном.
  • Для заметок можно задавать хэштеги. Если хэштег потерял актуальность, его можно переименовать. После этого он автоматически изменится у всех заметок.
Так выглядят теги в приложении
Так выглядят теги в приложении
  • При сохранении заметки не нужно дожидаться, когда данные будут отправлены на сервер. Даже если пропал Интернет или вы случайно закрыли приложение, данные не удаляться, а будут отправлены на сервер при следующем запуске.
  • Данные в приложении грузятся очень быстро, так как скачивание осуществляется в 4-6 потоков одновременно.
  • Диск размером 25 Мб предоставляется бесплатно каждому пользователю. Для хранения текстовой информации этого вполне хватит. Если места мало, то емкость можно увеличить или создать новый диск.
  • Виртуальных дисков может быть несколько. Для создания нового виртуального диска нужно в разделе “Хранилище” нажать на кнопку “Новый диск”.
EnotApp: как из личной проблемы получился софт для защищенного хранения
Создаем новый диск для хранения контента
Создаем новый диск для хранения контента
  • Веб-приложение EnotApp работает на всех устройствах, а также в веб-версии Telegram Z. Есть небольшие отличия его работы на различных устройствах. Так, на IPhone и IPad доступна опция “Поделиться”: можно зайти в заметку и поделиться текстовым контентом или фото с другими приложениями, например, Telegram или WhatsApp. А в версии на Android текущие разрешения для веб-телеграм ботов не позволяют выбрать несколько фотографий. Только одну.
  • Опция скачать заметку как файл в виде архива доступна пока только в десктопной версии.

Первые результаты и как попробовать

Я предложил знакомым и коллегам протестировать - и получил много комплиментов. Варианты применения, которые я выше описал, составлены отчасти на основе этой обратной связи.

Продукт полностью функционален, и сейчас я показываю его в публичном поле первый раз. Еще даже лендинг пока в процессе разработки.

Мы сделали фримиум - 25 мб хранилища бесплатно для всех. Это больше, чем знаменитое “640 килобайт должно хватить каждому”, и для большинства пользователей этого достаточно.

Если же будете хранить экранку фильма “Аватар 2”, то мы скоро планируем прикрутить недорогие тарифы с дополнительным дисковым пространством.

Приглашаю вас попробовать EnotApp, буду рад, если дадите честную обратную связь в комментариях, личном сообщении на vc.ru или в канале поддержки в Телеграм.

3030
103 комментария

200Мб за косарь в месяц это пиздец, какой бы супер безопасностью там ни пахло. А там не пахнет, потому что вся безопасность сводится к «зуб даю все надежно», исходников нет (проприетарное крипторешение от Васяна безусловно выглядит супер легитимно). Вообще есть Obsidian с кучей плагинов, синхронизацией и клиентским шифрованием.

47

Почему исходников нет? Все операции по защите данных осуществляются в браузере с помощью JavaScript. При наличии желания можно использовать инструменты разработки и убедиться в прозрачности работы.

Bitwarden
Открытый исходный код, пройденные аудиты безопасности, клиенты под все возможные платформы и гигабайт хранилища меньше чем за 1 доллар в месяц
Можно оплатить криптой или развернуть у себя на сервере

21

Спасибо. Интересный продукт! А вам не кажется, что продукт довольно громоздкий для домашнего использования?

Кроме того, насколько я понял требуется установка плагинов. Если не требуется, то буду рад комментарию.

Например, мы пошли по принципу упрощения. Я сторонник отделять менеджер паролей от заметок, чтобы не усложнять интерфейс.

Автор, какое отношение имеют с картинки notion и veracrypt к вашему боту? Вы же как раз от них отказываетесь, чем вводите в заблуждение, не находите?
С таким же успехом могли на картинке машину Энигму и арифмометр поставить связь примерно такая же

11

Notion - заметки с поддержкой markdown.
VeraCrypt - криптоконтейнер.

Отказываемся от определенных их характеристик, которые я отношу к минусам. Берем только лучшее и соединяем.

Ни в коем случае никого не хочу вводить в заблуждение. Провожу аналогию, даю ассоциацию.

Что касается "Веб-Энигмы", то звучит прикольно. Идея классная.
А арифмометр у меня ассоциируется с калькулятором.

1. Сейчас у вас нет никакой репутации, что например вы завтра не закроетесь и все данные не будут похерены.

2. Зачем изобретать велосипед и устанавливать такую цену, если есть не то что дешевле — есть бесплатно, проверено, отлажено и с функционалом лучше.

3. Вопросы безопасности у вас явно не проработаны — это видно невооруженным глазом любому более менее техническому специалисту.

4. Приложение не техническому специалисту будет непонятно и тоже не особо вызовет доверие.

5. Цена на услугу заметок дороже подписки на онлайн кинотеатр или целую библиотеку ну это перебор.

Я могу понять, если бы вы сделали open source проект, он себя зарекомендовал, прижился и потом через несколько лет предлагали бы свои облака тем людям, которые не хотят заморачиваться со своим сервером.

А пока это выглядит как попытка впарить мёртвого енота.

10