Autor Zpráva
ondrej256
Profil *
Zdravím,

Chtěl bych se zeptat jak udělat alespoň základní zabezpečení na webu.

Na webu se registrovaná uživatel může přihlásit. Když se posílají data při přihlašení metodou post přes php pomocí protokolu http tak se dají přihlašovací údaje lehce odchytnout pokud se přihlašujeme přes wifi (Odzkoušeno). Vyděsilo mně jak je to snadné a tak jsem začal zkoušet hledat na netu jak udělat nějaké základní zabezpečení. Bohužel jsem nic nenašel Tak mě napadlo vyzkoušet protokol https. Když jsem ho zkusil tak na mě vyskočila hláška, že se jedná o nedůveryhodný server a pokud uživatel neví jistě že se jedná o bezpečný web tak ať raději nepokračuje, v opačném případě si může v prohližeči přidat výjimku a pokračovat v přihlášení.

Ala jakým dojmem by web působil, pokud by vyskakovala taková hláška.

Je nějaký způsob jak tento problém odstranit?
Zvýší https bezpečnost?
Jaké jiné způsoby se používají pro zabezpečení takové komunikace?


Předem Děkuji
MyShare
Profil
Nazdar ondrej256
Čo sa týka tej hlášky a prihlasovania cez https ide o to, že pokiaľ nebudeš mať SSL certifikát k doméne bude to robiť každému a tým pádom bude web vyzerať ako nedôverihodný ....
Anonymní
Profil *
Taky zdravím,
Tak jedno po druhém:

ondrej256:
Ala jakým dojmem by web působil, pokud by vyskakovala taková hláška.
Blbým, když na mě vyskočí nějaká takováhle hláška hned odcházím a je mi jedno co to je. Diskredituje to celý web.

Je nějaký způsob jak tento problém odstranit?
Lze si koupit vlastní certifikát a není to nějaká zas horentní suma.

Zvýší https bezpečnost?
Ano zvýší, ale i https jde podvrhnout - myslím že tato technika se jmenuje man in middle ale nejsem si jistý. Ale tohle už není tak lehké jako náhodně chytit paket někde na otevřené wifině.

Jaké jiné způsoby se používají pro zabezpečení takové komunikace?
Záleží na povaze co se odesílá, ale upřímně pokud je to něco důležitého tak je krávovina se přihlašovat přes wifinu v mekáči a upřímně WPA2 se silným heslem je dostatečné zabezpečení proti snifferům. Takže dalším způsobem "ochrany" je silné heslo na wifině, používat LAN či třeba připojovat se přes mobilní sítě. Další typ ochrany je třeba ověřovaní pomocí SMS(ale v dnešní době smartphonu je to taky už pasé)

https je standart který vyžaduji od webů typu eshop, bankovnictví. Na facebooku to beru jako spíše kosmetický doplněk - upřímně mě je úplně u řitě že mě nějaký zoufalec bude procházet zprávy. Stejně tak od různých fan pages je mi putna jestli komunikuji přes http či https. Záleží na tobě jestli se vyplácí do certifikátu investovat.

Takhle: upřímně riziko odchytu paketu je fakt minimální. Vzhledem k tomu že wifi má minimální dosah, spíše bych se bál věcí typu keylogger či vlastní blbosti(většina odhalených hesel je tak, že to někdo vykecá svoje heslo někomu jinému)
Amunak
Profil
ondrej256:
Ano, tak HTTPS bohužel funguje. Nejde využít šifrování a ochranu proti primitivním MitM útokům, aniž bys odradil většinu zákazníků (pokud nechceš platit certifikát). Přihlášení by rozhodně šlo vylepšit pomocí javascriptu - třeba zašifrovat heslo než se pošle na server. Pořád by to šlo třeba podvrhnout útočníkem, ale zbavíš se problému, kdy jde jen ze síťového provozu (požadavků) jednoduše vyčíst přihlašovací údaje.

Anonymní:
Pokud potřebuješ hostovat víc jak jeden web na jedné IP adrese, je to dost horentní suma. Certifikáty s platností na víc domén jsou neuvěřitelně drahé (ono i ty obyčejné se základním ověřením nejsou zrovna zdarma), a pokud chceš používat jen výchozí port (443), nemůžeš pro více webů využít více certifikátů (to je mimochodem důvod, proč na sdíleném hostingu uvidíte HTTPS obvykle jen za příplatek), a musíš weby hostovat na různých IP adresách. A ty jsou dnes drahé.

Ano zvýší, ale i https jde podvrhnout - myslím že tato technika se jmenuje man in middle ale nejsem si jistý. Ale tohle už není tak lehké jako náhodně chytit paket někde na otevřené wifině.
Certifikát nejde podvrhnout. Resp. jde, ale pak se právě zobrazí to varování o neplatném certifikátu - to, co každého odradí od návštěvy webu, i když by šlo o vlastnoručně vystavený certifikát.
HTTPS funguje na tom principu, že certifikát, který dodá server, je obvykle podepsaný nějakou důvěryhodnou instancí (Certification Authority - CA), a její veřejný klíč je už předem zabudovaný v počítači nebo prohlížeči, takže jde snadno ověřit, jestli je ten který certifikát skutečně platně podepsaný danou autoritou. To je právě ten mechanizmus, který zabraňuje man in the middle útoku. Pokud si vydáš a podepíšeš certifikát sám, bude sice nedůvěryhodný, ale problém s čtením hesel v plaintextu by to řešilo. Jak jsi ale sám psal - ta varovná hláška většinu uživatelů odradí.

https je standart který vyžaduji od webů typu eshop, bankovnictví. Na facebooku to beru jako spíše kosmetický doplněk - upřímně mě je úplně u řitě že mě nějaký zoufalec bude procházet zprávy.
A že se pod tvým jménem (Facebook účtem) pak třeba může přihlašovat (přes OpenID) na cizích webech ti nevadí? Navíc spousta lidí má všude stejná hesla - stačí odchytit jedno, a útočník má přístup všude.

ondrej256:
Podle mě je v tomhle HTTPS špatně navržené. Je to systém všechno, nebo nic. Kompletní ochrana, nebo žádná ochrana. Obzvlášť v dnešní době se pořád omílá šifrování, zabezpečení a já nevím co ještě, a přesto taková prkotina, jako zabezpečené přihlášení, je obtížná a drahá záležitost.

Jsou různá řešení:
- Pokud jde o web, který sdílíš jen s lidmi, které můžeš předem kontaktovat, tak jim řekneš, ať varováíní ignorují. Nebo lépe - vytvoříš si vlastní certifikační autoritu a její certifikát s veřejným klíčem těmto lidem dáš, aby ho nainstalovali do svého počítače/prohlížeče. Pak tebou vydané certifikáty uvidí jako věrohodné a web bude úplně zabezpečený. Zdarma.
- Pokud ti stačí nějaký základ - jedna doména, varianta bez subdomény a jedna volitelná subdoména (nejspíš teda asi www.), platné certifikáty zdarma vydává startssl.com.
- Nějaké šifrování si sám implementuješ v Javascriptu.
- Zaplatíš si vlastní certifikát.

Hlavně si prvně zkontroluj, jestli tvůj webhosting (pokud nemáš vlastní server) vůbec podporuje HTTPS, a kolik se za to platí. Jestli máš vlastní server, pak pamatuj, že jde použít pouze jeden certifikát na doménu a port (existuje varianta, kdy prostě z nezabezpečené domény - třeba i jen na přihlášení - přesměruješ uživatele na adresu s jiným portem, takže jdou certifikáty rozlišit). To je omezení dané tím, jak HTTPS funguje (totiž to, na jakou doménu se uživatel připojuje, se server na zabezpečeném HTTPS spojení dozví až po tom, co proběhne výměna certifikátů - a server tedy klientovi může poslat jen jeden certifikát).
Nejsem si tím úplně jistý, ale mám takový pocit, že jsem někde četl, že HTTPS na nestandartních portech některé prohlížeče považují za nebezpečné a taky pak vyhazují varování. Ve výsledku je prostě nejvýhodnější mít pro každý web jinou IP (což je tedy výhodné už z principu), a všechny certifikáty zakoupené od nějaké renomované certifikační autority.

Oni na to mají tak trochu monopol, takže ceny jsou vysoké. Ale zase to zaručuje skutečnou bezpečnost lidem (a hlavně firmám), které si to zaplatí.

Trochu jsem se rozepsal, doufám, že je to pochopitelné.

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: