У меня есть платформа для создания локальных приложений реального времени под названием Bashoto, и я собираюсь создать клиент для Android.Защита секретности третьего лица в Android
Приложения Bashoto имеют возможность пройти аутентификацию, которая выполняется путем генерации одноразового использования, заканчивающегося JSON Web Token (короткий код JWT) с токеном приложения и сигнатурой, чтобы убедиться, что токен действителен. Каждое соединение будет иметь уникальный JWT, который создается путем подписания контента с помощью Secret.
В веб-среде это означает, что клиентский сервер имеет копию Секрет, подписывает токен и передает его клиентскому интерфейсу, который затем используется в запросе на сервер BashotoIO.
Проблема в мобильной среде, и в данном случае Android, заключается в том, что сохранение этого Секрет в коде приложения является потенциальным вектором атаки, поскольку кто-то может проверить APK, чтобы найти его.
Каков наилучший способ по-настоящему сохранить секретный секрет в приложении для Android, сохраняя при этом интеграцию Bashoto простой и упрощенной?
Я хотел бы использование смотреть что-то как этот
Bashoto bashoto = Bashoto.fromAppKey("my-app-key");
bashoto.locate();
BashotoTopic topic = bashoto.topic("my-topic-name"); //token signing and connection happens here
topic.send("Some message that only gets seen by nearby people");
Существует простое правило. Если вы действительно хотите, чтобы это было секретно, не кладите его на устройство. Независимо от того, что вы делаете, ваш код должен быть в состоянии найти секрет, который означает, что его найдет и хакер. Единственное, что вы можете сделать, это замедлить их. – Simon