HTTPsec - HTTPsec
Tento článek má několik problémů. Prosím pomozte vylepši to nebo diskutovat o těchto otázkách na internetu diskusní stránka. (Zjistěte, jak a kdy tyto zprávy ze šablony odebrat) (Zjistěte, jak a kdy odstranit tuto zprávu šablony)
|
HTTP |
---|
Vyžádejte si metody |
Pole záhlaví |
Stavové kódy |
Bezpečnostní metody řízení přístupu |
Zranitelnosti zabezpečení |
HTTPsec ("Zabezpečení HTTP") je ověřování schéma pro webový protokol HTTP. HTTPsec poskytuje kryptograficky silná bezpečnost na aplikační vrstva.
HTTPsec funguje v rámci hlaviček autentizace HTTP. Využívá to RSA veřejné klíče pro vzájemné ověřování a pomíjivé Výměna klíčů Diffie – Hellman ujistit se dopředu tajemství. Protokol poskytuje vzájemné ověřování a ověřování původu zpráv prostřednictvím ochrany aplikované na (1) integritu adresy URL, metody a hlavní záhlaví HTTP, (2) integritu těla zprávy, (3) sekvenci zpráv a (4) zprávu replaye. Volitelně poskytuje šifrování těla zprávy. Neposkytuje důvěrnost záhlaví (protože zprávy by již nebyly HTTP, pokud by byla jejich pole záhlaví zašifrována) ani ochranu integrity aplikovanou na sekundární záhlaví (což může být legitimně změněno proxy).
Příklad s vysvětlením
(Mnoho podrobností je vynecháno - úplné vysvětlení najdete v úplných specifikacích.)
Výrazy „žadatel“ a „respondér“ se používají místo „klienta“ a „serveru“ pro dva partnery v transakci. Tímto potvrzujeme, že ověřovaní partneři nemusí nutně mapovat jeden na jednoho na klientská nebo serverová zařízení. Například server může hostit více koncových bodů, které jsou jasně identifikovány.
Existují tři možné typy transakcí: Inicializace, Pokračování a Výzva.
Inicializace transakce
Inicializační transakce nastanou, když si žadatel přeje zahájit novou dohodu o sdíleném tajemství. Jsou pouze pro účely protokolu, a proto se nepoužívají k přenášení užitečných dat zpráv.
- Žadatel odešle svůj identifikátor, certifikát a pomíjivou veřejnou hodnotu Diffie – Hellman a náhodnou nonce.
- Odpovídající osoba odpoví svým identifikátorem, certifikátem, pomíjivou veřejnou hodnotou Diffie – Hellman a samostatným náhodným nonce šifrovaným ve veřejném klíči RSA předloženém certifikátem žadatele. Podepisuje také svým soukromým klíčem RSA všechny dosud vyměněné parametry protokolu.
Responder je ověřen ve fázi inicializace ověřením podpisu proti veřejnému klíči předloženému jeho certifikátem (čerstvost autentizace je zajištěna nonce žadatele). Žadatel je následně v pokračovací fázi ověřen pomocí HMAC ověřovací kódy zpráv (Čerstvost autentizace je zajištěna schopností žadatele dešifrovat nonce respondentů).
Hodnoty Diffie – Hellman se používají ke generování pomíjivých sdílené tajemství. Z tohoto dočasného tajného klíče jsou odvozeny shodně oběma vrstevníky. V odpovědi na inicializaci je také vrácen token, který odkazuje na tyto tajné klíče v dalších zprávách o pokračování.
Příklad požadavku na inicializaci:
HLAVA http://alice.example.com/foobar.txt HTTP/1.1Oprávnění: Inicializace httpsec / 1.0 id = bob.example.com dh = clW9y2X5Vy + 5 + Ncv5lAI3W9y2X5Vgfe4y + 5 + Ncv5l ... certificate = http: //bob.example.com/my-cert url = http: //alice.example.com/foobar.txt group = rfc3526 # 14 nonce = 7iqgkzgfdIe0HN35r6met2579yxetyerty7MZW ...
Příklad inicializační odpovědi:
HTTP/1.1 401 vyžadována autorizaceVyprší: Čt, 11. srpna 2005 18:20:42 GMTCache-Control: bez transformaceWWW-ověřování: Inicializace httpsec / 1.0 id = alice.example.com dh = + NcclW9y2I3W9X5Vy + 5v5lAy4X56y + Ncrwrtv5lqe ... certificate = http: //alice.example.com/my-cert token = mCa5tx1vKBY auth = vpCNmx7MZ7iqgkzIe0HWwfyrOMeqwg0TdbpwefI ... podpis = 2pX3SNgzWkV3w0W9y2X5V23hhy + 5b8DQmo ...
(Kvůli čitelnosti jsou vzorová záhlaví protokolu rozšířena na více řádků podle [HTTP] [4.2]. Hodnoty některých inicializačních směrnic jsou navíc zdlouhavé, a proto byly zkráceny, což je označeno zakončovací elipsou „...“)
Pokračující transakce
Těmto transakcím prospívá ochrana zabezpečení, která je odvozena od dohody o sdíleném tajemství. Jsou ve všech ostatních ohledech konvenční zprávy HTTP. Pokračující transakce lze použít, pokud žadatel v předchozím bodě inicializoval dohodu o sdíleném tajemství.
- Žadatel a respondent posílají posloupnost libovolných zpráv HTTP a citují token jako odkaz na použité tajné klíče.
- Tajné klíče jsou vstupy do ověřovacích kódů zpráv a do těla zprávy šifrování. Vzhledem k tomu, že klíče znají pouze dva legitimní partneři, používají je peer přijímající zprávy k ověření peer odesílajícího zprávy a k dešifrování těla zprávy. Jedinečnost zprávy je navíc vynucena přírůstkovým čítačem, což je jeden z různých vstupů do MAC zprávy.
Příklad požadavku na pokračování:
DOSTAT http://alice.example.com/foobar.txt HTTP/1.1Oprávnění: httpsec / 1.0 pokračovat token = mCa5tx1vKBY url = http: //alice.example.com/foobar.txt počet = 1 mac = zhHPRbxqf3KSMQpjCnpDQmyBnoqiNDMQLjRtMjxUcM =
Příklad pokračovací odpovědi:
HTTP/1.1 200 OKdatum: Čt, 11. srpna 2005 18:20:48 GMTVyprší: Čt, 11. srpna 2005 18:20:48 GMTTyp obsahu: text / plain; charset = ISO-8859-1Délka obsahu: 1234Cache-Control: bez transformaceKódování obsahu: x-httpsec / 1.0-cipherWWW-ověřování: httpsec / 1.0 pokračovat počet = 2 mac = VplDHX3SNgzWkLKgZkjZ + I5wvImOHAMptVSc / Abttps = digest = V3w0W9y2X5Vy + 5 + Ncv5lAI3rb8qMlGzrOh9zjHXRHbk =<entity-body ciphertext bytes>
Všimněte si, že zatímco ukázka požadavku na pokračování má metodu GET, a proto nemá žádné tělo, může to být stejně POST, PUT atd. S tělem zprávy a mít stejnou ochranu těla zprávy, jak je ukázáno v příkladu odpovědi na pokračování.
Vyzvat transakce
Tyto transakce umožňují respondéru pokusit se zahájit HTTPsec.
- Žadatel požádá o prostředek v konvenčním požadavku HTTP.
- Odpovídající odpověď odpovídá odpovědí „401 Unauthorized“ a uvádí svou podporu protokolu HTTPsec.
Příklad odpovědi na výzvu:
HTTP/1.1 401 NeoprávněnýWWW-ověřování: výzva httpsec / 1.0 id = alice.example.com certificate = http: //alice.example.com/my-cert
Algoritmy
Algoritmy využívané HTTPsec jsou RSA, OAEP, PSS, HMAC, SHA-256, a AES-256. Protokol neumožňuje vyjednávání algoritmu.
Viz také
Reference
externí odkazy
- HTTPsec - ověření veřejného klíče pro HTTP na Wayback Machine (archivováno 2010-08-25)
- httpsec na GitHub