предисловие
Продолжение интервью TCP/IP последнего друга, в основном моменты интервью, связанные с https, см. ниже.
Следите за официальной учетной записью, общайтесь друг с другом и ищите в WeChat: Sneak forward
Интервьюер: Что такое процесс аутентификации и шифрования HTTPS и как он гарантирует, что контент не будет подделан?
- Друзья: 1. HTTPS основан на протоколе tcp, клиент сначала инициирует соединение с сервером.
- Друг: 2, то сервер вернет клиенту свой сертификат, который включает в себя открытый ключ S.pub, орган, выдавший сертификат, срок действия и другую информацию.
- Друг: 3. Полученный сертификат можно проверить встроенным корневым сертификатом браузера (в т.ч. C.pub)
- Друг: 4. Клиент генерирует случайный симметричный ключ шифрования Z, шифрует его открытым ключом сервера S.pub и отправляет на сервер.
- Друг: 5. Клиент и сервер используют симметричный ключ Z для шифрования данных для HTTP-связи.
Интервьюер: Как сертификат гарантирует, что выданный сертификат безопасен и эффективен?
- Друзья: 1- Сервер заранее сгенерирует асимметричный ключ шифрования, а закрытый ключ S.pri будет храниться у себя, а открытый ключ S.pub будет отправлен в агентство CA для аутентификации подписи.
- Друг: 2-CA также заранее сгенерирует асимметричный ключ шифрования, а его закрытый ключ C.pri используется для подписи открытого ключа сервера S.pub для генерации сертификата CA.
- Друг: Агентство 3-CA вернет серверу сертификат CA, сгенерированный подписью, то есть сертификат, который сервер дал клиенту только что
- Друг: 4- Поскольку ЦС (центр сертификации) является более авторитетным, многие браузеры будут иметь встроенный сертификат, содержащий его открытый ключ (C.pub), который называется корневым сертификатом. Затем вы можете использовать корневой сертификат для проверки легитимности выданного им сертификата.
Интервьюер: Что, если корневой сертификат будет подделан в бесконечном гнезде кукол?
- Друг: Нет решения, для этого требуется, чтобы корневой сертификат ЦС был точным.Это будет нормально без ручного принудительного изменения локального корневого сертификата, потому что сертификат, который не был аутентифицирован исходным корневым сертификатом, не может быть автоматически добавлен в корень сертификат.
Интервьюер: Вы говорите слишком быстро, нарисуйте картинку ниже, чтобы увидеть
- Друзья: процесс шифрования https
- Друг: Процесс подписания и аутентификации сертификата сервера агентством ЦС выглядит следующим образом.
Интервьюер: Ранее вы упомянули, что агентство ЦС будет использовать ключ для подписи, подписания и шифрования открытого ключа сервера, как вы это понимаете?
- Друг: При использовании алгоритма асимметричного шифрования подпись используется для представления процесса шифрования с использованием закрытого ключа.
- Друг: Если вы шифруете данные с помощью открытого ключа, это шифрование
- Друг: И наоборот, зашифруйте данные с помощью закрытого ключа, который называется подписью.
Интервьюер: Что такое сертификат ЦС?
- Друг: Сертификат ЦС должен гарантировать, что открытый ключ сервера точен и не был изменен.
- Друг: сертификат обычно содержит следующее содержимое: (1) открытый ключ сервера; (2) цифровая подпись издателя сертификата (CA); (3) алгоритм подписи, используемый сертификатом; (4) орган, выдавший сертификат. , срок действия, информация о владельце и другая информация
Интервьюер: Вы упомянули, что HTTPS использует алгоритмы шифрования, какие типы алгоритмов шифрования существуют?
- Друзья: Алгоритмы шифрования делятся на три категории: одностороннее шифрование, алгоритм симметричного шифрования и алгоритм асимметричного шифрования.
Интервьюер: В чем разница между симметричным шифрованием и асимметричным шифрованием?
- Друзья: при симметричном шифровании для шифрования и дешифрования используется один и тот же ключ, при асимметричном шифровании — два ключа: шифрование с открытым ключом требует расшифровки с закрытым ключом, а шифрование с закрытым ключом требует расшифровки с открытым ключом. Не удается зашифровать закрытый ключ, расшифровать закрытый ключ
Интервьюер: Какие алгоритмы относятся к MD5, SHA, Base64 и RSA, симметричные или асимметричные?
- Друзья: MD5 и SHA, называемые дайджест-алгоритмами, можно отнести к алгоритмам одностороннего шифрования.Рассчитанная дайджест-информация может быть необратимо восстановлена до исходных данных.
- Друг: RSA — это алгоритм асимметричного шифрования.
- Друг: Base64 — это не алгоритм шифрования, его чаще называют методом кодирования данных
Интервьюер: Какие клиентские инструменты HTTP вы использовали?
- Друзья: CloseableHttpClient от apache, httpClient от jdk9, а также лента и притворяться в весенней облачной системе.
Интервьюер: Вы когда-нибудь сталкивались с проблемой использования https-сертификата, если да, то в чем проблема?
- Друг: Конечно, когда я использовал apache-httpClient для загрузки пользовательского сертификата (без сертификации ЦС), тестовый сервер сообщил, что сертификату нельзя доверять, но локальная работа прошла нормально.
- Друг: Причина в том, что сертификат генерируется локально, и он был добавлен в корневой сертификат по умолчанию в то время, и каталог корневого сертификата (/lib/security/cacerts) тестового сервера jre не имеет этого сертификата, и сертификат, размещенный под ресурсом проекта, также не может вступить в силу
Интервьюер: О, так как вы ее решили?
- Друг: Три решения. 1- Перепишите TrustManager, безоговорочно доверяйте сертификату; 2- Добавьте сертификат в корневой каталог сертификатов jre; 3- Пройдите сертификацию CA
Интервьюер: Вы понимаете захват сетевых пакетов данных?
- Друзья: в системе Linux вы можете использовать команду tcpdump для захвата пакетов данных запроса tcp и вывода захваченных данных в файл; затем вы можете использовать программное обеспечение wireshark в окне для загрузки файла данных tcp, который может предоставить анализ интерфейса
Интервьюер: Неплохо, тогда давайте сменим тему и поговорим о делах mysql....
- Друг: Да, я тоже немного разбираюсь в некоторых делах...