вторник, июля 24, 2007

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

Для доступа к электронной почты из Интернета необходимо ОБЯЗАТЕЛЬНОЕ шифрование трафика. Кто так не думает – возьмите Network Monitor и передавайте привет паролям, бегающим в открытом виде.

Так вот, клиенты, работающие по HTTP, RPC over HTTPS, POP3, IMAP4, SMTP требуют сертификат для SSL шифрования. Как это настраивается написано в множестве статей. Сертификаты для шифрования могут быть получены или из внешнего центра сертификации в Интернет или из центра сертификации, установленного в организации. С первым понятно, это один из Thawte, Verisign и т.д.

Прелесть в том, что их корневые сертификаты установлены по умолчанию в Windows, как доверенные. Стоят такие сертификаты по-разному и даются на год.

Второй вариант – внутренний центр выдачи сертификатов, установленный на предприятии. Тут правда есть маленькая проблема. При доступе через Интернет ваш компьютер ничего не знает про центр сертификации предприятия и не может проверить сертификат. Например, если обратится к OWA с компьютера, который не знает про внутренний центр сертификации(например ваш домашний компьютер или компьютер в Интернет кафе), то Вы увидите дурацкое окошко.

Можно ответить «Yes» и работать дальше, но это многих пользователей раздражает. Кроме того, клиентские программы могут просто не работать. Решением этой проблемы является добавление корневого сертификата внутреннего центра сертификации в раздел хранилища сертификатов "Trusted Root Certification Authorities" на компьютере пользователя.

Если в вашей компании использовались внешние сертификаты и планируется переход на внутренние, то необходимо проделать следующее:

1. Потренироваться на виртуальных машинах с установкой центра сертификации, конфигурации серверов и клиентов.

2.
Настроить работу внутреннего центра сертификации, выдать сертификаты почтовым серверам.

3. Определить пользователей, использующих внешний доступ. Это просто, достаточно проанализировать Application log и журнал Web сервера.

4. Составить детальную инструкцию об импорте сертификатов на клиенты.

5. Разослать письмо сотрудникам о переходе заранее и назначить точную дату перехода на внутренние сертификаты.

Хотелось бы поподробнее рассмотреть пункт 4. В качестве клиентов могут быть компьютеры, КПК и мобильные телефоны. Поэтому сертификаты нужно импортировать на все эти устройства.

Я решил сделать универсальный способ. Для этого нужно сделать одно место для скачивания сертификата. Поэтому я сделал ссылку на главной страничке OWA "Install certificate", указывающую на корневой сертификат: http://server.mydomain.ru/my-root-cert.cer, чтобы файл можно было скачивать по Интернету. Обратите внимание, что у файла расширение не сrt, а cer. Дело в том, что мобильные телефоны импортируют сертификаты только из файлов с расширением cer, обрабатывать файлы crt, как сертификат, они не могут.

По умолчанию IIS настроен так, что отдает файлы с расширением cer браузеру, как текст, а не сертификат. Поэтому нажав на ссылку Вы увидете набор символов в браузере. Для того, чтобы IIS отдавал браузеру crt, как сертификат нужно проделать следующее:


В свойства Default web site в IIS, HTTP Headers, Mime Types, добавить .cer типа application/x-x509-ca-cert. В home directory/ application configuration удалить mappings для .cer


Тогда процедура установки сертификатов на устройства будет примерно такой:
  1. Компьютеры
    Для установки на компьютер необходимо зайти на страничку с OWA, два раза кликнуть по ссылке "Install certificate". Затем нажимать на "Yes" и "Finish". Сертификат установится в нужное место сам.
  2. КПК
    Нужно зайти на страничку через браузер, кликнуть по ссылке "Install certificate" и установить сертификат через диалог установки сертификата в хранилище сертификатов.

  3. Мобильные телефоны
    Мобильные телефоны в своем большинстве не знают про сертификаты вообще. Но у бизнес телефонов Nokia есть понятия о сертификатах. Необходимо тоже зайти через браузер по ссылке "Install certificate" и скачать сертификат на телефон.


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

Отлично про сертификаты и Exchange 2007 написано здесь.

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

sergesim комментирует...

На самом деле такой способ установки (без всякой по сути проверки пользователем - хотя по thumbprint) сводит на нет весь смысл PKI - доверию корневому ЦС. Что помешает атакующему в этом случае передать пользователю свой сертификат ЦС?
Я бы очень не рекомендовал использовать такой упрощённый подход.

Alexander Trofimov комментирует...

To john: а никто и не предполагает использование этой схемы для подтверждения "личности" сервера. Только для шифрования траффика. Так что она имеет право жить. Для такой цели подошел бы даже самоподписанный сертфикат, но он имеет другие недостатки.

sergesim комментирует...

Шифрования с кем? В этом случае совершенно отлично после установки другого сертификата сработает "man in the middle", который весь этот трафик и прочтёт

Pavel Nagaev комментирует...

john, я не являюсь специалистом по сертификатам. Но в моя схема работает точно также, как схема с публичными сертификатами.

Объясните пожалуйста на пальцах в чем недостаток и как можно атаковать подобную систему. Пожалуйста.

Alexander Trofimov комментирует...

To John: z еще раз объясняю. Для просто шифрования. Чтобы обычный посторонний кекс не мог подслушать траффик на промежуточном шлюзе, например. Если нет необходимости жестко аутентифицировать сервер, то шифрование работает. Есть куча сайтов с самоподписанными сертификатами, которые прекрасно живут. А вообще не так давно у кого-то из англоязычных блоггеров пробегала целая подборка по поводу ложного чувства защищенноси от факта наличия проверяемого сертификата на сайте.
Паша, есть разные схемы, когда человек реально обращается не к тому сайту, к которому ему хочется. От таких атак этот сертификат и этот способ не спасет. Впрочем, реально обычного пользователя не спасет и наличие сертификата от VerySign, если не предпринять дополнительных танцев с бубном, о чем не сказал John. Если хочешь, я тебе понарою ссылочек на эту тему, но она достаточно большая =)

Pavel Nagaev комментирует...

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