Computerbeveiliging - Hoe je bad guys buiten de deur houdt

Anonimiseren van usernames

15-01-2013, 15:00 door Bj0rn, 9 reacties
Beste security.nl lezers,

Ik ben op dit moment aan het onderzoeken of er een mogelijkheid is om usernames in een MySQL database te anonimiseren. De bedoeling hiervan is dat de usernames anoniem worden opgeslagen, maar op het moment dat er met de juiste credentials op de database wordt ingelogd, de anonieme gegevens weer zichtbaar worden.

Hebben jullie misschien een goede tip?

Mvg
Reacties (9)
15-01-2013, 15:18 door [Account Verwijderd]
[Verwijderd]
15-01-2013, 15:38 door Bj0rn
Beste Hugo,

Ik zal het nog iets specifieker omschrijven. De bedoeling is als het ware dat gegevens die extern in de database worden geimporteerd op het moment na importeren random worden gemaakt, en wanneer ze vervolgens weer worden opgevraagd moeten ze weer decoded worden.

Nicknames zijn hier dus geen oplossing voor, omdat het om namen gaat die wel moeten kloppen.

mvg
15-01-2013, 15:46 door didrix
Als je mensen laat inloggen met hun echte naam kan je die gehashed opslaan, en wanneer ze inloggen controleren met de hash en de echte naam opslaan in een sessie-variabele? Dan komt de echte naam nooit in de database, maar kan je toch je echte naam gebruiken.
15-01-2013, 15:48 door Ramon.C
Misschien heb je hier wat aan: http://i.amniels.com/mysql-database-encryption-using-public-private-keys

Daarnaast kan je bv een database Firewall gebruiken zoals GreenSQL
15-01-2013, 17:27 door Anoniem
Je beste mogelijkheden zijn 1) niet opslaan, 2) offline opslaan, niet aan het 'net, en 3) onomkeerbaar verhaspeld opslaan. Dat laatste betekent dat je niet meer simpelweg kan opvragen maar eigenlijk alleen nog maar vragen als "heb je deze al eerder gezien?" met ja of nee kan beantwoorden. Zeg maar dezelfde truuk als die standaard voor wachtwoorden gebruikt wordt (nouja, soms dat ook nog niet eens).

Verder, als je serieus met versleuteling aan de gang wil dan raad ik je ten zeerste aan om toch in de basis te verdiepen. Cryptografie is vreselijk tricky, je hoeft maar een scheet te laten en foetsie is je veiligheid, vaak terwijl je het niet doorhebt. Zie bijvoorbeeld http://crypto-class.org. Daar ook discussie over encryptiemodellen relevant voor wat je vraagt.

Oh, en als je data je lief is cq hij is gevoelig voor onterechte inclusie danwel exclusie, moet je je even afvragen wat je nog met mysql aan het prutsen bent. Om dat te snappen moet je weten waarom we nu eigenlijk SQL kennen, zie bijvoorbeeld http://db-class.org. Verbazend veel mensen missen de basis; hier kun je die halen.
16-01-2013, 01:28 door AA_CS
Door didrix: Als je mensen laat inloggen met hun echte naam kan je die gehashed opslaan, en wanneer ze inloggen controleren met de hash en de echte naam opslaan in een sessie-variabele? Dan komt de echte naam nooit in de database, maar kan je toch je echte naam gebruiken.
Het nadeel van het hashen van namen is dat het een stuk makkelijker is te bruteforcen dan een 3xtrEe/\/\L4ngwaChtw0ord of eenultralangepassphrasediemetenigemoeitewelteonthoudenis. Zeker als je de nationaliteit/taal van de personen weet.
16-01-2013, 09:23 door Erik van Straten
Als je de kans zo klein mogelijk wilt maken dat, net als bij wachtwoorden, de naam achterhaald kan worden, kun je het beste een algoritme gebruiken dat speciaal ontworpen is voor het versleutelen/hashen van wachtwoorden, zoals bcrypt of PBKDF2.

Meer info:
https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet
http://www.codinghorror.com/blog/2012/04/speed-hashing.html
23-01-2013, 11:48 door Bj0rn
Heren bedankt voor jullie antwoorden:)
23-01-2013, 14:12 door didrix
Door AA_CS: Het nadeel van het hashen van namen is dat het een stuk makkelijker is te bruteforcen dan een 3xtrEe/\/\L4ngwaChtw0ord of eenultralangepassphrasediemetenigemoeitewelteonthoudenis. Zeker als je de nationaliteit/taal van de personen weet.
Werkt wel als je de naam en het wachtwoord gecombineerd opslaat in 1 hash.
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.