Robain
Legacy Member
Messias. zei:
Aja kwist niet dat da een salt was, ma da was ik sowieso van plan

khad da eigenlijk zelf kunnen opzoeken, my bad

Volg de onderstaande video om te zien hoe je onze site als web-app op je startscherm installeert.
Opmerking: Deze functie is mogelijk niet beschikbaar in sommige browsers.
Messias. zei:


Robain zei:- Hoe voorkom ik dat ze de code decompileren? Ik weet dat er voor php iets bestaat waarmee je je code kan beschermen. Is het zoiets waar jij op doelde Krueger?
Dit klopt allemaal. Maar ik wel erop wijzen dat dit hackers met ervaring echt niet lang tegenhoud hoor...Krueger zei:Om je code te beschermen kan je het volgende doen: eerst obuscatie: Hierbij smijt je allemaal spaghetticode, extra functies die niets doen, recursieve functies die niets doen,... tussen je code. Daarna jaag je die geobfusceerde code door een andere soort vervormer, die alles zal hernoemen. Je variabelen noemen dan a1,a2,a3 etc en hetzelfde voor de functies, klassen,...
Deze combinatie maakt het zeer moeilijk om je code te lezen.
Voor beide soorten vervormingen bestaan er wel programma's.
Maar ik blijf er wel bij, als je die dingen lokaal gaat laten runnen, heeft het hashen volgens mij geen enkel nut.
RipTor zei:Paswoorden moet je altijd ge-encrypteerd opslaan in je databank.
De gebruiker tikt zijn paswoord in. Je encrypteerd dat. En je vergelijkt dat met het geencrypteerde in de databank.
Dan moet je ook nog een goeie salt gebruiken.
Op volgende website vind ge de java versie van wat Unix gebruikt (crypt dus) om zijn paswoorden te decrypteren. Dit algoritme is al jaaaaaaren oud en nog nooit is dat gedecrypteerd geraakt.
Dat ze uw code kunnen decompileren maakt met crypt dus geen zak uit. Het is niet om te keren naar een decryptie algoritme.
Crypt is dus de algemene standaard kwa paswoord beveiliging.
(blowfish is om iets te encrypteren wat ook daadwerkelijk gedecrypteerd moet raken (bijvoorbeeld bestanden die over het internet over en weer moeten gaan en onderschept kunnen worden) en zeker niet geschikt voor paswoord encryptie).
In ieder geval is de gouden regel : Als er een methode bestaat om het paswoord te decrypteren dan is uw beveiliging zeer zwak.
)
In normale situaties staat die databank op een andere pc dan waar uw programma loopt (op ne servert toch).Robain zei:crypt (of md5), icm met een random, lange salt zal dus idd een zo goed of onkraakbare manier geven om een paswoord op te slaan.
Maar, als je je encrypted paswoord opslaat is het toch niet zo moeilijk voor een hacker om gewoon het encrypted pasw in de db te vervangen door zijn eigen encrypted pasw. Als hij dan de salt vind door decompileren heeft hij toegang... In de db raken kan toch ook niet zo moeilijk zijn want ergens moet dat db systeem zijn paswoord opslaan waar hetzelfde kan toegepast worden...
Maar dit lijkt me nogal extreem, dus ik denk dat het idd zal voldoen zoals jullie voorstelden.
Volgende probleem, hoe makkellijk/moeilijk is het om de data gewoon rechtstreeks uit de db te weten te komen? Let wel, de database moet nog bruikbaar zijn, alles AES encrypted opslaan in de db is dus niet echt een optie...
Greetz, en vielen danksh fur de fielen antfwoorden (nee ik kan absoluut geen Duits)
Dat maakt maar zeer weinig uit.Robain zei:Vich, dat lijkt me een zeer goed idee
Zouden programma's die op die manier gecompileerd zijn dan ook niet een heel stuk sneller zijn dan programma's die gecompileerd worden met de Sun java-compiler??? Daar moet het immers eerst nog door virtual machine terwijl dit rechtstreeks zou zijn?
Ik wil er ook op wijzen dat GWJ niet alle functies van java ondersteund. Ik heb hier op mijn werk nog maar 1 project gevonden dat zowel werkt onder Sun als onder GCJ. Dat is dan een project van 8 jaar terug wat nog geen swing gebruikt. Ik heb enkel getest of de programma's opstarten. Het enige waar ik dus zeker van ben is dat dat programma opstart (en een 20-tal andere niet opstarten). Ik heb dus ook zeer grote twijfels over de stabiliteit van dat ene programma dat wel opstart.Dit lijkt me perfect, paar versies. Een versie die gemaakt is voor mensen die hoge beveiliging wensen maar cross-platform verliezen, en voor de rest de gewone cross-platform versie...
Robain zei:Vich, dat lijkt me een zeer goed idee![]()
Ksnap nog altijd waarom ge denkt dat dat geen nut heeftKrueger zei:Maar ik blijf er wel bij, als je die dingen lokaal gaat laten runnen, heeft het hashen volgens mij geen enkel nut.
.Als je die code zo in je programma zet.killgore zei:omdat je het paswoord rechtstreeks kan gebruiken.
kijk, als jij leest:
if(md5hash(pass)==myhashedcontroller))
met myhashedcontroller zo een mooie lange typische md5 string
Dan ben je niets verder, want zelfs al zou je die md5 string gebruiken als password, dan gaat hij die md5string weer opnieuw hashen en (gelukkig) de md5 hash van een md5 hash is een andere md5 hash.
Voor crypt bestaat er geen decryptie algoritme.Het voordeel van een hash tov encryptie: voor encryptiemethoden bestaan er altijd decrypties
Dat noemt gewoon "hashen" in de volksmond, en is eigenlijk geen echte encryptie. Da's een onderdeel van de cryptografie, da's waar, maar om een paswoord op te slaan in een database maak je gebruik van een hashing-algoritme, niet van een encryptiealgoritme.RipTor zei:Voor paswoorden: niet decrypteerbare encryptie. Geencrypteerd paswoord opslaan in de db en de geencrypteerde versies met elkaar vergelijken.
Ok, even wat ontkrachten. Die MD5 reverse is geen algoritme dat een hash kan ontcijferen, dat is een gigantische database vol woorden en zinnen met hun bijhorende hash. In die database wordt dan de hash opgezocht en bijhorende tekst wordt weergegeven. Dit fenomeen heet rainbow tables en doet in feite niets af aan de sterkte van hashing, zolang je een cryptografisch sterk paswoord gebruikt.RipTor zei:'md5 hash reverse'
Als alles lokaal staat, welk nut heeft het dan ?killgore zei:Ksnap nog altijd waarom ge denkt dat dat geen nut heeft.
Dat is toch de kernvraag.Robain zei:stel dat er iemand de pc in handen krijgt waarop de database staat (en dus wss ook het programma), is er dan een manier om te voorkomen dat deze persoon de de inhoud van de database te weten komt?
Maar uiteindelijk moet je toch "iets" bijhouden dat niet op de pc staat ? (bv een key op een papierke).Acku. zei:Waarom zou een lokale database niet te beveiligen vallen? De login kan intern toch ook versleuteld zijn, en de data encrypted? Een database is toch niet anders dan een applicatie met een interface?
)Nee want ge wilt dat paswoord niet decrypteren...MilM zei:Maar uiteindelijk moet je toch "iets" bijhouden dat niet op de pc staat ? (bv een key op een papierke)
Of hoe werkt zoiets dan ? (want indien je met een gewoon pass werkt, dan moet de key ergens op de hd staan en is ze dus te vinden toch)
Eerder een vraag uit interesse, want ik heb mij ooit al eens dezelfde vraag gesteld als de topicstarter (nooit antwoord op gezocht omdat ik het niet nodig heb en lui ben)
Ik ben het daar min of meer mee eens. Als die pc goed is geconfigureerd kan men daar niet eens op inloggen, laat staan voldoende rechten krijgen om de config van postgres aan te passen.dJeez zei:Als je lokaal gaat werken waarom zou je dan opteren voor PostgreSQL? Dan zijn er wel andere opties, en zou ik eerder iets als HSQLDB of SQLite aanraden.
Het grappige is dat heel jullie discussie ivm MD5 hashes eigenlijk totaal naast de kwestie is. Of de paswoorden nu leesbaar zijn of niet maakt geen zak uit als iemand rechtstreeks de gegevens in de database kan consulteren. En dat kan je dus zonder enig probleem doen (zelfs zonder paswoord) op een lokaal geïnstalleerde PostgreSQL database (ff de configuratie aanpassen en de toegang voor de gewenste gebruiker op trusted zetten) - en bij uitbreiding kan dat ook op zowat elk RDBMS dat ik ken (ik kan er toch niet direct eentje bedenken waar het niet het geval is).
Enkel indien de gegevens in de gevoelige kolommen daadwerkelijk geencrypteerd zijn kan je ervan uitgaan dat het zo goed als onmogelijk is om de inhoud ervan te achterhalen (tenzij je je encryption key zou laten rondslingeren).