Titel: [Stamhoofd] Ledenadministratie, ticketverkoop en webshops voor jouw vereniging Bericht door: simonke op 06 Januari 2021, 09:02:10 Hey!
Sinds kort werk ik aan een nieuw project: Stamhoofd. Hiermee kan jouw vereniging online inschrijvingen verzamelen via een gepersonaliseerde pagina / subdomeinnaam of een webshop starten om geld in te zamelen. Alle gegevens van leden (met uitzondering van voornaam en e-mailadres) wordt end-to-end encrypted opgeslagen. Linkje: Stamhoofd.nl (https://www.stamhoofd.nl) Stamhoofd.be (https://www.stamhoofd.be) Titel: Re: [Stamhoofd] Ledenbeheer systeem voor jouw vereniging Bericht door: amahoola op 07 Januari 2021, 17:38:17 Cool project! Ik moest gelijk aan mijn scouting vereniging denken en zo te zien ben ik niet de enige. Zeker die webshop vind ik interessant, omdat het bestellen van merch altijd een beetje onhandig is. Het ziet er vrij compleet uit en er worden genoeg opties gegeven voor het betalen en leveren, top!
Titel: Re: [Stamhoofd] Ledenbeheer systeem voor jouw vereniging Bericht door: lucb1e op 08 Januari 2021, 18:36:01 End to end encryption? Vet! De landing page ziet er ook awesome uit :) En eventual open source vind ik ook hip.
Hoe werkt de encryptie precies? Ik zie op de site of GitHub niet direct info. Je github readme header image geeft wel een error bij het laden: https://snipboard.io/CzQAB8.jpg Edit: ik ben zover dat het libsodium gebruikt aan de client side en een key pair genereert op basis van een geKDF'd wachtwoord (https://github.com/stamhoofd/stamhoofd-crypto/blob/master/shared/crypto/src/KeyConstantsHelper.ts#L87) en dat upload naar de server (https://github.com/stamhoofd/stamhoofd/blob/1e59dd5d5452b13eadb82ebac6fd60c1f8f241f2/frontend/shared/networking/src/LoginHelper.ts#L376) en vervolgens mee inlogt (https://github.com/stamhoofd/stamhoofd/blob/1e59dd5d5452b13eadb82ebac6fd60c1f8f241f2/frontend/shared/networking/src/LoginHelper.ts#L150). Open vraag is met name hoe een andere gebruiker die data kan ontsleutelen zonder daarbij de server te moeten vertrouwen. Sla je in localStorage op welke keys er allemaal geverifiëerd zijn door de gebruiker? Kun je elkaars QR-codes scannen? Krijgt de server een versleutelde kopie zodat een nieuwe client die verificatie ook weer heeft? Wat als iedereen tegelijkertijd zijn/haar wachtwoord vergeet, is het dan game over en moet je opnieuw starten als je geen backups hebt? Is eigenlijk alles wel naar iedereen versleuteld, of zijn er dingen die enkel bepaalde gebruikers kunnen ontsleutelen? Een andere vraag is nog waarom je encryptedPrivateKey op de server hebt als de privkey al vanaf een seed gegenereerd wordt. De gebruiker kan 'm toch opnieuw genereren vanaf dezelfde wachtwoord-gebaseerde seed, de server heeft die toch helemaal niet nodig? Sorry voor alle vragen, ik vind het vernieuwend en cool maar ben benieuwd naar hoe je verschillende problemen hebt aangepakt :D Titel: Re: [Stamhoofd] Ledenbeheer systeem voor jouw vereniging Bericht door: simonke op 09 Januari 2021, 09:23:20 Cool project! Ik moest gelijk aan mijn scouting vereniging denken en zo te zien ben ik niet de enige. Zeker die webshop vind ik interessant, omdat het bestellen van merch altijd een beetje onhandig is. Het ziet er vrij compleet uit en er worden genoeg opties gegeven voor het betalen en leveren, top! Bedankt!End to end encryption? Vet! De landing page ziet er ook awesome uit :) En eventual open source vind ik ook hip. Hoe werkt de encryptie precies? Ik zie op de site of GitHub niet direct info. Je github readme header image geeft wel een error bij het laden: https://snipboard.io/CzQAB8.jpg Edit: ik ben zover dat het libsodium gebruikt aan de client side en een key pair genereert op basis van een geKDF'd wachtwoord (https://github.com/stamhoofd/stamhoofd-crypto/blob/master/shared/crypto/src/KeyConstantsHelper.ts#L87) en dat upload naar de server (https://github.com/stamhoofd/stamhoofd/blob/1e59dd5d5452b13eadb82ebac6fd60c1f8f241f2/frontend/shared/networking/src/LoginHelper.ts#L376) en vervolgens mee inlogt (https://github.com/stamhoofd/stamhoofd/blob/1e59dd5d5452b13eadb82ebac6fd60c1f8f241f2/frontend/shared/networking/src/LoginHelper.ts#L150). Open vraag is met name hoe een andere gebruiker die data kan ontsleutelen zonder daarbij de server te moeten vertrouwen. Sla je in localStorage op welke keys er allemaal geverifiëerd zijn door de gebruiker? Kun je elkaars QR-codes scannen? Krijgt de server een versleutelde kopie zodat een nieuwe client die verificatie ook weer heeft? Wat als iedereen tegelijkertijd zijn/haar wachtwoord vergeet, is het dan game over en moet je opnieuw starten als je geen backups hebt? Is eigenlijk alles wel naar iedereen versleuteld, of zijn er dingen die enkel bepaalde gebruikers kunnen ontsleutelen? Een andere vraag is nog waarom je encryptedPrivateKey op de server hebt als de privkey al vanaf een seed gegenereerd wordt. De gebruiker kan 'm toch opnieuw genereren vanaf dezelfde wachtwoord-gebaseerde seed, de server heeft die toch helemaal niet nodig? Sorry voor alle vragen, ik vind het vernieuwend en cool maar ben benieuwd naar hoe je verschillende problemen hebt aangepakt :D Je hebt het al aardig onderzocht, tof :) Leuk al die vragen, meestal beseffen mensen niet echt wat die end-to-end encryptie inhoudt en denkt men dat dat hetzelfde is als versleuteling. Er zijn inderdaad enkele afwegingen die je hier en daar moet maken. Ik was van plan om daar nog enkele uitgebreidere teksten over te schrijven.
De reden dat er nog een aparte encryptedPrivateKey op de server staat is omdat authEncryptionKey gerelateerd is aan het wachtwoord. Als ik daarvoor een public key voor zou moeten opslaan, dan wil ik geen enkel verband tussen die public key en het wachtwoord van die gebruiker (ookal is dat nagenoeg random). De privateKey (uit encryptedPrivateKey ) en publicKey van de user zijn nu wel 100% random. Ik wou geen publiek verband tussen het wachtwoord tentoon stellen, aangezien dat overen zou komen met een offline brute force mechanisme om het wachtwoord te kunnen achterhalen (niet helemaal omdat de authEncryptionKeyConstants niet publiek zijn, maar die staan wel leesbaar op de server, en je weet maar nooit bij een software bug of fout, of een hack). Nu heb je dat verband wel voor de publicAuthSignKey, maar die public key is niet publiek (wel de authSignKeyConstants), en dat is dan ook maar één plaats om in de gaten te houden. Daarnaast is er nog de mogelijkheid om andere login methodes toe te laten naast wachtwoord based, en dan is het ook nuttig dat er geen verband is met het wachtwoord (dat je misschien niet hebt). Ik vind de wachtwoord login methode eigenlijk niet echt ideaal, maar het is een afweging die ik heb moeten maken omdat ik nu eenmaal met browsers te maken heb. Je kan daar allereerst geen permanente storage garanderen + mensen switchen regelmatig van browser en device. x aantal bytes per website voor key storage + onmogelijkheid om die te verwijderen zonder dat per website manueel te doen en daar duidelijk een bericht van te krijgen (je verliest mogelijk toegang tot je account voor altijd) zou een oplossing zijn. Er is nu een browser extensie om keys en dergelijke on device op te slaan: https://webauthn.io, maar die ondersteunt nog geen encryptie (enkel signatures) en heeft nog als nadeel dat er geen mechanisme is om keys te sharen tussen computer en smartphone + helemaal geen recovery heeft wanneer je je device kwijt bent (logisch uiteraard). Externe YubiKey zijn een oplossing, maar die zijn helemaal niet ingeburgerd. Ik had ook echt graag login methode van Apple en Google toegevoegd, vooral omdat ik niet echt wil dat ouders een wachtwoord moeten onthouden voor elke vereniging waar ze inschrijven. Maar end-to-end encryptie maakt dat knap lastig. En je kan ook niet echt iemand verplichten om een app te installeren om te kunnen inschrijven bij een vereniging. Dat laatste is vooral een probleem van branding omdat je niet voor elke vereniging een app kan lanceren. En een vereniging aan hun leden laten vragen om in te schrijven via een app die Stamhoofd heet, is misschien niet ideaal. Hoewel ik dit eventueel wel kan overwegen als een alternatief op wachtwoorden. Zo kunnen ouders kiezen. Maar ik vrees dat als de keuze wordt aangeboden tussen een app installeren of een wachtwoord kiezen, veel mensen wel voor het wachtwoord zullen kiezen. Enja, wat als ze de app verwijderen... Veel problemen hehe. Edit: De GitHub header image werkt hier wel hoor? Staat zelf op GitHub gehost zie ik Titel: Re: [Stamhoofd] Ledenbeheer systeem voor jouw vereniging Bericht door: lucb1e op 09 Januari 2021, 14:11:01 Ik denk dat ik nog wat context mis om het merendeel van je antwoord te snappen, maar ik lees het straks nog een keer door.
Wat betreft de afbeelding op GitHub, ik zie dat die van https://www.stamhoofd.be/images/logo.svg moet komen en dat dat naar /404 redirect, welke weer naar /404 redirect, die weer naar /404 redirect, enz. tot Firefox het opgeeft en een infinite redirect error geeft. GitHub probeert het te proxyen maar geeft dan "error fetching resource" met status 404. Just to be sure, ik bedoel deze readme: https://github.com/stamhoofd/stamhoofd/blob/development/README.md Titel: Re: [Stamhoofd] Ledenadministratie systeem voor jouw vereniging Bericht door: creator_AWS op 30 Januari 2021, 09:30:31 Ziet er gaaf uit! Ga ik binnenkort ff goed naar kijken.
Titel: Re: [Stamhoofd] Ledenadministratie systeem voor jouw vereniging Bericht door: Robbai op 05 Maart 2021, 23:03:33 Dit is echt exact wat onze studievereniging nodig heeft! Nice!
Titel: Re: [Stamhoofd] Ledenadministratie systeem voor jouw vereniging Bericht door: Gerben de G. op 19 Maart 2021, 12:54:25 Gewoon even een korte opmerking maar die homepage ziet er echt heel nice en duidelijk uit :)
Titel: Re: [Stamhoofd] Ledenadministratie systeem voor jouw vereniging Bericht door: simonke op 28 Mei 2021, 09:32:30 Bedankt voor de complimenten! :) Probeer het gerust eens uit. Zouden in de toekomst ook willen lanceren in Nederland, dus feedback op dat vlak zijn ook al welkom ;)
Titel: Re: [Stamhoofd] Ledenadministratie systeem voor jouw vereniging Bericht door: simonke op 11 November 2021, 15:52:12 Stamhoofd.nl (https://www.stamhoofd.nl) is hierbij nu ook beschikbaar. Alles is ook geoptimaliseerd voor Nederland vanaf nu :)
Titel: Re: [Stamhoofd] Ledenadministratie systeem voor jouw vereniging Bericht door: lucb1e op 12 November 2021, 17:04:54 Wat voor 'optimalisaties' zijn er dan anders voor NL dan voor BE? Behalve natuurlijk bezoekers aanspreken met "ge" en foutmeldingen starten met "amai" :D
Titel: Re: [Stamhoofd] Ledenadministratie systeem voor jouw vereniging Bericht door: simonke op 14 November 2021, 23:11:22 Wat voor 'optimalisaties' zijn er dan anders voor NL dan voor BE? Behalve natuurlijk bezoekers aanspreken met "ge" en foutmeldingen starten met "amai" :D Qua taal niet echt zoveel. Eerder dat de website bewust is van jouw land, bv. standaard ‘Nederland’ selecteren in adresvelden, iDEAL bovenaan bij betaalmethodes, verwijzen naar stamhoofd.nl in plaats van .be, betalingskenmerk in plaats van gestructureerde mededeling (+ ander algoritme), andere banken vermelden bij overschrijven met QR-code, andere standaard domeinnaam jouw-vereniging-hier.stamhoofd.nl (ipv .be), land en taal SEO…En nog wel een aantal dingen :) Was meer werk dan ik zelf had verwacht ^^ Soms vind ik nog wel wat kleinigheden. Titel: Re: [Stamhoofd] Ledenadministratie, ticketverkoop en webshops voor jouw vereniging Bericht door: lucb1e op 18 November 2021, 01:16:17 Pfoe oké ja dat klinkt wel als meer dan ik ook zou denken, als je dat zo opsomt :o
Heb opeens wat meer respect voor sites die in honderd landen opereren xD |