Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  30 13320
Hei!
Holder på med et cms nå. Vil ikke si hva det er.
Brukere blir registrert med personnummer. Hvordan skal jeg lagre dette i databasen? INT har ikke støtte for så stort tall.
Hva anbefaler dere? Bør jeg kryptere det på noen måte i tillegg?

Takker for svar fra glupe hoder^^
Sist endret av fulloggal; 9. november 2009 kl. 23:07.
Sikker på det? Sjekk ut datatypen bigint. I dette tilfellet kan du bruke unsigned.
Sitat av fulloggal Vis innlegg
Hei!
Holder på med et cms nå. Vil ikke si hva det er.
Brukere blir registrert med personnummer. Hvordan skal jeg lagre dette i databasen? INT har ikke støtte for så stort tall.
Hva anbefaler dere? Bør jeg kryptere det på noen måte i tillegg?

Takker for svar fra glupe hoder^^
Vis hele sitatet...
Jeg ville absolutt ikke lagret personnummer som klartekst i en database. På samme måte som passord ville jeg gjerne kryptert demmed md5, men husk at md5 kun er enveiskryptering.

http://en.wikipedia.org/wiki/MD5
Til syvende og sist 0 problem med hva enn du måtte bruke for vanlig tekst
Ja, med MD5 blir jo hele vitsen med å lagre personnr. vekke. Må jo kunne dekryptere det også. Noen ideer?

@|d13m0b: INT støtter vel bare 10 siffer, og så vidt jeg vet så er et personnr. 11 siffer.
Skal se på bigint
Offtopic: Men hvorfor i allverden skal noen fortsatt bruke disse personnummer-ene som passord eller annen sensitiv informasjon... Du finner den jo i "alle" brev
Skal ikke brukes som passord el.
Skal bruker som identifikator. Ikke jeg som har bestemt det:P
Sist endret av fulloggal; 9. november 2009 kl. 23:19.
Er ikke sikker på om du i det hele tatt har lov til å lagre personnummer i utgangspunktet, men hvorfor i det hele tatt ta på deg risikoen ved å lagre dem? dersom de lekker fra ditt nettsted/cms blir du plutselig gransket av datatilsynet osv. det må da finnes bedre alternativer til identifisering av brukere på et nettsted enn pers.nr?
Kan du ikke lagre det som en streng?
Sitat av steinarlima Vis innlegg
Kan du ikke lagre det som en streng?
Vis hele sitatet...
Som VARCHAR? Har hørt at det går tregere hvis datatypen ikke er rett, men har ikke kilder på det desverre.

Sitat av lor3ntz Vis innlegg
Er ikke sikker på om du i det hele tatt har lov til å lagre personnummer i utgangspunktet, men hvorfor i det hele tatt ta på deg risikoen ved å lagre dem? dersom de lekker fra ditt nettsted/cms blir du plutselig gransket av datatilsynet osv. det må da finnes bedre alternativer til identifisering av brukere på et nettsted enn pers.nr?
Vis hele sitatet...
Det er ikke alle som har tilgang til siden. Kun et fåtall av personer. Og du må logge inn for å i det heletatt gjøre noe.
Har du kilder på om jeg har lov eller ikke å lagre personnr.?
Fødselsnummer kan bare brukes når det er saklig behov, og når det er umulig å oppnå tilfredstillende identifikasjon ved bruk av andre metoder, som for eksempel navn, adresse, fødselsdato, medlems- eller kundenummer. (Personopplysningsloven § 12)
Vis hele sitatet...
- http://www.datatilsynet.no/templates...le____903.aspx

Edit: Fant også dette:
Utleieren har ikke lov til å lagre personnummer verken skriftlig eller på data. Når kredittsjekken er foretatt, skal personnummeret slettes.
Vis hele sitatet...
Antar dette også gjelder for deg/dere?

- http://www.jusshjelp.com/bolig10u.htm
Sist endret av s1gh; 9. november 2009 kl. 23:28.
Sitat av HabbaLaBiba Vis innlegg
Offtopic: Men hvorfor i allverden skal noen fortsatt bruke disse personnummer-ene som passord eller annen sensitiv informasjon... Du finner den jo i "alle" brev
Vis hele sitatet...
Igrunn et veldig godt spørsmål. Det står jo bakpå bakkortet ditt også, er jo ikke sånn at du skjuler baksiden av bankkortet ditt. Problemet er at mange instanser har brukt personnummer som et slags "passord".

Til trådstarter: En tråd på Norsk Webforum som omtaler lagring av personnummer på nettsider: http://norskwebforum.no/viewtopic.php?=&p=198895

Som blant annet linker til datatilsynet sine sider: http://www.datatilsynet.no/templates...le____903.aspx

Dog skjønner jeg ikke helt hva du skal med personnummer. Lovdata sier blant annet dette og innhenting av personnummer:
Sitat av datatilsynet
Bruk av fødselsnummer
Fødselsnummer kan bare brukes når det er saklig behov, og når det er umulig å oppnå tilfredstillende identifikasjon ved bruk av andre metoder, som for eksempel navn, adresse, fødselsdato, medlems- eller kundenummer. (Personopplysningsloven § 12)
Vis hele sitatet...
Ergo, du kan ikke kreve personnummer av noen, uten at du kan dokumentere et særskilt behov.

Men det var kanskje ikke helt dette du var ute etter? Likevel greit å vite spør du meg

EDIT: DEAM, litt for sein...

Uansett;
Sitat av fulloggal
Som VARCHAR? Har hørt at det går tregere hvis datatypen ikke er rett, men har ikke kilder på det desverre.
Vis hele sitatet...
Det er snakk om svært små forskjeller i ytelsen. Hvis du har flere hundre spørringer i minuttet og en treg server, kan man heller begynne å snakke om at slike ting blir viktig å tenke på. I ditt CMS trenger du ikke det, skulle jeg mene.
Sist endret av Toak; 9. november 2009 kl. 23:29.
Sitat av fulloggal Vis innlegg
Som VARCHAR? Har hørt at det går tregere hvis datatypen ikke er rett, men har ikke kilder på det desverre.
Vis hele sitatet...
Du kan bruke BIGINT(11)


Sitat av fulloggal Vis innlegg
Det er ikke alle som har tilgang til siden. Kun et fåtall av personer. Og du må logge inn for å i det heletatt gjøre noe.
Har du kilder på om jeg har lov eller ikke å lagre personnr.?
Vis hele sitatet...
http://www.lovdata.no/all/hl-20000414-031.html

Kos deg.

Les spesielt "Kapittel VI. Melde- og konsesjonsplikt". Du er nødt til å få en godkjennelse fra Datatilsynet før du har lov til å lagre slike personopplysninger.
Tusen takk for masse svar! Nå har jeg noe å lese på, og en mail å sende

Hvis det allikevel blir til at jeg skal lagre personnr. i database, hvilken krypteringsmetode ville du brukt?
Sitat av fulloggal Vis innlegg
Hvis det allikevel blir til at jeg skal lagre personnr. i database, hvilken krypteringsmetode ville du brukt?
Vis hele sitatet...
Sha1 burde holde.
SHA1 + salt?

Edit: Sha1/md5 er vel ikke en kryptering i seg selv. Du kan jo ikke 'låse opp' md5/sha1.
Sist endret av s1gh; 9. november 2009 kl. 23:35.
Må også ha mulighet for å dekryptere det igjen!
Sitat av fulloggal Vis innlegg
Må også ha mulighet for å dekryptere det igjen!
Vis hele sitatet...
Hvorfor?

Du kan jo bare kjøre samme kryptering på input til brukeren for deretter å sammenligne hash
Sitat av danielsk Vis innlegg
Hvorfor?

Du kan jo bare kjøre samme kryptering på input til brukeren for deretter å sammenligne hash
Vis hele sitatet...
Skal ikke sammenligne input. Skal vise det som output.
Sitat av fulloggal Vis innlegg
Skal ikke sammenligne input. Skal vise det som output.
Vis hele sitatet...
Du kan se på dette: http://www.rawseo.com/ts/24
Bigint er forøvrig 64 bit, noe som tilsvarer 8 bytes. Lagrer du personnummeret som char eller unicode char ender du opp med enten 11 eller 22 bytes. Valget bør være soleklart imho. I tillegg ender du opp med noe som er type safe. Personlig tror jeg ikke at jeg hadde brydd meg så uhyre mye over krypteringen, gjør noe aritmetikk med tallene så er du mer sikker på at ikke personnummeret blir for enkelt å hente ut.

Dersom du ender opp med en sikkerhetsbrist, og de får tak i kildekoden vil det uansett være enkelt å reversere krypteringsprosessen uavhengig om du bruker en "sikker" kryptering eller kun utfører noe aritmetikk på tallet.
Sist endret av m0b; 10. november 2009 kl. 00:17.
Enig med |d13m0b her. Du kan bruke så mye artematikk, saltede hasher eller whatever. Siden det er kun er overkommelige ca 3.6mrd forskjellige kombinasjoner personnummere, tar det ikke lange tiden før man har gått igjennom alle mulige forutsatt at man har kildekode for hvordan det blir modifisert, selvsagt..

Mitt råd: ikke lagre personnummer med mindre du jobber for nav/altinn eller noe slikt. (da håper jeg ikke du trenger å forhøre deg her, men
Sist endret av willosof; 10. november 2009 kl. 01:47.
Vil ikke bigint være dumt på personnummer? Den sletter vel ledende null, så alle som har fødselsdag i en av de 9 første dagene i en måned vil kun få et 10-sifret personnummer i databasen..
Da ville jeg heller brukt varchar selv.
Det er egne regler for lagring av personnummer. Husker ikke spesifikt hvilke lover som omhandler dette men dette er noe du bør sjekke ut hvis du lager en kommersiell app.
Denne tråden er 60% gjetting / clueless råd, 20% gjentakelser og kanskje 20% riktig, relevant info. Jeg håper virkelig ikke du lager et system som oppbevarer personnumre basert på råd fra tilfeldige folk på nFF. Tanken skremmer ihvertfall meg.
Da har jeg snakket rundt litt, og vi skal ikke ha personnr. i database. Egentlig lurte jeg bare på hvorfor jeg ikke fikk lagret 11 siffer i mysql, men nå vet jeg hvorfor. Takk!
Sitat av Sjanten Vis innlegg
Vil ikke bigint være dumt på personnummer? Den sletter vel ledende null, så alle som har fødselsdag i en av de 9 første dagene i en måned vil kun få et 10-sifret personnummer i databasen..
Da ville jeg heller brukt varchar selv.
Vis hele sitatet...
Gyldig poeng, uten at det nødvendigvis trenger å være et problem.
▼ ... over en uke senere ... ▼
Shit...ser dårlig ut for personvernssikkerheten vår fremover hvis våre unge, håpefulle utviklere kan stille det spørsmålet....ikke for å være frekk ass (men litt, kanskje), så har et menneske som tenker int når han hører fødselsnummer ingenting i nærheten av sensitiv data å gjøre....(og jeg antar at det ikke bare var derfor dere sløyfa det?)

Men, @fulloggal, dette er uten intensjon andre gang jeg kommer med indirekte kritikk til deg, så kanskje jeg skal være litt mer konstruktiv.....
Samme hvor kronglete VBScript du mekker, så finner du svaret, og minst mange lærerike og informative diskusjoner, på StackOverflow.com....virkelig det ultimate (hittil) hybrid av forum/sosialt nettverk og wiki....

Og får en herlig smekk på labben til alle oss andre óg, så er Jeff Atwoods blogpost og påfølgende lenker/poster noe av det bedre jeg har lest vedr. hashing av passord og sikkerhet generelt.

peace out

Og
Har ikke lest alle postene over, så kan hende jeg sier noe som allerede er sagt. Men personnummer begynner vel med fødseldato? Så lagre fødselsdato i et field og resten i et annet.
Sitat av mrLobster Vis innlegg
Shit...ser dårlig ut for personvernssikkerheten vår fremover hvis våre unge, håpefulle utviklere kan stille det spørsmålet....ikke for å være frekk ass (men litt, kanskje), så har et menneske som tenker int når han hører fødselsnummer ingenting i nærheten av sensitiv data å gjøre....(og jeg antar at det ikke bare var derfor dere sløyfa det?)
Vis hele sitatet...
Jeg antar at det er meg du sikter til, og meningen din skal du gjerne få lov til å ha. Mitt tekniske nivå føler jeg ikke i så veldig stor grad at jeg trenger forsvare ovenfor deg.Du argumenterer forøvrig ikke hvorfor det skal være sikrere å lagre nummeret på verken den ene eller den andre måten.

Det jeg derimot kan gjøre, er å argumentere for mitt valg, så får det være opp til hver enkelt å bedømme hva som er det beste valget; Når man først skal lagre personnummer i en database, og den er nødt til å være
mulig å både kryptere og dekryptere så er det kommet til det punktet hvor det er knekkende likegyldig i hvilken datatype det er snakk om. Så lenge man får krytpert den på et vis. Derfor har jeg tatt hensyn til optimalisering av datastørrelsen og overhead man får ved å hente ut den.

Har du fått en sikkerhetsbrudd i databasen, kan du stort sett regne hele systemet for komprimittert. Det vil derfor være liten vits i å legge så altfor stor vekt på selve kryptoen, da framgangsmåten for kryptering og dekryptering ligger direkte tilgjengelig i kildekoden. Er man så heldig at det kun er databasen som vises, så er det tilsynelatende tilfeldige tall man er nødt til å arbeide med for å få ut den faktiske dataen.

Hadde jeg selv vært den som utviklet systemet bak dette, så ville det uansett aldri vært snakk om at databasen lå tilgjengelig på samme server som kode og tilgjengelighet. I et slikt scenario, imho, har databasen ingenting i et DMZ å gjøre. Alternativet ville vært å utviklet en tredjeparts-tjeneste som tok for seg autentiseringsforespørsler fra serveren som sto i DMZ, samtidig som spørringene aldri skal være tilgjengelig på en server som står i DMZ. Det er viktig å ha et klart logisk skille på datalagring, datainnhenting, databehandling, og datapresentasjon.
Sitat av |d13m0b Vis innlegg
Jeg antar at det er meg du sikter til, og meningen din skal du gjerne få lov til å ha. Mitt tekniske nivå føler jeg ikke i så veldig stor grad at jeg trenger forsvare ovenfor deg.Du argumenterer forøvrig ikke hvorfor det skal være sikrere å lagre nummeret på verken den ene eller den andre måten.
Vis hele sitatet...
Det var ikke du som var inspirasjonen; de som inspirerer meg til å skrive litt hastige innlegg, med småprovoserende innledninger, er nok heller de som aldri ville funnet på å stille slike spm til å begynne med....

Resonnemnetet ditt, altså d13m0b, vedr. sikkerhet, er i mine øyne, både gjennomtenkt og godt!

Hva gjelder datatype, er det greit å ha i mente at ledende 0 har en tendens til å fordufte hvis kolonnen er heltall, og at fødselsnummer ikke er unike uten fødselsdato.

En effektiv, men trygg, krypteringsalgoritme + den praktiske implementasjonen av denne, er komplisert nok som den er; ikke del opp f. nr. i flere kolonner, og ha en plan for behandling av "uortodokse" nr; som utenlandske statsborgere med eller uten norsk f. nr, mennesker som bytter kjønn, etc. etc.

Se forøvrig fnrinfo.no; kan ikke gå god for innholdet, men den spytta iallefall ut mitt f. nr ;-)