Безопасность вашего мобильного приложения

Безопасность вашего мобильного приложения
Сегодня многие компании задумываются о безопасности передачи данных между сервером и мобильным приложением. Разобраться с преимуществами внедрения новой технологии нам помог Константин Волков, руководитель студии разработки мобильных приложений FlipCat (www.flipcat.ru).

В чем преимущества шифрования RSA-2048?

Сам принцип шифрования RSA-2048 заключается в том, что первоначальная закодированная информация определенным способом перемешивается с большим ключом SALT. Этот ключ представляет собой произведение простых чисел. Для того чтобы расшифровать передаваемую информацию, необходимо знать исходные простые числа. Специалисты по безопасности мобильных приложений вполне допускают возможность проделывания трудоемкой, но достаточно реальной операции разложения ключа на простые множители. До сих пор в мобильных приложениях применялся 1024-битный ключ. Однако последние достижения ученых по разложению больших чисел требуют от разработчиков мобильных приложений перехода на шифрование RSA-2048.

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

Для снижения риска несанкционированного доступа к конфиденциальной информации сегодня криптографические ключи менее чем 1024 бита блокируются многими системами.

Ключ авторизации.

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

Ключ сервера.

2040-битный ключ RSA используется серверов для подписи всех данных, которые передается от сервера на устройство клиента. В момент передачи данных между сервером и телефон ключ RSA генерируется автоматически. Само приложение также генерирует исходящие RSA ключи в момент передачи данных обратно серверу. Сервер никогда не сохранят данные ключи и постоянно их меняет.

Ключ индификатора.

Другие 64-битные параметры для хеша SHA1, которые отвечают за авторизацию ключа используются для индификации ключа, которые было использовано при шифровании данных во время передачи на сервер. Нулевой ключ авторизации означает, что шифрование не может быть использовано для ограниченного количества сообщений.

Сессия.

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

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