V praxi nedošlo k jeho masovému využití nejširší veřejností. Nebyl totiž běžně dostupný software, který by jej podporoval. Příčin bylo bezpochyby více, ale asi tou nejdůležitější je skutečnost, že na přelomu 80. a 90. let nebyla ještě masová poptávka po software tohoto druhu.
V první polovině 90. let došlo k masovému rozšíření PGP jehož výhodou byla jednoduchost a snadná dostupnost. Přitom PGP v té době vyhovovalo naprosté většině uživatelů.
Protokol PEM se však stal základem pro novější protokoly. Dnes se právě S/MIME zdá být východiskem a přitom S/MIME je PEM fylozoficky velmi blízké. Zejména se jedná o správu šífrovacích klíčů pomocí certifikátů.
Přenášená zpráva = Base64 (šifrování a el.podpis ( kanonizace zprávy (zpráva ) ) ) |
Obdobně zpracování přijaté zprávy můžeme vyjádřit:
Zpráva = převod z kanonické formy ( dešifrování a verifikace el.podpisu ( Base64 - dekódování ( přenášená zpráva ) ) ) |
Pouze kontrolní součet šifrován soukromým (asymetrickým) klíčem lze označovat jako elektronický podpis. Takže náš popis jednotlivých typů (ENCRYPTED, MIC-ONLY a MIC-CLEAR) je zcela pravdivý jen při asymetrickém šifrování přenášených klíčů. Této nepřesnosti se dopouštíme proto, že výklad je pak podle nás snadněji pochopitelný a přitom šifrování přenášených klíčů symetrickými šiframi není příliš významnou vlastností PEM.
Nejčastěji se pro šifrování textu zprávy používají symetrické šifry. Symetrický šifrovací klíč je pak přenášen zašifrován asymetrickou šifrou. PEM však specifikuje i možnost použití symetrické šifry i pro šifrování DEC-klíče - tj. symetrické IK-klíče.
Z dnešního pohledu se zdá, že používání symetrických IK-klíčů nemá velký praktický význam. Zpráva nemůže být elektronicky podepsána - pouze kontrolní součet zprávy je přenášen symetricky šifrován. Při použití symetrických IK-klíčů se IK-klíčem šifruje jak DEK-klíč, tak i kontrolní součet zprávy. V případě, že se ze zprávy vypočítá kontrolní součet, který se šifruje symetrickou šifrou, tak lze sice zkontrolovat integritu zprávy, ale ne její autentičnost (tj. nelze prokázat, že původce zprávy je opravdu odesilatel).
Nadále se budeme zabývat pouze případem, kdy IK-klíče jsou asymetrické. Text zprávy je pak šifrován veřejným klíčem příjemce a k elektronickému podpisu je použit soukromý klíč odesilatele.
Na obrázku opět není znázorněno, že jednotlivé části jsou kódovány Base64 a elektronický podpis je navíc ještě před odesláním šifrován DEK-klíčem.
Je-li zpráva odesílána více adresátům, pak DEK-klíč se zašifruje pro každého adresáta zvlášť jeho veřejným klíčem.
Podobně i při podepisování zprávy by mohlo zprávu teoreticky podepsat více uživatelů. Každý by si vytvořil kontrolní součet (mohou použít i různé algoritmy výpočtu kontrolního součtu) a podepsal jej svým soukromým klíčem.
Text zprávy je šifrován DEK-klíčem. Šifrovací algoritmus pro šifrování textu zprávy pro příslušný DEK-klíč s jeho parametry se uvádí v hlavičce DEK-Info. Tato hlavička má následující syntaxi:
DEK-Info: algoritmus-mód,parametry
Samotný DEK-klíč je zašifrován IK-klíčem příjemce (adresáta). IK-klíč vždy po určitou dobu používá konkrétní uživatel. IK-klíč je reprezentován jeho certifikátem.
PEM se orientuje na certifikáty vydané certifikační autoritou. Každý takový certifikát je jednoznačně identifikován identifikací (jménem) certifikační autority a sériovým číslem certifikátu. Naopak jméno uživatele v certifikátu nemusí být jednoznačné.
Certifikát identifikuje dvojici veřejný/soukromý klíč uživatele. Pro odeslání zprávy je však třeba jak certifikát příjemce tak i soukromý klíč odesilatele (reprezentovaný rovněž certifikátem). Protože DEK-klíč je šifrován veřejným klíčem adresáta (určen certifikátem adresáta), kdežto elektronický podpis je šifrován soukromým klíčem odesilatele (určen certifikátem odesilatele).
Zpráva musí minimálně obsahovat identifikaci těchto dvou klíčů - dvou
certifikátů. Jako identifikace slouží právě název certifikační autority
a sériové číslo certifikátu. Pro identifikaci se používají hlavičky:
Hlavička | Význam |
Originator-Certificate: | Tato hlavička obsahuje (pochopitelně Base64 kódovaný) celý certikát
odesilatele.
Následovaná vždy hlavičkou specifikující šifrovací algoritmus s módem ve kterém je použit a za oddělující čárkou pak veřejným klíčem zašifrovaný DEK-klíč: Key-Info: algoritmus-mód,zašifrovaný DEK-klíč
|
Isssuer-Certificate: | Tato hlavička může obsahovat certifikat certifikační autority, která certifikát uvedený v hlavičce Originator-Certificate vydala. |
Originator-ID-Asymetric: | Identifikuje odesilatele.
Originator-ID-Asymetric: Identifikace_CA,sériové_číslo_certifikátu V případě, že by tato hlavička identifikovala certifikát uvedený v hlavičce Originator-Certificate:, pak se tato hlavička vynechává. Následovaná vždy hlavičkou specifikující šifrovací algoritmus s módem, ve kterém je použit a za oddělující čárkou pak veřejným klíčem zašifrovaný DEK-klíč: Key-Info: algoritmus-mód,zašifrovaný_DEK-klíč |
Recipient-ID-Asymetric: | Identifikuje příjemce (adresáta). Syntaxe:
Recipient-ID-Asymetric: Identifikace_CA,sériové_číslo_certifikátu Následovaná vždy hlavičkou specifikující šifrovací algoritmus s módem, ve kterém je použit a za oddělující čárkou pak veřejným klíčem zašifrovaný DEK-klíč: Key-Info: algoritmus-mód,zašifrovaný_DEK-klíč |
Elektronický podpis
Elektronický podpis je specifikován v hlavičce MIC-Info. Jelikož pro elektronický podpis se používá soukromý klíč odesilatele, tak hlavička MIC-Info následuje za hlavičkami identifikujícími IK-klíč odesilatele, tj. za hlavičkami: Originator-ID-Asymetric, Originator-Certificate a Isssuer-Certificate. Hlavička má syntaxi:
MIC-Info: algoritmus_kontrolního_součtu,šifrovací_algoritmus,kontrolní_součet
Kontrolní součet je posléze šifrován ještě DEK-klíčem a kódován Base64. Např. používáme-li pro výpočet kontrolního součtu algoritmus MD5 a pro šifrování algoritmus RSA, pak poslední parametr v hlavičce MIC-Info má tvar:
el.podpis = Base64 ( DEK ( RSAsoukromý_klíč_odesilatele ( MD5 (text_zprávy) ) ) )
Celý protokol odeslání zprávy vypadá takto:
Předpoklady: