С сертификатами iOS pu sh почему сертификат SSL позволяет Apple знать, что это ваш сервер, с которым они соединяются? - PullRequest
0 голосов
/ 13 апреля 2020

Я читаю эту статью на iOS pu sh сертификатах, и я запутался в этом абзаце:

Your backend sends notifications through Apple's servers to your application. To ensure that unwanted parties are not sending notifications to your application, Apple needs to know that only your servers can connect with theirs. Apple therefore requires you to create an SSL certificate to be able to send push notifications.

Мой Понимание SSL-сертификатов заключается в том, что если у сервера есть один, он может зашифровать данные, которые он отправляет на устройство. Но здесь сказано Apple needs to know that only your servers can connect with theirs. Я не понимаю, как наличие SSL-сертификата гарантирует это. У кого-нибудь есть понимание?

1 Ответ

1 голос
/ 14 апреля 2020

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

Чтобы включить SSL на веб-сервере, вам необходимо иметь сертификат для проверки личности вашего сервера, и это стало известно как «сертификат SSL». Msgstr ".

Хотя это не часто используется в Интернете, в SSL / TLS обе стороны могут предоставить сертификат для взаимной аутентификации.

Обычно у вас есть сертификат x.509 . Это касается службы уведомлений pu sh.

Сертификат x.509 содержит некоторую информацию, включая личность владельца сертификата, его закрытый ключ и подпись от доверенной стороны, которую можно использовать для проверки информации.

Для уведомлений pu sh разработчик создает запрос сертификата и отправляет его в Apple, который подписывает своим закрытым ключом. В этом случае Apple является доверенной стороной.

Когда этот сертификат впоследствии представляется на сервер Apple, они могут проверить эту подпись, используя свой ключ publi c, чтобы подтвердить личность подключающейся стороны.

Вы зашифровали сообщение своим закрытым ключом (Apple может расшифровать его с помощью ключа publi c, включенного в сертификат).

Это означает, что, пока разработчик хранит свой закрытый ключ в безопасности (именно поэтому вы не будете напрямую подключаться к сервису pu sh из своего приложения, например), тогда Apple сможет будьте уверены в подлинности сервера, устанавливающего соединение.

Если кто-то пытается выдать себя за ваш сервер, то, пока вы храните свой личный ключ в безопасности, он не сможет должным образом зашифровать данные. Если они используют поддельный сертификат, который использует пару открытых / закрытых ключей, то подпись на сертификате будет недействительной, и Apple отклонит ее.

...