2009-04-13 8 views
2

У меня есть приложение со встроенным веб-сервером. Этот веб-сервер теперь может выполнять SSL через пакет OpenSSL :)Встраиваемый веб-сервер и сертификаты

Теперь к выпуску сертификата. Это приложение продано, о чем я говорю, потому что он не просто сидит на принадлежащем мне сервере - он устанавливается на тысячи компьютеров. Я хочу, чтобы мои клиенты были в безопасности, поэтому я хочу, чтобы они использовали SSL как можно безболезненно. Сейчас мы создаем собственный СА, а затем создаем самозаверяющие сертификаты. Это означает, что все наши клиенты (и их пользователи) должны либо установить свой собственный CA для установки, либо жить с ненадежным корневым предупреждением из сертификата, ни то, ни другое из них привлекательно.

Как обойти это?

Мы либо должны:

  1. Сделать мертвым просто установить нашу CA (какие браузеры намеренно делают довольно трудно - много испуганных диалоги предупреждения)
  2. Каким-то образом получить все эти сертификаты клиентов законно подписанный браузером, признанным ЦС.
  3. Заставьте клиента пойти купить свой собственный сертификат и установить его

Я не вижу, как мы будем делать # 1, поэтому мы смотрим на # 2. # 3 в значительной степени не может быть и речи.

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

Я думаю, проблема в том, что мы работаем против цели СА в первую очередь. Любые мысли о том, как сделать это легко и безопасно для пользователя? (Предположите, что атаки «человек-в-середине» не вызывает беспокойства - действительно ли он был документирован?)

ответ

1

Нет простого простого решения. Если бы это было легко разрешено, безопасность системы сертификатов SSL была бы плохой.

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

1. Установите корневой ЦС на клиентских браузерах

Это разумное решение, если приложение используется внутри или, если клиенты, как ожидается, установить что-то, чтобы использовать приложение. Это, вероятно, также самое дешевое решение, поскольку никаких дополнительных расходов не требуется. Однако, если приложение будет использоваться населением в целом, то это не разумное решение.

2. Купить коммерческий корневой CA сертификат

Если ваше приложение работает в Интернете, это, скорее всего, потребуется. Однако, если вы продаете приложение, а не просто предлагаете его услуги, это может быть не очень хорошо по причинам ответственности, как вы упомянули.

3. Получить клиентов, чтобы купить свой собственный коммерческий корневой CA сертификат, подписанный

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

+0

В зависимости от того, являются ли клиенты коммерческими или даже более крупными предприятиями, пункт 3 может быть самым легким, если клиент управляет собственным ЦС и устанавливает свой сертификат CA в браузерах компании с помощью программного обеспечения для развертывания. Но говорить о Джоне. Это далеко за пределами ... –