#алгоритм #ssl #шифрование #сертификат
В браузере все понятно, у него заранее есть список вшитых сертификатов CA, которыми он проверяет сертификат сервера... Но как происходит проверка в мобильных приложениях? Или, допустим, когда я отправляю запрос, допустим, через BurpSuite?
Ответы
Ответ 1
Общие принципы SSL (а точнее, инфраструктуры ключей) продолжают работать и в контексте мобильных приложений. Набор CA (или, по-русски, ЦС – центров сертификации): может быть размещен в ОС (чаще всего, т. к. он используется по умолчанию [обычно]). может поставляться с приложением (что не такая уж редкость, см. Firefox). может отсутствовать вовсе, если клиент заранее знает публичный ключ сервера сам, или может попросить пользователя проверить отпечаток ключа в интерфейсе (привет, SSH!), или просто плевать хотел на безопасность (и такое бывает! ¯\_(ツ)_/¯). Может использоваться несколько вариантов сразу. Например, Яндекс.Браузер использует гибрид: он рассчитывает на системное хранилище, но отпечатки (хэши) сертификатов ЦСов оттуда сравнивает с известными ему (за уточнение механизма спасибо Abyx). Их немного, поэтому зашить в бинарник не проблема. Таким образом ЯБ пытается предупреждать ситуации, в которых соединение пользователя компрометируется через сторонний ЦС, установленный в систему без его ведома. Так что, как видите, SSL довольно хорошо гнётся под разные ситуации. Но реально этим богатством редко пользуются. В подавляющем большинстве случаев сервер имеет ключ, заверенный известным ЦС, а клиент имеет только пачку известных ЦС в ОС. Сервер предоставляет доказательства, указывающие через известные ЦС на подлинность своего ключа. Так клиент понимает, что это тот самый сервер.Ответ 2
Если говорить про Android (он построен на ядре Linux), там есть папка с сертификатами /etc/ssl, в которой хранится список всех установленных сертификатов в системе. Мобильные приложения при установке защищенного соединения обращаются к этому списку.
Комментариев нет:
Отправить комментарий