SH1 / MD5 / Eigenscript
Ik vroeg mij laats af, dat ik een tijd wat onderzoek had daan naar wat een goede beveileging is voor mijn site.
Ik zelf gebruik md5 voor de wachtwoorden
van de account van mijn klanten
en voor beheer account van mijn zelf en sommige beheerders gebruik ik ook nog dat alleen maar een paar IP adressen dat stuk site kan bekijken
Om te controleren of iemand correct is ingelogt gebruik ik nog een 2 de code per bezoeker die elke keer als hij inlogt anders is. en hij kan dan ook maar met 1 brower tegelijk ingelogt zijn.
Verder nog een script tegen brute-force dat je ip en account op slaat en je account eerst voor een tijd blockeerd en als je te vaak op de site bezig bent ook je ip voor de site blockeerd
Maar wat ik mij afvroeg is eigelijk
Kijk zo lang niemand achter je bron, van je PHP site kan komen dan is brute-force het enige waar je tegen moet beschermen...
of wel je moet je server tegen hakkers beschermen...
somige zeggen dat als je een eigen schript schrijft dat O's in 3'en, Q in H, enz veranderd
Moeilijk is te kraken... want dan weet de hakker niet waar hij mee te maken heeft... zo als bij MD5 en SH1
Maar als een hakker al zo ver is dat hij in jou Data base kan kijken dan kan hij waarschijnlijk ook in jou Bron Code kijken... of wel jou script lezen...
dus lijk mij dat de slechte Beveileging
en MD5 en SH1 is wel te hakken alleen kost je veel Computer kracht... per wachtwoord wat je moet kraken...
Dus vraag ik aan jullie
Wat gebruik jij als beveileging, voor je site?
Ik gebruik gewoon md5. Als een hacker jou echt wil hacken lukt dat toch wel!
De veiligheden die jij hebt opgeworpen zijn de volgende:
[1] White listing
Voorkomende fout hierbij is er vanuit gaan dat vanaf deze ip's geen hackers kunnen komen. Vertrouw hier niet blind op.
[2] Encryptie database
MD5 en SHA-1 zijn digests, en is geen encryptie. Dat wil zeggen: wanneer je een eigen script schrijft wat O's en 3's veranderd is het erg simpele encryptie, met
pen en papier terug te rekenen. Met MD5 en SHA-1 is dit onmogelijk. Wil je encryptie, dan werk je met sleutels, en deze zijn evengoed geheim, als is de manier van versleutelen dat niet. (zie blowfish, twofish, crypt, en andere bekende encryptie tools).
Conclusie: MD5 en SHA-1 zijn beter dan eigen gepiel. Wil je encryptie (niet aan te raden voor wachtwoorden) gebruik dan fatsoenlijke encryptie.
Maar de meest voorkomende lekken zijn niet lekken in md5, of dat alle mensen op de site kunnen. Dat zijn veelal lekken in veel gebruikte software (ftp servers, telnet servers, mysql servers, bind en sendmail) waardoor de gehele controle van de server uit handen gegeven kan worden. Maar voor het hacken van individuele sites zijn "XSS" hacks met stip nummer één. Deze lekken die met name in oude php scripts voorkomen zijn voor een groot deel ontstaan door het "register_globals" syndroom van php.
XSS staat voor cross site scripting, en maakt gebruik van foute verwijzingen naar scripts, slechte includes, en niet goed parsen van variabelen. Eigenlijk is de beste remedie voor veilige code: netjes coden.
Ruim loslopende testscriptjes op. Je grote script kan zo veilig zijn als alcatraz, maar graaf geen tunnels voor hackers door er allemaal lekke (niet nauwkeurig gecontroleerde) test scripts op je site te zetten.
Wanneer een hacker niet door de voordeur komt, zal deze proberen de achterdeur te zoeken, en dit komt veel vaker voor.
Quote:
Om te controleren of iemand correct is ingelogt gebruik ik nog een 2 de code per bezoeker die elke keer als hij inlogt anders is. en hij kan dan ook maar met 1 brower tegelijk ingelogt zijn.
Waar dat goed voor is? Een beetje facistische coder? De gebruiksvriendelijkheid van je code naar de plomp slepen?
Kijk:
Je kan elke encryptie gebruiken die je wilt +zorgen dat de data encrypt verstuurd word + meer+meer+meer .... maar in letterlijk 10 seconden hacken ze zo je hele server eraf ... en zelfs al heb je al je server instellingen perfectos en veiligos ( zogenaamt) dan hacken ze hem nog in 10 seconden. ( of ze veranderen files, adden een md5 string ( wactwoord) etc etc...
conclusie:
je moet je richten op de gemiddelde hacker en dan is het volgende genoeg:
md5 encryptie + bruteforce bescherming + eventuel zorgen dat je data encrypt verstuurd word ( tegen sniffers etc)
ps, Ik weet dat veel mensen hier zullen zeggen : zo makkelijk s dat niet server hacken als hij goed ingesteld is etc... ::: Maar de waarheid ligt anders ,
Overigens is het niet nodig je zorgen te maken daarover , ik zeg niet dat het snel gebeurd .. als je van een gewone hack poging uitgaat (als ze op paswords uit zijn) is wat ik hierboven heb genoemt "MEER" dan genoeg!!
Het belangrijkste is natuurlijk dat je script goed/veilig zijn geschreven ..
Voorbeeld van een relatief "GOED" veilig script is hackerhunter naarmijn mening:
http://www.polar-lights.com/hackerhunter/
donster:
Je kan elke encryptie gebruiken die je wilt +zorgen dat de data encrypt verstuurd word + meer+meer+meer .... maar in letterlijk 10 seconden hacken ze zo je hele server eraf ... en zelfs al heb je al je server instellingen perfectos en veiligos ( zogenaamt) dan hacken ze hem nog in 10 seconden. ( of ze veranderen files, adden een md5 string ( wactwoord) etc etc...
Gelul man.
Ze kunnen je hooguit DDoSsen ^^
Een goede server hack je niet zomaar, of je moet met 25 ppl tegelijk werken, en waar is dat voor nodig?
En ik zie ze de server van <insert bank naam> nog niet hacken ...
De waarheid is dat ik VEEL hackers ken die dit soort toegang hebben gehacked ( in hun uppie!)
en dat waren echt niet allemaal SUPER goede hackers.. ze hebben veel kennis van zaken en zijn niet bepaald "newbies" erin maar ze behoren nog steeds tot gemiddeld..
Een ander punt is overigens de "thuis" computers .. zijn zat computers met keyloggers etc ( het barst ervan) ik heb letterlijk ELKE DAG toegang tot minstens 30/40 nieuwe creditcard nummer.
Begrijp me niet verkeerd ik ben tegen het hacken/ het gebruiken van creditcard nummers en hacken van anderre zaken..
Maar ONDERSCHAT hacker niet .. "gemiddelde" hackers leggen de lat steeds hoger en "goede" hackers de lat nog hoger ... het is net als php'en , sporten ( of wat dan ook) je word steeds beter en beter .. en beveiliging moet ook steeds hoger en hoger...
maar back to topic: wat "victor perez" heeft is genoeg beveiliging en md5 is nog steeds "veilige" encryptie /hash ( maar als 1 iemand er iets op vind , dan kan heel hacking world het... denk echter dat er nog wel wat jaartjes overheen gaan voordat het mogelijk is md5 te kraken .. tot dan is hete en goede 1 way encryption (hash) die niet terug te draaien is.
http://phpug.nl/node/57 (speciaal voor PHP)
Trouwens voor iedereen die zijn script wil verbeteren tegen XSS, CSRF enz... kan kijk op de site Als md5 volledig terugrekenbaar is, dan is het misschien de hackwereld die het het eerst weet, maar 5 minuten later weten alle webservers en alle webloggers/tweakers/beveiligers het ook, aangezien veel mensen er gebruik van maken, en er ook steeds vaker nieuwsberichten opduiken van onderzoekers die proberen de hash te unhashen. En een hash unhashen, wat voor een techniek je ook gebruikt, duurt langer dan 30 minuten. En ik denk dat de iedere bank binnen 30 minuten wel mensen erop zet om de beveiliging te gaan controleren/server offline haalt.
Ja, als iemand het voor elkaar krijgt md5 te unhashen, dan zijn we nog niet jarig...
amen