Что такое ssl на айфоне

Обновлено: 19.09.2024

Используя функцию SSL соединение, или Secure Sockets Layer, при отправке электронной почты со своего iPhone от Apple, уровень безопасности будет высок, в отличие от того, как если бы функция SSL шифрование не работала. SSL протокол, который зашифровывает Ваши письма и пароль, доступен на главных почтовых службах. Так что это хорошая идея, если эта функция протокола SSL будет доступна и на том сервисе, который Вы используете. iPhone не включает SSL сертификат по умолчанию. Вам нужно ознакомиться с его месторасположением в Вашем телефоне, чтобы Вы могли задействовать поддержку протокола SSL для своих почтовых аккаунтов.

Правильная настройка SSL или как найти SSL на iPhone.


Нажмите "Настройки" в главном окне экрана.

Прокрутите до надписи "Почта, контакты, календари" и нажмите.

Выберите один из Ваших аккаунтов электронной почты в "Аккаунты".

Прокрутите до "Продвинутый" и нажмите.

Что формирует мировой рынок SSL безопасности:

Comodo CA теперь Sectigo - это компания работающая с продуктами и услугами в областях от SSL до веб-безопасности.

- GeoTrust, это один из ведущих центров сертификации. Он предоставляет услуги для шифрования SSL, а также аутентификации веб-сайтов, цифровых подписей, подписи кода, защищенной электронной почты и корпоративных SSL-продуктов.

- RapidSSL, это еще один ведущий центр сертификации. Он обеспечивает шифрование на уровне защищенных сокетов (SSL). По заявлению центра, в плане безопасности веб-сайтов ему доверяют более 99% браузеров и клиентов во всем мире. RapidSSL специализирутся на быстрой выдаче недорогих и бесплатных SSL-сертификатов, а также групповых SSL-сертификатов.

- Symantec SSL / TLS, это сертификат, который по заявлению компании Symantec имеет 100%-ю распространенность в современных браузерах. И признанную в отрасли поддержку самого авторитетного в мире центра сертификации, ранее VeriSign.

- Thawte, это всемирный центр сертификации. Со слов Thawte, его цифровые сертификаты SSL и подписи кода используются во всем мире для защиты серверов, обеспечения шифрования данных, аутентификации пользователей, защиты конфиденциальности и обеспечения идентификации в Интернете посредством строгих процессов аутентификации и проверки.

Японская компания Sharp представит четыре новых телефона, парочка из которых будет работать с мобильными сетями нового поколения - 5G.

5 комментариев:

Првиет! Я бы всем рекомендовал использовать ssl в iphone!

Забота о безопасности телефона это важное дело! Спасибо большое за инструкцию по включению электронной почты с ssl на iphone. Сейчас буду пробовать разбираться с этими с настройками в телефоне. :)

Спасибо! Раньше видела опцию SSL на своем iPhone и iPad, но не знала какие она дает возможности и для чего вообще нужна. Теперь буду знать как с ней обходиться.

Тоже видел эту ssl в мобильнике. наконец то все про это понял. Спасибо, мотаю на ус и буду защитить свою конфиденциальность!

Хорошо, очень пригодятся такие знания по защите. Буду чайников, таких как я, учить следует ли отправлять электронную почту с айфона без шифрования SSL и как эта штука должна включаться.

В этой статье я кратко расскажу, что означает «безопасное соединение» между клиентом и сервером, что такое SSL-pinning, для чего он нужен и когда его использовать. Так же объясню от каких угроз мы защищаемся с его помощью.

Представим, что у нас есть сайт или мобильное приложение (оба подпадают под определение клиента). При обращении сайта или мобильного приложения к бекенду (сервер) безопасность соединения обеспечивается с помощью протокола SSL (Secure Socket Layer), а если быть точнее, TLS (Transport Layer Security). TLS ставит своей целью создание между двумя узлами сети защищённого от прослушивания и подмены информации канала связи, а также проверку того, что обмен данными происходит между именно теми узлами, т.е. обеспечение конфиденциальности, целостности и аутентификации. Под узлами можно понимать сервер и мобильное приложение, либо сервер и веб-браузер.

Изначально SSL был разработан компанией Netscape для своего одноименного браузера в середине 90-х. Позднее на основании SSL 3.0 был принят RFC-стандарт TLS 1.0. Рекомендованными для применения в 2019 году являются версии TLS не ниже 1.2 (актуальная версия на сегодня — 1.3). На странице в википедии можно посмотреть поддержку версии TLS у всех популярных браузеров.

В качестве удостоверяющего хост документа выступает сертификат стандарта X.509. Под сертификатом можно понимать файл, в котором содержится следующая информация:

  • Название
  • Публичный ключ
  • Серийный номер
  • Алгоритм сертификата
  • Цифровая подпись и др.

Сертификаты не существую сами по себе — их выпускают центры сертификации (Certificate Authority), в цепочке сертификатов самым первым является сертификат CA, его еще называют корневой. CA являются общеизвестными и ключи, которые они выпускают являются доверенными по умолчанию. Корневые сертификаты как правило “зашиваются” в операционную систему и обновляются при следующих обновлениях. Сертификаты выстраиваются в цепочку, можно так же назвать термин дерево: сертификаты первого уровня (выпущенные CA), так же могут выпускать сертификаты следующих уровней. В случае компрометации сертификата, он может быть отозван, и тогда автоматически отзываются все дочерние сертификаты.

Кажется, что TLS решает атаку MITM. Тем не менее, возможен вариант, когда между узлами окажется самоподписанный корневой сертификат злоумышленника и каким-то образом этот сертификат попадёт к нам на устройство. Например, если пользователь недостаточно технически образован и ему предлагается установить сертификат для пользования сетью Wi-Fi. После этого данные шифруются сертификатом злоумышленника (которые он легко расшифровывает) и мы не подозреваем о подмене. В данном случае злоумышленник выступает неким прокси-сервером между нашими узлами.

Если мы реализуем проверку сертификата на клиенте, то можем отловить ситуацию, когда сертификат между узлами неподлинный. Технически это выглядит следующим образом: при установлении соединения с хостом на клиенте проверяется, соответствует ли сертификат от сервера тому сертификату, о котором знает клиент. Если нет — соединение считается небезопасным и обмен данных с хостом прекращается. Помимо прослушивания трафика, SSL-pinning так же не раскрывает спецификацию запросов API, что может пригодиться при атаках как на сервер, так и на клиент.

По тому, какой сертификат проверяем:

  • Цепочка сертификатов — можно проверять данные каждого из сертификатов в цепочке.
  • Конечный сертификат — наиболее распространённый вариант на практике, проверяется сертификат самого нижнего уровня.
  • Корневой или промежуточный сертификат. Например, несколько наших хостов имеют один родительский сертификат, можем проверять только его вместо нескольких проверок.

По тому, какие данные из сертификата проверяем:

  • Фингерпринт. Это хэш от данных сертификата (можно выбрать, например из SHA-1, SHA-256). Фингерпринт видно в окне браузера при просмотре сертификата. Подход достаточно прост в реализации и обычно в SDK уже есть API по вычислению фингерпринта сертификата. Но к минусам такого подхода могу отнести то, что при истечении сертификата прежний фингерпринт становится невалидным, и его необходимо обновить на клиенте. Невалидным он становится, т.к. у нового сертификата как минимум будет новый приватный ключ.
  • Публичный ключ. Данный вид лишён недостатка о перевыпуске сертификата, т.к. если в вашем распоряжении имеется прежний сертификат (пара публичный-приватный ключ), то вы сможете выпустить новый сертификат с тем же публичным ключом даже у другого CA. После истечения текущего не придётся обновлять информацию на клиенте. К недостаткам можно отнести, во-первых, что публичный ключ извлекается чуть сложнее, чем фингерпринт, и во-вторых, сам по себе факт того, что ключ не будет меняется долгое время.
Фингерпринт виден в том же окне просмотра сертификата в Safari​
  • Хосты сторонних сервисов — сертификат может измениться без нашего ведома. Например, Google-аналитика.
  • Нет чувствительных данных — нет никакой угрозы, что данные будут получены третьей стороной. Например, любые открытые сервисы (текущее время, погода).

Раз уж мы обсудили SSL-pinning в контексте мобильных приложений, почему бы не сделать тоже самое с веб-сайтами? Ответ достаточно прост — браузер посещает большое количество сайтов, ровно как и каждый день появляется много новых, и это достаточно проблематично обладать информацией обо всех них. Мобильное приложение же, как правило, обращается к конечному числу доменов, информация о сертификатах хранится внутри него. В 99% случаев не нужно придумывать свои способы шифрования, TLS + SSL-pinning обеспечивают достаточный высокий уровень безопасности для передачи чувствительных данных по сети. Примеры приложений, где SSL-pinning является по-моему мнению обязательным — это мобильные приложения банков, другие приложения из финансового и страхового сектора. Для более подробного погружения в схему работы TLS советую данный ресурс.

Протокол безопасной передачи данных SSL (Secure Sockets Layer) помимо обеспечения безопасной передачи данных так же позволяет реализовать авторизацию клиентов при помощи клиентских SSL сертификатов. Данная статья является практическим руководством по реализации данного вида авторизации в мобильных приложениях на IOS и Android.

Процесс организации работы сервера обеспечивающего такой вид авторизации в статье не рассматривается, однако в конце приведены ссылки по данной тематике.

Процесс авторизации выглядит следующим образом. При переходе клиента в закрытую область сервер запрашивает у клиента сертификат, если проверка прошла успешно то клиент получает доступ к закрытому контенту в ином случае клиент может получить ошибку “No required SSL certificate was sent”.

Для организации подключения мы сгенирировали клиентский сертификат, а так же создали запрос на подписание сертификата в результате чего получили файл client.csr. Далее мы отправили данный файл поставщику услуг и получили наш подписанный клиентский сертификат необходимый для аутентификации на удаленном сервере.

Тестирование подключения может быть осуществлено при помощи утилиты curl.


openssl pkcs12 ­export ­in client.crt ­inkey client.key ­out client.p12

1. Реализуем IOS версию приложения


Производим извлечение при помощи функции SecPKCS12Import, незабываем указать пароль к серитификату.
Далее реализуем делегат canAuthenticateAgainstProtectionSpace, вызов данного делегата позволяет нам определить свойства сервера, а именно протокол, механизм авторизации. У нас реализация этого делегата будет простой, укажем, что обрабатываем любой способ аутентификации представленный сервером.


Обработаем возможные ошибки:


Теперь перейдем к реализации непосредственно механизма аутентификации. Реализуем делегат didRecieveAuthentificationChallenge:


Загружаем наш сертификат, извлекаем из него нужные нам данные, создаем NSURLCredential, передаем нужную информацию, сохраняем данные аутентификации только в контексте текущей сессии.

Ну и для полноты картины приведу код подготавливающий NSURLConnection:

Реализацию делегата didReceiveData приводить не буду.

2. Реализуем Android версию приложения

Начну сразу с кода:


Получаем экземпляр соответствующего KeyStore в нашем случае это (PKCS12), загружаем из ресурсов наш сертификат, вторым аргументом указываем пароль. Далее создаем экземпляр SSLSocketFactory, использую собственную реализацию SSLSocketFactory, позволяющую инициализировать SSL контекст с использованием нашего сертификата. Код фабрики приведен чуть ниже. Далее конфигурируем параметры подключения, регистрируем нашу фабрику, указываем порт на который будем посылать запрос, формируем соответсвующий POST и выполняем запрос.

Заключение.

Мы рассмотрели как производить авторизацию по SSL с использованием клиентского сертификата.

Эта проблема затрагивает как учетные записи POP3, так и IMAP. Однако пользователи, устройства которых работают под управлением Mac iOS 10.2x, чаще всего жалуются на эту проблему iOS.

Поскольку iPhone не может проверить идентификацию сервера является такой популярной темой среди пользователей, которые предпочитают продукты Apple, мы решили объяснить проблему и помочь вам решить ее.

Давайте начнем с того, почему эта проблема возникает в первую очередь.

Что iPhone не может проверить ошибку идентификации сервера?

Всякий раз, когда вы хотите использовать определенную службу электронной почты, ваш iPhone пытается подключиться к серверу этого поставщика электронной почты. Этот процесс включает в себя много данных, циркулирующих между вашим iPhone и сервером. Сервер читает данные вашего iPhone, проверяет и проверяет их. После завершения этого процесса другой набор данных отправляется обратно на ваш iPhone.

Этими данными могут манипулировать третьи лица (например, киберпреступники), и ваша конфиденциальная информация может быть легко раскрыта.

Поскольку подключение к серверу необходимо, но все еще представляет риск, серверы имеют встроенные сертификаты безопасности, которые могут считывать iPhone и другие устройства. Итак, как это работает?

Проще говоря, ваш iPhone будет запрашивать SSL-сертификат сервера при каждой попытке подключения к нему. Затем сервер ответит, отправив сертификат на ваш iPhone для проверки. Ваш iPhone по существу проверит, является ли сертификат надежным или нет. Он также проверит данные вашего аккаунта и посмотрит, все ли соответствует. Все это происходит в фоновом режиме.

В случае, если ваш iPhone определит, что срок действия сертификата истек, он не соответствует доменному имени или что он не был подписан компанией, пользующейся доверием, он выбросит его и разорвет соединение.

Как только соединение между сервером и вашим iPhone было разорвано, на экране отобразится ошибка «Идентифицировать сервер не удается проверить iPhone».

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

Эта ошибка чаще всего возникает, когда:

  1. Вы переключились на другой аккаунт.
  2. Вы создали новую учетную запись на вашем устройстве iPhone.
  3. Сервер изменил свой сертификат или срок действия сертификата истек.

Как вы можете решить эту проблему на вашем iPhone?

Есть несколько исправлений, которые могут решить эту проблему. Тем не менее, иногда разработчики на стороне сервера должны делать свое «волшебство» за кулисами, чтобы помочь пользователям подключиться. Мы рассмотрим то, что вы, как пользователь iPhone, можете сделать.

Создайте новую учетную запись iPhone на iPhone

Это все, что касается удаления почтовой учетной записи iPhone. Теперь пришло время создать и добавить новый. Следующие шаги покажут вам, как вы можете это сделать.

Поскольку вы уже столкнулись с ошибкой, это означает, что ваш телефон использует SSL с вашей учетной записью iPhone. Из-за этого вы должны быть осторожны при выборе портов для входящего и исходящего сервера.

Мы предлагаем использовать следующие безопасные порты:

Порт исходящего сервера для IMAP и POP: 465 (номер порта)

Порт входящего сервера для POP3: 995 (номер порта)

Этот метод обычно решает проблему.

Отключите SSL в вашем почтовом аккаунте iPhone

  1. Войдите в свое устройство iPhone.
  2. Перейдите в его меню настроек.
  3. Нажмите на почту.
  4. Выберите Аккаунты.
  5. Нажмите на свой адрес электронной почты, чтобы выбрать его.
  6. Снова нажмите на ярлык вашего аккаунта.
  7. Выберите Дополнительно.
  8. Найдите ползунок Использовать SSL и нажмите на него. Слайдер должен быть зеленым, прежде чем нажать.
  9. Нажмите на учетную запись, которая находится в правом верхнем углу экрана.
  10. Нажмите на Готово, чтобы закончить.

Добавление в доверенные сертификаты

Посмотрите на окно ошибки, которое вы получаете. Если вы заметили кнопку «Подробности», вы сможете вручную пометить этот сертификат как доверенный.

Для этого нажмите кнопку «Подробности» и выберите «Доверие».

Проверьте это и избавьтесь от этой ошибки

Может быть, у вас есть альтернативный метод, который может добиться цели? Поделитесь этим с сообществом TechJunkie в комментариях ниже.

Читайте также: