Мобильные устройства Apple в корпоративном секторе. Профили конфигурации

    Первое, что приходит в голову при мысли о мобильном оборудовании для сотрудника крупной компании – это ноутбук типа HP EliteBook и смартфон BlackBerry. Подавляющее большинство считает, что MacBook очень далек от корпоративных стандартов, и подходит только для дизайнеров, инди-разработчиков и продвинутых домохозяек. iPhone считается стильным гаджетом для написания твиттов и фотографирования «луков» для модного Инстаграма.

    ruVPN

    Сейчас я попытаюсь развеять подобные стереотипы и рассказать, на что способны мобильные устройства знаменитой компании из Купертино.

    Начну с мобильных устройств на базе Apple iOS. Речь пойдет о версиях 3.0 и выше, на которых в настоящий момент работают следующие устройства:
    • iPhone 3G, 3Gs, 4, 4s, 5
    • iPad 2, 3, 4
    • iPod touch, поколения от 2 до 5
    • iPad mini

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

    Нет смысла перепечатывать официальное руководство по работе с профилями. Я лишь остановлюсь на наиболее интересных возможностях.
    Прежде всего, конфигурационный профиль – это обычный XML. Его можно подписать цифровым сертификатом и/или зашифровать. При получении подписанного профиля устройство проверяет цифровой сертификат подписи и отображает статус.
    Signed profile
    При получении зашифрованного профиля ключ для расшифровки должен находиться на устройстве.

    Профили могут содержать следующие данные:
    • Ограничение функций мобильного устройства
    • Настройки подключения к сетям Wi-Fi
    • Параметры доступа к VPN
    • Настройки почтовых серверов (Exchange, POP3, IMAP, SMTP)
    • Параметры доступа к LDAP каталогу (для глобальных адресных книг)
    • Параметры доступа к календарю CalDAV
    • Цифровые сертификаты
    • Запросы на автоматическую ротацию сертификатов по протоколу SCEP (в том числе для вышеперечисленных служб)


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

    • Запретить доступ к устройству без пароля, параметр forcePIN
    • Запретить использование одного и того же пароля все время, параметр maxPINAgeInDays
    • Установить длину пароля, параметр minLength
    • Запретить использовать один и тот же пароль при смене пароля, параметр pinHistory
    • Запретить пароль, состоящий из одних цифр (хотя это уже издевательство над пользователем), параметр requireAlphanumeric
    • Запретить устанавливать приложения из AppStore, параметр allowAppInstallation
    • Запретить Siri, параметр allowAssistant
    • Запретить использование камеры в устройстве, параметр allowCamera
    • Запретить контент для взрослых, параметр allowExplicitContent
    • Закрыть доступ в Game Center, параметр allowGameCenter
    • Запретить создание снимков экрана, параметр allowScreenShot
    • Закрыть доступ на YouTube (!), параметр allowYouTube
    • Закрыть доступ к iTunes, параметр allowiTunes
    • Запретить использование браузера Safari, параметр allowSafari
    • Запретить использование неизвестных сертификатов, параметр allowUntrusted-TLSPrompt
    • Запретить установку профилей без вмешательства пользователя, параметр allowUIConfiguration-ProfileInstallation

    Как видно, возможностей привести мобильное устройство в соответствие с требованиями службы безопасности предприятия достаточно много. Не хватает лишь временных диапазонов действия тех или иных ограничений, например, запрет YouTube только в рабочие часы. :-)

    Параметры доступа к Wi-Fi, VPN, почте, LDAP и т.п. достаточно однотипны. Хочется отметить, что все они могут включать авторизацию по сертификатам. Очевидно, что для авторизации по сертификату устройство должно содержать пару ключей: публичный ключ и приватный ключ. Приватный ключ передать в профиле нельзя. Необходима инфраструктура для поддержки протокола ротации сертификатов SCEP. При этом генерация приватного ключа происходит на мобильном устройстве, далее публичный ключ передается в центр сертификации в составе запроса на сертификат, после подписи и формирования сертификата, готовый сертификат передается на устройство и устанавливается в локальном хранилище. SCEP запрос имеет уникальный PayloadUUID, который можно указывать в PayloadCertificate-UUID других настроек. Таким способом полученные сертификаты связываются с настройками Wi-Fi, VPN, почты, LDAP и так далее.

    Публичные сертификаты корневых и издающих центров могут включаться в профиль. Установка корневого сертификата предприятия позволяет посещать внутренние https ресурсы без выдачи предупреждающих сообщений о недостоверном сертификате. Это распространяется на почтовые службы, VPN шлюз, Wi-Fi точки – на все, что использует корпоративные сертификаты в процессе авторизации.

    При удалении профиля так же удаляются все прописанные в нем службы и настройки. Например, если профиль содержал доступ к почтовому серверу предприятия, то после удаления профиля, будет удален почтовый ящик на устройстве, сотрудник не сможет принимать новую почту или читать уже полученную. Остальные почтовые ящики, например личная почта на Gmail, будут доступны, как и прежде.

    Профиль можно защитить PIN-кодом от удаления, параметр HasRemovalPasscode; можно вообще запретить удаление, параметр PayloadRemoval-Disallowed. В последнем случае профиль можно будет удалить, только полностью сбросив все настройки устройства, при этом все содержимое устройства удаляется. Подобные настройки хорошо подходят для компаний со строгими требованиями в области информационной безопасности.
    Есть возможность задать период или дату, после которой профиль будет автоматически удален, параметры DurationUntilRemoval и RemovalDate. Это хорошо подходит для временных сотрудников или консультантов компании.

    Профиль можно загрузить на устройство несколькими способами:

    1. Wired. Устройство подключается по USB к компьютеру с запущенной программой iPhone Configuration Utility, выбирается необходимый профиль конфигурации и загружается на устройство.
    2. Direct. Открывается ссылка с файлом профиля (.mobileconfig) в браузере Safari и подтверждается установка профиля.
    3. Over-the-Air. Открывается страница загрузки профиля в браузере Safari, затем устанавливается первичный профиль с генерацией промежуточного сертификата для шифрования основного профиля. Содержимое профиля зашифровано.

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

    Попробую описать загрузку профиля третьим способом, Over-the-Air.

    Первая фаза – доставка URL с адресом загрузки профиля на мобильное устройство. Это может быть ссылка в почтовом сообщении, в сообщении СМС, на специальной веб-странице. Желательно размещать ссылку на https ресурсе и защищать содержимое от изменения, например технологией secure_link сервера nginx.
    Первый профиль содержит запрос о параметрах пользовательского устройства.
    Содержимое XML
    Выглядит он примерно так:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
       <dict>
          <key>PayloadContent</key>
          <dict>
             <key>URL</key>
             <string>https://ruvpn.net/profile/qefdJW98Vx9YFyyzs4C2F/1369640562</string>
             <key>DeviceAttributes</key>
             <array>
                <string>UDID</string>
                <string>IMEI</string>
                <string>ICCID</string>
                <string>VERSION</string>
                <string>PRODUCT</string>
                <string>DEVICE_NAME</string>
                <string>MAC_ADDRESS_EN0</string>
             </array>
             <key>Challenge</key>
             <string>Pa$$word</string>
          </dict>
          <key>PayloadOrganization</key>
          <string>Infoss AS</string>
          <key>PayloadDisplayName</key>
          <string>VPN configuration</string>
          <key>PayloadVersion</key>
          <integer>1</integer>
          <key>PayloadUUID</key>
          <string>fdb37dd45-b5bb-4d8c-daf3-e908683420c9</string>
          <key>PayloadIdentifier</key>
          <string>no.infoss.mobileconfig.ipsec</string>
          <key>PayloadDescription</key>
          <string>Please accept this profile</string>
          <key>PayloadType</key>
          <string>Profile Service</string>
          <key>RemovalDate</key>
          <date>2013-05-27T00:00:00Z</date>
       </dict>
    </plist>
    

    Параметр Challenge служит идентификатором транзакции для сервера профилей.

    Файлы с расширением .mobileconfig распознаются только в Safari, поэтому ссылку необходимо открывать именно в нем.

    Получив профиль, устройство запрашивает пользователя разрешение на установку. Если в настройках безопасности включена разблокировка экрана по PIN-коду, то будет запрошен PIN-код. Затем на сервер профилей будет передана информация об устройстве.

    SCEP фаза 1

    Пример ответа от устройства в виде XML
    Вот примерный ответ от iPad:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
            <key>PRODUCT</key>
            <string>iPad2,5</string>
            <key>UDID</key>
            <string>1cfc707bbde274a4643f93341fca784ba0ec898c</string>
            <key>VERSION</key>
            <string>10B329</string>
    </dict>
    </plist>
    

    Ответ подписан встроенным сертификатом устройства Apple. Сервер профилей должен обязательно проверять подпись на действительность.

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

    SCEP фаза 2

    Пример XML для фазы 2
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
       <dict>
          <key>PayloadVersion</key>
          <integer>1</integer>
          <key>PayloadUUID</key>
          <string>Ignored</string>
          <key>PayloadType</key>
          <string>Configuration</string>
          <key>PayloadIdentifier</key>
          <string>Ignored</string>
          <key>PayloadContent</key>
          <array>
             <dict>
                <key>PayloadContent</key>
                <dict>
                   <key>URL</key>
                   <string>https://scep.infoss.no/enroll/zYu47Jr45XDtnv0b1Eg/1369640566</string>
                   <key>Name</key>
                   <string>ruVPN CA</string>
                   <key>Subject</key>
                   <array>
                      <array>
                         <array>
                            <string>CN</string>
                            <string>Encryption</string>
                         </array>
                      </array>
                      <array>
                         <array>
                            <string>O</string>
                            <string>Infoss AS</string>
                         </array>
                      </array>
                   </array>
                   <key>Challenge</key>
                   <string>Pa$$word</string>
                   <key>Keysize</key>
                   <integer>2048</integer>
                   <key>Key Type</key>
                   <string>RSA</string>
                </dict>
                <key>PayloadDescription</key>
                <string>Provides device encryption identity</string>
                <key>PayloadUUID</key>
                <string>CAE1D4F6-1BBA-859F-89E2-48DFA7112F14</string>
                <key>PayloadType</key>
                <string>com.apple.security.scep</string>
                <key>PayloadDisplayName</key>
                <string>Encryption Identity</string>
                <key>PayloadVersion</key>
                <integer>1</integer>
                <key>PayloadOrganization</key>
                <string>Infoss AS</string>
                <key>PayloadIdentifier</key>
                <string>no.infoss.mobileconfig.ipsec</string>
             </dict>
          </array>
       </dict>
    </plist>
    


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

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

    Содержимое основного профиля зависит от требований службы безопасности и уровня развития сетевой инфраструктуры предприятия и филиалов. Это наиболее ответственная часть проекта по внедрению профилей и включает в себя участие нескольких отделов и служб предприятия. Данные для профиля могут браться из Active Directory, корпоративной базы данных или других систем.

    SCEP фаза 3

    Технология загрузки профилей конфигурации с некоторыми допущениями относится и к мобильным устройствам на базе OS X 10.8+, то есть для свежих MacBook, MacBook Air/Pro.

    Немного про MDM
    Стоит упомянуть такую технологию, как MDM. В случае сконфигурированного сервера Mobile Device Management (MDM) в основной профиль можно прописать параметры этого сервера, и после установки профиля, мобильное устройство будет принимать управляющие команды с сервера. С помощью MDM возможны следующие операции над устройством:
    • Запрос информации от устройства:
    o Общие настройки
    o Настройки сети
    o Настройки безопасности
    o Активные ограничения
    o Профили конфигурации
    o Профили загрузки приложений
    o Приложения
    • Управление устройством
    o Изменение настроек устройства
    o Установка/удаление конфигурационных профилей
    o Установка/удаление профилей загрузки приложений
    o Установка/удаление приложений
    o Изменения пароля
    o Полное удаление всей информации на устройстве
    Команды от MDM сервера поступают методом Push Notification.
    Внедрение MDM целесообразно на крупных предприятиях и позволяет достаточно широко удаленно управлять мобильными устройствами сотрудников.


    По описанной схеме работает загрузка профилей сервиса ruVPN.net, на Хабре недавно успешно прошло нагрузочное тестирование, когда любой мог установить профиль с настройками VPN на свое устройство. Основной профиль содержал SCEP запрос на сертификат для доступа к VPN IPSec серверу. Профиль автоматически удалился с устройств участников тестирования 27.05.2013 00:00:00 UTC. Большое спасибо всем участникам тестирования!

    ruVPN.net

    22,00

    Компания

    Поделиться публикацией
    Комментарии 35
      +3
      Очень интересно! В ближайшее время в конторе придётся что-то делать с обилием девайсов от apple!!! Теперь понятно, откуда начинать! Спасибо!
      • НЛО прилетело и опубликовало эту надпись здесь
          +1
          Начинайте с OS X Server, там многое из «коробки» работает.
          0
          «Начну с мобильных устройств на базе Apple iOS. Речь пойдет о версиях 3.0 и выше, на которых в настоящий момент работают следующие устройства:
          iPhone 3G, 3Gs, 4, 4s, 5
          iPad 2, 3, 4
          iPod touch, поколения от 2 до 5»

          Вы забыли про iPad mini
          • НЛО прилетело и опубликовало эту надпись здесь
              +1
              Про iPad mini всегда и везде забывают! :'-(
            • НЛО прилетело и опубликовало эту надпись здесь
              • НЛО прилетело и опубликовало эту надпись здесь
                0
                Спасибо. Очень полезно и познавательно.

                А кто нибудь знает примеры (желательно бесплатных) MDM серверов, для разворачивания на своей территории?
                • НЛО прилетело и опубликовало эту надпись здесь
                    0
                    Есть решение от Funambol. Доступно Community Edition
                    0
                    Apple и правда не разрешает удаленно запретить возможность отключения пользователем GPS на корпоративном устройстве?
                    • НЛО прилетело и опубликовало эту надпись здесь
                        0
                        Н-да, как пользователь я поддерживаю такие требования Privacy, но как администратор не могу поощрять, т.к. работа приложений на корпоративных устройствах, завязанных на показания GPS, становится бесполезной.
                        0
                        Карать по факту отключения.
                        0
                        Ну вот пока не появится OTA Push для профилей, толку от них немного, т.к. для того, чтобы что-либо изменить в конфигурации устройства требуется вовлекать пользователя. Единственное, где эта штука хорошо работает — onboarding, не нужно людям Wi-Fi и VPN ручками настраивать.
                        В текущей реализации для получения Push-уведомлений требуется регистрация в Apple и постоянное наличия подключения к Интернет, так?
                        • НЛО прилетело и опубликовало эту надпись здесь
                            0
                            Оно работает без обязательной регистрации в Apple и наличия доступа к Интернет? В замкнутой системе (магазин с Wi-Fi) я смогу управлять iPad'ами и iPod'ами?
                            • НЛО прилетело и опубликовало эту надпись здесь
                            0
                            Извините, но это выглядит смешно. Только сегодня с конференции Блекберри — и по сравнению с их разграничением «пользовательской» и «рабочей» зоны — это просто «нескучные обои». Где фильтр «одобренных» корпоративных приложений? Где возможность удаления «рабочих» файлов и программ при увольнении сотрудника? Где блокировка буфера обмена между приложениями? Где шифрование всего и вся? Где гарантии что даже имея дамп памяти устройства с него нельзя получить важные данные? Где контроль обновлений администратором? Где централизованное управления пользовательскими настройками?

                            В общем, поиграть в «настроящий энтерпрайз» можно. Относиться серьёзно — нет.
                            • НЛО прилетело и опубликовало эту надпись здесь
                                0
                                1. Таким образом разве можно разрешить установку только выбранных чужих приложений из маркета?
                                А в остальном — не так уж и плохо, спасибо что просветили.
                                • НЛО прилетело и опубликовало эту надпись здесь
                                    0
                                    Свои — это понятно. А среди чужих выбирать только разрешенные можно?
                                    • НЛО прилетело и опубликовало эту надпись здесь
                                        0
                                        Понятно, тут Блекберри впереди. Там и так и эдак можно.
                              0
                              Спасибо, полезная статья. А что мешает пользователю удалить профиль или перешить устройство, чтобы обойти эти ограничения?
                                0
                                Его квалификация в IT.
                                  0
                                  Согласен, но обычные профили легко удаляются через Настройки-Основные-Профили-[название профиля]-Удалить
                                  Можно ли ограничить удаление таких профилей, как описано в статье?
                                    0
                                    Можно, задав пароль на профиль.
                                      0
                                      Отлично, а подскате, как параметр этот называется?
                                        0
                                        Так в лоб не скажу, видел у коллег из orange business services. Смысл скорее всего в том что при загрузкe XML задается пароль на устройство, так же его можно поменять(возможно удаленно, не буду голословным но по моему возможно) при попытке удалить профиль, однозначно придется ввести пароль)
                                        Из собственных опытов когда надо было использовать ipad в связке sslvpn+rdc, ipad потребовал пароль для установки сертификатов.
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                  0
                                  Это случаем не тоже самое что и Over-the-Air Profile Delivery and Configuration или же это все таки разные вещи?
                                  В Kaspersky Security тоже такая функция есть, и судя по вот этому документу images.apple.com/iphone/business/docs/iOS_6_MDM_Sep12.pdf возможно даже и работает… Надо будет проверить как это работает:) только все равно, не совсем понимаю что(кроме фоток) можно высти с ipad если у нас например его не к чему кроме зарядки подключить(подключения по USB заблокированы для всего кроме alladin/USB-fash), доступ к таким устройствам блокируется. А wifi нас в принципе запрещен и глушится.
                                    0
                                    В связи с Wirelurker и Masque Attacks
                                    Скажите, а что происходит, когда Apple отзывает сертификат?

                                    — профиль не удаляется с девайса?
                                    (судя по тому, что профиль ставится без проверки Apple — подозреваю, что это так)

                                    — корпоративные приложения, установленные ранее остаются и действуют?

                                    — на девайсы, где что-то ставилось ранее с этим профилем можно ставить дальше?

                                    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                    Самое читаемое