Autentizační mechanismy webových služeb

Autentizační mechanismy webových služeb

Součástí bezpečnosti webových služeb jsou autentizační a autorizační mechanismy, dovolující přístup k datům pouze pro odpovídající osoby. Otázkou je, nakolik dobře jsou známá omezení. Součástí těchto nastavení by měla být i odpovídající architektura, ochranné a detekční prostředky. Dnes se webové portály používají ve všech organizacích a nevhodná ochrana dat má své důsledky.

Autentizační mechanismy webových prohlížečů

Další volné pokračování autentizačních mechanismů se tentokrát věnuje problematice webových prohlížečů. Jejich přístup k ochraně autentizačních údajů je značně volný a spoléhá hlavně na transportní šifrování. Bohužel vrstva SSL/TLS má svoje omezení, které je nutné brát v potaz. Proto je nutné začít s vysvětlením, jaké pracuje vlastní ověřování v protokolu HTTP, co nabízí vrstva SSL/TLS a kde se tyto metody potkávají.
Nejčastěji podceňovaným dopadem na bezpečnost autentizačních mechanismů je předávání parametrů v rámci URL, kdy jsou předávané hodnoty ukládané například v záznamech provozu. Další nectností je podceňování nutného zabezpečení, část stránek může mít nastavenou ochranu, ale u přesměrování na autentizační portál tato ochrana chybí. Stejně tak je problematické zabezpečení pomocí SSL/TLS, kdy není nastavena ochrana proti případné SSL Inspekci. Jako poslední vliv je nutné také započítat telemetrické informace prohlížeče, schopnost automatické korektury textu nebo různé plugin moduly, zasílající informace jejich autorům. Prohlížeče proto není možné brát jako bezpečné prostředí a autentizační algoritmy by z uvedených důvodů měly vždy vyžadovat další faktor.

Principy ověřování pomocí HTTP protokolu

V případě přístupu k webové adrese je běžná odpověď na GET dotaz od webové stránky 200 OK. Následně jsou zaslány požadované data. V případě přístupu na chráněný obsah je ale komunikace mírně odlišná. Na GET dotaz vrátí stránka kód 401 Unauthorized, který vynutí autentizaci ze strany klienta. Pokud autentizace skončí chybou, je vrácen kód 403 Forbidden. Samozřejmě, jsou možné i další kódy, například kód 404 Not Found, ale to již nesouvisí s ověřováním.

Dostupné autentizační mechanismy

V současnosti jsou nejčastěji používané mechanismy z tabulky níže dostupné jak pro prohlížeče Brave, Chrome, Chromium, Edge, Firefox, Opera, Safari, Vivaldi a další. Na straně web serverů, jako je Apache, Apache Tomcat LightHttp, Microsoft IIS a NGINX se jedná o stejnou sadu. Rozdíl zde vytváří podpora pro interní infrastrukturu, kde jsou podporovány navíc mechanismy jako je Kerberos, LDAP a SAML.

Autentizační mechanismusKryptoprimitivaVznik Podpora v SSL/TLSRFC a standardy
HTTP Basic AuthenticationBASE641996 Nepovinné, ale doporučené (TLS 1.0+)RFC 7617
HTTP Digest AuthenticationMD5
SHA256
1997 Nepovinné, ale doporučenéRFC 7616
WebAuthnECDSA
SHA-256
AES
2018 Vyžaduje HTTPS
podpora od SSL 3.0
doporučeno TLS 1.2+
W3C WebAuthn
RFC 8809
TLS Client Certificate AuthenticationX.509 certifikáty1995 TLS 1.0+, lépe TLS 1.2+RFC 2246
RFC 5246
RFC 8446
OAuth 2.0RSA
ECDSA
SHA256
2012 Vyžaduje HTTPS (TLS 1.2+)RFC 6749
RFC 6750
OpenID ConnectRSA
ECDSA
SHA256
2014 Vyžaduje HTTPS (TLS 1.2+)OpenID Core 1.0
RFC 7519

HTTP Basic Authentication

Jedná se o nejjednodušší formu ověřování. V případě detekce požadavku na ověření, tedy návratu chybové zprávy 401 Unauthorized spolu s informací WWW-Authenticate: Basic realm="Secure Area" se při dalším HTTP dotazu do hlavičky požadavku přidává hodnota:
Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQK
Textový řetězec za definicí typu ověření obsahuje řetězec uživatelské_jméno:heslo kódovaný pomocí Base64. Protože se jedná o kódování nikoliv o šifrování, je nutné použít ochranu pomocí transportního šifrování (SSL/TLS). V jiném případě je možné extrémně snadno získat původní uživatelské jméno a heslo.

Channel Binding: Ne
Realms: Ne
Kryptoprimitiva: Ne
Účastníků autentizace: 2
PQC/QRC: Ne
ZKP: Ne
Podpora crypt interface: Na straně serveru
Tokenizace: Ne
Jedinečnost: Ne
Ochrana credentials: Ne
Ochrana proti Replay: Ne
Ochrana proti Relay: Ne
Ochrana proti Hijack: Ne
Ochrana proti Forge: Ne
Podpora MFA: Možné, musí existovat podpora na aplikační úrovni
Ochrana integrity: Ne
Typ šifrování: Ne, nezbytné použít SSL/TLS

HTTP Digest Authentication

Jedná se o mírně vylepšenou, ale stále zastaralou formu ověřování. Na rozdíl od plaintext autentizace dochází k využití hash funkce MD5. Slabiny uvedené hash funkce vedly v roce 2015 k vydání nového RFC 7616, které umožnilo nahrazení funkce MD5 některou z hash funkcí rodiny SHA2 (SHA2-256, SHA2-384, SHA2-512, SHA2-512/256). V případě použití HTTP Digest Authentication s hash funkcí SHA2 tak dochází k výraznému zlepšení bezpečnostních vlastností. Při vlastním přihlašování opět dochází v případě přístupu k zamítnutí přístupu pomocí chybové zprávy 401 Unauthorized spolu s těmito informacemi:
WWW-Authenticate: Digest
realm="Secure Area", nonce="000102030405060708090a0b0c0d0e0fff",
qop="auth", opaque="5ccc069c403ebaf9f0171e9517f40e41"


Na základě odpovědi je možné detekovat, zda je použit standardní algoritmus MD5, nebo nový standard s podporou SHA2. V případě podpory hash funkce SHA2 je totiž odpověď rozšířena o údaj algorithm=SHA-256. Klient detekující požadavek na ověření následně znovu požádá o připojení. Do hlavičky tentokrát přidá část údajů ze zamítnutí přístup spolu s informacemi, díky kterým může server provést jeho ověření. Jedná se o následující data:
Authorization: Digest username="user", realm="Secure Area",
nonce="000102030405060708090a0b0c0d0e0fff", uri="/secure",
response="123456789abcdef123456789abcdefff", qop=auth, nc=00000001, cnonce="02468ace"

Odpověď se spočítá jako výsledek hash funkce (příklad pro MD5) s následujícím obsahem.
response = MD5(MD5(username:realm:password)+nonce+nc+cnonce+qop+MD5(method:uri))

Channel Binding: Ne
Realms: Ne
Kryptoprimitiva: MD5, SHA2
Účastníků autentizace: 2
PQC/QRC: Ne
ZKP: Ne
Podpora crypt interface: Na straně serveru
Tokenizace: Ne
Jedinečnost: Ne
Ochrana credentials: Ano
Ochrana proti Replay: Ano
Ochrana proti Relay: Ne
Ochrana proti Hijack: Ne
Ochrana proti Forge: Ano
Podpora MFA: Možné, musí existovat podpora na aplikační úrovni
Ochrana integrity: Ne
Typ šifrování: Hash, nezbytné použít SSL/TLS

TLS Client Certificate Authentication

V případě ověřování pomocí klientského certifikátu je nejčastějším problémem možné pomýlení s mTLS (mutual TLS), protože se jedná o extrémně podobné technologie. Při běžném navazování TLS spojení dochází k poskytnutí serverového certifikátu za účelem inicializace zabezpečeného spojení. I v této oblasti je snadný omyl, nedochází totiž k ověření serveru zda má správný certifikát, ale dochází k ověření jeho platnosti a některých vlastností certifikátu. To jsou dvě rozdílné informace s jiným významem.

V případě detekce požadavku na ověření, dochází k návratu chybové zprávy 401 Unauthorized spolu s informací:
WWW-Authenticate: TLS-Cert Dalšími alternativami, vyžadujícími splnění určitých podmínek jsou odpovědi, obsahující mimo požadavku na certifikát ještě další upřesnění jejich různé kombinace:
• Příslušnost certifikátu ke konkrétní CA
  WWW-Authenticate: TLS-Cert, CA="CN=TrustedAuthority, O=Organization, C=Country"
• Požadovaný atribut
  WWW-Authenticate: TLS-Cert, Subject="CN=Name Surname, O=Organization"
• Požadovaná konkrétní politika
  WWW-Authenticate: TLS-Cert, Policy="1.2.840.113549.1.1.11"
• Požadovaný konkrétní algoritmus podepisování certifikátu
  WWW-Authenticate: TLS-Cert, Alg="ECDSA"
Mezi další parametry patří SAN (Subject Alternate Name), Serial Number a otisk certifikátu. Na základě získaných informací klient ukončuje spojení a vytváří nové, kde serveru poskytuje informaci o svém klientském certifikátu.
V průběhu navazování dochází k výměně výzvy, kterou klient podepisuje. Klient serveru na základě jeho požadavku (Certificate Request) navíc odpovídá s požadovanými informacemi o svém certifikátu.
Client Certificate: [Base64-encoded X.509 certificate] Signature: [Digitally signed challenge]
Jedná se vlastně o klasickou Client Certificate message v průběhu inicializace TLS spojení. Následně server provádí kontrolu, zda je klientský certifikát platný a splňuje definované podmínky. Poté klient znovu zažádá o přístup ke zdroji, server na základě dostupných informací spáruje klientský certifikát proti požadavkům na ověření zdroje. Jedná se tedy o volitelné ověření klienta, zpravidla se používá pro VPN a zabezpečené weby. Pro navázání spojení na komunikační kanál (Channel Binding) se může použít tls-unique a tls-server-end-point, kde tls-unique v TLS 1.3 již není podporováno.
V případě mTLS dochází při navazování spojení na úrovni TLS vrstvy k poskytnutí serverového certifikátu za účelem inicializace zabezpečeného spojení. I v průběhu této inicializace server vyžaduje certifikát, zde se ale jedná o povinné ověření klienta. Zpravidla se používá pro různá API, mikroservisní komunikace nebo i Kubernetes.
Zajímavostí u TLS Client Certificate Authentication je možnost ověření uživatele a konkrétní vazby na certifikát například pomocí databáze uživatelů, Active Directory nebo LDAP databáze, OAuth 2.0 a OpenID Connect. V takovém případě je možné pokračovat s dalším porovnáním vlastností certifikátu na aplikační vrstvě.

Channel Binding: Možný
Realms: Ne
Kryptoprimitiva: dle ciphersuites SSL/TLS
Účastníků autentizace: 2
PQC/QRC: Standardně ne, možné u TLS 1.3
ZKP: Ne
Podpora crypt interface: Ne
Tokenizace: Ne
Jedinečnost: Ano
Ochrana credentials: Ano
Ochrana proti Replay: Ano
Ochrana proti Relay: Ano
Ochrana proti Hijack: Ano
Ochrana proti Forge: Ano
Podpora MFA: Možné, musí existovat podpora na aplikační úrovni
Ochrana integrity: Ano
Typ šifrování: SSL/TLS, součástí autentizace

WebAuthn

V současnosti je nejvíce propagovaný autentizační standard WebAuthn, který dovoluje používat různé způsoby pro ověření klíčového materiálu nebo podporu biometrického ověření. Cílem je minimalizovat používání hesel, která se často vyznačují nízkou entropií, nedostatečnou náhodností a nepředvídatelností, ve prospěch klíčového materiálu. Klíčový materiál je jedinečný pro kombinaci uživatel/server. Tím se zároveň snižuje riziko vícenásobného používání identických hesel napříč různými systémy. Na straně serveru tak není potřeba databáze hesel, což snižuje pravděpodobnost jejich úniku. Veřejné klíče jsou útočníkovi k ničemu, z principu jsou dostupné pro každého. Dále tento protokol vyžaduje použití alespoň TLS 1.2 nebo vyšší verze pro ochranu přenášených informací.
Velice zjednodušeně funguje WebAuthn pomocí asymetrické kryptografie. Na začátku klient vygeneruje pár klíčů. Privátní klíč zůstává lokálně uložen (TPM, token, secure enclave, strongbox). Veřejný klíč následně registruje na straně serveru. Díky tomu má server informace o uživateli a jemu odpovídajícímu veřejnému klíči. V případě použití biometrického ověřování se biometrie používá pouze k povolení přístupu ke klíčovému materiálu. Pokud se uživatel chce přihlásit, pošle informaci o žádosti serveru. Ten následně odešle výzvu, kterou klient podepíše a odešle zpět na server. Tam je díky možnosti ověření podpisu za pomoci veřejného klíče možné získat informaci, zda se přihlašuje odpovídající uživatel.

Registrace:
Server → Client:  CS = RND (32B)
Client:        M = CS || CredentialID || KPublic
Client:        Signature = DSA (KPrivate, M)
Client → Server:  Response={M, Signature}

Přihlášení:
Server → Client:  CS=RND(32B)
Client:        M=CS∥ClientData∥AuthenticatorData
Client:        Signature=DSA(KPrivate,M)
Client → Server:  Response={CS,AuthenticatorData,Signature,credentialId}

Channel Binding: Možný
Realms: Ne
Kryptoprimitiva: dle ciphersuites SSL/TLS
Účastníků autentizace: 2
PQC/QRC: Standardně ne, možné u TLS 1.3
ZKP: Ne
Podpora crypt interface: Ne
Tokenizace: Ne
Jedinečnost: Ano
Ochrana credentials: Ano
Ochrana proti Replay: Ano
Ochrana proti Relay: Ano
Ochrana proti Hijack: Ano
Ochrana proti Forge: Ano
Podpora MFA: Možné, musí existovat podpora na aplikační úrovni
Ochrana integrity: Ano
Typ šifrování: SSL/TLS, součástí autentizace

OAuth 2.0

Mimo nastupujícího WebAuth, který je oblíben zvláště kvůli spojení s různými tokeny (Yubikey, Titan …) nebo TPM, jsou další oblíbenou metodou autentizace systémy třetích stran. Ty zajišťují autentizaci a poskytují autorizační informace pro přístup k webovým portálům nebo aplikacím. V případě OAuth 2.0 je možné využít funkcionalitu federovaného ověřování. Tento algoritmus je popsán mezi SASL mechanismy v jiném článku, takže zde budu popisovat jenom základní rozdíl při využití webového rozhraní. V případě potřeby pochopit princip provozu doporučuji využít odkaz věnující se tomuto protokolu Rozhraní OAuth 2.0 vyžaduje použití TLS 1.2+ pro zajištění bezpečné komunikace. Na rozdíl od OpenID Connect dovoluje použití refresh tokenu pro tvorbu žádosti o nový token. Postup pak vypadá přibližně následovně. Klient se pokusí přihlásit s konkrétním tokenem nebo přistupuje bez tokenu: Authorization: Bearer <expired_token>

Server vrátí chybovou zprávu, která označuje neplatný nebo expirovaný token. Stejně tak ji vrací i v případě, kdy uživatel ještě nebyl přihlášen.
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="REALM", error="invalid_token", error_description="The access token is expired"


Klient potřebuje získat odpovídající token, proto se musí znovu přihlásit na autentizačním serveru:

Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&refresh_token=<refresh_token>&client_id=<client_id>&client_secret=<client_secret>


Autentizační server vydá nový token:
HTTP/1.1 200 OK
Content-Type: application/json

{
  "access_token": "new_access_token",
  "token_type": "Bearer",
  "expires_in": 3600
}

Klient se opět připojí k aplikačnímu serveru:
Authorization: Bearer new_access_token

A pokud je token správný, aplikační server povolí přístup:
HTTP/1.1 200 OK

Channel Binding: Ne
Realms: Ano
Kryptoprimitiva: Výběhové (RSA), aktuální (SHA256, ECDSA)
Počet stran při autentizaci: 3 až 4
PQC/QRC: Ne
ZKP: Ne
Podpora crypt interface: Za určitých podmínek
Tokenizace: Ano
Jedinečnost: Ano
Ochrana credentials: TLS
Ochrana proti Replay: Ano
Ochrana proti Relay: Ano
Ochrana proti Hijack: Ano
Ochrana proti Forge: Ano
Podpora MFA: Ano
Ochrana integrity: TLS, pro JWT interní
Typ šifrování: TLS, pro JWT navíc interní

OpenID Connect

OpenID Connect je varianta OAuth 2.0 a je také popsán v samostatném článku. I zde jsou popsány základní rozdíly při využití webového rozhraní. V případě potřeby pochopit princip provozu doporučuji využít odkaz věnující se tomuto protokolu Rozhraní OpenID Connect vyžaduje použití TLS 1.2+ pro zajištění bezpečné komunikace. Na rozdíl od OAuth 2.0 vyžaduje nové přihlášení pro tvorbu žádosti o nový token. Postup ověření pak vypadá následujícím způsobem:
Klient se pokusí neúspěšně přihlásit, server požaduje autorizaci
Authorization: Bearer

Server odpovídá požadavkem na OIDC autentizaci
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="example", error="invalid_token", error_description="ID Token expired"

Klient je přesměrován na autorizační server, pokud nemá refresh token, musí se znovu přihlásit

GET https://auth.example.com/authorize?client_id=client&response_type=code
&scope=openid profile email&redirect_uri=https://client.example.com/callback
&state=random_state

Autorizační server poskytne autorizační kód:
HTTP/1.1 302 Found
Location: https://client.target.tld/callback?code=code&state=random_state

Klient po přihlášení požádá o ID a access token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&code=code&redirect_uri=https://client.example.com/callback
&client_id=client&client_secret=client_secret


Po ověření vrací autorizační server ID a access token:
HTTP/1.1 200 OK
Content-Type: application/json

{
   "access_token": "new_access_token",
   "id_token": "new_id_token",
   expires_in": 3600"
}


Klient se znovu přihlásí s odpovídajícími informacemi
Authorization: Bearer new_access_token
A pokud je token správný, je přístup povolen
HTTP/1.1 200 OK

Channel Binding: Ne
Realms: Ano
Kryptoprimitiva: Výběhové (RSA), aktuální (SHA256, ECDSA)
Počet stran při autentizaci: 3 až 4
PQC/QRC: Ne
ZKP: Ne
Podpora crypt interface: Za určitých podmínek
Tokenizace: Ano
Jedinečnost: Ano
Ochrana credentials: TLS
Ochrana proti Replay: Ano
Ochrana proti Relay: Ano
Ochrana proti Hijack: Ano
Ochrana proti Forge: Ano
Podpora MFA: Ano
Ochrana integrity: TLS, pro JWT interní
Typ šifrování: TLS, pro JWT navíc interní

Závěr

Použití integrovaných mechanismů prohlížečů je sice jednoduchou metodou, ale vyžaduje pochopení funkce ochranných mechanismů. Bez znalosti faktů není možné odpovědně nastavit zabezpečení, což může mít fatální dopady na bezpečnost dat. Autentizační mechanismy jsou základní obrannou bariérou, jejich konfigurace je nezbytná, nikoliv však postačující. Stejnou péči je nutné věnovat i přidělování oprávnění a dalším vrstvám ochrany.

Reference:

  1. HTTP Authentication: Basic and Digest Access Authentication
    Zdroj: https://www.rfc-editor.org/
  2. The 'Basic' HTTP Authentication Scheme
    Zdroj: https://www.rfc-editor.org/
  3. An Extension to HTTP : Digest Access Authentication
    Zdroj: https://www.rfc-editor.org/
  4. HTTP Authentication: Basic and Digest Access Authentication
    Zdroj: https://www.rfc-editor.org/
  5. HTTP Digest Access Authentication
    Zdroj: https://www.rfc-editor.org/
  6. W3C Web Authentication API (2019) – specifikace WebAuthn
    Zdroj: https://www.w3.org/
  7. Registries for Web Authentication (WebAuthn)
    Zdroj: https://www.rfc-editor.org/
  8. The TLS Protocol Version 1.0
    Zdroj: https://www.rfc-editor.org/
  9. The Transport Layer Security (TLS) Protocol Version 1.2
    Zdroj: https://www.rfc-editor.org/
  10. The Transport Layer Security (TLS) Protocol Version 1.3
    Zdroj: https://www.rfc-editor.org/
  11. The OAuth 2.0 Authorization Framework
    Zdroj: https://www.rfc-editor.org/
  12. The OAuth 2.0 Authorization Framework: Bearer Token Usage
    Zdroj: https://www.rfc-editor.org/
  13. OAuth 2.0 for Native Apps
    Zdroj: https://www.rfc-editor.org/
  14. OpenID Connect Core 1.0 (2014)
    Zdroj: https://openid.net/
  15. OpenID Authentication 2.0 - Final.
    Zdroj: https://openid.net/
  16. JSON Web Token (JWT)
    Zdroj: https://www.rfc-editor.org/
  17. JSON Web Token (JWT) Profile for OAuth 2.0 Client Authentication and Authorization Grants
    Zdroj: https://www.rfc-editor.org/

Autor článku:

Jan Dušátko
Jan Dušátko

Jan Dušátko se počítačům a počítačové bezpečnosti věnuje již skoro čtvrt století. V oblasti kryptografie spolupracoval s předními odborníky např. s Vlastimilem Klímou, či Tomášem Rosou. V tuto chvíli pracuje jako bezpečnostní konzultant, jeho hlavní náplní jsou témata související s kryptografií, bezpečností, e-mailovou komunikací a linuxovými systémy.

1. Úvodní ustanovení

1.1. Tyto všeobecné obchodní podmínky jsou, není-li ve smlouvě písemně dohodnuto jinak, nedílnou součástí všech smluv týkajících školení, pořádaných nebo poskytovaných školitelem, Jan Dušátko, IČ 434 797 66, DIČ 7208253041, se sídlem Pod Harfou 938/58, Praha 9, zapsané u Úřadu městské části Praha 9 (dále jen „školitel“).
1.2. Smluvními stranami ve všeobecných obchodních podmínkách jsou míněni školitel a objednatel, kdy objednatel může být zároveň zprostředkovatelem smluvního vztahu.
1.3. Záležitosti, které nejsou upravené těmito obchodními podmínkami, se řeší podle Občanského zákoníků, tj. zákon č. 89/2012 Sb.

2. Vznik smlouvy přihlášením ke kurzu

2.1. Přihláškou se rozumí jednostranný úkon objednatele adresovaný školiteli prostřednictvím datové schránky s identifikací euxesuf, e-mailu na adresu register@cryptosession.cz nebo register@cryptosession.info, internetových stránek cryptosession.cz, cryptosession.info nebo kontaktním telefonem +420 602 427 840.
2.2. Odesláním přihlášky objednatel souhlasí s těmito všeobecnými podmínkami a prohlašuje, že se s nimi seznámil.
2.3. Přihláška se považuje za přijatou momentem potvrzení (stadnardně do 2 pracovních dní) školitelem nebo zprostředkovatelem. Toto potvrzení je zasláno do datové schránky nebo na kontaktní e-mail.
2.4. Standardní doba pro přihlášení je nejpozději 14 pracovních dní před konáním vzdělávací akce, pokud není uvedeno jinak. V případě fyzické nepodnikající osoby musí být objednávka alespoň 28 pracovních dní před konáním vzdělávací akce.
2.5. Na jednu přihláškou lze přihlásit i více než jednoho účastníka.
2.6. Pokud je více než 10 účastníků od jednoho objednatele, je možné se domluvit na školení v místě sídla zprostředkovatele nebo objednatele.
2.7. Přihlášky jsou přijímány a zpracovávány v pořadí, v jakém došly poskytovateli. Poskytovatel neprodleně informuje objednatele o všech skutečnostech. Těmi se míní naplnění kapacity, příliš nízký počet účastníků, nebo jiný závažný důvod, jako je nemoc lektora nebo zásah vyšší moci. Objednateli bude v tomto případě nabídnut nový termín, případně účast na jiné vzdělávací akci. V případě, že objednatel nebude s přesunutím či účastí na jiné nabídnuté vzdělávací akci souhlasit, poskytovatel mu vrátí účastnický poplatek. Nedostatečný účastníků je oznámen objednateli alespoň 14 dní před začátkem plánovaného termínu.
2.8. Smlouva mezi poskytovatelem a objednatelem vzniká odesláním potvrzení poskytovatelem objednateli.
2.9. Smlouvu lze změnit nebo zrušit pouze za splnění zákonných předpokladů a pouze písemně.

3. Zánik smlouvy zrušením přihlášky

3.1. Přihláška může být objednatelem zrušena pomocí e-mailu, nebo pomocí datové schránky.
3.2. Zákazník má právo stornovat svoji přihlášku na kurz 14 dní před konáním kurzu bez jakýchkoliv poplatků. Pokud se jedná o kratší dobu, dochází k následné změně. V intervalu 7-13 dní je účtován administrativní poplatek 10%, storno účasti v kratším intervalu než 7 dní pak poplatek 25%. V případě storna přihlášky nebo objednávky ze strany zákazníka je nabízena možnost účasti zákazníka v náhradním termínu bez dalšího poplatku. Právo na zrušení přihlášky zaniká realizací objednaného školení.
3.3. Při zrušení přihlášky školitelem náleží objednateli plná náhrada za neuskutečněnou akci.
3.4. Objednatel má právo žádat náhradní termín nebo náhradní školení. V takovém případě bude objednatel informován o všech otevřených kurzech. Náhradní termín si nelze vymáhat ani vynucovat, závisí na aktuální dostupnosti kurzu. Pokud má náhradní školení nižší cenu, objednatel doplatí rozdíl. Pokud má náhradní školení nižší cenu, školitel vrátí rozdíl cen školení objednateli.

4. Cena a platební podmínky

4.1. Odesláním přihlášky objednatel akceptuje smluvní cenu (dále jen účastnický poplatek) uvedenou u daného kurzu.
4.2. V případě více účastníků přihlášených jednou přihláškou je možná sleva.
4.3. Účastnický poplatek musí být uhrazen na bankovní účet společnosti vedený u Komerční banky č. 78-7768770207/0100. Při platbě je nutné uvést variabilní symbol, který je uveden na faktuře, odeslané objednateli školitelem.
4.4. Účastnický poplatek zahrnuje náklady poskytovatele včetně školicích materiálů. Poskytovatel je plátce DPH.
4.5. Účastnický poplatek je objednatel povinen uhradit do 14 pracovních dní od přijetí faktury, pokud nebylo samostatnou smlouvou uvedeno jinak.
4.6. Pokud se přihlášená osoba neúčastní školení a nedošlo k jiné domluvě, je její neúčast považována za storno příhlášku v intervalu kratším než 7 dní, tj. školiteli náleží odměna ve výši 25% z ceny kurzu. Přeplatek je vrácen do 14 dní na platební účet odesílatele, ze kterého byly prostředky odeslány. Platba na jiné číslo účtu není možná.
4.7. Nejdéle do 5 pracovních dní od začátku školení bude školitelem vystavena faktura, která bude dle dohody odeslána e-mailem nebo datovou schránkou.

5. Podmínky školení

5.1. Školitel je povinnen informovat objednatele 14 dní dopředu o místě a času školení, včetně termínu zahájení a ukončení denního programu.
5.2. Pokud objednatel není studentem kurzu, je povinnen zajistit distribuci těchto informací koncovým účastníkům. Za nesplnění těchto podmínek školitel nenese odpovědnost.
5.2. Standardně školení probíhá v čase od 9:00 do 17:00 na předem určeném místě.
5.3. Školitel může být dle aktuálních podmínek k dispozici od 8:00 do 9:00 a následně od 17:00 do 18:00 pro dotazy účastníků.
5.4. Na konci školení je koncovým uživatelům předán certifikát o absolovování.
5.5. Na konci školení koncoví uživatelé vyhodnocují přístup lektora a mají se vyjádřit k ohodnocení jeho prezentace, způsobu přednesení a ohodnotit významn poskytnutých informací.

6. Reklamace

6.1. Pokud je účastník hrubě nespokojen s průběhem kurzu, je školitel o této informaci vyrozuměn.
6.2. Důvody nespokojenosti jsou ten samý den zapsány do protokolu ve dvou kopiích. Jedna je předána objednateli a jednu má školitel.
6.3. Vyjádření k reklamaci bude podáno e-mailem do dvou týdnů. Následně do jednoho týdne bude domluven způsob řešení.
6.4. Nespokojenost zákazníka může být důvodem k rozvázání další spolupráce, nebo finanční kompenzaci až do výše ceny školení po odečtení nákladů.

7. Autorská práva k poskytnutým materiálům

7.1. Školicí materiály poskytnuté školitelem v rámci konání školení splňují znaky autorského díla dle zákona č. 121/2000 Sb.
7.2. Žádný ze školicích materiálů ani jeho část nesmí být bez předchozího písemného souhlasu školitele jakýmkoli způsobem dále zpracovávána, rozmnožována, rozšiřována nebo využívána k dalším prezentacím nebo školením.

8. Zodpovědnost

8.1. Školitel nepřebírá odpovědnost za nedostatky ve službách kterékoliv třetí strany, kterou využívá při školeních.
8.2. Školitel nepřebírá odpovědnost za zranění, škody a ztráty, vzniklé účastníkům vzdělávacích akcí, nebo které byly účastníky způsobeny. Takové náklady, způsobené uvedenými okolnostmi, ponese výhradně účastník vzdělávací akce.

9. Platnost podmínek

9.1 Tyto všeobecné obchodní podmínky jsou platné a účinné od 1. října 2024.

Informace o sběru a zpravování osobních údajů

Zpracovatel Jan Dušátko (dále jen „Správce“), dle nařízení Evropského parlamentu a Rady (EU) č. 2016/679 o ochraně fyzických osob v souvislosti se zpracováním osobních údajů a o volném pohybu těchto údajů a o zrušení směrnice 95/46/ES (obecné nařízení o ochraně osobních údajů, dále jen „Nařízení“) zpracovává osobní údaje. Dále jsou rozepsané jednotlivé osobní údaje, které jsou součástí zpracování při konkrétních aktivitách u této webové prezentace a v rámci obchodního styku.
Přestože je sběr dat všudypřítomný, provoz tohoto webu si zakládá na právu na soukromí každého uživatele. Z uvedeného důvodu sběr informací o uživatelích probíhá v naprosto nezbytné míře a to jen v případě, kdy se uživatel rozhodne kontaktovat provozovatele. Jakýkoliv další sběr a zpracování dat považujeme za neetický.

Informace o záznamech přístupu na webovou prezentaci

Tento web nesbírá žádné cookies. Stránka nepoužívá ani žádné analytické scripty třetích stran (sociální sítě, cloud provideři). Z těchto důvodů je také nabízena volba pro zobrazení mapy formou odkazu, kde primárním zdrojem je OpenStreet a alternativy pak často používané Mapy společnosti Seznam, a.s., případně Google Maps společnosti Google LLC Inc. Využití jakéhokoliv z těchto zdrojů je zcela na libovůli uživatelů těchto stránek. Správce nenese odpovědnost za sběr dat realizovaný těmito společnostmi, neposkytuje jim data o uživatelích a na sběru dat nespolupracuje.
Logování přístupů probíhá pouze na úrovni systému, důvodem je identifikace případných technických nebo bezpečnostních problémů. Dalšími důvody jsou přehledové statistiky přístupů. V této oblasti se nesbírají ani nesledují žádné konkrétní údaje a všechny záznamy o přístupech jsou po třech měsících mazány.

Informace o kontaktování provozovatele stránek

Formulář pro kontaktování provozovatele stránek (správce) obsahuje následující osobní údaje: jméno, příjmení, e-mail. Tyto údaje jsou určeny jen a pouze pro tuto komunikaci, odpovídající oslovení uživatele a jsou udržovány po dobu nezbytnou k naplnění účelu, maximálně pak po dobu jednoho roku, pokud si uživatel neurčí jinak.

Informace o objednávkovém formuláři

Pro případ zájmu o objednávku formulář obsahuje více údajů, tj. jméno, příjmení, e-mail a kontaktní údaje na organizaci. Tyto údaje jsou určeny jen a pouze pro tuto komunikaci, odpovídající oslovení uživatele a jsou udržovány po dobu jednoho roku, pokud si uživatel neurčí jinak. V případě, kdy na základě této objednávky dojde k uzavření obchodního vztahu, budou nadále správcem udržovány pouze informace vyžadované českými zákony na základě obchodních vztahů (název a adresa společnosti, číslo bankovního účtu, typ kurzu a jeho cena).

Informace o dokumentu o absolovování kurzu

V rámci kurzu je vydán zpracovatelem dokument o absolovování kurzu. Tento dokument obsahuje následující údaje: jméno a příjmení studenta, název a datum absolovování kurzu a jméno zaměstnavatele. Uvedené informace se následně používají pro tvorbu lineárního stromu hashí (nemodifikovatelný záznam). Tato databáze obsahuje pouze informace o poskytnutých jménech a názvech společností, které mohou a a nemusí odpovídat realitě a je udržován zpracovatelem pro případné opětovné vystavení nebo ověření vydání dokumentu.

Práva subjektu osobních údajů

Zákazník nebo návštěvník tohoto webu má možnost požádat o informace o zpracování osobních údajů, právo požadovat přístup k osobním údajům, případně právo požádat o opravu nebo výmaz veškerých dat, které by o něm byly vedeny. V případě výmazu tento požadavek není možné splnit pouze pokud se nejedná o data nezbytně nutná v rámci obchodního styku. Zákazník nebo návštěvník webu má dále právo na vysvětlení týkající se zpracování jeho osobních údajů, pokud tento zjistí nebo se domnívá, že zpracování je prováděno v rozporu s ochranou jeho soukromého a osobního života nebo v rozporu s platnými právními předpisy a právo požadovat odstranění takto vzniklého stavu a zajištění nápravy.
Zákazník/návštěvník tohoto webu dále může požadovat omezení zpracování nebo vznést námitku proti zpracování údajů a má právo kdykoliv písemně svůj souhlas se zpracováním osobních údajů odvolat, aniž by tím byla dotčena zákonnost jejich zpracování předcházející takovému odvolání. Pro tyto účel slouží kontaktní e-mail adresa support@cryptosession.cz
Zákazník/návštěvník má právo podat stížnost proti zpracování osobních údajů u dozorového úřadu, kterým je Úřad pro ochranu osobních údajů.