Встречается на собеседованиях • сегодня

Каким сертификатом клиент шифрует данные, которые будет отправлять на сервер

Клиент шифрует данные с помощью публичного сертификата сервера, который он получает в процессе TLS-рукопожатия. Этот сертификат содержит открытый ключ сервера, и только сервер, владеющий соответствующим приватным ключом, может расшифровать данные.

Пример получения сертификата в Java:

java
// Получение сертификата из SSL-сессии
SSLSession session = ((SSLSocket)socket).getSession();
Certificate[] certs = session.getPeerCertificates();
X509Certificate serverCert = (X509Certificate)certs[0];
PublicKey publicKey = serverCert.getPublicKey();

Нюансы:

  • Клиент должен проверить валидность сертификата (срок действия, цепочку доверия, CN/SAN).
  • В асимметричном шифровании (RSA, ECC) используется публичный ключ сертификата, но на практике чаще применяется гибридное шифрование (например, TLS с обменом симметричным ключом).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы