Wat een onzin. Offline wachtwoordmanagers worden in de regel ook gewoon via browserextensies gebruikt.
Ik zou je eens aanraden om naar KeePass te kijken, waar ik het eerder ook al over had. Dat gaat helemaal niet via een browserextensie, de browser kan er niet bij. Op het moment dat ik kies dat ik ergens een wachtwoord wil invullen kan ik dat met een sneltoets doen voor auto-type, waarbij KeePass gaat kijken waar mijn browser is, in plaats van dat mijn browser toegang heeft tot KeePass. Dit werkt om het even met welke andere applicatie trouwens, niet beperkt tot slechts webpagina's. Dus de andere kant op, en zeer belangrijk, want
En hoe dan ook, je zult toch je wachtwoorden in een veld moeten krijgen. Of dat nou via een extensie gebeurt of via handmatig plakken vanuit een native app, kwaadwillende extensies kunnen er bij.
zo'n extensie heeft direct toegang tot je hele wachtwoorddatabase in plaats van enkel de entry die je op dat moment in wilt vullen. In ieder geval als het in hetzelfde proces draait. Ook hebben extensies toegang tot je master-wachtwoord omdat je die invult in je browser (al dan niet in de LastPass-extensie). Een manager die niet in de browser draait (als pagina of als extensie) is in zijn geheel niet toegankelijk voor een browserextensie, waarmee het master-wachtwoord dus ook buiten bereik van extensies blijft. Ik vind *in* de browser geen veilige plek voor een wachtwoordmanager, dat is iets wat je los wilt hebben.
Er kan natuurlijk wel gewoon seintje naar de clouddienst gestuurd worden, waarna daar de extra checks plaatsvinden, waarna er weer een seintje terug gestuurd wordt met een go/no-go.
Dat kan inderdaad, maar een simpele go/no-go is dat niet. De database moet tijdens authenticatie fysiek achtergehouden worden door LastPass om dit security-technisch dicht te krijgen. Anders kan heel dat seintje geskipt worden door een aanvaller. De "go" moet het daadwerkelijke doorsturen van de database zijn, omdat zij anders niet zowel kunnen mailen dat er succesvol is ingelogd met het masterwachtwoord én dat hiermee geen toegang is verleend tot de database.
Als ze zelf het masterwachtwoord op geen enkele manier opslaan, moet authenticatie puur op het ontsleutelen van de database plaatsvinden. Zonder de hele database door te sturen kan bijvoorbeeld de header doorgestuurd worden, die lokaal ontsleuteld kan worden. Als dat lukt, kan de client terugsturen dat het gelukt is waarna Lastpass de hele database opstuurt. Echter, moet dit wel op een cryptografisch veilige manier gebeuren, gewoon een "ja het is gelukt" is niet voldoende want dan kan iedere aanvaller gewoon elke database downloaden om daar rustig offline naar te kijken. Maar goed, dat hoeft ook niet per se. Als de client kan beslissen of het decrypten van de header gelukt is, kan dat ook volledig offline gedaan worden zonder Lastpass te laten weten hoeveel pogingen geen succes hebben gehad. Dat is dus ook een security-gat, want de aanvaller heeft dan nog "maar 1 poging" nodig om binnen te komen, aangezien deze dat alleen maar zal proberen als de offline aanval een match heeft opgeleverd met een van de geprobeerde wachtwoorden. Alternatief is dat het decrypten van deze header iets oplevert waarvan client-side niet gecontroleerd kan worden of het correct is of niet. Dat lijkt me lastig. Een andere manier (ik denk de enige eigenlijk) die ik me wel voor kan stellen is hash chain (al dan niet OTP), wat eigenlijk gewoon heel vaak een hash van je master-wachtwoord is. Deze kan lokaal berekend worden en alleen op de server geverifieerd worden op correctheid.
(edit: als ik in hun SPOC paper kijk hashen ze inderdaad clientside het master-wachtwoord, sturen ze dat naar de server, hashen ze het daar nogmaals en vergelijken dat met wat in hun database staat. Daarna wordt de kluis pas doorgestuurd. Dus het gebeurt niet volledig lokaal.)
Echter, een minder goed geïnformeerd persoon die LP in de browser op een openbare PC gebruikt is sowieso al een persoon die niet offline Bitwarden of iets dergelijks gaat opzetten en gebruiken.
Noem je wel direct het andere uiterste van iets wat je op een server moet opzetten. Keepass is bijv. een kleine win/lin/mac/bsd/nix executable die je gewoon op een USB-stickje mee kan nemen, en/of je pakt een van de apps voor iOS/Android/etc. Helemaal lokaal en zonder dat je systeembeheerder hoeft te zijn, dus nog relatief gemakkelijk.
[Reactie gewijzigd door DataGhost op 23 juli 2024 21:42]