Пора вернуть свои данные себе

e164d88ee8fd030f9aff875325abbf66.png

Многие из нас замечают, что с увеличением числа онлайн-сервисов, контроль над личными данными кажется ускользающим. Наши файлы и личная информация хранятся на удаленных серверах, защищенные паролями и методами двухфакторной аутентификации, и доступны нам только до тех пор, пока мы оплачиваем подписку. Но что произойдет, если потеряется SIM-карта, истечет срок подписки, или если вдруг аккаунт будет заблокирован из-за санкций? Есть ли план на случай, если сервис, который мы используем для работы с паролями или заметками, внезапно прекратит свое существование? Как тогда быть с экспортом и импортом данных? Это вопросы, о которых задумывается каждый из нас, исследуя цифровую эру и свое место в ней.

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

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

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

Чем плох тот подход что есть сейчас?

Блокировки и доверие

Современные подходы к хранению данных обычно предполагают, что все данные хранятся внутри приложения, с резервным копированием на сервере этого приложения, или полностью на сервере, а приложение служит лишь для их отображения. Это означает, что мы полагаемся на разработчиков и поставщиков этих программ для работы с нашими данными. Однако возникает вопрос: насколько надежно данные хранятся? А ещё, любые централизованные хранилища данных могут привлекать хакеров, что делает их потенциальной целью для атак.

Утечки и надежность

Даже такие крупные компании как Google иногда теряют пользовательские данные из-за неудачных обновлений. Примеры утечек данных, например, инциденты с «голыми знаменитостями» от Apple, показывают, что никто не застрахован от ошибок. Даже базы данных таких организаций, как ГИБДД, оказываются под угрозой. Часто компании передают данные спецслужбам по законным требованиям, что добавляет риски. Эти события подчеркивают, что хранение данных миллионов пользователей — это сложная задача и что доверие своих данных третьим сторонам влечет за собой множество рисков.

Давайте обсудим важность безопасности личных данных в приложениях, особенно в тех, где мы используем свои логины и пароли. Когда мы вводим такую информацию в приложение, существует риск, что она может попасть в руки недобросовестных разработчиков. Это особенно опасно, так как одна и та же комбинация логина и пароля часто используется для доступа к разным аккаунтам — от электронной почты до облачных сервисов, как, например, iCloud. Примеры таких утечек в прошлом, включая инциденты с Apple, подчеркивают важность осторожного отношения к выбору приложений и внимания к безопасности данных.

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

Изоляция и интеграции

Как вы думаете, почему мы стали хранить данные непосредственно в приложениях вместо использования стандартных папок, таких как 'Документы' или 'Фотографии', в наших операционных системах? Раньше это было обычным делом. Не кажется ли вам, что пора вернуться к этой простой и удобной практике?

В настоящее время данные, хранящиеся в программе, недоступны для внешних сервисов, за исключением случаев наличия у программы специализированного API, такого как инструмент индексации данных Apple. Представляете, был разработан целый SDK и проведена интеграция в систему, только чтобы данные могли храниться в приложении и синхронизироваться с серверами производителя. Кажется удивительным, что для достижения такой задачи было затрачено столько усилий.

Я действительно не до конца понимаю для чего нас всех так сильно прижали, сколько лишней работы было проделано для интеграции этой концепции…

Давайте обсудим обмен данными между различными платформами. И тут все ещё веселее. Если для вашей платформы нет программы, вы не сможете работать со своими данными на этой платформе. Это своего рода призыв оставаться в рамках одной экосистемы. Как будто говорят: «Зачем вам другие опции? Останьтесь с нами и станьте полностью зависимыми от нашей системы». Как пример можно представить приложенир Фото, от Apple.

Как насчет использования искусственного интеллекта для улучшения поиска и организации наших данных, например, для создания описаний фотографий для поиска? Возьмем, к примеру, всё то же приложение Фото от Apple: если вы попробуете найти «красную машину», оно может не выдать ничего или показать любые красные объекты. Попытки использовать осмысленные запросы часто приводят к нерелевантным результатам. Но мы не можем интегрировать собственный ИИ непосредственно в это приложение. Это означает, что нужно искать альтернативные, более умные программы, которые пока не существуют. Таким образом, мы оказываемся в тупике, где наши данные ограничены рамками лишь одной программы, не умеющей нормально обработать фотографии ИИ.

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

Что в итоге, мы имеем проблемы с:

  1. утечками наших данных

  2. потерей наших данных

  3. потерями данных после обновлений приложений

  4. утечками наших данных по запросам

  5. утечкой доступов через сторонние программы для доступа к данным

  6. блокировкой нашего аккаунта с данными

  7. постоянной платой за пользование нашими данными

  8. возможной потерей симки или пароля для доступа к нашим данным

  9. переносом данных из одной программы в другую

  10. переносом данных из одной платформы в другую

  11. запертыми данными внутри приложений

  12. разработкой софта под каждую платформу и поддержка

  13. отсутствием API для работы с даными в каждой программе

Чем хорош новый подход, что ты предлагаешь?

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

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

Навскидку, можно предложить несколько простых сервисов, для получения данных из различных источников:

  1. Email

  2. SMS

  3. RSS (readonly)

  4. Расшаренные папки

  5. Сообщения в мессенджерax

  6. Загрузки из интернета

  7. Контакты

  8. Заметки

  9. Календари

Представьте, что для каждого типа данных мы создаём универсальный сервис. Этот сервис будет способен выполнять основные функции: получать, обрабатывать, хранить, удалять и отправлять данные. Особенностью такого сервиса является его способность работать только с одним определённым видом данных, делая это на высоком уровне. Возможно, для достижения лучших результатов, потребуется не один сервис, а комбинация нескольких утилит. Главная цель — специализация на обработке данных от конкретного источника.

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

Приведи пример о чем речь вообще… нифига же не понятно

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

Получение данных, обработка и хранение

Пусть email сервис автоматически скачивает письма с сервера и сохраняет их как файлы в формате .eml в определённой папке. Затем вступает в работу ИИ, который анализирует содержимое каждого письма. Он распознает и извлекает из них различные данные, такие как подпись и контактную информацию отправителя. Также ИИ определяет тип письма, например, является ли оно спамом, уведомлением от банка или личным сообщением. На основе этого анализа, к каждому файлу присваиваются соответствующие теги, упрощая дальнейшую организацию и поиск по письмам.

Представьте, что у нас есть сервис для получения текстовых сообщений СМС. Как только поступает новое сообщение, оно сохраняется в определённой папке в виде текстового файла с расширением .txt. Затем, сервис на основе искусственного интеллекта анализирует эти сообщения и присваивает им соответствующие теги для удобства дальнейшего использования.

Мы также используем сервис управления контактами, который автоматически обрабатывает данные из локальных источников, например из папок с письмами и СМС. Этот сервис сканирует теги и, обнаружив данные о новых пользователях, которые написали нам, автоматически создает новые контактные файлы формата .vcf с уже заполненными полями.

Просмотр данных

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

В новом подходе, для просмотра сообщений, вы можете использовать обычный файловый менеджер для доступа к папке с письмами и текстами. Это значит, что для работы с сообщениями вы можете применять все удобства файлового менеджера, включая создание «умных» папок, которые автоматически организуют ваши сообщения по тегам или именам отправителей. Т.е. мы получаем как бы классический GUI в котором слева ФИО отправителей, а при нажатии на них видим список всех сообщений этого отправителя как на почту так и в виде СМС.

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

Ещё раз о секъюрности

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

Если бы за работу с почтой отвечал лишь сервис находящийся в операционной системе, он бы получал и отправлял письма, сохранял бы данные локально. А остальные программы бы работали лишь с этими данными и с API этого сервиса, то такой утечки бы просто не могло случиться.

Ещё раз. Представим, что операционной системе есть сервис котрый забирает письма с сервера и кладет их в папку локально. Далее любая GUI программа которая хочет красиво отобразить нам списки писем, просто берёт эти файлы и отображает. Т.е. она не лезет сама на сервер, она не имеет вообще никакой чувствительной информации, которая через неё может утечь. Более того, раз отправка писем лежит на сервисе, а не на данной программе, то ей можно вообще запретить ВЕСЬ исходящий трафик фаерволом. Т.е. никакой утечки при всем желании не может случиться.

Старый подход − доверие логина паорля каждой новой программе работы с почтой

Новый подход − почтовая программа лишь отображает письма, программа закрыта фаерволом по всем исходящим портам и протоколам

Что то поконкретнее может?

Представьте программу, которая автоматически отслеживает ваши доходы и расходы. Обычно, для этого нужно вручную вводить данные по каждому расходу или доходу, либо использовать API банка, что может быть сложно и не всегда безопасно. Более того не у всех банков имеется такой API, а уж охватить разом все банки вообще для разработчика не возможно. 

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

Таким образом, в нашей финансовой программе будут отображаться все поступления и расходы в режиме реального времени, без необходимости предоставления доступа к API банка. Это делает процесс не только удобным, но и повышает безопасность ваших данных.

Ещё пример пожалуйста и в этот раз без почты

Окей, давайте рассмотрим ситуацию с программами для заметок. Сейчас существует множество таких программ, каждая из которых использует свою внутреннюю базу данных. Но что если программа прекратит своё существование, как это уже случалось? Встаёт вопрос о сохранении и переносе данных.

Итак, какой выход?  

Один из способов − хранение данных не в специализированной базе данных приложения, а прямо в файловой системе в универсальном формате для заметок. Это позволит обеспечить переносимость данных между различными программами, ведь все они будут работать с одним и тем же типом файлов, используя свой уникальный интерфейс. Таким образом, вы сохраняете свои данные и обеспечиваете лёгкость их переноса в случае необходимости.

Ну… может ещё один последний примерчик?

Окей, работа с сообщениями. Например сейчас у нас есть Whatsapp, Telegram, iMessage и другие программы, включая обычные СМС. И что нам приходится делать? Правильно заходить в каждую программу где нам написали, что бы в ней ответить. Но вот если бы для каждой программы был бы сервис, который бы каждое сообщение клал в виде файла в папку то все бы изменилось.

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

А не будет это тормозить, БД же быстрее?

Сейчас SSD по скорости даже быстрее чем память пятилетней давности. Но не это главное, а главное то что никто не заставляет например не использовать кеширование в самой программе. Т.е. предзагрузить часть данных в память например.

Так какие же плюсы?

Опять же на вскидку мы получаем следующий набор плюсов:

  1. наши данные принадлежат нам

  2. нет утечек все секъюрно

  3. нет зависимости от вендора

  4. нет зависимости от автора программы

  5. легкая обработка данных своими сервисами ИИ

  6. даные доступны к просмотру любым способом, даже из командной строки

  7. нет возможности залочить ваши данные санкциями

  8. лекгая переносимость данных между приложениями

  9. легкая переносимость между платформами

  10. гибкая система настройки

Какие же минусы?

Хранение данных на устройстве занимает место, т.е. это должны быть устройства с большим объемом. Если говорить про телефоны, то конечно iPhone во всех планах выступит как аутсайдер… как по цене за телефон с большим диском так и по ограничениям операционной системы. Лучше посмотреть телефон на linux, с картой microSD на любой объем.

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

Так что даже эти минусы, это скорее плюсы.

Итоги

Я разработал идею, концепцию и поделился ей с вами для того что бы показать, что с данными можно работать иным способом, более безопасным и более простым и открытым. Показал на примерах, что сделать такое вполне было реально для любой операционной системы, и объяснил почему это не делалось. Рассказал как вендоры возвели заборы вокруг своих экосистем, борясь за каждый бат данных пользователя и чем это иногда заканчивалось.

Сейчас мы имеем то что имеем, но выход из этой ситуации я тоже описал. Для себя я решил начать именно с проектирования этой схемы работы с данными, а продолжить написанием отрытых сервисов на своем github на golang или любом ином языке. Если кому то как и мне эта тема не безразлична, пишите мне, я постараюсь всем ответить. Если вы хотите присоедениться к разработке сервисов, то я так же буду очень рад.

Всех с наступающим 2024 годом. Пора вернуть свои данные себе.

© Habrahabr.ru