Gmail, TD (канадский Банк), Royal Bank (канадский Банк) все использование ssl. Когда Вы осматриваете их сертификаты, они все имеют
Common Name (CN) mail.google.com
Или в более общем плане:
Common Name (CN)
Это необходимо для предотвращения человека в средних нападениях?
JBoss позволяет клиентам и серверам аутентифицировать сертификаты использования и ssl. Одна вещь, которая кажется странной, состоит в том, что Вы не обязаны давать свое имя хоста на сертификате.
Я думаю, что это означает, находится ли Сервер B в Вашей базе доверенных сертификатов, Разъедините B, может симулировать быть любым сервером, который они хотят.
(И аналогично: если Клиент B находится в Вашей базе доверенных сертификатов...),
Я пропускаю что-то здесь?
Client Server
=================================================================================================
1) Client sends Client Hello
ENCRIPTION: None
- highest TLS protocol supported
- random number
- list of cipher suites
- compression methods
2) Sever Hello
ENCRIPTION: None
- highest TLS protocol supported
- random number
- choosen cipher suite
- choosen compression method
3) Certificate Message
ENCRIPTION: None
-
4) ServerHelloDone
ENCRIPTION: None
5) Certificate Message
ENCRIPTION: None
6) ClientKeyExchange Message
ENCRIPTION: server's public key => only server can read
=> if sever can read this he must own the certificate
- may contain a PreMasterSecerate, public key or nothing (depends on cipher)
7) CertificateVerify Message
ENCRIPTION: clients private key
- purpose is to prove to the server that client owns the cert
8) BOTH CLIENT AND SERVER:
- use random numbers and PreMasterSecret to compute a common secerate
9) Finished message
- contains a has and MAC over previous handshakes
(to ensure that those unincripted messages did not get broken)
10) Finished message
- samething
У клиента есть открытый ключ для отправленного сертификата (шаг 7)
Сертификат клиента действителен потому что также:
Это не атака с повторением пакетов, потому что, по-видимому, случайное число (шаг 1 или 2) отправляется с каждым сообщением
Сервер имеет открытый ключ для отправленного сертификата (шаг 6 с шагом 8)
Сертификат сервера действителен потому что также:
Это не атака с повторением пакетов, потому что, по-видимому, случайное число (шаг 1 или 2) отправляется с каждым сообщением
Предположим, что база доверенных сертификатов клиента имеет сертификаты в ней:
Сервер A имеет имя хоста www.A.com
Сервер B имеет имя хоста www.B.com
Предположим: клиент пытается соединиться с Сервером A, но Сервер B запускает человека в среднем нападении.
Начиная с сервера B:
Кажется, что Сервер B может симулировать быть Сервером легко.
Есть ли что-то, что я пропускаю?
Можете ли вы указать на текст, в котором говорится, что JBoss не требуется имя хоста в сертификате, или это просто ваш наблюдение? Я предполагаю, что под "именем хоста" вы имеете в виду общее имя (CN) или отличительное имя (DN) ??
Обычно приложение должно проверять сертификат X.509 на:
Действительный диапазон дат
{ {1}} Использование (например, аутентификация сервера)
Привязка к доверенному корню
CN == DNS-имя целевого хоста (это может быть другое имя, а не только DNS )
Не отозван (с использованием CRL или OCSP)
Технически приложение может игнорировать любой из них и просто указать, что с сертификатом все в порядке .... но это плохо: )
Я думаю, вы что-то упускаете, но не уверен, что понимаю ваши рассуждения.
Однако, когда сервер B пытается запустить атаку «человек посередине», вы говорите, что у него есть открытый ключ. Это правда, но для настройки ssl-соединения у вас также должен быть закрытый ключ, принадлежащий этому открытому ключу. Более того, используемый сертификат привязан к имени DNS (в случае https). Итак, клиент пытается подключиться к A, он набирает www.a.com. Поскольку мы предполагаем, что B не знает закрытый ключ A, у него будет другая пара ключей. Он никогда не мог получить действительный (то есть доверенный) сертификат от главного центра сертификации, который связан с доменом, которым он не владеет.
Таким образом, B никогда не мог получить сертификат с общим именем www.A.com, по этой причине B не мог выполнить атаку человека в середине.