2009-12-14 2 views
4

Всякий раз, когда я вижу, что об этом говорят, это звучит так, будто он просто «включает» SSL, а затем все запросы/ответы на/с онлайн-сервера волшебным образом защищены.Как работает SSL?

Это правильно? Является ли SSL только кодом - могу ли я написать два приложения и заставить их обмениваться данными через SSL, или вам нужно каким-то образом зарегистрировать/получить сертификат извне?

+1

закрыта, так как вопрос ПУТЬ к широким. Есть книги, написанные на эту тему: p – Marius

+3

Хотя могут быть книги, написанные на эту тему, я считаю, что Джон просто искал понимания (общая картина). Даже статья в Википедии полна неустанных подробностей, которые быстро бы утонули, если бы у них не было большой картины. – gahooa

+0

Спасибо, gahooa, ты в точности прав. Очень краткие ответы здесь - это именно то, что я искал в этой точке. –

ответ

9

Защищенные веб-страницы запрашиваются на порте 443 вместо обычного порта 80. Протокол SSL (как правило, сложный сам по себе) отвечает за обеспечение связи и использование информации о сертификате как для SERVER, так и для BROWSER для аутентификации сервер как тот, кто они говорят.

Создание сертификата SSL очень просто. Генерация, основанная на информации, встроенной в 99% веб-браузеров, стоит денег. Но технические аспекты не отличаются.

Вы видите, что существуют организации (Verisign, Globalsign и т. Д.), Которые имеют свою информацию о полномочиях по сертификации, ВКЛЮЧЕННЫЕ с браузерами в течение многих лет.Таким образом, когда вы посещаете сайт с сертификатом, который они создали (подписали), ваш браузер говорит:

«хорошо, если Verisign доверяет XYZ.com, и я доверяю Verisign, то я доверяю XYZ.com"

процесс прост:

Перейти к компетентному поставщику SSL, такие как GlobalSign. Создайте КЛЮЧ и сертификат на веб-сервере. Используйте их (и свою кредитную карту), чтобы купить сертификат. Установите его на сервер. Укажите веб-браузер на HTTPS (порт 443). Остальное сделано для вас.

0

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

0

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

0

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

0

This is a good tutorial о том, как создать самоподписанные сертификаты для Apache.

Если вы хотите знать, как работает SSL на сервере или на клиенте, я предлагаю его использовать. Как вы подозревали, это смехотворно сложная процедура, с большим количеством общения между клиентом и сервером, много очень своеобразной математики и тонны обработки. Существует также много теории, несколько протоколов и множество различных алгоритмов и стандартов шифрования. Совершенно невероятно, как изменение http: // в https: // настолько просто для пользователя, но приводит к такой большой работе для обеих сторон и настолько безопасно. Чтобы это понять, вам нужно пройти курс безопасности (несколько курсов, чтобы полностью понять его), поскольку вся история шифрования переходит к обеспечению безопасности вашего логина в Gmail.

2

SSL - протокол для шифрованной связи по TCP-соединению (или другой надежной схеме). Шифрование использует шифрование с открытым ключом с использованием сертификатов X.509. SSL обрабатывает как конфиденциальность, так и доверие. Это связано: если вы не доверяете серверу, вы не верите, что сервер не раздавал свой закрытый ключ всем в Северной Америке.

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

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

+0

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

+3

Вы заметите, что в случае использования существующих сертификатов сегодня в иерархии должно быть не менее 3 уровней. Обычно два из ЦС и один от оператора веб-сайта. https://secure.appcove.com имеет следующее: [GlobalSign Root CA> GlobalSign> GlobalSign Extended Validation CA> secure.appcove.com] – gahooa

+0

Цепи (включая самоподписание) в ЦС не имеют отношения к организации сертификатов в пределах домена. Насколько я понимаю, 'appcove.com' не может подписывать' secure.appcove.com' не может подписывать 'login.secure.appcove.com'. –

0

SSL на самом деле делает две вещи:

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

Только для № 2 вам необходимо получить официальные сертификаты. Если вам нужно только зашифровать сообщение без установления доверительных отношений, вы можете использовать самозаверяющие сертификаты или использовать алгоритм, который не требует сертификатов (т. Е. Diffie-Helman).

1

SSL сам по себе не является волшебной пулей, которая делает все безопасным. У безопасности нет таких вещей.

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

Есть две вещи, которые нужно сделать, чтобы обеспечить приложение с помощью SSL:

  • Измените код приложения для использования SSL.
  • Определите модель доверия сертификатов (и разверните и настройте приложение соответственно).

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

0

Включение TLS (разговорный «SSL») делает не делает ваш сайт магически безопасным. Вы все еще можете быть уязвимы для уязвимостей на уровне приложений, таких как переполнение стека, SQL-инъекция, XSS и CSRF.

Как объяснили другие ответы, TLS защищает только мужчину посередине. Трафик между клиентом и правильно настроенным TLS-сервером не может быть перехвачен или изменен, и клиент может достоверно подтвердить личность сервера, подтвердив сертификат X.509. Это не позволяет злоумышленнику выдавать себя за ваш сервер TLS.

+0

То есть, если вы не получите мужчину в середине от пересмотра соединения ... – RCIX

+0

True. К счастью, эта уязвимость скоро будет исправлена. – Matthew

1

Я буду осторожно относиться к ветру и попытаться сконденсировать огромный предмет.
SSL пытается решить две проблемы:
1) Проверка подлинности и, следовательно, доверять может т.е. клиент доверяет сервер и наоборот
2) Связь без подслушивания

1) обрабатывается с помощью посредника я.ea trusted 3rd party - они называются «корневыми центрами сертификации» (или корневыми центрами сертификации), например, Verisign, RSA и т. д.
Если компания хочет аутентифицировать пользователей и что еще более важно, если пользователь хочет аутентифицировать веб-сайт компании, он подключается к вашему банк, то Корневой ЦА выдает компании сертификат, который фактически говорит: «Я доверенный Корневой ЦС, удостоверяю, что я доверяю, что Компания Х - это те, кто они говорят, и они выдают сертификат соответственно». Таким образом, вы получаете цепочку доверия, и я доверяю сертификату от ACME Co, потому что Root CA Verisign создал и выпустил его.

2) Как только обе стороны прошли аутентификацию, сертификат (как правило, X590) используется для формирования безопасного соединения с использованием шифрования с открытым/закрытым ключом.

Безнадежно простой и неполно, но надежда, что дает примерное представление

Смежные вопросы