HTTP Basic для API - Как "уменьшить" шифрование учетных данных?
В настоящее время я написал API, который использует HTTP Basic поверх TLS для аутентификации, и я вполне доволен им.
Теперь я увеличил значения для шифрования пароля (например, длину, итерации,...), чтобы получить более реалистичный сценарий. К сожалению, это сделало доступ к API очень медленным, так как мне приходилось перефразировать учетные данные HTTP Basic снова и снова.
Каков был бы самый простой подход (помимо сессий, конечно) для преодоления этой проблемы?
1 ответ
pbkdf2 не предназначен для повторного вызова, на самом деле, это медленно, чтобы предотвратить это. Обычно это сочетается с некоторой аутентификацией на основе сеанса или токена и SSL/TLS.
Если ваша медлительность вызвана pbkdf2, и вы не хотите проводить сеансы или какую-либо подобную аутентификацию на основе токенов, то здесь вы мало что можете сделать, кроме как отказаться от или уменьшить число итераций для pbkdf2.
Тем не менее, вы можете отказаться от базовой HTTP-аутентификации, сохранить TLS и выполнить собственную аутентификацию, а затем оставить соединение открытым для дополнительных запросов. Конечно, это будет зависеть от клиента, чтобы поддержать это также.
Другим решением было бы добавить больше оборудования для распределения нагрузки. Поскольку хеширование выполняется на веб-сервере, а не на сервере базы данных, вы можете добавить больше веб-серверов, процессоров веб-серверов и т. Д. И сбалансировать нагрузку.