Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Správa webserveru Přednáška 4
Apache – proxy, bezpečnost, SSL
2
Obsah Apache jako proxy server Bezpečnost Dopředný server
Zpětný server Bezpečnost Zabezpečení přístupu k publikovaným dokumentům Ověření uživatele při přístupu k serveru Oddělení serveru od Internetu Šifrování přenosu dat Princip bezpečné komunikace Šifrovací metody Certifikát a certifikační autority Čipové karty, časová razítka a časové autority SLL, Apache a SSL, mod_auth
3
Zabezpečení přístupu Direktiva Order, Allow, Deny
Pořadí zpracování direktiv Allow a Deny určuje direktiva Direktiva Limit Slouží k povolení přístupu pouze pro konkrétní metody <Directory “C:/apache/test”> Order Deny, Allow Allow from all Deny from none </Directory> <Limit GET POST> Order Deny, Allow Allow from all Deny from none </Limit>
4
Zabezpečení přístupu Direktiva LimitExcept
Nastavuje přístup pro metody, které nejsou v direktivě uvedeny <LimitExcept PUT DELETE> Order Deny, Allow Allow from all Deny from none </LimitExcept>
5
Ověření uživatele Moduly modulu Modul mod_auth
Mod_auth – základní autentizační modul (hesla v souboru) Mod_auth_anon – umožňuje anonymním uživatelům přistupovat do autenizovaných oblastí Mod_auth_dbm – autentizace uživatelů uložených v DBM (Linux DB) Mod_auth_db – autentizace uživatelů uložených v DB (Berkeley DB) Modul mod_auth Direktiva require – vynucuje autentifikace uživatele Require User – Nastavení konkrétního uživatele Require Group – Nastavení skupiny uživatelů Direktiva AuthType - Nastavení typu autentifikace Basic – kódování uživatelského jména a hesla pomocí 64base Digest – hashování uživatelského jména a hesla pomocí MD5
6
Proxy server Proxy server je prvek, který se nachází na komunikační cestě mezi klientem a serverem, na který klient vznáší své požadavky. Proxy server umožňuje Zastupování Odkládání Protokolování
7
Typ proxy serveru Dopředný Zpětný
Klienti vznášejí své požadavky na proxy server a ten získá odpověď od požadovaného serveru. Zpětný Požadavky klientů jsou směrovány na zpětný server, který je obsluhuje ze své vyrovnávací paměti nebo o ně požádá jiného hostitele.
8
Dopředný proxy server Používá se pro úsporu šířky pásma
Umožňuje realizovat přístupové politiky Používání dopředného proxy server si musí každý uživatel nastavit
9
Zpětný proxy server Z pohledu internetu vznášejí klienti své požadavky přímo na webserver Uživatelé místního intranetu se připojují přímo k webserveru
10
mod_proxy ProxyRequests – aktivuje nebo deaktivuje službu proxy
ProxyRemote – propojuje náš proxy server s jiným proxy serverem ProxyPass – promítá dokumentový strom webového serveru do dokumentového prostoru serveru proxy ProxyBlock – zablokování přístupu ke specifikovanému hostiteli nebo doméně NoProxy – určuje co se bude obsluhovat proxy serverem a co přímo webserverem ProxyDomain – specifikace doménového jména proxy serveru
11
mod_proxy CacheRoot – povoluje odkládání na disk
CacheSize – velikost diskového prostoru pro case CacheGcInterval – kontroluje cache a odstraňuje expirované soubory CacheMaxExpire – definuje expiraci všech odložených dokumentů CacheLastModifiedFactor – stanovuje faktor pro výpočet expirace CacheDirLength – nastavuje počet znaků pro délku podadresářů CacheDirLevels – nastavuje počet podadresářů CacheDefaultExpire – nastavení implicitní dobu platnosti souboru, kdy není znám okamžik poslední změny soboru NoCache – specifikuje seznam hostitelů, pro která nebude prováděno cachování
12
Konfigurace proxy serveru
Konfigurace proxy serveru pro požadované URL Konfigurace proxy serveru pro požadované URL definované regulárním výrazem ProxyRequests On <Directory proxy:*> … </Directory> ProxyRequests On <Directory ~ proxy: … </Directory>
13
Konfigurace proxy serveru
Propojení soukromé sítě IP s Internetem Ukládání vzdálených webů do vyrovnávací paměti ProxyRequests On ProxyRequests On <Directory proxy:*> CacheRoot /www/cache CacheSize 1024 CacheMaxExpire 24 Order Deny, Allow Allow from mojesubdomena.upceuei.cz </Directory>
14
Konfigurace proxy serveru
Omezení přístupu na základě použitého protokolu <Directory proxy: … </Directory> <Directory proxy:ftp:*> … </Directory> <Directory proxy:shttp:*> … </Directory>
15
Konfigurace proxy serveru
Zrcadlení webového serveru <Directory proxy:*> ProxyPass /mirror/apache CacheRoot /www/cache CacheDefaultExpire 24 </Directory>
16
Principy bezpečné komunikace
Důvěrnost informací Systém musí zabezpečit, že neautorizované subjekty nebudou mít možnost přístupu k důvěrným informacím Integrita Systém musí zabezpečit informace proti neautorizované modifikaci Neodmítnutelnost odpovědnosti Systém musí zabezpečit prevenci proti ztrátě schopnosti přesvědčit třetí nezávislou stranu o přímé odpovědnosti subjektu za odeslání, případně přijetí zprávy.
17
Základní pojmy Šifrovací algoritmus
Šifrovací algoritmus je funkce, obvykle sestavená na nějakém matematickém základě, která provádí samotné šifrování a dešifrování dat. Šifrovací klíč Šifrovací klíč říká šifrovacímu algoritmu, jak má data šifrovat nebo dešifrovat. Klíče se podobají počítačovým heslům: jakmile informaci zašifrujete, musíte k jejímu dešifrování zadat správný klíč. Šifrovací algoritmus používá klíč při transformaci zašifrovaného textu zpět do nezašifrované podoby. Délka klíče Stejně jako hesla, i klíče mají nějakou předem určenou délku. Delší klíče jsou bezpečnější než kratší klíče, protože při použití útoku hrubou silou skýtají více kombinací. Různé šifrovací systémy umožňují použití klíčů různých délek, některé dovolují použití klíčů s proměnnou délkou. Výsledná kvalita ochrany dat spočívá ve zvolené šifrovací metodě, typem užitého algoritmu, jeho aplikací, a délkou šifrovacího klíče.
18
Šifrovací metody Symetrické šifrování Asymetrické šifrování
K šifrování a dešifrování dat se používá pouze jeden klíč. Tento klíč proto musí znát obě strany. Asymetrické šifrování Data se zašifrují veřejným klíčem a mohou být dešifrovány pouze klíčem soukromým.
19
Symetrické šifrování
20
Asymetrické šifrování
Přenos adresované, zašifrované (důvěrné), ale nepodepsané (neautorizované) zprávy.
21
Asymetrické šifrování
Přenos adresované, zašifrované (důvěrné) a podepsané (autorizované) zprávy.
22
Globální prostředí Bezpečná komunikace s využitím elektronického podpisu a šifrováním zprávy symetrickou šifrou.
23
Šifrovací algoritmy se soukromým klíčem
DES, 3DES - Data Encryption Standard (DES) je šifrovací algoritmus, vyvinutý v 70. letech Národním úřadem pro standardy a technologie (dnes National Institute of Standards and Technology, NIST) a firmou IBM. DES používá klíč o délce 56 bitů. RC2, RC4 - Blokové šifry původně vyvinuté Ronaldem Rivestem a uchovávané jako obchodní tajemství firmy RSA Data Security. RC5 - Bloková šifra vyvinutá Ronaldem Rivestem, publikovaná v roce RC5 umožňuje uživateli definovat délku klíče, délku bloku dat a počet šifrovacích průchodů. IDEA - International Data Encryption Algorithm (IDEA), vyvinutý Jamesem L. Massey a Xuejia Lai v Curychu, publikovaný v roce 1990. Skipjack - Algoritmus s klasifikací Tajný, vyvinutý Národní bezpečnostní agenturou (NSA).
24
Šifrovací algoritmy s veřejným klíčem
Diffie-Hellman - Systém pro výměnu kryptografických klíčů mezi dvěma stranami. Nejedná se vlastně o šifrovací algoritmus, ale o metodu pro výměnu sdíleného privátního klíče přes veřejné komunikační kanály. RSA - Známý kryptografický systém s veřejným klíčem, vyvinutý (tehdejšími) profesory MITu Ronaldem Rivestem a Adi Shamirem a profesorem USC Leonardem Adlemanem. RSA je možno použít jednak jako šifrovací algoritmus a také jako základ pro systém digitálních podpisů. ElGamal - Algoritmus založený na exponenciální a modulární aritmetice. Podobně jako RSA algoritmus se dá použít k šifrování a digitálním podpisům. DSA - Digital Signature Algorithm, vyvinutý v NSA a převzatý NISTem jako federální standard pro zpracování informací (FIPS). Přestože algoritmus DSA může používat klíče libovolné délky, podle FIPS je možno použít pouze klíče o délce 512 a 1024 bitů.Jak vyplývá z názvu, DSA slouží pouze pro digitální podpisy, dá se však upravit i pro potřeby šifrování.
25
Certifikát Certifikát je zašifrovaná informace, která spojuje veřejný klíč s pravou identitou subjektu. Vydavatel certifikátu se označuje jako certifikační autorita Certifikační autorita Komerční Vydávají certifikát na základě prověření zákonných záznamů. Např.: Soukromá (samo certifikační) Vydává si certifikáty sama k vlastní potřebě. Nepředpokládají se klienti, kteří by ji nevěřili.
26
Certifikační autority
V ČR První certifikační autorita a.s. - CZ Czechia - TrustPort - Ve světě VeriSign - GeoTrust - Comodo - CACert -
27
Obsah certifikátu V základní formě V rozšířené formě veřejný klíč
jméno a další údaje zajišťující nezaměnitelnost subjektů V rozšířené formě datum počátku a datum ukončení platnosti jméno certifikační autority, která certifikát vydala sériové číslo
28
Čipové karty Pasivní karty Aktivní karty
Pasivní čipové karty obsahující podstatnou informaci (kryptografické klíče), která je zpracovávána vnější aplikací (slouží pouze pro úschovu této informace). Aktivní karty Aktivní čipové karty obsahující kromě podstatné informace (kryptografických klíčů) rovněž aplikaci, která tuto informaci využívá. Vnější aplikace tuto informaci smějí používat pouze zprostředkovaně.
29
Časové razítka a časové autority
Občas je nutné společně s digitálním podpisem přidat informaci, kdy byl dokument podepsán (různé žádosti, daňová přiznání, atd.) Je nutná nezávislé autority, která zajišťuje důvěryhodný zdroj času. Časové razítko Časové razítko (Time stamp TS) je struktura obdobná certifikátu, která svazuje kontrolní součet (hash) z dokumentu s časem. Časové razítko je elektronicky podepsáno (vydáváno) autoritou pro vydávání časových razítek ( Time Stamping Authority - TSA). Mezinárodní standardy pro oblast časových razítek: Internet X.509 Public Key Infrastructure Time-Stamp Protocol (TSP) -
30
Časové razítka a časové autority
Časová autorita (Time Stamping Authority –TSA) Třetí strana, která podepisuje každé časové razítko privátním klíčem vyhrazeným pouze k tomuto účelu. TSA musí být bezpečným způsobem napojena a v pravidelných časových intervalech synchronizována proti nejlépe třem na sobě nezávislým zdrojům času. TSA používají mezinárodní standard Coordinated Universal Time UTC, který byl schválen již v roce 1972. Vydání časového razítka Klient vytvoří o odešle tzv. žádost o časové razítko ve standardizovaném formátu. Žádost o časové razítko je datová struktura obsahující kontrolní součet (hash) z dokumentu. TSA odesílá časové razítko, což je elektronicky podepsaná datová struktura obsahující číslo časového razítka, kontrolní součet z dokumentu, čas a název vydavatele časového razítka.
31
Elektronický podpis (electronic signature)
Princip elektronického podpisu Nejprve je z podepisovaných dat vypočten kryptografický kontrolní součet. Z kryptografického kontrolního součtu je na základě tajného klíče vypočten elektronický podpis. Příjemce ověří, že elektronický podpis vyhovuje veřejnému klíči odesilatele. Vypočte kryptografický kontrolní součet přijatých dat a porovná jej s kryptografickým kontrolním součtem, který obdržel od odesilatele. Pokud součty odpovídají, je ověřeno, že data nebyla po odeslání klientem změněna. Elektronický podpis plní dvě základní funkce: Integrita – digitální podpis indikuje, zda nedošlo k modifikaci souboru nebo zprávy Autentizace – digitální podpis umožňuje matematicky ověřit, kdo zprávu podepsal
32
Elektronický podpis v ČR
V České Republice upraven zákonem o elektronickém podpisu č.227/2000 Sb. ze dne Další zákony a vyhlášky které upravují problematiku elektronického podpisu v ČR: Zákon 227/2000 Sb. o elektronickém podpisu Novela zákona o elektronickém podpisu (č. 440/2004 Sb.). Vyhláška 366/2001 Sb. Úřadu pro ochranu osobních údajů Zákon 101/2000 Sb. o ochraně osobních údajů Zákon 226/2002 Sb. upravující zákon o elektronickém podpisu
33
Problémy spojené s el. podpisem
ověřování elektronického podpisu po delším čase od jeho vytvoření (např. poté co vyprší certifikát určený pro verifikaci tohoto podpisu) dlouhodobá archivace elektronicky podepsaných dokumentů
34
Secure Sockets Layer SSL vyvinula firma Netscape Commmunications pro zajištění bezpečné komunikace mezi klientem a serverem. SSL je komunikační protokol, který zajišťuje šifrování dat, autentizaci serveru,datovou integritu a autentizaci klienta pro komunikaci na bázi protokolu TCP/IP.
35
Verze SSL Verze 2.0 – první verze uvolněná pro používání, měla poměrně dost slabých míst a byla snadno napadnutelná Verze významná úprava bezpečnostních vlastností verze 2.0 TLS (Transaction Layer Security) – někdy označován jako SSL 3.1, vznikl v rámci IETF jako internetový standard pro nahrazení 3.0 Protokol TLS je založen na specifikaci protokolu SSL 3.0 publikované firmou Netscape. Rozdíly mezi TLS 1.0 a SSL 3.0 nejsou dramatické, ale jsou natolik významné, že spolu protokoly nespolupracují (ačkoliv TLS 1.0 obsahuje mechanismus pro zpětnou kompatibilitu se SSL 3.0).
36
Sub-protokoly SSL SSL Handshake Protokol
SSL Change Cipher Spec Protocol SSL Alert Protocol SSL Record Protocol
37
Handshake Protocol SSL Handshake Protocol
Klient odešle verzi SSL, informace o šifrách, které používá a náhodně generovaná data Server odešle svoji verzi SSL, informace o šifrách, které používá, náhodně generovaná data a svůj certifikát Klient pomocí získaného certifikátu ověří důvěryhodnost serveru, pokud tak nelze učinit, je o tom informován uživatel a spojení je ukončeno Klient vytvoří z dat dosavadní komunikace tzv. premaster secret, zašifruje ho pomocí veřejného klíče serveru získaného z certifikátu a odešle ho serveru Server použije svůj privátní klíč k dešifrování premaster secret a vytvoří z něj master secret, ze kterého si vygeneruje klíč sezení Klient si rovněž vytvoří master secret a z něj vygeneruje klíč sezení Klient zašle zprávu serveru, že další data budou šifrována klíčem sezení a odešle zašifrované sdělení, že fáze handshake byla u něj skončena Server rovněž zašle, že další data budou šifrována klíčem sezení a odešle zašifrované potvrzení, že fáze handshake byla u skončena
38
SSL Handshake Protocol
39
Change Cipher Spec Protocol, Alert Protocol
SSL Change Cipher Spec Protocol Tento protokol je používán v poslední fázi činnosti SSL Handshake protokolu. Jeho účelem je umožnit účastníkům přesun z vyčkávacího do provozního stavu. To znamená, že účastníci ukončí použití algoritmus výměny klíčů a začnou používat šifrovací a ověřovací algoritmy, které byly definovány v předchozích fázích Handshake protokolu. SSL Alert Protocol Významem tohoto protokolu je předávání informací o chybách objevujících se v průběhu celého spojení (connection). Výstrahy (alerts) jsou dvou úrovní – fatální a varovné. Pokud se objeví fatální výstraha, spojení je okamžitě ukončeno. Ostatní spojení používající stejnou cestu (session) mohou pokračovat, ale session ID bude označeno jako neplatné, takže na této cestě nebude možné navázat žádné nové spojení.
40
Record Protocol SSL Record Protocol
Přenášená data jsou v případě protokolu SSL balena do objektu nazývaného record. Record obsahuje hlavičku a data (formát přenášených dat).
41
Apache a SSL Na Apache lze SSL provozovat jako:
Modul -mod_sssl ( Dopňek Apache-SSL ( Nutné použít kriptografickou knihovnu OpenSSL
42
mod_ssl LoadModule ssl_module modules/mod_ssl.so <IfDefine SSL>
Přidání sdíleného modulu Přidání standardního protokolu pro HTTPS 443 Přidání typu MIME (.crt-certifikační soubor, .crl-seznam zrušených certifikátů) PHP je soubor php.ini LoadModule ssl_module modules/mod_ssl.so <IfDefine SSL> Listen 80 Listen 443 </IfDefine> <IfDefine SSL> AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl </IfDefine>
43
mod_ssl <IfModule ssl_module> SSLPassPhraseDialog builtin
Přidání standardního protokolu pro HTTPS 443 <IfModule ssl_module> SSLPassPhraseDialog builtin SSLSessionCache shmcb:C:/apache/logs/ssl_scache(512000) SSLSessionCacheTimeout 300 SSLMutex default SSL LLog “C:/apache/logs/ssl_engine_log” SSLLogLevel info </IfDefine>
44
mod_ssl <VirtualHost _default_:443>
Implicitní nastavení SSL pro virtuální hostitele <VirtualHost _default_:443> DocumentRoot “C:/apache/htdocs” ServerName test1.upceuei.cz:443 SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile “C:/apache/conf/server.crt” SSLCertificateKeyFile “C:/apache/conf/server.key” <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> </VirtualHost>
45
Vytvoření klíče a certifikátu
Vytvoření soukromého klíče při tvorbě zadat do „Common Name” přesné jméno domény pro kterou bude certifikát platný Výsledkem jsou soubory: .rnd – soubor s náhodnými daty, podle kterých se vytvořil klíč my-server.csr – certifikát privkey.pem – soukromý klíč openssl req -config openssl.cnf -new -out my-server.csr
46
Vytvoření klíče a certifikátu
Vytvoření serverového šifrovacího klíče Výsledkem je soubor: my-server.key – klíč kterým server šifruje komunikaci Vytvoření certifikátu Obdrží na začátku komunikace klientův Výsledkem je certifikát s platností 365 dni my-server.cert openssl rsa -in privkey.pem -out my-server.key openssl x509 -in my-server.csr -out my-server.cert -req -signkey my-server.key -days 365
47
Vytvoření klíče a certifikátu
Vytvoření samostatného certifikátu Pro potřebu starších prohlížečů, do kterých se musí certifikát ručně stáhnout a nainstalovat. Výsledkem je certifikát my-server.crt openssl x509 -in my-server.cert -out my-server.crt -outform DER
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.