XML security: Rozdiel medzi revíziami
(→SAML) |
|||
Riadok 93: | Riadok 93: | ||
Štandard SAML umožňujúci zdieľanie autentifikačných a autorizačných informácii v rámci určitého systému. Medzi autotentifikačné a autorizačné informácie patria role a certifikáty. Dokument SAML môže byť digitálne podpísaní pomocou XML Signature. <nowiki>[</nowiki>15<nowiki>]</nowiki> | Štandard SAML umožňujúci zdieľanie autentifikačných a autorizačných informácii v rámci určitého systému. Medzi autotentifikačné a autorizačné informácie patria role a certifikáty. Dokument SAML môže byť digitálne podpísaní pomocou XML Signature. <nowiki>[</nowiki>15<nowiki>]</nowiki> | ||
− | |||
− | |||
1. Webový portál overí indentitu užívateľa na základe klientskeho certifikátu. Užívateľovi pridelí určitú identitu, rolu. | 1. Webový portál overí indentitu užívateľa na základe klientskeho certifikátu. Užívateľovi pridelí určitú identitu, rolu. |
Verzia zo dňa a času 12:06, 8. apríl 2010
XML Security
Ako sme už spomenuli komunikácia webových služieb a klientskych aplikácii prebieha prostredníctvom SOAP správ. Na komunikáciu je použitý typ SOAP správ nazývaný document-style (štýl dokument). Tento typ SOAP zobrazuje dáta, ktoré sú vymenované ako dokumenty, čiže každá SOAP správa obsahuje v tele XML dokument. Z toho dôvodu, môžeme využiť pri zabezpečovaní SOAP správ technológie zamerané na bezpečnosť XML.
XML Security predstavuje rozšírenie samotného XML o bezpečnostné mechanizmy. XML Security tvorí päť častí [14] , [15]:
- XML Signature (XS),
- XML Encryption (XE),
- Security Assertion Markup Language (SAML),
- XML Access Control Markup Language (XACML),
- XML Key Managment Specification (XKMS).
XML Signature
XML Signature je štandard definujúci XML schému pre uloženie výsledku operácie digitálneho podpisu aplikovaného na ľubovoľné (XML) dáta. XML podpisy sú najčastejšie využívané pri XML transakciách. Digitálne podpisovanie XML poskytuje mechanizmus na [15]:
- Autentifikáciu,
- kontrolu integrity a dôvernosti dát,
- na podporu neopakovateľnosti ( non repundation).
XML Signature umožňuje podpísať [17]:
- celý XML dokument,
- vybrané časti XML dokumentu.
Možnosť podpísať len vybranú časť XML stromu umožňuje veľkú flexibilitu. Napríklad v situácii, kde rozličné časti XML dokumentu boli vytvorené viacerými autoritami, každá autorita môže podpísať len svoju časť XML dokumentu.
Schéma XML digitálneho podpisu je v Tab. 8.1.
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm/>
<SignatureMethod Algorithm/>
<Reference URI="">
<Transforms>
<Transform Algorithm/>
</Transforms>
<DigestMethod Algorithm/>
<DigestValue> DigestValue>
</Reference>
</SignedInfo>
|
Popis dôležitých elementov XML Signature [17]:
- Reference každý zdroj, ktorý má byť digitálne podpísaný má svoj vlastný Reference element, reprezentovaný URI adresou.
- Transform, je zoznam procesov ktoré sa aplikujú na obsah XML dokumentu, pred jeho digitálnym podpísaným.
- Digest, tento element obsahuje hodnotu digest odkazovaného zdroja.
- SignatureValue, obsahuje hodnotu zašifrovaného digest elementu SignedInfo.
XML Signature môže obsahovať ešte nepovinný element KeyInfo, ktorý určuje typ kľúča potrebného k overeniu digitálneho podpisu XML dokumentu.
Technológiu XML Signature použijeme pri zabezpečovaní komunikácie vo vlastnej bezpečnostnej platforme.
XML Encryption
XML Encryption je štandard definujúci XML schému pre uloženie výsledku operácie digitálneho šifrovania aplikovaného na ľubovoľné (XML) dáta. Takisto ako XML Signature aj XML Encryption umožňuje šifrovať [18]:
- celý XML dokument,
- vybrané časti XML dokumentu.
XML Encryption predstavuje point-to-point zabezpečenie, odstraňuje určité nedostatky technológie SSL alebo TLS.
Tento štandard nebude použitý pri vytváraní vlastnej bezpečnostnej platforme, nakoľko sme sa rozhodli ponúknuť vlastný alternatívny spôsob ako selektívne šifrovať časti XML s použitím veľmi bezpečného Advanced Encryption Standard. Dôvod vlastného spôsobu šifrovania XML je ten, že pri XML Encryption dochádza k zašifrovaniu tagov XML, tým sa stráca určitá funkčnosť XML dokumentu, v našom prípade SOAP správy.
Schéma XML Encrypt je v Tab. 8.2.
Tab. 8.2 XML Encrypt [18]<EncryptedData Type>
</EncryptionMethod Algorithm/>
</CipherData>
</CipherValue></CipherValue>
</CipherData>
</EncryptedData>
|
Pre viac informácii odporúčame [18].
SAML
Štandard SAML umožňujúci zdieľanie autentifikačných a autorizačných informácii v rámci určitého systému. Medzi autotentifikačné a autorizačné informácie patria role a certifikáty. Dokument SAML môže byť digitálne podpísaní pomocou XML Signature. [15]
1. Webový portál overí indentitu užívateľa na základe klientskeho certifikátu. Užívateľovi pridelí určitú identitu, rolu.
2. Rola užívateľa je pripojená do SOAP správy, ktorá je digitálne podpísane webovým portálom.
3. Webová služba overí identitu webového portálu, skontroluje digitálny podpis, a následne zakáže alebo povolí klientovi prístup.
Štandard SAML sa skladá z troch častí [19]:
1. Definuje syntax a sémantiku správ obsahujúcich assertion (tvrdenia) vo forme XML.
2. Definuje protokoly pre výmenu bezpečnostných informácii.
3. Definuje pravidlá pre použitie assertion, štandardy pre transport. Napríklad SOAP tvrdenie môže byť poslané v SOAP správe cez HTTP kanál.
Security Assertion Markup Language sa dá využiť v tých 3 nasledujúcich scenárov [19]:
• Single sing-on (Jediné prihlásenie),
1. Klient je autentifikovaný prostredníctvom certifikátu na webovom portáli 1.
2. Pri prístupe na webový portál 2, by musel znova predložiť certifikát.
3. Pokiaľ je použitý SAML, webový portál 2 overí identitu na webovom portály 1, a na základe toho sa rozhodné či dovolí alebo odmietne prístup klientovi.
- Distribuované transakcie,
- Autorizačná služba.
XACML
Tento štandard úzko súvisí so SAML, ktorý slúži ako mechanizmus na šírenie autentifikačných a autorizačných informácii. XACML je autentifikačná a autorizačná informácia. Predstavuje XML metajazyk, ktorého úlohou je štandardizovať popis autentifikačných a autorizačných politík. Definuje slovník pre popis práv a podmienok subjektu.
Nakoľko štandard XACML nebude v bezpečnostnej platforme použitý, nebudeme sa ním podrobnejšie zaoberať. Pre viac informácii odporúčame [30].
XMKS
XMKS špecifikuje protokol pre hospodárenie s verejnými kryptografickými kľúčom [21]:
- Registrácia,
- Rušenie platnosti,
- Obnova kľúčov,
- Vydanie nového kľúča.
XMKS sa skladá z troch časti [21]:
1. XML Key Information Service Specification (X - KISS). Podporuje služby pre používanie kryptografických kľúčov.
2. XML Key Registration Service Specification (X – KRSS). Podporuje služby spojené s držiteľom kryptografických kľúčov (obnova, registrácia).
3. Bulk Key Regisration ( X- Bulk) predstavuje rozšírenie X – KRSS pre hromadnú registráciu kryptografických kľúčov. Tieto protokoly môžu byť použité spolu so SOAP.