Использование единого сертификата для всех пользователей

#android #certificate

#Android #сертификат

Вопрос:

Я подумываю об использовании центра сертификации для аутентификации через https с моим приложением на моем веб-сервере.

Мой вопрос: насколько легко хакеру было бы украсть этот сертификат с телефона?

Сценарий таков: каждый пользователь моего приложения использует один и тот же сертификат, который поставляется в комплекте с приложением, кто-то извлекает его из телефона (каким-то образом?), размещает в Интернете, и теперь веб-сервер подвергается ddos-атаке. Затем мне приходится аннулировать сертификат, но тогда я аннулирую всех своих пользователей.

Насколько сложно хакеру будет это сделать? Если это просто, то, возможно, вообще не стоит заводить сертификат.

Комментарии:

1. Я бы даже не назвал это взломом…

Ответ №1:

Я бы сказал, тривиально извлечь его из приложения. Существует две части: сертификат (который по сути является открытым ключом) и секретный ключ.

Для HTTPS сертификат представлен в формате clear on the wire и используется для установления зашифрованного сеанса.

Но это не тот сертификат, о котором вы беспокоитесь — он общедоступен и должен быть — это другая половина, секретный ключ. Для работы HTTPS вам необходимо выполнить часть начальной последовательности установки с секретным ключом.

Важнейшая часть сертификата и секретного ключа одинаковы. Набор байтов, известный как модуль. Возьмите это из wire (поскольку оно там будет), найдите в изображении вашего приложения тот же модуль, и ваш хакер получит секретную часть поблизости и сможет подделывать сколько душе угодно.

Плохая идея, на самом деле.