Чим відрізняється сертифікат від ключа щодо SSL?


126

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


Серти, які використовуються для SSL, базуються на PKI en.wikipedia.org/wiki/Public-key_cryptography
Zoredache

Відповіді:


114

Сертифікат містить відкритий ключ.

Сертифікат, крім відкритого ключа, містить додаткову інформацію, таку як емітент, для чого сертифікат повинен використовуватися та інші види метаданих.

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


4
@Zoredache Якщо сертифікат, як правило, має лише відкритий ключ, чи є хороше ім'я для виклику файлів .p12 або .pfx, які містять сертифікати та приватні ключі разом?
пр.

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

2
Де похована ця додаткова інформація? Я дивився на деякі сертифікати, і це все для мене
хитрість

3
Гріш, який ви дивитесь, - це кодування Base64. Це робиться таким чином, ймовірно, з аналогічної причини, що вкладення електронної пошти перетворюються на це - в основному для того, щоб вони могли транспортувати через протоколи та механізми, призначені для ASCII, лише без випадкової модифікації та не турбуючись про речі, такі як нові рядки, дужки тощо. opensslКоманда може розшифрувати і проаналізувати ці або ви можете скористатись онлайн-утилітою, такою як: lapo.it/asn1js
LawrenceC,

Чи сертифікат підписаний ЦА або з яким сервером спілкується?
Ольшанськ

58

Ці дві картини разом мені все пояснили:

Джерело: linuxvoice

введіть тут опис зображення

Джерело: інфосецинститут

введіть тут опис зображення



Приємно. 1 уточнення: 1-а фотокартка є стандартною (односторонній) TLS auth; 2-й, взаємний (двосторонній) авт. І 1 додатковий виклик у 1-му додатково допоможе пояснити, як насправді встановлюється довіра (все на тому, що виглядає на 1 дружнішій картинці): після того, як клієнт отримує сертифікат відкритого ключа сервера, клієнт перевіряє, що ЦТ, який підписав Серт серта міститься в приватному списку надійних ЦС клієнтів (встановивши, що тепер він також довіряє ЦА). Потім безпечно надіслати сервер ключ сеансу, w / який кожен тепер може і шифрувати, і розшифровувати наступні комунікації.
користувач1172173

Перше посилання на linuxvoice.com/… дає помилку в сертифікаті. Іронічний.
Tobb

37

Скажімо, компанія A має ключову пару і повинна публікувати свій відкритий ключ для публічного використання (він же ssl на своєму веб-сайті).

  • Компанія A повинна подати запит на сертифікат (CR) до сертифікаційного органу (CA), щоб отримати сертифікат для своєї пари ключів.
  • Відкритий ключ, але не приватний ключ, ключ ключів компанії A включається як частина запиту на сертифікат.
  • Тоді CA використовує інформацію про особу компанії A для визначення того, чи відповідає запит критеріям CA для видачі сертифіката.
    Якщо КА схвалив запит, він видає сертифікат компанії А. Коротше кажучи, CA підписує відкритий ключ компанії A своїм приватним ключем (CA), який підтверджує її справжність.

Отже, відкритий ключ компанії A, підписаний дійсним приватним ключем CA, називається сертифікатом компанії A.


Чи пов’язує компанія A-точка свою приватну особу (компанія A) зі своїм сертифікатом (Company A)?
Tola Odejayi

Ні. Приватний ключ залишається прихильником для А.
Мохсен Хейдарі

Тож де використовується приватний ключ компанії A?
sivann

2
Після вищезазначених формальностей. Компанія A матиме дійсний сертифікат SSL на своєму веб-сайті. Будь-який відвідувач (браузер), який спілкується на веб-сайті, використовуватиме відкритий ключ сертифіката для шифрування свого повідомлення. Компанія Має приватний ключ сертифіката SSL - єдиний, хто може розшифрувати повідомлення.
Мохсен Гейдарі

Я думаю, компанія А - це чоловік.
DimiDak

5

Поясню на прикладі.

У звичайних PKI на основі ключових пар існують приватний ключ і відкритий ключ.

У системі на основі сертифікатів є приватний ключ та сертифікат. Сертифікат містить більше інформації, ніж відкритий ключ.

Демонстрація (Ви можете створити сертифікат та приватний ключ): http://www.selfsignedcertificate.com/

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

Ви можете зіставити створений сертифікат (відкриття текстовим редактором) та приватний ключ (відкриття текстовим редактором) з цього веб-сайту: https://www.sslshopper.com/certificate-key-matcher.html

Якщо сертифікат відповідає приватному ключу клієнта, клієнт впевнений, що сертифікат видається клієнтом або надається довіреним агентом клієнта (CA).

Однак існують проблеми лише у зв'язку із приватним ключем та зв’язком на основі сертифікатів .

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

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

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

Однак, вирішуючи деякі проблеми, за допомогою КА вводиться інша. Оскільки ЦА видає сертифікати для багатьох серверів, вам все-таки потрібен певний спосіб переконатися, що ви спілкуєтесь із потрібним сервером. Щоб вирішити цю проблему, сертифікат, виданий CA, ідентифікує сервер або з певним іменем, таким як gmail.com, або з набором кодів, розміщених під маскою, наприклад * .google.com.

Наступний приклад зробить ці поняття дещо конкретнішими. У фрагменті, наведеному нижче, у командному рядку команда s_client інструмента openssl розглядає інформацію про сертифікат сервера Вікіпедії. Він визначає порт 443, тому що це типовий для HTTPS. Команда надсилає вихід openssl s_client на openssl x509, який форматує інформацію про сертифікати відповідно до стандарту X.509. Зокрема, команда запитує тему, яка містить інформацію про ім’я сервера, та емітента, який ідентифікує ЦС.

$ openssl s_client -connect wikipedia.org:443 | openssl x509 -noout -subject -issuer
subject= /serialNumber=sOrr2rKpMVP70Z6E9BT5reY008SJEdYv/C=US/O=*.wikipedia.org/OU=GT03314600/OU=See www.rapidssl.com/resources/cps (c)11/OU=Domain Control Validated - RapidSSL(R)/CN=*.wikipedia.org
issuer= /C=US/O=GeoTrust, Inc./CN=RapidSSL CA

Ви можете бачити, що сертифікат виданий для серверів, які відповідають * .wikipedia.org. RapidSSL CA.

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


3

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

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

Різниця життєвого циклу

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

Детальніше читайте тут


2

Гаразд, давайте розберемо це, щоб люди, які не знають техніку, могли зрозуміти.

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

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

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


3
<PiratesOfTheCarribean> Отже , ми збираємося після цього ключа </ PiratesOfTheCarribean> (Прочитано: Ви не робите ніякого сенсу ...)!
Timo
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.