Зачем в public API используют public key и secret?

Заметил, что некоторые сервисы для аутентификации используют подход выдавая пользователям 2 ключа вместо одного: public key и secret. Не могу понять зачем это нужно если в итоге запросы всё равно проходят под капотом и подписываются через token, который генерируется из двух предыдущих ключей. Почему бы не выкинуть этот лишний шаг генерации токена, сразу генерить его в дашборде и использовать? Или я что-то упускаю?
  • Вопрос задан
  • 750 просмотров
Решения вопроса 1
be_a_dancer
@be_a_dancer
Backend/Fullstack Developer
Для ответа на этот вопрос необходимо понять, что такое ассиметричное шифрование.

Краткое объяснение. Ассиметричное шифрование используется для безопасной передачи данных в заведомо небезопасной среде. Используя именно алгоритмы симметричного шифрования, оба участника должны договориться заранее о том, какой ключ использовать, что является потенциально небезопасным, потому что этот ключ можно перехватить и осуществлять атаку типа MITM либо прослушивая, либо подделывая пакеты.

Чаще всего используется алгоритм Диффи-Хэлмана, как наиболее простой. Важно! В чистом виде реализация этого алгоритма уязвима к нескольким видам атак, поэтому часто применяют модифицированные его версии.

Работает он примерно так.
Алиса и Боб хотят обменяться сообщениями.
1 шаг. Они публично договариваются об использовании определенной формулы, по которой будет вычисляться корректность их ключей. Для данного примера - a^x (mod b), где A публичный ключ применяющего формулу и b - публичные ключ оппонента, а x - секретный ключ.
2 шаг. Каждый из них придумывает секретное число. Для Алисы, например, 3, а для Боба - 6. Это число не передается никуда, но вычисляется результат выполнения изначальной формулы. A^3(mod B), а результат (для Алисы - Z, для Боба - U).
3 шаг. Они обмениваются получившимися результатами и вычисляют значение формулы, подставляя вместо своего числа получившееся значение оппонента. Для Алисы это будет Z^3(mod B). И получившийся в результате этого действия ключ (он будет одинаковым для обоих) будет являться ключом подписи для обмена дальнейшими сообщениями.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Почитайте про ассиметричное шифрование

Если вкратце, то с помощью публичного ключа сообщение шифруется. А с помощью секретного расшифровывается. Ассиметричное шифрование решает проблему передачу ключа, когда надо передать так, чтобы его никто не мог украсть
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы