Я не верю, что это приемлемое решение.
Целью HMAC является проверка целостности и подлинности данных.Таким образом, вы можете использовать его, чтобы убедиться, что информация не изменилась, и вы можете использовать его, чтобы убедиться, что у пользователя есть секретный ключ (в вашем случае, пароль).
Чего он не может сделать, так это некоторых других возможностей SSL, таких как защита от перехвата путем шифрования канала и проверки личности сервера для конечного пользователя.
Подслушивание: Ничто не помешает человеку-посреднику (MITM) наблюдать за этой транзакцией, перехватывать ответ возврата (дайджест HMAC) и отправлять его как собственный запрос (даже останавливая ответ другого пользователя).
Проверка идентификатора сервера. Одна из самых важных частей, которые вам здесь не хватает, - это защита ваших пользователей от фишинга.С действительным сертификатом SSL ваши пользователи не смогут проверить, является ли сайт вашим или самозванцем.Вы пытаетесь защитить себя, проверяя подлинность конечного пользователя, и это здорово, но вы забываете защищать конечного пользователя.
Мне было бы интересно узнать, почему у вас нет SSL.Я много слышу об этом и нахожу, что обычная причина в том, что кто-то не хочет выкладывать 50 долларов за сертификат.Но сертификат того стоит, и в среде, где важна безопасность, не должно быть никаких технических причин, по которым SSL не будет доступен.