wanneer gebruik je https?
Ik vraag me af wanneer je eigenlijk een https verbinding nodig hebt.
Als ik het goed begrijp dan versleutelt een https verbinding de data. Stel je hebt een website met een beheer/admin gedeelte, bijv. www.mijnsite.nl/admin, waarmee je de teksten op jouw website kunt wijzigen. Heb je hier dan een SSL certificaat voor nodig? Als ik kijk naar deze site bijvoorbeeld. Als ik inlog, dan gaat dat gewoon over een http verbinding.
Ik vraag me dus af wanneer je gebruik moet gaan maken van SSL?
Iemand die hier een antwoord op weet?
Groeten Ozzie
Gewijzigd op 26/10/2012 15:36:03 door Ozzie PHP
Om je op weg te helpen: 'Wanneer gebruik je https'. HTTPS is een protocol wanneer je SSL-certificaten gebruikt over een http-request.
Wanneer gebruik je deze? Puur op momenten waarbij je gebruikersgevoelige gegevens over het internet wilt verzenden die je graag gecodeerd ziet. Echter kost een certificaat een hoop geld, waarbij er toch een afweging gemaakt moet worden of het wel rendabel is.
Voor het inloggen op bol.com bijv. is het zeer rendabel. Bankzaken wil je niet onderschept zien worden. Maar op PHPhulp is het een minder zwaar belang om SSL te gebruiken. Het zou kunnen, maar Bas moet er ook in investeren.
Gewijzigd op 26/10/2012 14:16:19 door - Ariën -
Theoretisch/Optimalistisch gezien zou alles via een veilige verbinding moeten gaan. Zeker wanneer je persoonlijke gegevens achterlaat (gebruikersnaam/wachtwoord sowieso, maar ook contactgegevens in een contactformulier).
Het gaat om https://polyestershoppen.nl
Server set-up is: Nginx (SSL/Reverse proxy) + apache + mod_pagespeed. Ik ben hier ook een blog artikel over aan het schrijven over hoe je dit op kan zetten op Ubuntu :)
- Aar - op 26/10/2012 14:15:37:
Ik had eerlijk gezegd wel een betere titel van je verwacht :-)
Nou, vooruit... omdat jij het bent ;)
Maar wat ik graag wil weten is... stel je hebt bijvoorbeeld een website van een autogarage. Via een cms kan de eigenaar foto's + teksten van auto's toevoegen en wijzigen. Moet zoiets dan via een ssl verbinding??
Voor creditcardnummers is het overigens WEL verplicht.
Gewijzigd op 26/10/2012 15:42:01 door - Ariën -
Is het erg als zo een tekst of foto onderschept wordt? lijkt mij niet. Je wilt enkel niet dat je username en wachtwoord van de user en van de database onderschept worden. De login gegevens van de user kun je zelf coderen met sha1 en ik mag aannemen dat php de functie mysql_connect beveiligd heeft.
Frank... het gaat erom hoe je de gebruikersnaam en het wachtwoord veilig van de computer van de gebruiker naar de server krijgt. Daar vraag ik me dus vanaf of je daar een https verbinding voor zou moeten gebruiken. Wegen de kosten op tegen de extra veiligheid?
Toevoeging op 26/10/2012 15:53:33:
hmm ja dat is waar.. van je eigen pc naar de server met met een simpele post-request blijft een zwakke schakel.
Toevoeging op 26/10/2012 15:57:38:
Blijft toch zo dat de backend van een website geen geld gaat opleveren voor hackers. kunnen je alleen pesten met het vernielen van je database en instellingen. Maar het risico is niet zo groot als bij geldtransacies
Ja correct... maar stel nu even, doem-scenario. Op deze log je ook in zonder https. Stel iemand onderschept de gebruikersnaam en het wachtwoord van Bas (de beheerder). Dan kan diegene vervolgens de hele database leeggooien. Dat lijkt me nou niet echt wenselijk :-s
wenselijk niet, maar als bas een goede backup heeft dankzij een cronjob dan is de schade te overzien.
En zo'n "man in the middle" aanval, is dat een kwestie van "geluk" voor de hacker? Of kan hij echt gericht alle requests naar een bepaald domein "afluisteren"?
Ozzie ik ben geen expert, maar de man moet wel in het midden staan, dus tussen jou en de server in. ja de request naar een bepaald ip nummer of servernaam filteren is natuurlijk kinderspel. Er zijn natuurlijk wel een paar dingen die je kunt doen om het wat lastiger te maken: je kunt een loginform maken met een hiddenfield met een sleutelwaarde. je kunt crossscripting detecteren. Volgens mij is het risico dan aanvaardbaar
Wat heb je dan aan dat hidden field met een sleutelwaarde? Die wordt dan toch ook door de hacker onderschept?
hier gelezen. Misschien zeg ik het niet helemaal goed dus moet je zelf maar even lezen.
Ozzie ik heb dat Mocht iemand weten hoe / of je het verzenden van de gebruikersnaam en het wachtwoord kunt beveiligen dan hoor ik het graag.
Je kan ook een self-signed certificaat maken, dat is gratis, maar je wordt dan niet gevalideerd door een officiële instantie. Wanneer het voor intern gebruik is met een beperkt aantal gebruikers, is dat niet zo'n probleem. Let bij het accepteren van het certificaat dan wel goed op dat het het certificaat betreft dat je zelf hebt aangemaakt. ;-)
Ben overigens nog steeds benieuwd of er andere manieren zijn om het onderscheppen van een gebruikersnaam en wachtwoord tegen te gaan. Ik hoor maar weinig reacties eigenlijk, terwijl zeer veel sites een aanmeldprocedure hebben die niet over een beveiligde verbinding plaatsvindt. Betekent dit dan dat al die vele sites kwetsbaar zijn voor een "man in the middle" aanval?
Je zou de gebruikersnaam en wachtwoord client-side kunnen encrypten met JavaScript voordat het in post variabelen verstuurd wordt. Dan gaat het onleesbaar het netwerk over.
Toch is SSL wel de meest eenvoudige oplossing. Een Self-Signed certificaat gebruiken kan inderdaad ook maar zou ik niet doen voor productie doeleinden, klanten / bezoekers worden dan alsnog gewaarschuwt dat het mogelijk een onveilige verbinding is.
Overigens kost een simpel certificaat niet veel, voor 40 euro per jaar heb je er al een.
Thanks Kees, javascript encrypten lijkt me inderdaad nog een goede oplossing, en anders inderdaad maar een goedkoop SSL certificaat :)
@kees Kun je even zeggen waar je zo'n SSL certificaat hebt gekocht? :)