Door iatomory: Scrypt, bcrypt, argon2, het zijn allemaal functies speciaal gemaakt voor het opslaan van wachtwoorden. SHA256 is dat inderdaad niet, vandaar dat ik het benoem. Voor een deel is dat voortschrijdend inzicht, maar je kan je af vragen of dat dit inzicht ook zijn weg gevonden heeft naar bestaande applicaties die er voor kiezen zelf het wachtwoordmanagement te doen.
Je kan je ook van slotenmakers afvragen of ze al dat voortschrijdend inzicht in hun sloten stoppen. Van bijvoorbeeld "slimme sloten" met bluetooth, nfc/rfid, vingerafdruklezers, of vergelijkbare truukerij, zie je zo vaak dat er enorm basale fouten gemaakt worden dat ik m'n vingers er de eerste tien jaar nog niet aan zal branden, en daarna waarschijnlijk nog steeds niet. Wat ik al van verre zag aankomen toen ik voor het eerst van die dingen hoorde dus dat het werkelijk zo'n zooitje is verbaast me niet. En dat zag ik aankomen omdat het duidelijk was dat er met de muziek meegelopen werd, niet omdat er een aanwijsbaar probleem opgelost werd. De houding van de bouwers was hier de tipgever. "Kom laten we hip doen." Dat werkt niet in veiligheidsland.
Om te voorkomen dat je deze of andere fouten maakt, is het verstandiger om dit soort zaken over te laten aan een SSO-oplossing. Niet dat die koppeling wel zonder problemen te realiseren is, maar het lijkt mij een stuk minder complex.
Minder complex is het niet. Er zijn juist meer plekken waarop het mis kan gaan. En je hebt minder controle.
En er zijn niet zoveel "SSO-oplossingen" die geschikt zijn voor "ik weet het ook niet hoor, laat ik het probleem maar aan iemand anders geven".
Bovendien ligt bij het eerst volgende datalek niet gelijk je complete lijst met wachtwoorden op straat. Dat is ook wat waard.
Dat weet je ook bij die "SSO-oplossing" niet zeker.
Je weet wel dat je, bijvoorbeeld, inlogpatronen en persoonsgegevens van je inloggers aan een derde partij weggeeft, en volstrekt afhankelijk bent van dat zij ook geen fouten maken. Dus er hangt een fors prijskaartje aan dat ingebeelde gemak.
Het is heel goed mogelijk om een basale maar acceptabele wachtwoordopslag te bouwen als je weet wat je doet, voor een belangrijk deel door te weten wat al die algoritmes doen en waar ze geschikt voor zijn. Een klein beetje zorgvuldigheid en kennis voorkomt al stomme fouten als nu nog crypt() gebruiken of zelfs helemaal niets.
Dat wil zeggen dat het standaardadvies van cryptografen om vooral niet zelf algoritmes te gaan verzinnen of zelfs te implementeren maar iets te gebruiken dat redelijk goed getest is, wat op zichzelf prima advies is, niet simpelweg door te trekken is naar 'gebruik maar een "SSO-oplossing"'. Ook zo'n "SSO-oplossing" kun je niet veilig inbouwen zonder dat je weet wat je doet. Dus dat is niet
de oplossing, het is een optie waar je ook goed van moet weten wat de voors en tegens zijn. Het probleem is dus veeleer dat er nogal vaak securitygevoelige software (en hardware) geknutseld wordt door mensen die daar eigenlijk helemaal niet in de buurt van zouden mogen komen. En daar helpt geen enkele library of externe dienst tegen.