V
V
Vladimir T.2019-03-29 06:59:06
API
Vladimir T., 2019-03-29 06:59:06

Why do public APIs use public key and secret?

I noticed that some services for authentication use the approach of giving users 2 keys instead of one: public key and secret. I can’t understand why this is necessary if, as a result, requests still go under the hood and are signed through a token, which is generated from the two previous keys. Why not throw out this extra step of generating a token, immediately generate it in the dashboard and use it? Or am I missing something?

Answer the question

In order to leave comments, you need to log in

2 answer(s)
S
Sergey Popov, 2019-03-29
@vachuahe

To answer this question, you need to understand what asymmetric encryption is .
Brief explanation. Asymmetric encryption is used to securely transfer data in a known insecure environment. Using exactly symmetric encryption algorithms, both parties must agree in advance which key to use, which is potentially insecure, because this key can be intercepted and a MITM attack can be carried out either by listening or forging packets.
The most commonly used Diffie-Hellman algorithm is the simplest one. Important! In its pure form, the implementation of this algorithm is vulnerable to several types of attacks, so modified versions of it are often used.

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

D
Dmitry Kazarmin, 2019-03-29
@fenix163

Read about asymmetric encryption
In short, a message is encrypted using a public key. And with the help of a secret, it is decrypted. Asymmetric encryption solves the problem of handing over the key when it needs to be handed over so that no one can steal it.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question