Avatar billede Jim Rasmussen Novice
07. august 2011 - 19:46 Der er 9 kommentarer og
1 løsning

Encryption key

Jeg har en wpf applikation der bruger Rijndael til at kryptere og dekryptere noget følsom data

Men jeg mangler et sted at gemme programmets encryption key til Rijndael, så sikkert som muligt.


Lige nu bruger jeg Registrerings databasen! Men det er ikke sikkert nok!


------------------------
#Bvli.

Jeg skal ikke have krypteret en xml fil. KUN en string der indeholder en key!
------------------------
Avatar billede arne_v Ekspert
07. august 2011 - 21:56 #1
Den sikre løsning er at kræve at der skal indtastes en passphrase af et menneske.
Avatar billede Jim Rasmussen Novice
07. august 2011 - 22:19 #2
okay. Var os det jeg tænkte (:

send lige svar :p

Kan man så bruge sessions i WPF? Det kan man vel godt ikke? (:
Avatar billede arne_v Ekspert
07. august 2011 - 22:34 #3
svar
Avatar billede arne_v Ekspert
07. august 2011 - 22:35 #4
Hvad mener du med sessions i WPF?

Web apps bruger session til at holde kontekst mellem flere requests.

Men en desktop app (WPF eller ej) har ikke det behov.
Avatar billede Jim Rasmussen Novice
07. august 2011 - 23:14 #5
ok. (:

Hvis jeg så bruger en property til at opbevare de data i. Forsvinder de så når programmet lukkes? Eller ligger de stadig i computerens ram?
Avatar billede arne_v Ekspert
07. august 2011 - 23:43 #6
Normalt er data i RAM ikke noget man bekymrer sig over.

De er meget svaere at tilgaa og RAM bliver hurtigt genbrugt til andre formaal.

Er du ultra meget forsigtig, saa overskriv data inden du lukker programmet.
Avatar billede bvli Praktikant
08. august 2011 - 10:27 #7
Eller hvis det er meget følsomt brug SecureString.
Avatar billede clausc Nybegynder
08. august 2011 - 13:20 #8
Overskrivning af data er ikke helt trivielt:

Det hjælper ikke meget at overskrive en streng i sprog med immutable strings. Den oprindelige værdi vil stadig ligge i hukommelsen indtil den bliver garbage collected, hvilket ingen ved hvornår sker.

Hvis sproget tillader det, så kan man overveje at overskrive den underliggende array af chars; men jeg ved faktisk ikke på stående fod hvad der helt specifikt sker i C# ved foo_string[i] = 0x00; jeg vil formode at man 'omgår' immutable egenskaben, dvs at der ikke oprettes en ny streng.

Tilsvarende med et byte[]; overskrivning a la my_secret_data = null; er ikke tilstrækkelig.

SecureString er en forbedring, men stadig ikke helt sikker. Hvis kravet er at sensitive data ikke må optræde i RAM, så kommer man ikke udenom hardware krypto-moduler (som koster spidsen af en jetjager).
Avatar billede arne_v Ekspert
09. august 2011 - 03:02 #9
God pointe med string. Man kan heller ikke aendre enkelt chars i en string.

Moralen maa vaere at char[] er bedre end string i denne kontekst. Men problemet er naturligvis hvis der er et API som forventer en string.

Men jeg tror som sagt ikke at det betyder noget i praksis.
Avatar billede arne_v Ekspert
09. august 2011 - 03:02 #10
SecureString er rigtigt smart hvis man har noget som kan kaldes med en saadan.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester