Сказал что-то о проверке подлинности HTTPS-полосной, взаимной аутентификации, пакет принцип захвата, анти-захват стратегия

HTTP (протокол передачи гипертекста, протокол передачи гипертекста) используется для передачи информации между веб - браузерами и веб - серверами на уровне приложений в TCP / IP. Упоминание здесь / IP - протокол TCP иерархия делится на четыре уровня: прикладной уровень, транспортный уровень, сетевой уровень, канального уровня ; иерархическое объект: Расслоение может быть разъединены, протокол динамической подстановка слой

Содержание отдельных слоев, включающих:

Уровень приложений : Активность связи (FTP, DNS, HTTP) при предоставлении услуги приложения к пользователю
транспортного уровня : сети передачи данных , соединяющую два компьютера (TCP, UDP)
Сетевой уровень : обработки пакетов данных , передаваемых по сети, как с помощью путь передачи передачи пакета на другой стороне (ф)
канальном : карты соответствующих аппаратных средств, драйверов и т.д.

Тем не менее, HTTP также имеет следующие существенные недостатки:

  1. Использование открытого текста связи, содержание может быть перехвачено
  2. Не проверять подлинность взаимодействующих сторон, он может столкнуться маскировкой
  3. Невозможно доказать целостность сообщения, так что, возможно, были подделаны

Таким образом, HTTPS будет дебют. HTTPS-S обозначает TLS или SSL, HTTP, на основе оригинала со слоем, используемым для шифрования данных, дешифрования, уровень безопасности аутентификации, то есть,

  • Аутентификации HTTP + + защита целостности шифруется = HTTPS

До знания, связанные с шифрованием: симметричное шифрование и асимметричное шифрование.

  1. Симметричное шифрование: шифрование и дешифрование данных, используя один и тот же ключ. Эта характеристика очень быстро шифрования, алгоритмы симметричного шифрования обычно являются AES;

  2. Асимметричное шифрование: шифрование и дешифрование используют разные ключи, и оба ключа формируются только уникальные спаривание, называемые открытые и закрытые ключи. Он должен быть расшифрован с помощью приватных данных с помощью открытого ключа, зашифрованный секретным ключом для расшифровки данных, зашифрованных с общественностью. В целом сохранили свои собственные частные блага, открытый ключ открытой для других (широкая публика не будет одна, но будет написано в сертификате), пусть другие берут после его открытый ключ для шифрования данных, отправляемых на свои собственные, так что только их собственные Он может расшифровать. Особенности этого метода шифрования медленно, большие накладные расходы CPU, общий алгоритм шифрования RSA асимметричной.

Сертификат CA знаний: сертификаты CA выпускаются CA (Certification Authority) цифровые сертификаты учреждений. Его содержание включает: информацию электронной визу органы, информацию публичного пользователя, открытый ключ, подпись и дату истечения срока действия. Сервер открытого ключа Здесь, подпись здесь означает: вычисляет дайджест сообщения информации , раскрываемой текст функции хэша хэша, а затем с помощью закрытого ключа сообщения CA дайджест зашифрован, шифртекст шифруется законченная подпись. А именно: сертификат подписи + + = публичной информации заявитель и эмитент . Клиент , так как операционная система на открытом ключе предварительных настроенных СА, он расшифровывает поддержку подписи (потому что закрытый ключ шифрование с помощью подписи ЦСА)

С этими приготовлениями после, так как вы посмотрите на то, как сделать можете как обеспечить HTTPS аутентификации.

HTTPS односторонняя аутентификация

Давайте посмотрим на процесс аутентификации однонаправленной:
Сказал что-то о проверке подлинности HTTPS-полосной, взаимной аутентификации, пакет принцип захвата, анти-захват стратегия

Как видно из рисунка, сервер имеет одну пару асимметричных ключей: открытый ключ и B_ b_ закрытый ключ. Подробная процедура выглядит следующим образом :
(1) клиент инициирует запрос HTTPS, передает информацию о версии протокола SSL к серверу.

(2) сервер для ЦС , чтобы подать заявление на получение сертификата ЦС в упомянутом выше, есть сертификат сервера открытого ключа и подпись . CA сертификат будет отправлен клиенту

(3) Клиент считывает сертификат открытого текста CA, используя тот же хэш хэш-функция вычисляется дайджест сообщения (хэш Цель: Verify предотвратить содержание от изменений), а затем операционную систему с открытым ключом СА для расшифровки подписи (в Подписано ЦС закрытого ключа шифрования), дайджест сообщения в сертификате сравнения. Если они соответствуют, то доказательство сертификат является доверенным, а затем удалить открытый ключ сервера

(4) Клиент генерирует случайное число (ключ F.), Просто ждать, пока открытый ключ сервера для шифрования B_ случайных чисел в зашифрованной форме, он отправляется на сервер.

(5) B_ сервера с их закрытым ключом для расшифровки зашифрованного для получения ключа F

(6) сервер и клиент использует ключ F в последующем процессе передачи сообщения. Различные до и асимметричное шифрование, шифрование здесь симметрично

HTTPS взаимная аутентификация

Двусторонний и односторонний Аутентификация основной принцип похож на одну сторону клиента аутентификации необходимо для проверки подлинности сервера, увеличивая аутентификацию сервера к клиенту аутентификации двухсторонним

Сказал что-то о проверке подлинности HTTPS-полосной, взаимной аутентификации, пакет принцип захвата, анти-захват стратегия

双向认证详细过程如下:

(1)客户端发起HTTPS请求,将SSL协议版本的信息发送给服务端。

(2)服务端去CA机构申请来一份CA证书,在前面提过,证书里面有服务端公钥和签名。将CA证书发送给客户端

(3)客户端读取CA证书的明文信息,采用相同的hash散列函数计算得到信息摘要(hash目的:验证防止内容被修改),然后用操作系统带的CA的公钥去解密签名(因为签名是用CA的私钥加密的),对比证书中的信息摘要。如果一致,则证明证书是可信的,然后取出了服务端公钥

(4)客户端发送自己的客户端证书给服务端,证书里面有客户端的公钥:C_公钥

(5)客户端发送支持的对称加密方案给服务端,供其选择

(6)服务端选择完加密方案后,用刚才得到的C_公钥去加密选好的加密方案

(7)客户端用自己的C_私钥去解密选好的加密方案,客户端生成一个随机数(密钥F),用刚才等到的服务端B_公钥去加密这个随机数形成密文,发送给服务端。

(8)服务端和客户端在后续通讯过程中就使用这个密钥F进行通信了。和之前的非对称加密不同,这里开始就是一种对称加密的方式

HTTPS基本思路总结

HTTPS在保证数据安全传输上使用对称加密和非对称加密相结合的方式来进行的,简单来说就是通过一次非对称加密算法进行了最终通信密钥的生成、确认和交换,然后在后续的通信过程中使用最终通信密钥进行对称加密通信。之所以不是全程非对称加密,是因为非对称加密的计算量大,影响通信效率。

抓包原理

HTTPS即使安全,也是能够被抓包的,常见的抓包工具有:Charles、fildder等。

Захват HTTPS обычно используется способ выступает в качестве посредника, клиента, замаскированный в качестве сервера на сервере под видом клиента. Проще говоря:

  • Запрос перехватывать HTTPS клиента, замаскированный в качестве посредника сервера клиентского назначения посылает запрос на HTTPS
  • Принимается назад конечные услуги, со своим собственным сертификатом, замаскированный как сервер-посредник передает данные контента клиенту.

Фигура с помощью следующей процедуры:

Сказал что-то о проверке подлинности HTTPS-полосной, взаимной аутентификации, пакет принцип захвата, анти-захват стратегия

Стратегия борьбы с захватом

SSL-прижав двумя способами: блокировка сертификата (Certificate Закрепление) и открытый ключ блокировки (Public Key Закрепление).

  • Сертификаты должны зафиксировать в коде клиента , построенного принимать только указанное доменное имя сертификата, не принимая операционную систему или браузер встроено все сертификаты , соответствующие CA корневого сертификата, санкционированных таким образом, чтобы защитить приложение и сервер общаются уникальность и связи между безопасностью, клиентом и сервером (например, шлюз API) может гарантировать абсолютную безопасность. Но есть действительный сертификат , подписанный выдачи сертификата, недостатком является необходимость сертификата обновления сертификата повторно встроен в приложение .
  • Блокировка извлеченного Сертификата открытого ключа и открытый ключ, встроенный в клиент, чтобы проверить правильность открытого ключа путем сравнения значения соединения с сервером. При создании ключа сертификата, ключ продления публичного сертификата до и после того, как может оставаться неизменными (то есть один и тот же ключ), так что проблема может быть предотвращена сертификат действителен, как правило, рекомендуется.

Прорыв захвата SSL-Закрепление

В обратных кругах, горы выше , чем горы. Идея заключается в следующем: когда встроенный сертификат или открытый ключ, часто доказали свою функцию контрастности, прямое управление этой функции возвращает результат проверки, не достаточно , чтобы сделать это. Так что будет прорыв SLL-Закрепление классическая операция: Модуль Xposed + justTrustme. Эта программа используется JustTrustMe модуля Экспоузда, что она делает это различным известным запрос HTTP сертификата хранилище API для проверки выполняется Крюк, независимо от того, является ли случай доверенного сертификата, чек результаты возвращаются в нормальное состояние, для того , чтобы добиться эффекта в обход сертификата проверки

рекомендация

отblog.51cto.com/14332859/2431483