Шифрование firebase или нет?

Я новичок в мире Android-разработки. Самоучка в питоне и до сих пор учусь. Я тратил в основном 10-14 часов в день каждый день в течение 7 месяцев на разработку приложения (потому что теперь я пристрастился к программированию, хе-хе)

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

Приложение собирает данные о местоположении, номера телефонов и некоторые другие конфиденциальные данные. Эти данные сохраняются в базе данных Firebase в реальном времени в формате JSON. Поскольку firebase принадлежит «google», его https, и вам необходимо авторизоваться для доступа к нему, в глазах соответствующих разработчиков, Google и т. д. будут ли данные JSON, которые я храню, с конфиденциальной информацией, классифицироваться как «безопасные» в firebase или мне нужно узнать о шифровании Python и прочем?

Вы ДЕЙСТВИТЕЛЬНО не хотите обрабатывать какие-либо личные данные (особенно данные о местоположении, номер телефона) других людей в облаке в качестве любителя. Это территория «ужасной идеи и потенциального финансового краха».

Joachim Sauer 15.02.2023 17:49

Я не согласен с закрытием этого вопроса. Это совершенно законно в контексте этого сайта. В то время как «насколько безопасно достаточно безопасно?» будет в значительной степени основан на мнении, вопрос, как указано, заключается в том, делает ли приложение безопасным только безопасность базы данных. Это не основанный на мнении вопрос, и на него может легко ответить любой, кто имеет опыт работы в сфере безопасности.

JDB 16.02.2023 17:07
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
2
56
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Нет

Нет, это не обязательно безопасно из-за местоположения.

Безопасность — это многоуровневая дисциплина, которая включает в себя осведомленность о векторах угроз, чувствительность к среде угроз и учет хранимых данных, не говоря уже о юридических требованиях и финансовых рисках!

Многоуровневая безопасность

Чтобы использовать конкретный пример, представьте чрезвычайно «надежное» хранилище со стальными стенами толщиной 15 дюймов. Внутри находится бесценная сокровищница. Однако ради удобства владелец хранилища оставил ключ приклеенным скотчем к входной двери и из соображений экономии не нанял охранников и не заплатил за камеры.

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

Ваша база данных firebase может быть физически защищена (поскольку она находится где-то на складе Google), но ваше приложение хранит ключи к базе данных. Если ваше приложение легко взломать, то безопасность вашей базы данных находится под угрозой.

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

Безопасность не ограничивается вашей базой данных

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

Например, насколько легко пользователю подделать другого пользователя в вашем приложении? Не имеет значения, имеет ли ваша база данных много уровней безопасности, если злоумышленник может просто использовать ваше приложение для доступа к данным для всех и всех пользователей. (Ради этого разговора ваше «приложение» включает в себя конечные точки службы, которые ваше локально установленное приложение Android использует для связи с сервером, которые может легко обнаружить даже хакер-любитель.)

Нет универсального совета

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

Вот несколько законов, которые вам, возможно, придется учитывать при хранении конфиденциальных пользовательских данных, но их гораздо больше:

Однако, похоже, это хобби. Если да, то рассмотрите альтернативы центральной базе данных (которая может стать очень дорогой, если ваше приложение станет вирусным!). Возможно, использовать локальную базу данных, чтобы все данные хранились на личном устройстве пользователя (и, возможно, предоставить простой способ экспорта/импорта этих данных). Некоторые пользователи (включая меня!) на самом деле сочли бы это ценной функцией! Или рассмотрите гибридную модель, в которой конфиденциальная информация хранится локально, а общая информация, не позволяющая установить личность (PII), хранится централизованно (чтобы вы могли запускать отчеты об использовании и т. д.).

Безопасность — это баланс между доступностью и секретностью, поэтому универсальных советов быть не может.

Узнать больше

Обратите внимание, что совет № 1 FTC:

1. Минимизируйте данные.

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

  • Можно ли хранить данные в деидентифицированной форме? Когда данные обезличены, их нельзя обоснованно связать с конкретным человеком. Ключом к эффективной деидентификации является обеспечение того, чтобы данные не могли быть обоснованно повторно идентифицированы. Например, правила Министерства здравоохранения и социальных служб США требуют от организаций, подпадающих под действие Закона о переносимости и подотчетности медицинского страхования (HIPAA), либо удалять определенные идентификаторы, включая дату рождения и пятизначный почтовый индекс, из защищенной медицинской информации, либо иметь эксперт по конфиденциальности и безопасности данных определил, что риск повторной идентификации «очень мал». Надлежащим образом деидентифицированные данные могут защитить конфиденциальность людей, но в то же время позволяют их полезное использование. Например, если ваше приложение собирает информацию о геолокации в рамках усилий по картированию вспышек астмы в мегаполисе, подумайте, можете ли вы предоставить те же функции, сохраняя и используя эту информацию в деидентифицированной форме. Вы можете снизить риск повторной идентификации данных о местоположении, не собирая в первую очередь строго конкретные данные о местоположении отдельных пользователей, ограничив количество местоположений, хранимых для каждого пользователя, или объединив данные о местоположении для всех пользователей.

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

Хороший ответ. Спасибо за это, и я рад, что спросил. Я сосредоточу свое внимание на изучении многоуровневой безопасности и обращусь к профессионалу, если я не могу понять это.

Lazza 16.02.2023 00:04

@Lazza: одна из причин, по которой безопасность настолько «страшна» и ее трудно обеспечить правильно, заключается в том, что те, кто защищает данные, должны сделать все правильно, чтобы защитить данные, в то время как злоумышленнику нужно найти только одну дыру в системе, чтобы попасть внутрь. Это не так. ровное игровое поле.

Joachim Sauer 16.02.2023 09:54

Другие вопросы по теме