Я разрабатываю простое приложение, которое не использует (по крайней мере, поначалу) стороннюю авторизацию. Я хочу создать API RESTful для использования клиентами iOS/Android/любыми, поэтому я прочитал кучу информации о реализации API RESTful. Однако обычные способы их реализации включают в себя отправку своего рода безопасного «токена», который используется для подписи запросов; это делает API уязвимым для атаки «человек посередине», и рекомендуемым способом противодействия ей является использование HTTPS.
Однако чтение всего этого заставило меня задуматься, почему для этого не используется подписание закрытых/открытых ключей (например, RSA). Таким образом, клиент будет генерировать закрытый и открытый ключи из пароля, отправлять открытый ключ при регистрации и хранить закрытый ключ у клиента, и даже если кто-то завладеет всеми коммуникациями между сервером и клиентом, он все равно ничего не сделает. не иметь возможности выдавать себя за клиента.
Но я почти ничего не знаю о криптографии и безопасности, поэтому должны быть причины, по которым этот метод не используется, о которых я не мог подумать, верно?