Hoi,
Even een korte situatieschets. Ik wil gevoelige data heel veilig opslaan. Daarbij zijn drie zaken belangrijk:
Voor dit plan had ik het volgende model in gedachten:
Webserver met inlogsysteem over https waarmee gebruikers de data kunnen uploaden en downloaden. De webserver genereert een random key waarmee de data wordt versleuteld. Deze key wordt naar alle gebruikers gemaild/smsd, en daarna niet meer op de server opgeslagen.
Het versleutelde bestand wordt in stukjes van 100kb oid gehakt, en verdeeld over een aantal FTP-servers op verschillende lokaties. De inloggegevens van de andere server moeten bekend zijn bij de webserver helaas, hier heb ik nog geen mooie oplossing voor gevonden. De gegevens worden redundant opgeslagen. De gegevens over welk stukje waar staat + een checksum/hash staan in de database op de webserver. Ik check na de file transfers uiteraard de checksums om er zeker van te zijn dat ze overeenkomen.
Middels een cron check ik de versleutelde data periodiek met de checksum. Indien die afwijkt dan haal ik een van de 2 (3?) backupversies terug om de fout te repareren.
Als gebruikers bij hun data willen komen dan moeten ze de key invoeren waarna het bestand wordt gerecompiled (uiteraard na checken met checksum) en gedecrypt. Vervolgens wordt het onversleutelde bestand via https teruggestuurd naar de gebruiker.
Vragen so far:
Even een korte situatieschets. Ik wil gevoelige data heel veilig opslaan. Daarbij zijn drie zaken belangrijk:
- Integriteit: De data mag niet verloren gaan of worden gewijzigd. het is de bedoeling dat de data jarenlang wordt bewaard.
- Vertrouwelijkheid: De data mag niet uitleesbaar zijn door anderen zonder toestemming.
- Reproduceerbaarheid: De data moet uiteindelijk weer terug te halen zijn door (dezelfde of een andere gebruiker.
Voor dit plan had ik het volgende model in gedachten:
Webserver met inlogsysteem over https waarmee gebruikers de data kunnen uploaden en downloaden. De webserver genereert een random key waarmee de data wordt versleuteld. Deze key wordt naar alle gebruikers gemaild/smsd, en daarna niet meer op de server opgeslagen.
Het versleutelde bestand wordt in stukjes van 100kb oid gehakt, en verdeeld over een aantal FTP-servers op verschillende lokaties. De inloggegevens van de andere server moeten bekend zijn bij de webserver helaas, hier heb ik nog geen mooie oplossing voor gevonden. De gegevens worden redundant opgeslagen. De gegevens over welk stukje waar staat + een checksum/hash staan in de database op de webserver. Ik check na de file transfers uiteraard de checksums om er zeker van te zijn dat ze overeenkomen.
Middels een cron check ik de versleutelde data periodiek met de checksum. Indien die afwijkt dan haal ik een van de 2 (3?) backupversies terug om de fout te repareren.
Als gebruikers bij hun data willen komen dan moeten ze de key invoeren waarna het bestand wordt gerecompiled (uiteraard na checken met checksum) en gedecrypt. Vervolgens wordt het onversleutelde bestand via https teruggestuurd naar de gebruiker.
Vragen so far:
- Graag jullie mening over dit ontwerp (qua veiligheid).
- Jammer dat als mensen hun code kwijtraken de data verloren gaat. Is hier nog wat op te bedenken? Bijv een cc naar mijn eigen email? of opslaan op een aparte server?
- Jammer dat de FTP gegevens op een of andere manier ook bij de webserver bekend moeten zijn. Is daar nog een truuk op te bedenken?