Чи безпечно підписані сертифікати SSL?


33

Я хочу мати безпечне з'єднання під час входу в веб-пошту, phpMyAdmin тощо.

Тому я підписав власні сертифікати SSL з OpenSSL і сказав Apache прослухати порт 443.

Це насправді безпечно? Чи справді всі мої паролі надсилаються через безпечний і надійний рівень? Яка різниця, якщо я купую сертифікат SSL від Verisign або підписую свій власний? Зрештою, усі дані все одно будуть на моєму сервері. То в чому ж велика різниця?

Відповіді:


40

Це все про довіру. Якщо ви отримали підписаний сертифікат від verisign, ви докажете випадковим клієнтам, що вашому сертифікату довіряють. Якщо ви самостійно підписуєте сертифікат, люди, які не встановили ваш сертифікат на своєму комп'ютері, не можуть бути впевнені, що на них не нападає атака " Людина в середині" .

Якщо ваш веб-сервер ви просто використовуєте, вам не потрібен справжній ЦС (наприклад, verisign) для підписання вашого сертифіката. Просто встановіть сертифікат на машини, якими ви хочете користуватися, і ви готові йти.

Редагувати: Отже, щоб відповісти на ваше запитання: Так, все зашифровано, і ви можете бути впевнені, що ніхто не може прочитати ваші конфіденційні дані, якщо ви знаєте, що сертифікат, представлений веб-браузеру, насправді той, з яким ви налаштували веб-сервер.


12
Мета ЦО - довести іншим, що сертифікат належить тому, кому ти кажеш, що належить. Оскільки ви вже знаєте, кому належить сертифікат, з точки зору доступу до власного сервера та подання власного сертифіката, CA не виконує жодних цілей. Однак інші не можуть безпечно отримати доступ до ваших серверів, оскільки вони не мають змоги дізнатися, якому сертифікату довіряти. (Ви знаєте - довіряйте тому, кого ви видали.)
Девід Шварц

Це також було б розумним підходом, якби сервер отримав би доступ до обмеженої кількості користувачів, які могли б безпосередньо зв’язатися з вами для підтвердження сертифіката - членів вашої родини або співробітників невеликої компанії, як приклади.
bgvaughan

Чи може людина в середині, яка координується з КА, перемогла власну підпису? Наприклад, Боб підключається до веб-сайту Аліси, який підписує Аліса, Шрам надсилає Бобі інший сертифікат, підписаний Шрамом CA, який узгоджується, браузер Боба ніколи не показує попередження SSL. Чи можливо це?
Hello World,

14

Це все про довіру.

Скажімо, ви відвідуєте популярний веб-сайт, який представляє сертифікат. Це веб-сайт, який говорить: "Це я, ви можете мені довіряти, тому що я маю цей вступний лист, який підписав той, кому ви довіряєте".

У цьому випадку "хтось, якому ви довіряєте", є одним із сертифікатів, які (сподіваємось) виконали роботу над встановленням особистості пред'явника сертифіката від вашого імені.

Те, що ви справді довіряєте, - це довіра автора веб-переглядача довірі органу сертифікації до особи, яка представляє сертифікат. Також між вами та ведучим часто існує більше ніж один авторитет, звідси і термін: «Довіряйте ланцюгу». [1]

Коли ви підписуєте власний сертифікат, ланцюга довіри немає. Ваш сайт повертає вам власний сертифікат. Якщо ви встановите власний сертифікат у вашому браузері як той, якому ви довіряєте, то це трактується як авторитет, такий же, як і сертифікати , які встановлені заздалегідь. Потім у вас є ланцюжок довіри лише з одним посиланням.

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

Зауважте, що я ще не згадував про шифрування. Сертифікати стосуються засвідчення особи особи, з якою ви спілкуєтесь. Завдяки надійним сертифікатам ви можете бути впевнені, що ваш магазин чи банк справжній. Після того, як ви встановите їх особу, наступний крок забезпечить спілкування між вами. Буває так, що сертифікати також містять у собі ключі, необхідні для полегшення цієї безпеки. Якщо припустити, що ви правильно встановили SSL, то ця комунікація настільки ж безпечна, як і у вашому магазині чи банку, а ваші паролі однаково захищені. [2]

[1] Це аж ніяк не бездоганна система. Вільний ринок та низький рівень рентабельності бізнесу неминуче призводить до скорочення витрат: http://www.theregister.co.uk/2011/04/11/state_of_ssl_analysis/

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


11

Насправді, самопідписані сертифікати можуть бути захищеними, тільки не за моделлю, яку ми зараз використовуємо.


Відповідно до широко розповсюдженої моделі CA (сертифікаційного органу), якою всі користуються в даний час, мета сертифікату, який підписується довіреною ЦС, - це надання автентифікації.

Коли ми отримуємо сертифікат, все, що ми насправді бачимо, - це 1-го та 0-го числа, що надходить з гнізда в стіну; ми не маємо ідеї, звідки ці 1-ї та 0-ті. Однак, оскільки сертифікат підписується КА - те, що ніхто в світі, крім цього ЦА, не може зробити - і тому, що ми довіряємо ЦА, щоб перевірити особу власника сертифіката, ми віримо, що сертифікат походить від того, хто він вимагає до.

Звичайно, якщо ЦС порушено чи неправильно підтверджено власника , усі ставки будуть зняті.


Однак, є ще одна модель, в рамках якої самозаверяющіе сертифікати дійсно забезпечують справжність. Його називають нотаріальною моделлю .

По суті, замість довіри до одного КС, ми поширюємо довіру на будь-яку кількість нотаріусів . Ці нотаріуси обшукують Інтернет в пошуках сертифікатів, зберігаючи кеш усіх сертифікатів, які вони бачили. Коли ви відвідуєте сайт вперше і отримуєте сертифікат, ви запитуєте у кількох нотаріусів, що розповсюджуються у всьому світі, яким був останній сертифікат, який вони бачили. Якщо вони не згодні з тим, що ти бачиш, ти можеш стати частиною атаки між людиною.

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


Модель нотаріуса ще знаходиться в зародковому стані, і її сумнівна ситуація коли-небудь перейме модель CA (насправді, це не обов'язково - їх можна використовувати в тандемі) . Найперспективніший проект поки що - Convergence.io , який має плагін для Firefox.


2

Це не ВСЕ щодо довіри….

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

Ви можете мати №2 без №1, що і досягло. Залишилося підтвердження того, що поле, до якого ви підключаєтесь, - це те, що вам потрібно.

Якщо це мій сервер, я не маю жодних проблем із використанням підписаного сертифікатом від себе - хоча є певний ризик, що хтось може сфабрикувати речі, щоб змусити мене підключитися до їх сервера замість мого. Оскільки про мене та мій сервер ніхто не піклується, і я мало цінний тут, я не бачу в цьому надто великого ризику.

З іншого боку, якби замість мого сервера це був ваш сервер, то я б заклопотаний.


Ви збиралися сказати: "Якщо це ваш сервер, я б НЕ хвилювався"?
вишня

ні, він сказав: "Якщо це МОЙ сервер, у мене немає проблем ... якщо це ВАШ сервер, то у мене є проблеми".
Франческо

Ви невірні. Ніхто не міг підробити речі, щоб змусити вас підключитися до їх сервера замість вашого. У них немає ключа, який би відповідав самовільному підписаному вами сертифікату, і він не може представити вам інший сертифікат, оскільки ви не прийняли б його.
Девід Шварц

@cherun Моя думка полягала в тому, що я довіряю мені - не вам (або комусь іншим). Ви можете / повинні довіряти собі.
uSlackr

1
-1. Шифрування здійснюється за допомогою симетричних ключів, погоджених під час рукостискання. Звичайно, ви використовуєте сертифікат, щоб перевірити особу віддаленої сторони, інакше було б мало точки шифрування зв'язку (це може бути MITM). Якщо це ваш сервер і самопідписаний cert, імпортуйте його cert явно у свій клієнт.
Бруно
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.