Я разрабатываю веб-службу, к которой подключаются клиенты, чтобы получить некоторые личные данные. Каждый клиент имеет уникальный идентификатор и секретный ключ (сгенерированный сервером), которые отправляются в качестве параметров веб-службе для аутентификации. Кроме того, все коммуникации осуществляются по протоколу HTTPS.
Я также планирую использовать HMAC-SHA256, чтобы не отправлять секретный ключ по сети.
Однако мне интересно, является ли это строго необходимым. Поскольку HTTPS дает мне безопасный канал между клиентом и сервером, почему я действительно должен пересылать секретный ключ по этому каналу?
Единственная причина, которую мне удалось придумать, это то, что несведущий разработчик может добавить сервис в будущем и не отклонять не-HTTPS соединения, поэтому хеширование секретного ключа — это своего рода страховка от реалий разработки корпоративного ПО, лишняя строка защиты, если хотите.
Я упускаю что-то более существенное? Является ли это реальной уязвимостью, которой может воспользоваться какой-то вектор атаки?