1. Предыдущая встреча
Скоро наступит китайский Новый год, и бизнес-потребностей компании станет намного меньше.Нет, Ван Сяоэр и другие провели техническое совещание, чтобы подвести итоги того, что они могли сделать раньше.
Я видел, как Brother C составил список, одним из которых было обновление https на всем сайте.
Брат С сказал: https — это тенденция, но в настоящее время наш интерфейс по-прежнему остается http. Магазин приложений всегда требовал использования https.С точки зрения безопасности и аудита магазина приложений несколько лет назад нам пришлось перевести весь сайт на https. Кто-нибудь вызвался добровольцем?
Сяо Эр некоторое время думал об этом: позволь мне сделать это, брат С, как раз вовремя, чтобы понять https.
Брат С: Хорошо, Сяо Эр, тогда ты можешь изучить https, а затем поделиться им с нами, когда у тебя будет время.
Little Two: Хорошо, Брат С, это гарантированно будет сделано!
2. Тайно спрятать Чжан Санфа
Я слышал, что Сяо Эр хочет сделать https, и Чжан Саньпан по эксплуатации и обслуживанию подошел к Сяо Эр.
Чжан Саньпан: Маленький Эр, я слышал, ты хочешь использовать https?
Сяо Эр: Да, Сан-Толстяк, нам нужно перевести весь сайт на https. Вы знали это раньше?
Чжан Саньпан: Ха-ха, я действительно понимаю, что обновление https — хорошая идея.
Маленький Эр: Большой Брат Сан, это здорово. У тебя есть время рассказать мне об этом? Мне не нужно тратить время на поиск информации.
Чжан Саньпан: Хорошо, теперь у меня есть время рассказать вам об этом и просто просмотреть.
Сяо Эр: Спасибо, брат Сан-Толстяк, я приглашу вас сегодня на ужин.
3. Симметричного шифрования недостаточно
Сан Фат: Маленький Эр, предположим, вы отправляете личное сообщение своей девушке, используя протокол http. Есть ли риск утечки?
Сяо 2: Конечно, протокол http является передачей открытого текста, и любая третья сторона в процессе передачи данных может перехватить и изменить открытый текст.
Сан Фатти слегка улыбнулся: Да, мы нарисуем картинку, чтобы показать это, вы будете знать, как неловко информация была подделана, ха-ха.
Маленький Два: А? Действительно, было бы обидно. Моя девушка меня не убивает...
Три жирных точки: на самом деле, вы можете избежать этого, используя https.
Сан Фат: Маленький Эр, ты понимаешь симметричное шифрование и асимметричное шифрование?
Маленький Два: Знай что-нибудь. Симметричное шифрование означает, что ключи шифрования и дешифрования совпадают. Асимметричное шифрование — это содержимое, зашифрованное открытым ключом, которое должно быть расшифровано закрытым ключом, и содержимое, зашифрованное закрытым ключом, которое должно быть расшифровано открытым ключом.
Сан Фат: Маленький Эр много знает, на самом деле https использует характеристики симметричного шифрования и асимметричного шифрования. Но вы должны отметить, что симметричное шифрование примерно в 100 раз быстрее, чем асимметричное шифрование.
Сяо Эр: Я понимаю трех толстых братьев, тогда вы можете рассказать мне принцип https на примере прямо сейчас.
Сан Фатти: Хорошо, давайте сейчас возьмем пример. Симметричное шифрование работает быстро, поэтому для передачи данных с девушкой лучше использовать симметричное шифрование.
Сяо Эр: Хорошо, тогда я и моя девушка сначала договоримся о секретном ключе?
Сан Фат: Да, давайте нарисуем еще один рисунок, чтобы показать ваш процесс передачи данных.
Сяо Эр: Да, толстый брат, чтобы другие не могли перехватить мою информацию.
Три Толстяка: Да. А поскольку скорость симметричного шифрования и дешифрования очень высока, влияние на скорость передачи данных минимально. Но как вы общаетесь и договариваетесь о секретном ключе со своей девушкой?
Сяо Эр: Это непросто, я могу просто рассказать ему онлайн.
Сан Фатти: Ха-ха, нет. Что делать, если ваш секретный ключ, передаваемый в открытом виде по сети, был перехвачен?
Маленький Два: А? Действительно, другие могут подделать мою информацию после перехвата секретного ключа.
Сан Фат: В настоящее время нам необходимо использовать наше асимметричное шифрование для согласования вашего симметричного ключа шифрования.
4. Асимметричное шифрование решает проблемы
Сан Фат: Сяомей генерирует свой собственный открытый ключ и закрытый ключ. Перед общением она может сообщить вам свой открытый ключ. Поскольку этот открытый ключ является открытым, его можно свободно передавать по сети.
Сяо Эр: Итак, я понимаю брата С. После того, как я получу открытый ключ Xiaomei, я использую открытый ключ Xiaomei для асимметричного шифрования симметричного зашифрованного пароля и отправки его в Xiaomei. После того, как Сяомей расшифровала его с помощью своего закрытого ключа, она получила симметричный зашифрованный пароль, который я сгенерировал. Да или нет?
Три Толстяка: Да, это так. Но головная боль все еще остается, как убедиться, что вы получаете открытый ключ Xiaomei? Предположим, что посредник перехватил и подделал его для вас?
Little Two: Хм... это действительно проблема. Посредник отправляет мне свой открытый ключ, так что я использую открытый ключ посредника для шифрования нашего симметрично зашифрованного пароля, а затем посредник использует свой закрытый ключ для расшифровки нашего симметрично зашифрованного пароля. В это время посредник перехватил открытый ключ Сяомея, а затем зашифровал наш симметричный зашифрованный пароль с помощью открытого ключа Сяомей и отправил его Сяомею... Это ужасно, наш симметричный ключ шифрования был украден вот так.
Санпанг: На самом деле причина, по которой инструмент захвата пакетов charles может перехватывать https-пакеты, заключается в использовании упомянутого вами принципа, о котором мы поговорим позже. Теперь возникает вопрос, как вы гарантируете, что открытый ключ, который вы получаете, принадлежит Сяомею.
Маленький Два: О, это действительно головная боль...
Сан Панг: Вы же знаете, что у нас обычно есть нотариальная контора? Эта нотариальная контора - заслуживающая доверия структура, и все нотариальное заверение у него вызывает доверие.
Сяо Эр: Я знаю, я читал новости несколько дней назад, что старушка нотариально заверила пакет недвижимости в имперской столице парню, который не был кровным родственником.
Саньпан: Тогда подумайте об этом, если открытый ключ Сяомея нотариально заверен, может ли это доказать, что этот открытый ключ принадлежит Сяомею?
Little Two: Конечно, я могу это доказать. Есть ли в сети такая нотариальная контора?
Сан Панг: Такая нотариальная контора действительно есть, назовем нотариальную контору в сети УЦ. Мы должны восхищаться предшественниками, они заранее сохранили несколько доверенных сертификатов ЦС на наших компьютерах, а сертификаты включают информацию ЦС и открытый ключ ЦС. Эти сертификаты устанавливаются до тех пор, пока система установлена на вашем компьютере. Подойди, посмотри на сертификат, установленный по умолчанию в моем компьютере.
Сяо Эр: О, я понимаю, это означает, что эти сертификаты ЦС по умолчанию абсолютно заслуживают доверия.
Сан-Фатти: Да, это то, что это значит. Следовательно, до тех пор, пока ЦС также выдает сертификат Сяомей, чтобы доказать, что она является Сяомей. Сертификат, выданный CA для Xiaomei, содержит личную информацию Xiaomei и открытый ключ Xiaomei. В то же время ЦС также выдаст закрытый ключ Xiaomei.
Вы сначала представьте Xiaomei как Baidu, давайте сначала посмотрим на сертификат, выданный CA для Baidu.
Сяо Эр: Другими словами, пока сертификат, выданный ЦС для Сяомей, может быть безопасно передан мне, все в порядке.
Сан Фатти: Да, теперь проблема изменилась. Как можно безопасно передать вам сертификат Xiaomei? На самом деле сертификат, выданный CA для Xiaomei, содержит [информацию Xiaomei + открытый ключ] и цифровую подпись. Содержание цифровой подписи: хеш-значение [информация Xiaomi + открытый ключ], зашифрованное с помощью закрытого ключа ЦС.
Маленький Два: О, я, кажется, понимаю. Сертификат ЦС содержит открытый ключ ЦС и некоторую информацию о ЦС, а сертификат ЦС по умолчанию хранится на моем компьютере, поэтому я могу использовать открытый ключ ЦС для операций расшифровки, чтобы проверить правильность сертификата Xiaomei.
Три Толстяка: Верно. Мы можем использовать открытый ключ ЦС на вашем компьютере для расшифровки цифровой подписи в сертификате Xiaomei, чтобы получить хеш-значение подписи. Затем вы используете тот же хеш-алгоритм для вычисления хеш-функции [информация Xiaomi + открытый ключ]. Если хеш-значение подписи в сертификате Сяомей соответствует хэш-значению, рассчитанному вами, это означает, что сертификат действительно принадлежит Сяомей, в противном случае это не сертификат Сяомей.
Маленький Эр: Брат Сан, я понимаю. https действительно проблематичен, но он защищает нашу конфиденциальность.
Сан-Фатти: Да, если есть убыток, будет и выигрыш!
Маленькая Двойка: Мммм. Теперь я безопасно получаю открытый ключ Xiaomei через сертификат Xiaomei. Затем я случайным образом генерирую здесь симметричный ключ шифрования.После того, как этот симметричный ключ шифрования будет зашифрован открытым ключом Xiaomei, его можно безопасно передать в Xiaomei.
Саньпан: Да, Сяомей расшифровывает его своим закрытым ключом и получает пароль симметричного шифрования, о котором вы договорились. В будущем вы можете использовать симметричное шифрование для передачи данных и тайно отправлять их, ха-ха~
Сяо Эр: Брат Сан Фатти действительно потрясающий.С этого момента мне не нужно беспокоиться о том, что я буду болтать со своей девушкой и быть обманутым.
Три Толстяка: Ха-ха. Вы считаете себя браузером, а Xiaomei сервером. Это весь процесс передачи https.
Сяо Эр: Понятно, позвольте мне нарисовать запущенный процесс https между браузером и сервером.
Сан Фатти: Да, да, Сяо Эр очень силен, в основном это процесс.
Сяо Эр: Нет, нет, я хотел бы поблагодарить трех толстых братьев за его совет, ха-ха.
5. Принцип захвата HTTPS-пакетов Чарльзом
Санпанг: Малыш Эр, мы знаем, что инструмент захвата пакетов charles может перехватывать https-пакеты. Вы знаете, как это работает?Сяо Эр: Я действительно не знаю. Само собой разумеется, https — абсолютно безопасный протокол, и charles не будет сканировать контент.
Три жирных: Вы помните, что при использовании charles для перехвата https-пакетов вам необходимо установить сертификат charles на свой телефон?и доверять сертификату?
Little Two: Да, да, есть этот этап операции.
Три толстяка: это шаг, чтобы заставить Чарльза захватить ваш https-пакет. Я покажу вам блок-схему, и вы поймете.
Сяо Эр: Оказывается, дело обстоит именно так, разве это не проблема, о которой я только что упомянул. Значит, https не является безопасным протоколом?
Три Толстяка: Нет. Поскольку вы устанавливаете и доверяете сертификату charles, это ваша собственная активная операция, или можно сказать, что это результат вашей собственной активной утечки. Если вы не доверяете сертификату charles, то данные не будут переданы и соединение будет прервано напрямую. Таким образом, https по-прежнему является безопасным протоколом.
Сяо Эр: Понятно, это правда, спасибо Сан Фатти.
Happy Done
Принцип https понятен, и, естественно, последует следующее.
Сяо Эр перечислил, что делать дальше: 1. Обратиться в УЦ (нотариальную контору) за свидетельством собственного сайта; 2. Измените http-ссылки статических ресурсов в коде на https-ссылки; 3. Измените ссылку http в ajax на ссылку https; 4. Развернуть сертификат на nginx; 5. Самопроверка завершена.
Согласно этому списку, Сяо Эр успешно выполнил шаг за шагом.
В конце концов, запуск https завершен, наслаждайтесь послеполуденным солнцем, счастливо сделано~