Встречается на собеседованиях • сегодня
Что такое Handshake
Handshake (рукопожатие) — процесс установки соединения между клиентом и сервером перед началом безопасной передачи данных. В Java чаще всего встречается в контексте SSL/TLS для HTTPS или защищённых сокетов.
Основные этапы SSL/TLS handshake:
- Клиент отправляет
ClientHelloс поддерживаемыми алгоритмами. - Сервер отвечает
ServerHello, выбирая алгоритмы, и отправляет свой сертификат. - Клиент проверяет сертификат, генерирует premaster-secret и шифрует его открытым ключом сервера.
- Сервер расшифровывает premaster-secret своим приватным ключом.
- Обе стороны генерируют общие сессионные ключи для шифрования.
Пример с SSL-сокетом в Java:
java
SSLContext sslContext = SSLContext.getInstance("TLS");
sslContext.init(null, null, null); // Использует JVM truststore
SSLSocketFactory factory = sslContext.getSocketFactory();
SSLSocket socket = (SSLSocket) factory.createSocket("example.com", 443);
socket.startHandshake(); // Явный вызов handshakeHandshake критичен для безопасности — если проверка сертификата не пройдёт (например, самоподписанный или просроченный), соединение прервётся с SSLHandshakeException.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы