Если вы действительно хотите защитить соединение, вам придется использовать криптографию с открытым ключом, например, RSA. Устройство зашифрует информацию для входа в систему с помощью открытого ключа, а на стороне сервера вам придется расшифровать с помощью личного ключа. После входа в систему сервер отправит токен / ключ шифрования (ответом будет зашифрованный JSON или что-то еще), и устройство сохранит его. С тех пор, пока сеанс не истек, устройство будет отправлять всю информацию, зашифрованную с использованием этого токена. Для этого запроса вы не должны использовать RSA, потому что это займет больше времени. Вы можете использовать AES256 (это популярное шифрование с закрытым ключом) с этим ключом шифрования, полученным с сервера, для шифрования ваших запросов.
Ради простоты вы можете вообще отказаться от RSA (если вы не отправляете платежную информацию) и сделать все, используя AES256 с закрытым ключом. Шаги должны быть -
- Зашифровывать каждый исходящий запрос закрытым ключом.
- Преобразовать зашифрованную строку в строку base 64.
- URL кодирует строку в кодировке Base 64.
- Отправь это.
На стороне сервера
- У декодирования base 64
- Расшифровать с помощью закрытого ключа.
Ваш запрос должен иметь подпись (например, ключ шифрования, добавленный в виде соли), чтобы его можно было идентифицировать после расшифровки. Если подпись отсутствует, просто отмените запрос.
Для отправки ответов сделайте то же самое.
Android SDK должен иметь методы для шифрования с кодировкой AES256 и Base 64.