Безопасный вход из мобильного приложения DevExtreme
Я пытаюсь зашифровать связь между базой данных на моем сервере и мобильным приложением, созданным в devExtreme, которое использует javascript. Их команда поддержки приводит пример использования base_64encode. Это безопасный метод? Вот пример для DevExtreme: Пример запроса аутентификации
У меня проблемы с пониманием, насколько это будет безопасно. Насколько я понимаю, мобильное приложение будет шифровать данные (поэтому у приложения есть ключ / метод дешифрования для шифрования. Разве кто-то не сможет найти этот ключ, если у него есть доступ к исходному коду приложения?) Это зашифровано затем данные отправляются на сервер и дешифруются. Сообщение отправляется для уведомления, если аутентификация не удалась или нет.
Кроме того, использование SSL-соединения создаст частное соединение между клиентом приложения и сервером.
Извините, я задал там много вопросов! Позвольте мне подвести итог:
Безопасно ли использовать base64_encode в devextreme? Я провел некоторое исследование и видел много статей, в которых говорится, что это легко взломать.
Поскольку пароль и имя пользователя должны быть зашифрованы / расшифрованы на стороне приложения, а также на стороне сервера, не так ли
вызвать проблемы, если пользователь приложения смог получить доступ к источнику
код?Достаточно ли отправить файл заголовка / строки /json через соединение SSL? Нужно ли мне использовать шифрование, если бы я использовал SSL?
Каким руководящим принципам следует следовать, если таковые имеются, для создания безопасного
мобильное приложение? Что-то похожее на это руководство, но для мобильных
Программы.
Заранее спасибо.
2 ответа
base64 не является шифрованием. Это кодировка. (см., например, разницу между кодированием и шифрованием). Декодирование закодированных данных является тривиальным. Таким образом, использование в одиночку небезопасно в случаях, когда требуется шифрование, например при обмене личными данными. base64 довольно легко распознать, поэтому, если кто-то заполучит ваш HTTP-пакет, он просто получит ваш пароль.
Если вы используете шифрование с алгоритмом, который не нарушен, и злоумышленник не знает ваш закрытый ключ - вы в порядке. В этом случае знание того, какой алгоритм вы использовали, мало поможет злоумышленнику. Смотрите, например, шифрование для более подробной информации.
Использование SSL должно быть достаточно. Посмотрите, например, насколько безопасен SSL. Не нужно дважды зашифровывать одно и то же.
DevExtreme - это фреймворк HTML5/JS, поэтому вы должны искать материалы, рассказывающие о защите таких вещей, как AJAX и т. Д. Зависит также от того, что вы используете на стороне сервера. Я предполагаю, что все сводится к защите уязвимой передачи данных и вашего серверного приложения, что бы вы там ни использовали. Не могу вам помочь с этим.
Еще одна вещь: как я написал в пт. 4, DevExtreme - это фреймворк HTML/JS. Как только кто-то загружает ваше приложение, у него уже есть код, поскольку приложения DevExtreme не скомпилированы как таковые - это всего лишь веб-приложения, поэтому единственная вещь, к которой у ваших пользователей нет доступа, - это ваш код на стороне сервера.
Этот подход является безопасным, поскольку необходимые учетные данные для доступа к веб-службе передаются каждому HTTP-веб-запросу. Важно, чтобы HTTPS использовался так, чтобы учетные данные шифровались по проводам. Веб-служба должна проверять переданные учетные данные для каждого запроса, прежде чем отправлять ответ. В примере кодируется имя пользователя и пароль для base64, чтобы убедиться, что все символы, включая специальные символы, найденные в случайно сгенерированных паролях, действительны в заголовках (протокол http).