Felhasznalo jelszava helyi fajlban titkositva megfelelo-e?
Egy alkalmazast irok programozo gyakornokkent, most vagyok tul a tervezes nagyjan (MVC), es a kod is meg van nagyvonalakban.
A desktop alkalmazas (C#) lehetove tenne a felhasznalonak, hogy kenyelmi okokbol mentse a jelszavat egy helyi meghajton levo fajlba (userdata fajl), ehhez AES/Rijndael algoritmussal titkositanam a jelszot es ugy tarolnam, majd a kovetkezo programinditaskor (ugyanazzal a kulccsal es init. vektorral) feloldanam a titkositast es ezzel "jelentkeztetnem" be a felhasznalot az adatbazis szerveren.
2 kerdesem van:
1) Elegendo biztonsagot jelent-e ez a megoldas a helyi userdata fajl ellopasa eseten?
2) Kell-e titkositanom-e a connection string tobbi elemet, pl. az adatbazis szerverenek cimet vagy a felhasznaloi nevet?
"kenyelmi okokbol mentse a jelszavat egy helyi meghajton levo fajlba"
"kovetkezo programinditaskor (ugyanazzal a kulccsal es init. vektorral) feloldanam a titkositast es ezzel "jelentkeztetnem" be"
Én az alapkoncepciót nem értem. Így minek a jelszó? Hogyan döntöd el, hogy legközelebb is ő ül a gép előtt? :)
Jó dolog a kényelem, de ez egy pofon a biztonságnak, ami az alap cél lett volna.
@22:
Persze, de nem en irom a vilag elso alkalmazasat, amelyik menti a felhasznalo jelszavat. A minimalis celom az, hogy legalabb a settings file-t ha valaki mas megszerzi, abban ne a plaintext jelszot lassa.
Ha pl. a Firefoxban mented a webmail jelszavad es mas ul a geped ele, a Firefox mivel kuszoboli ki, hogy o ne tudjon belepni a te fiokodba?
Semmivel. :)
Ha valaki volt olyan hülye, hogy viszonylag hozzáférhető helyen mentette így bele az adatait, akkor bizony bárki beléphet onnantól kezdve, amíg le van tárolva a jelszó. (Na meg ki is olvashatja szépen.)
Ha a fent emlitett RijndaelManaged osztalyt hasznalom, amelyik egy kulccsal (key) es egy init. vektorral (iv) titkositja a jelszot (vagy barmit), tegyuk fel a felhasznalo gepen installalt Ethernet kartya MAC cimebol generalok egy kulcsot. Mivel a MAC cim nem valtozik (kiveve, ha spoofoljak), ezzel el tudom legalabb erni, hogy a jelszo, ami a gepen titkositva van tarolva a settings file-ban, masik gepre valo masolas es settings file-bol valo kiolvasas utan ne lehessen hasznalhato?
Leszamitva persze azt, hogy valaki az exe-bol visszafejti a C# kodot, stb.
"Bár én a titkosításra egyedi algoritmust írnék :)"
És az valószínűleg jobb lenne, mint a kismillió teszten és bevizsgáláson átesett, nálad sokkal hozzáértőbb emberek által tervezett .NET-es, beépített hash :D
Hát, te se menj inkább szoftverfejlesztőnek :D
Egyébként meg vicces, hogy nekem kell itt feltalálnom a meleg vizet, a sok agytrösztnek 30 hozzászólás után sem jutott még eszébe, hogyan védheti ki a .exe és a jelszó-file ellopásából adódó biztonsági rést, pedig egyszerű, mint a paprikás krumpli: nem az exe-ben kell tárolni a kulcsot. Az algoritmust hiába tudja, ha a kulcsa nincs meg, b*szhatja, hacsak nincs egy CIA szintű kódfejtő szuperszámítógépe, de egy mezei hacker-ről feltételezhető, hogy nem rendelkezik ilyesmivel.
És ha nem az exe-ben, akkor hol tárolod? Pl. egy pendrive-on, amit végülis nevezhetünk egyfajta hardver kulcsnak.
De akkor már magát a titkosított jelszót is lehet a pendrive-on tárolni, és voilá,
megoldódott a probléma. Persze a hardware kulcsot is ellophatják, de hát ahhoz már fizikailag kontaktálni kell valamelyik jogosult felhasználóval, pl. leütni az utcasarkon, és elvenni a hardware kulcsot, ami viszont már eléggé meredek ;)
De még ennél is tovább lehet gondolni a dolgot, ha még további biztonságra van szükség: olyan hardware-eken kell üzemeltetni a cuccot, amin van ujjlenyomat-olvasó, igazából egyáltalán nem ritkaság az ilyesmi, és nem is drága. Szóval szoftver elindul, bekéri az ujjlenyomatot, abból generálja dinamikusan az algoritmus kulcsát, oszt' cső, máris ott tartunk, hogy csak az tudja ellopni a jelszót, aki levágja a user ujját.. :)
"Egyébként meg vicces, hogy nekem kell itt feltalálnom a meleg vizet, a sok agytrösztnek 30 hozzászólás után sem jutott még eszébe, hogyan védheti ki a .exe és a jelszó-file ellopásából adódó biztonsági rést, pedig egyszerű, mint a paprikás krumpli: nem az exe-ben kell tárolni a kulcsot."
Nem, te nem találtál fel semmit, te szimplán nem értetted meg a kérdést. De nyugodtan veregesd a vállad tovább :)
Az ujjlenyomatos tetszett eddig a legjobban :)
A kovetkezo megoldasra jutottam: egyelore nem fogja tarolni a szoftver a jelszot. A connection string tobbi elemet titkositva igen, de a jelszot minden egyes alkalommal bekeri. Ezzel megkimelem a felhasznalot attol, hogy mindig kitoltson 4 sort valahanysor elinditja a programot, de meg mindig rakenyszeritem arra, hogy a jelszo biztonsagos tarolasarol maga gondoskodjon.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!