Jak funguje X509v3 extended key usage (letsencrypt)?

Pavel Kankovsky peak na argo.troja.mff.cuni.cz
Čtvrtek Prosinec 1 11:06:42 CET 2016


On Tue, 29 Nov 2016, Jan Kasprzak wrote:

> tusite nekdo, jak se ma interpretovat atribut "X509v3 Extended Key Usage"
> v SSL certifikatu?

Zdá se, že EKU je jedna z těch podivných věcí, které sice existují, ale 
není k nalezení žádná oficiální specifikace toho, co by se s tím mělo 
dělat.

EKU definuje PKIX (aktuálně RFC 5280, část 4.2.1.12. Extended Key 
Usage), ale význam je popsán pouze v poznámce:

    id-kp-serverAuth             OBJECT IDENTIFIER ::= { id-kp 1 }
    -- TLS WWW server authentication
    -- Key usage bits that may be consistent: digitalSignature,
    -- keyEncipherment or keyAgreement

kde je právě to WWW. Našel jsem nějaký návrh, aby bylo "WWW" z popisu 
vypuštěno, ale zřejmě to mělo zcela nulový ohlas:
<https://www.ietf.org/mail-archive/web/pkix/current/msg23418.html>

Specifikace TLS (aktuálně RFC 5246) EKU zcela ignoruje a zmiňuje jen Key 
Usage, obyčejný bez Extended. Ve specifikacích popisujících použití TLS
v kombinaci s různými aplikačními protokoly (které mj. věnují zvláštní 
pozornost tomu, jak se mají kontrolovat jména v certifikátu, protože každý 
protokol to má pro větší zmatení trochu jinak) také není nic k nalezení,
občasné zmínky o EKU se týkají jen případů, kdy je definovaný nový typ 
pro ten konkrétní protokol.

Interpretace EKU je tedy víceméně na libovůli konkrétních implementací.

(Pokud mne někdo usvědčí z omylu a něco nalezne, tak budu jen rád.)

Nicméně zvlášní typ EKU pro jiné než webové TLS servery nikde definovaný 
není a požadovat anyExtendedKeyUsage by bylo až moc extrémní, a tak 
zbývají jen maximálně dva rozumné přístupy: buď 1. testovat 
id-kp-serverAuth, i když server není webový, nebo 2. zcela EKU
ignorovat.

A praxe skutečně ukazuje, že certifikáty s id-kp-serverAuth dobře 
fungují na jakémkoli TLS serveru.

-- 
Pavel Kankovsky aka Peak                      "Que sçay-je?"


Další informace o konferenci Linux