Безопасны ли самозаверяющие сертификаты SSL?

33

Я хочу иметь безопасное соединение, когда я захожу в свою веб-почту, phpMyAdmin и т. Д.

Поэтому я подписал свои собственные SSL-сертификаты с OpenSSL и сказал Apache прослушивать порт 443.

Это на самом деле безопасно? Все ли мои пароли действительно отправляются через безопасный и надежный слой? Какая разница, если я куплю SSL-сертификат у Verisign или подпишу свой собственный? В конце концов, все данные будут на моем сервере в любом случае. Так в чем же большая разница?

cherrun
источник

Ответы:

40

Это все о доверии. Если вы получили подписанный сертификат от Verisign, вы докажете случайным клиентам, что ваш сертификат является доверенным. Если вы подписываете сертификат самостоятельно, люди, на которых не установлен ваш сертификат, не могут быть уверены, что они не атакованы атакой « Человек посередине» .

Если ваш веб-сервер используется только вами, вам не нужен настоящий CA (например, verisign) для подписи сертификата. Просто установите сертификат на машины, которые вы хотите использовать, и все готово.

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

monoceres
источник
12
Цель CA - доказать другим, что сертификат принадлежит тому, кому, как вы говорите, он принадлежит. Поскольку вы уже знаете, кому принадлежит сертификат, с точки зрения доступа к вашему собственному серверу и представления собственного сертификата, CA не имеет смысла. Однако другие не могут безопасно получить доступ к вашим серверам, потому что у них нет возможности узнать, какому сертификату доверять. (Вы знаете - доверяйте тому, который вы выпустили.)
Дэвид Шварц
Это также будет разумным подходом, если к серверу будет обращаться ограниченное число пользователей, которые могут напрямую связаться с вами для проверки сертификата - например, члены вашей семьи или сотрудники небольшой компании.
bgvaughan
Может ли Человек в середине, который координируется с CA, переопределить свой самоподписанный сертификат? Например, Боб подключается к самозаверяющему веб-сайту Алисы, Scar отправляет Бобу другой сертификат, подписанный CA Scar, с которым координируется, браузер Боба никогда не показывает предупреждение SSL. Это возможно?
Привет, мир,
14

Это все о доверии.

Скажем, вы посещаете популярный сайт, который представляет сертификат. Это веб-сайт, на котором написано: «Я тот, кто я есть, вы можете мне доверять, потому что я подписал это рекомендательное письмо от того, кому вы доверяете».

В этом случае «тот, кому вы доверяете», является одним из уполномоченных по сертификации, который (надеюсь) выполнил работу по установлению личности предъявителя сертификата от вашего имени.

Что вы действительно доверяете, так это доверие автора браузера к доверию центра сертификации к личности того, кто представляет сертификат. Кроме того, между вами и докладчиком часто существует более одного авторитета, отсюда и термин «Доверительная цепь». [1]

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

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

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

[1] Это ни в коем случае не безупречная система. Свободный рынок и малоприбыльная крупномасштабная деятельность неизбежно ведут к сокращению расходов: http://www.theregister.co.uk/2011/04/11/state_of_ssl_analysis/

[2] По крайней мере, в достаточной степени защищенной , чтобы кому-то гораздо дешевле проникнуть в ваш дом, выбить ваши секреты из вас, чем пытаться их взломать: http://xkcd.com/538/

SmallClanger
источник
11

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


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

Когда мы получаем сертификат, все, что мы действительно видим, это 1 и 0, поступающие от гнезда в стене; мы понятия не имеем, откуда взялись эти 1 и 0. Тем не менее, поскольку сертификат подписан центром сертификации - то, что никто в мире, кроме этого центра сертификации, не может - и потому что мы доверяем центру сертификации для проверки личности владельца сертификата, мы верим, что сертификат исходит от того, кто на него претендует к.

Конечно, если ЦС скомпрометирован или не правильно проверяет владельца , все ставки отключены.


Однако, есть еще одна модель, в рамках которой самозаверяющие сертификаты действительно обеспечивают подлинность. Это называется нотариальная модель .

По сути, вместо того, чтобы доверять одному ЦС, мы распространяем доверие среди любого количества нотариусов . Эти нотариусы прочесывают Интернет в поисках сертификатов, сохраняя в кэше все сертификаты, которые они видели. Когда вы посещаете сайт в первый раз и получаете сертификат, вы спрашиваете у нескольких распространенных по всему миру нотариусов, каким был последний сертификат, который они видели. Если они не согласны с тем, что вы видите, вы можете стать частью атаки «человек посередине».

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


Нотариальная модель все еще находится в зачаточном состоянии, и сомнительно, что она когда-либо возьмет на себя модель CA (на самом деле, это не обязательно - их можно использовать в тандеме) . Наиболее перспективным проектом на сегодняшний день является Convergence.io , в котором есть плагин для Firefox.

BlueRaja
источник
2

Это не ВСЕ о доверии ....

Сертификаты SSL могут служить двум целям: 1) является ли веб-сервер, к которому вы подключаетесь, тем сервером, к которому вы хотите подключиться; и 2) для шифрования сообщений.

Вы можете иметь # 2 без # 1, что вы достигли. Затем остается подтверждение того, что вы подключаетесь к той коробке, к которой хотите подключиться.

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

С другой стороны, если бы вместо моего сервера это был ваш сервер, то я был бы обеспокоен.

uSlackr
источник
Собираетесь ли вы сказать: «Если это ваш сервер, то я бы не беспокоился»?
Черрун
нет, он сказал: «если это МОЙ сервер, у меня нет проблем ... если это ВАШ сервер, то у меня проблемы».
Франческо
Вы не правы. Никто не может подделать вещи, чтобы заставить вас подключиться к их серверу вместо вашего. У них нет ключа, который соответствует выданному вами самозаверяющему сертификату, и они не могут предоставить вам другой сертификат, поскольку вы его не примете.
Дэвид Шварц
@cherun Моя точка зрения была в том, что я доверяю себе, а не вам (или кому-либо еще). Вы можете / должны доверять себе.
uSlackr
1
-1. Шифрование выполняется с использованием симметричных ключей, согласованных во время рукопожатия. Конечно, вы используете сертификат для проверки личности удаленной стороны, в противном случае было бы мало смысла шифровать связь (это может быть MITM). Если это ваш сервер и самозаверяющий сертификат, явно импортируйте его в свой клиент.
Бруно