1) Я не уверен, что использование RSA исправит это, если только во всех ваших мобильных приложениях нет одинаковых комбинаций открытых / закрытых ключей. Браузер может так же легко использовать RSA и шифровать данные.
Один из способов сделать это - проверить заголовки HTTP, поступающие на заголовки, вставленные оператором мобильной связи, и возможность их подделки.
Это сложная проблема. Я продолжу думать об этом и сообщу, если что-то придет в голову.
2) Для шифрования на основе сеанса вы можете использовать алгоритм обмена ключами Diffie-Hellman для согласования ключа сеанса, а затем использовать его для блокировки запросов к сеансу.
3) звучит хорошо.
4) Я думаю, что единственный способ обойти взломанный телефон - это требовать, чтобы пользователи входили в систему, потому что вам нужно аутентифицировать пользователя, а не только устройство. Другое дело, что люди разделяют телефоны, так что, возможно, они даже не были взломаны. Возможно, его просто выдали.