URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID10
Нить номер: 5297
[ Назад ]

Исходное сообщение
"ssl certificate bundle"

Отправлено vgavrilov , 16-Янв-15 04:50 
Приветствую. Прочитал тут про возможность объединения сертификатов в certificate bundle и появился такой вопрос. Если узел, который выдал сертификат скомпрометирован, то получается и промежуточные сертификаты вместе с Trust External CA Root могут быть поддельными. Или последний все таки клиент сравнивает с собственной базой root CA ?

Содержание

Сообщения в этом обсуждении
"ssl certificate bundle"
Отправлено Alexey Ivanov , 16-Янв-15 09:11 
> Приветствую. Прочитал тут про возможность объединения сертификатов в certificate bundle
> и появился такой вопрос. Если узел, который выдал сертификат скомпрометирован, то
> получается и промежуточные сертификаты вместе с Trust External CA Root могут
> быть поддельными. Или последний все таки клиент сравнивает с собственной базой
> root CA ?

Проверяется цепочка до root CA. И клиент безусловно использует собственную базу root CA.

Пример иерархии для Comodo - https://www.instantssl.su/articles/121-which-is-root-which-i...

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


"ssl certificate bundle"
Отправлено vgavrilov , 16-Янв-15 12:04 
>> Приветствую. Прочитал тут про возможность объединения сертификатов в certificate bundle
>> и появился такой вопрос. Если узел, который выдал сертификат скомпрометирован, то
>> получается и промежуточные сертификаты вместе с Trust External CA Root могут
>> быть поддельными. Или последний все таки клиент сравнивает с собственной базой
>> root CA ?
> Проверяется цепочка до root CA. И клиент безусловно использует собственную базу root
> CA.
> Пример иерархии для Comodo - https://www.instantssl.su/articles/121-which-is-root-which-i...
> Если один из промежуточных сертификатов будет поддельный - проверка не пройдет, так
> как он не будет подписан вышестоящим.

Благодарю за ответ.
"И клиент безусловно использует собственную базу root CA." - Собственно, если клиент проверяет промежуточные сертификаты в собственной базе, тогда какой смысл в bundle?

Я себе это так представляю: Клиент получает от сервера всю цепочку сертификатов от сертификата сервера, до root CA и на основании этой цепочки он может подтвердить подлинность всех сертификатов в цепочке (даже не имея промежуточных в собственной базе).
В итоге ему остается проверить только root CA. Если проверка прошла успешно, то и все цепочка сертификатов валидная. Если нет, тогда любой из цепочки сертификатов мог быть скомпрометирован и, как следствие, сертификат сервера не валидный.

Если, например, взять сертификаты gmail.com

coolhazker@coolhazker-P5Q-PRO:~$ openssl s_client -showcerts -CApath /tmp/ -connect smtp.gmail.com:465
CONNECTED(00000003)
depth=3 C = US, O = Equifax, OU = Equifax Secure Certificate Authority
verify return:1
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
verify return:1
depth=1 C = US, O = Google Inc, CN = Google Internet Authority G2
verify return:1
depth=0 C = US, ST = California, L = Mountain View, O = Google Inc, CN = smtp.gmail.com
verify return:1
---
Certificate chain
0 s:/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
   i:/C=US/O=Google Inc/CN=Google Internet Authority G2
-----BEGIN CERTIFICATE-----
MIIEdjCCA16gAwIBAgIIGcMF7jeVMoAwDQYJKoZIhvcNAQEFBQAwSTELMAkGA1UE
BhMCVVMxEzARBgNVBAoTCkdvb2dsZSBJbmMxJTAjBgNVBAMTHEdvb2dsZSBJbnRl
cm5ldCBBdXRob3JpdHkgRzIwHhcNMTQwNzE1MDg0MDM4WhcNMTUwNDA0MTUxNTU1
WjBoMQswCQYDVQQGEwJVUzETMBEGA1UECAwKQ2FsaWZvcm5pYTEWMBQGA1UEBwwN
TW91bnRhaW4gVmlldzETMBEGA1UECgwKR29vZ2xlIEluYzEXMBUGA1UEAwwOc210
cC5nbWFpbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCu4vOr
LgyNsHicxBORgO2OOfXKxEKb830NzNu6elubbf1T45GilB3fHgDQJELRydTRZilo
Efv75Ag7uRQM/M1tk+1h18wDpJZem+zFmJcs30ccBN21CnCvqsIEYJMyY3kcV4vD
x44bx6VvEAmJ9/kiFJ7xRUlCchu5YVOFoVkMaEax3UWb5Fti9pe8VgYdasuk53ae
8ZuIr4pFew9fraxOe/6LXEaPMSw622KSWpyK/GUbaAp07hV11c+LVgjlUDTgA+2k
nDigWrdb+yLL9Hv3WNLWjEAHFWhEce5QwV3SN8JLga3Rbw2N3lq9afkQtOnkJgdM
UG4xkUHGqscggMDJAgMBAAGjggFBMIIBPTAdBgNVHSUEFjAUBggrBgEFBQcDAQYI
KwYBBQUHAwIwGQYDVR0RBBIwEIIOc210cC5nbWFpbC5jb20waAYIKwYBBQUHAQEE
XDBaMCsGCCsGAQUFBzAChh9odHRwOi8vcGtpLmdvb2dsZS5jb20vR0lBRzIuY3J0
MCsGCCsGAQUFBzABhh9odHRwOi8vY2xpZW50czEuZ29vZ2xlLmNvbS9vY3NwMB0G
A1UdDgQWBBSanZBvY+Rnj0HquJmae9AJvwiCzTAMBgNVHRMBAf8EAjAAMB8GA1Ud
IwQYMBaAFErdBhYbvPZotXb1gba7Yhq6WoEvMBcGA1UdIAQQMA4wDAYKKwYBBAHW
eQIFATAwBgNVHR8EKTAnMCWgI6Ahhh9odHRwOi8vcGtpLmdvb2dsZS5jb20vR0lB
RzIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCVoGAOKZoil4sNAYvlb9uxNmWqQqyh
ql0D1bewbLxs3DSVWSe2DhPjjhdMHMTcMpB+jQzAbGxVYiuNLdqLl1Xcde7EUmo1
KJUGzTO046k+11LYVOxEXLBe5s3FF+niFJby7XFgmI3yMt4blHN5tHm/7JijL1Ip
vkcsynOnOwAEHehI1U12N0JEpkcoetM6MA8cGtn74EPTas4Npa+mTNo3seH8iY43
4L4hnsubXMhcQQ9IQMPtKuZYNUXklN/NS0f69Be+3HQRTOljtCxdpm/v/emHPjwg
/Cwu+58fZK+flQ1PQcY24Cgt7EF0R+uqo5Il3CGuCgrd4JxJNMuGcsGS
-----END CERTIFICATE-----
1 s:/C=US/O=Google Inc/CN=Google Internet Authority G2
   i:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
-----BEGIN CERTIFICATE-----
MIIEBDCCAuygAwIBAgIDAjppMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
YWwgQ0EwHhcNMTMwNDA1MTUxNTU1WhcNMTUwNDA0MTUxNTU1WjBJMQswCQYDVQQG
EwJVUzETMBEGA1UEChMKR29vZ2xlIEluYzElMCMGA1UEAxMcR29vZ2xlIEludGVy
bmV0IEF1dGhvcml0eSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
AJwqBHdc2FCROgajguDYUEi8iT/xGXAaiEZ+4I/F8YnOIe5a/mENtzJEiaB0C1NP
VaTOgmKV7utZX8bhBYASxF6UP7xbSDj0U/ck5vuR6RXEz/RTDfRK/J9U3n2+oGtv
h8DQUB8oMANA2ghzUWx//zo8pzcGjr1LEQTrfSTe5vn8MXH7lNVg8y5Kr0LSy+rE
ahqyzFPdFUuLH8gZYR/Nnag+YyuENWllhMgZxUYi+FOVvuOAShDGKuy6lyARxzmZ
EASg8GF6lSWMTlJ14rbtCMoU/M4iarNOz0YDl5cDfsCx3nuvRTPPuj5xt970JSXC
DTWJnZ37DhF5iR43xa+OcmkCAwEAAaOB+zCB+DAfBgNVHSMEGDAWgBTAephojYn7
qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUSt0GFhu89mi1dvWBtrtiGrpagS8wEgYD
VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwOgYDVR0fBDMwMTAvoC2g
K4YpaHR0cDovL2NybC5nZW90cnVzdC5jb20vY3Jscy9ndGdsb2JhbC5jcmwwPQYI
KwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwOi8vZ3RnbG9iYWwtb2NzcC5n
ZW90cnVzdC5jb20wFwYDVR0gBBAwDjAMBgorBgEEAdZ5AgUBMA0GCSqGSIb3DQEB
BQUAA4IBAQA21waAESetKhSbOHezI6B1WLuxfoNCunLaHtiONgaX4PCVOzf9G0JY
/iLIa704XtE7JW4S615ndkZAkNoUyHgN7ZVm2o6Gb4ChulYylYbc3GrKBIxbf/a/
zG+FA1jDaFETzf3I93k9mTXwVqO94FntT0QJo544evZG0R0SnU++0ED8Vf4GXjza
HFa9llF7b1cq26KqltyMdMKVvvBulRP/F/A8rLIQjcxz++iPAsbw+zOzlTvjwsto
WHPbqCRiOwY1nQ2pM714A5AuTHhdUDqB1O6gyHA43LL5Z/qHQF1hwFGPa4NrzQU6
yuGnBXj8ytqU0CwIPX4WecigUCAkVDNx
-----END CERTIFICATE-----
2 s:/C=US/O=GeoTrust Inc./CN=GeoTrust Global CA
   i:/C=US/O=Equifax/OU=Equifax Secure Certificate Authority
-----BEGIN CERTIFICATE-----
MIIDfTCCAuagAwIBAgIDErvmMA0GCSqGSIb3DQEBBQUAME4xCzAJBgNVBAYTAlVT
MRAwDgYDVQQKEwdFcXVpZmF4MS0wKwYDVQQLEyRFcXVpZmF4IFNlY3VyZSBDZXJ0
aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDIwNTIxMDQwMDAwWhcNMTgwODIxMDQwMDAw
WjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE
AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9m
OSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIu
T8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6c
JmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmR
Cw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5asz
PeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo4HwMIHtMB8GA1UdIwQYMBaAFEjm
aPkr0rKV10fYIyAQTzOYkJ/UMB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrM
TjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjA6BgNVHR8EMzAxMC+g
LaArhilodHRwOi8vY3JsLmdlb3RydXN0LmNvbS9jcmxzL3NlY3VyZWNhLmNybDBO
BgNVHSAERzBFMEMGBFUdIAAwOzA5BggrBgEFBQcCARYtaHR0cHM6Ly93d3cuZ2Vv
dHJ1c3QuY29tL3Jlc291cmNlcy9yZXBvc2l0b3J5MA0GCSqGSIb3DQEBBQUAA4GB
AHbhEm5OSxYShjAGsoEIz/AIx8dxfmbuwu3UOx//8PDITtZDOLC5MH0Y0FWDomrL
NhGc6Ehmo21/uBPUR/6LWlxz/K7ZGzIZOKuXNBSqltLroxwUCEm2u+WR74M26x1W
b8ravHNjkOR/ez4iyz0H7V84dJzjA1BOoa+Y7mHyhD8S
-----END CERTIFICATE-----
---
Server certificate
subject=/C=US/ST=California/L=Mountain View/O=Google Inc/CN=smtp.gmail.com
issuer=/C=US/O=Google Inc/CN=Google Internet Authority G2
---
No client certificate CA names sent
---
SSL handshake has read 3739 bytes and written 431 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: 607DE2D4F213CCBB2C7542E16F64FFC4EF23EF6710F4FAD209142CDE31F521EC
    Session-ID-ctx:
    Master-Key: 96D93687893CA55D9502E7312B38AE0FFE5E3404EB3EE786C9FC1D5B2477F8E0DCC0C198BAFD7636A7D994ABD4DB4667
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 100800 (seconds)
    TLS session ticket:
    0000 - d7 15 b6 8e 84 c9 af 13-f0 5d 95 16 f3 99 1e b5   .........]......
    0010 - 8d 1d e4 f1 79 d7 01 ac-fd d1 f8 d3 82 03 ed b9   ....y...........
    0020 - cb 01 13 2e 73 c7 cc 97-29 0a e1 df 19 c4 c8 04   ....s...).......
    0030 - 49 ea d0 d4 ff 4b 17 70-8b 60 db e3 9d 62 7c 94   I....K.p.`...b|.
    0040 - 89 da 76 10 74 43 95 dd-7d 42 06 e9 98 bc a3 fd   ..v.tC..}B......
    0050 - be 97 44 29 8b f6 e6 c4-f7 24 e1 fa a7 4a 74 9f   ..D).....$...Jt.
    0060 - e2 30 f1 7b d6 13 0e e3-9d 24 ae 52 c0 88 c4 b2   .0.{.....$.R....
    0070 - d5 f7 6c 57 7f 75 c5 86-66 2c b6 e5 e0 46 c8 64   ..lW.u..f,...F.d
    0080 - de d8 2e 6e 4a 59 01 e1-b3 3f 9f 5c f9 f8 2b fc   ...nJY...?.\..+.
    0090 - 40 c8 8f 12 f2 80 96 7d-27 cf 89 ec 0d 2e e1 a9   @......}'.......
    00a0 - 81 ee 3f 43                                       ..?C

    Start Time: 1421398824
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---
220 mx.google.com ESMTP l3sm718852lbs.13 - gsmtp

Вот тут я специально указал -CApath /tmp/ что бы база сертификатов не нашлась, тем не менее, сертификат прошел валидацию.
Verify return code: 0 (ok)
Почему так?


PS. Если есть возможность убрать все это под спойлер, подскажите как.