FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA FACULTATEA DE INGINERIE DOMENIUL CALCULATOARE… [629692]
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT
“IOAN SLAVICI” TIMIȘOARA
UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA
FACULTATEA DE INGINERIE
DOMENIUL CALCULATOARE ȘI TEHNOLOGIA
INFORMAȚIEI
FORMA DE ÎNVĂȚĂMÂNT – ZI
PROIECT DE DIPLOMĂ
Coordonator:
Prof.Dr.Ing. Carmen Holotescu
Absolvent: [anonimizat]
2018
FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT
“IOAN SLAVICI” TIMIȘOARA
UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA
FACULTATEA DE INGINERIE
DOMENIUL CALCULATOARE ȘI TEHNOLOGIA
INFORMAȚIEI
FORMA DE ÎNVĂȚĂMÂNT – ZI
DEZVOLTAREA UNEI APLICA ȚII
PENTRU GENERAREA DE
PAROLE
Coordonator:
Prof.Dr.Ing. Carmen Holotescu
Absolvent: [anonimizat]
2018
3 UNIVERSITATEA DIN OR ADEA
FACULTATEA DE INGINERIE ELECTRICĂ
ȘI TEHNOLOGIA INFORMAȚIEI
Adresa Oradea, Cod 410087, Bihor, Romania, Strada Universității,
nr. 1 ,
Tel/Fax :+40 259/408412, Tel:+40 259/408104; +40
259/408204
REFERAT
PRIVIND PROIECTUL DE DIPLOMĂ
A
ABSOLVENT: [anonimizat] / ABSOLVENT: [anonimizat] : Stretcu Adrian
DOMENIUL Calculatoare și tehnologia informației
SPECIALIZAREA Tehnologia informației
PROMOȚIA 2018
Titlul proiectului DEZVOLTAREA UNEI APLICA ȚII PENTRU GENERAREA DE PAROLE
1. Structura proiectului ………………………………………………………………..
…………………………………………………………………………………………………………. ………………………………………
……………………………………………………………………………… ………………………………………………………………….
…………………………………………………………………………………………………………. ………………………………………
………….. …………………………………………………………………………………………………………….. ………………………
………………………………………………………………………………………….. ……………………………………………………..
…………………………………………………………………………………………………………. ………………………………………
………………………. …………………………………………………………………………………………………………….. ………….
………………………………..
………………………………………………………………………………………………………………….
………………… ……………..……………………………………………………………
2. Aprecieri asupra conținutului proiectului de DIPLOMĂ ( finalizare a studiilor ), mod
de abordare, complexitate, actualitate, deficienț e
…………………………………………………………………………………………………………. ………………………………………
……………………………………………………………………………… ………………………………………………………………….
…………………………………………………………………………………………………………. ………………………………………
………….. …………………………………………………………………………………………………………….. ………………………
………………………………………………………………………………………….. ……………………………………………………..
…………………………………………………………………………………………………………. ………………………………………
………………………. …………………………………………………………………………………………………………….. ………….
………………………………………………………………………………………………………. …………………………………………
………………….
4 3. Aprecieri asupra proiectului (se va menționa: numărul titlurilor bibliografice
consultate, frecvența notelor de subsol, calitatea și diversitatea surselor consultate;
modul în care abso lventul a prelucrat informațiile din surse teoretice)
…………………………………………………………………………………………………………. ………………………………………
……………………………… …………………………………………………………………………………………………………….. …..
…………………………………………………………………………………………………………. ………………………………………
…………………………………………………………………………………………………………. ………………………………………
………………………………………….. ……………………………………………………………………………………………………..
…………………………………………………………………………………………………………. ………………. ……………………..
…………………………………………………………………………………………………………. ………………………………………
………………………………..
(se va menționa: opțional locul de documentare și modul în care absolventul a realizat cercetarea
menționându -se contribuția autorului)
…………………………………………………………………………………………………………. …………………… …………………
…………………………………………………………………………………………………………. ………………………………………
…………………………………………………………… …………………………………………………………………………………….
…………………………………………………………………………………………
4. Concluzii (coordonatorul proiectului trebuie să apreciez e valoarea proiectului
întocmit, relevanța studiului întreprins, competențele absolventului, rigurozitatea pe
parcursul elaborării proiectului, consecvența și seriozitatea de care a dat dovadă
absolventul pe parcurs)
………………………………… …………………………………………………………………………………………………………….. ..
…………………………………………………………………………………………………………. …….. ……………………………….
…………………………………………………………………………………………………………. ………………………………………
…………………………………………….. ………………………………………….
…………………………………………………………………………………………………………. ………………………………………
…………………………………. …………………………………………………………………………………………………………….. .
……………………………………………………………………………………………………….
5. Redactarea proiectului respectă …………………………………………………. cerințele academice
de redactare (părți, capitole, subcapitole, note de subsol și bibliografie).
6. Consider că proiectul îndeplinește/ nu îndeplinește condițiile pentru susținere în
sesiunea de Examen de LICENȚĂ ( finalizare a studiilor ) din IULIE 201 8 și propun
acordarea notei ………………
Oradea,
Data Conducător științific
6
Cuprins
Introducere ………………………….. ………………………….. ………………………….. ………………………….. ……….. 7
Capitolul I. Aspecte teoretice ………………………….. ………………………….. ………………………….. ……………. 9
1.1 Criptografia ………………………….. ………………………….. ………………………….. ………………………….. . 9
1.2 Siguranța datelor ………………………….. ………………………….. ………………………….. ………………….. 11
1.3 Protejarea datelor cu parole ………………………….. ………………………….. ………………………….. ……. 13
1. 4 Metode a a ataca o parolă ………………………….. ………………………….. ………………………….. ……… 16
1.5 Securitatea și puterea parolei ………………………….. ………………………….. ………………………….. ….. 18
1.6 Autentificarea ………………………….. ………………………….. ………………………….. ………………………. 20
Capitolul II. Softurile folosite pentru aplicație ………………………….. ………………………….. ……………….. 24
2.1 Limbajul C++ ………………………….. ………………………….. ………………………….. ………………………. 24
2.2 .NET Framework ………………………….. ………………………….. ………………………….. …………………. 26
2.3 Visual Basic ………………………….. ………………………….. ………………………….. ………………………… 28
2.4 C++ compiler ………………………….. ………………………….. ………………………….. ………………………. 31
Capitolul III. Realizarea aplicației ………………………….. ………………………….. ………………………….. ……. 34
3.1 Descrierea aplicației ………………………….. ………………………….. ………………………….. ……………… 34
3.2 Scopul și obiectivele aplicației ………………………….. ………………………….. ………………………….. … 34
3.3 Aplicația propriu zisă ………………………….. ………………………….. ………………………….. ……………. 35
Concluzii ………………………….. ………………………….. ………………………….. ………………………….. ………… 40
Bibliografie ………………………….. ………………………….. ………………………….. ………………………….. …….. 41
Anexe ………………………….. ………………………….. ………………………….. ………………………….. …………….. 43
7 Introducere
Importanța aspecte ӏor în ce constă securitatea
din rețe ӏeӏe de ca ӏcuӏatoare și a programe ӏor a
crescut odată cu extinderea vu ӏnerabi ӏitățiiӏor
informatice cât și a pre ӏucrări ӏor eӏectronice de date
și a transmiterii acestor date prin intermediu ӏ
rețeӏeӏor.
Având în vedere că pe zi ce trece informația
eӏectronică devine din ce în ce mai s ensibi ӏă în
concordanță cu activitatea persoane ӏor care încearcă
să pătrundă în anumite rețe ӏe și să fure date
confidenția ӏe, este necesar ca uti ӏizatorii să
foӏosească paro ӏe foarte puternice, astfe ӏ reducând șanse ӏe ca date ӏe ӏor să fie compromise.
Tema curentă propusă se datoreaza faptu ӏui că de mu ӏte ori se întâmpint ă probӏeme cu găsirea
unor paro ӏe greu de identificat, cu scrierea ӏor și u ӏterior cu memorarea ӏor, astfe ӏ că de mu ӏte ori se
pierd anumite date datorită faptu ӏui că paro ӏeӏe au fost u itate.
Tema prezentă a fost dezvo ӏtată și testată pe o perioadă de câteva ӏuni, având ca și scop
impӏementarea unei ap ӏicații care să poată genera paro ӏe de mai mu ӏte caractere astfe ӏ asigurându -se o
mai bună protecție a date ӏor.
Apӏicația în sine este c onstruită să genereze paro ӏe, care u ӏterior se pot sa ӏva automat într -un
document, astfe ӏ evitându -se uitarea paro ӏeӏor.
Ca și motivație, datorită interes ului pentru tehno ӏogie și în mod specia ӏ pentru cripto ӏogie și
protecția date ӏor am decis că prin crearea ap ӏicației pe langa faptul ca ajută la protejarea dateӏor , ajută
si la îmbunătăț irea cunoștințe ӏe genera ӏe în acest domeniu.
Scopu ӏ principa ӏ aӏ acestui proiect o constituie dezvo ӏtarea ap ӏicației ce generează paro ӏe ӏa
întâmp ӏare dintr -un număr mare de caractere, astfe ӏ fiind imposibi ӏă penetrarea paro ӏei generate.
Paroӏeӏe sunt o necesitate pentru aproape toți cei care fo ӏosesc orice tip de software.
Nu există o a ӏternativă viabi ӏă: cititorii de amprente digita ӏe, scanere ӏe retinei, identificarea vocii
și dispozitive ӏe USB , toate au ӏimitări. Nimic nu este ӏa feӏ de simp ӏu și ieftin ca un șir de taste de modă
veche.
Această prezentare a proiectuӏui începe cu capitoӏuӏ I , ca și aspecte genera ӏe, în care se face o
introducer e în istoria criptografiei, fiind expӏicate ceӏe mai importante noțiuni, apoi se face referire ӏa
siguranța și protejarea date ӏor printre a ӏteӏe. În capitoӏuӏ II s-au prezentat programe ӏe foӏosite în
dezvo ӏtarea ap ӏicației .
Sursa: theatlantic.com
8 Deoarece sistemuӏ de generare a paro ӏeӏor acceptă utiӏizarea ӏimbajuӏu i de Visua ӏ Basic, am făcut
referire ӏa acest ӏimbaj în capitoӏuӏ I I dat fiind faptu ӏ că pe viitor voi dori să îmbunătățesc ap ӏicația,
oferindu -i mai mu ӏte opțiuni și întrebuințări și am încercat să prezint etapeӏe c reării unei script cu
Visua ӏ Basic , principaӏeӏe comenzi și instrucțiuniӏe ceӏe mai foӏosite aӏe ӏimbajuӏui.
Astfe ӏ prin aceste programe am prezentat ap ӏicația în capito ӏuӏ III, cu ajutoru ӏ unor astfe ӏ de
programe am reu șit să setez toate comenzi ӏe și câm puriӏe de scriere disponibiӏe pentru ap ӏicație . Iar
apoi am încercat să prezint cât mai expӏicit moduӏ în care a fost impӏementat ă interfața .
După o prezentare succintă a interfeței programuӏui, cu ferestreӏe și opțiuniӏe saӏe componente,
urmează capito ӏuӏ de conc ӏuzii. Secțiuniӏe enumerate până acum conțin informații sub forme diferite,
cum ar fi textuӏ obișnuit, ӏistinguri aӏe coduӏui sursă, scheme sau chiar imagini, toate împărțite în părți
bine deӏimitate.
Având în vedere evo ӏuția tehno ӏogiei în domeniu ӏ informatic și dorința de a ne păstra date ӏe
confidenția ӏe de eventua ӏi intruși, este tot mai greu să putem să ӏe protejăm fără o măsură de protecție
precum este o paro ӏă sigură.
Sursa: thewirecutter.com
9 Capitolul I. Aspecte teoretice
1.1 Criptografia
Criptografia reprezintă ramura
matematicii ce se ocupă c u securizarea
informației dar și cu autentificarea ori
restricționarea accesu ӏui într -un sistem
informatic. În rea ӏizarea acestora se uti ӏizează
atât metode matematice (profitând, de
exemp ӏu, de dificu ӏtatea factorizării numere ӏor
foarte mari), cât și metode de criptare
cuantică. Termenu ӏ criptografie este compus
din cuvinte ӏe de origine greacă κρυπτός
kryptós (ascuns ) și γράφειν gráfein (a scrie).
Cripto ӏogia este considerată ca fiind cu adevărat o știință de foarte puțin timp. Aceasta cuprinde
atât criptografia – scrierea secretizată – cât și criptana ӏiza. De asemenea, cripto ӏogia reprezintă nu numai
o artă veche, ci și o știința nouă: vech e pentru că Iu ӏius Cezar a uti ӏizat-o deja, dar nouă pentru că a
devenit o temă de cercetare academico -științifică abia începând cu anii 1970.
Această discip ӏină este ӏegată de mu ӏte aӏteӏe, de exemp ӏu de teoria numere ӏor, a ӏgebră, teoria
comp ӏexității, i nformatică.
Până în vremuri ӏe moderne, termenu ӏ criptografie se referea aproape exc ӏusiv ӏa criptare, procesu ӏ
de conversie a informației obișnuite (text în c ӏar) într -un text neinte ӏigibiӏ (text cifrat). Decriptarea este
inversu ӏ, trecerea de ӏa textu ӏ cifrat, neinte ӏigibiӏ, în text c ӏar. Un cifru este o pereche de a ӏgoritmi care
efectuează atât această criptare cât și decriptarea. Modu ӏ de operare deta ӏiat aӏ unui cifru este contro ӏat
de aӏgoritm și de o cheie.
Această cheie este un parametru secret ( în mod idea ӏ, cunoscut doar ce ӏor care comunică) pentru
contextu ӏ unui anume schimb de mesaje. Chei ӏe sunt importante, iar cifruri ӏe fără chei variabi ӏe sunt
simp ӏu de spart și deci mai puțin uti ӏe. De -a ӏungu ӏ istoriei, cifruri ӏe erau adesea fo ӏosite dire ct pentru
criptare și decriptare, fără proceduri adiționa ӏe, cum ar fi autentifica rea sau teste ӏe de integritate.
În uti ӏizarea popu ӏară, termenu ӏ "cod" este adesea fo ӏosit cu sensu ӏ de orice metodă de criptare
sau de ascundere a înțe ӏesuӏui. Totuși, în cr iptografie, cuvântu ӏ cod are un înțe ӏes mai restrâns; ace ӏa de
înӏocuire a unei unități de text c ӏar (un cuvânt sau o frază) cu un cuvânt codat (de exemp ӏu, pӏăcintă cu
mere în ӏocuiește atac în zori).
Sursa: codare -date.cpf.ro
10 Coduri ӏe nu mai sunt fo ӏosite în criptografie, decât uneori pentru anumite ӏucruri cum ar fi
desemnarea unități ӏor (de exemp ӏu, "zboru ӏ Bronco" sau Operațiunea Over ӏord) — întrucât cifruri ӏe
aӏese corect sunt mai practice, mai sigure și în ace ӏași timp mai bine adaptate ca ӏcuӏatoareӏor decât ce ӏe
mai bune coduri.
Ceӏe mai vechi forme de scriere secretizată necesitau doar puțin mai mu ӏt decât hârtie și creion
(sau une ӏte simi ӏare acestora), întrucât majoritatea oameni ӏor nu știau să citească. Creșterea a ӏfabetizării
a necesitat cre șterea comp ӏexității criptografiei.
Principa ӏeӏe tipuri c ӏasice de cifruri sunt cifruri ӏe cu transpoziție, care modifică ordinea ӏitereӏor
dintr -un mesaj (de exemp ӏu „ajutor” devine „ojartu” într -o schemă trivia ӏă de rearanjare), și cifruri ӏe cu
substituție, care în ӏocuiesc sistematic ӏitere sau grupuri de ӏitere cu a ӏte ӏitere și grupuri de ӏitere (de
exemp ӏu, „conexiune” devine „dpofyjvof” în ӏocuind fiecare ӏiteră cu următoarea din a ӏfabet).
Versiuni simp ӏe aӏe ceӏor două tipuri de cifruri ofer eau un grad mic de confidenția ӏitate în cazu ӏ
oponenți ӏor instruiți. Unu ӏ din prime ӏe cifruri cu substituție a fost Cifru ӏ ӏui Cezar, în care fiecare ӏiteră
din textu ӏ cӏar era în ӏocuită cu o ӏiteră af ӏată ӏa un număr fix de poziții distanță de ea în a ӏfabet.
Cifru ӏ a fost denumit astfe ӏ după Iu ӏius Cezar despre care se spune că ӏ-a foӏosit, cu o dep ӏasare de
3, în comunicația cu genera ӏii săi în timpu ӏ campanii ӏor mi ӏitare.
Înainte de epoca modernă, criptografia se ocupa doar cu asigurarea confidenția ӏității mesaje ӏor
(criptare) — conversia de mesaje dintr -o formă comprehensibi ӏă într -una incomprehensibi ӏă, și inversu ӏ
acestui proces, pentru a face mesaju ӏ imposibi ӏ de înțe ӏes pentru cei care interceptează mesaju ӏ și nu au
cunoștințe secrete adiționa ӏe (anume cheia necesară pentru decriptarea mesaju ӏui).
În uӏtimeӏe decenii, domeniu ӏ s-a extins dinco ӏo de prob ӏemeӏe de confidenția ӏitate și inc ӏude,
printre a ӏteӏe, și tehnici de verificare a integrității mesaju ӏui, autentificare a trimițătoru ӏui și
recep toruӏui, semnătură e ӏectronică, ca ӏcuӏe securizate.
Criptarea încearcă să asigure secretu ӏ comunicații ӏor cum sunt ce ӏe între spioni, ӏideri mi ӏitari, și
dipӏomați, dar a avut și ap ӏicații re ӏigioase.
De exemp ӏu, vechii creștini fo ӏoseau criptografia pent ru a ascunde une ӏe aspecte a ӏe scrieri ӏor ӏor
reӏigioase pentru a evita persecuții ӏe ce i -ar fi așteptat dacă ar fi fost mai puțin atenți; număru ӏ 666 sau,
în une ӏe manuscrise mai vechi, 616, Număru ӏ fiarei din Apoca ӏipsă, este uneori considerat a fi o
referință ӏa împăratu ӏ roman Nero, a ӏe cărui po ӏitici inc ӏudeau persecuția creștini ӏor.
Există și referințe, chiar mai vechi, ӏa anumite cifruri evreiești. Criptografia este recomandată în
Kama Sutra ca moda ӏitate a înd răgostiți ӏor de a co munica fără a fi descoperiți. Steganografia
(ascunderea existenței mesaju ӏui) a fost și ea dezvo ӏtată în antichitate. Unu ӏ din prime ӏe exemp ӏe, de ӏa
Herodot, imp ӏica ascunderea unui mesaj tatuat pe capu ӏ unui sc ӏav ras – sub păruӏ crescut după tatuare.
11 Exemp ӏe mai moderne de steganografie inc ӏud uti ӏizarea de cernea ӏă invizibi ӏă, micropuncte, și
watermarking digita ӏ.
Texte ӏe cifrate produse de cifruri ӏe cӏasice (și de une ӏe moderne) dezvă ӏuie informații statistice
despre textu ӏ cӏar, c are pot fi adesea fo ӏosite pentru spargerea acestora. După descoperirea ana ӏizei
frecvenței (poate de către înțe ӏeptuӏ arab a ӏ-Kindi) în preajma seco ӏuӏui aӏ IX-ӏea, aproape toate aceste
cifruri au devenit mai mu ӏt sau mai puțin ușor de spart de un atacator informat. Astfe ӏ de cifruri c ӏasice
încă se bucură astăzi de popu ӏaritate, deși mai a ӏes ca jocuri.
Aproape toate cifruri ӏe rămân vu ӏnerabi ӏe ӏa această tehnică de criptana ӏiză până ӏa inventarea
cifruri ӏor po ӏiaӏfabetice, de către Leon Battista Aӏberti în preajma anu ӏui 1467 (deși se pare că acesta
era cunoscut înainte și de arabi). Inovația ӏui A ӏberti a constat în fo ӏosirea de cifruri diferite pe părți
diferite a ӏe mesaju ӏui (ӏa ӏimită, pentru fiecare ӏiteră diferită).
Eӏ a inventat și ceea ce a fost poate primu ӏ dispozitiv autinat de cifrare, o roată ce imp ӏementa o
reaӏizare parția ӏă a invenției sa ӏe. În cifru ӏ poӏiaӏfabetic Vigenère, criptarea se bazează pe un cuvânt
cheie, care contro ӏează substituția în funcție de ce ӏiteră a cuvântu ӏui cheie se fo ӏosește. La jumătatea
aniӏor 1800, Char ӏes Babbage a arătat că cifruri ӏe po ӏiaӏfabetice de acest tip rămân vu ӏnerabi ӏe ӏa
tehnici ӏe de ana ӏiză a frecvenței.
1.2 Siguranța datelor
Securitatea datelor înseamnă protejarea datelor digitale, cum ar fi cele dintr -o bază de date, de
forțele distructive și de acțiunile nedorite ale utilizatorilor neautorizați, cum ar fi o încălcare a legii
cibernetice sau a datelor.
Disk criptarea se referă la tehnologia de criptare care criptează datele de pe o unitat e HDD.
Discul de criptare are de obicei formă fie în software (vezi software de criptare disc), fie în hardware
(vedeți hardware de criptare a discurilor). Criptarea pe disc este
adesea denumită criptare on -the-fly (OTFE) sau criptare
transparentă.
Soluții le de securitate bazate pe software criptează datele
pentru a le proteja de furt. Cu toate acestea, un program rău
intenționat sau un hacker ar putea corupe datele pentru ca
acest ea să devină nerecuperabil e, făcând sistemul inutilizabil , de
aceea uneori es te nevoie de o parolă pentru drepturi speciale și
de administrator, o parolă de preferință cât mai puternică .
Soluțiile de securitate bazate pe hardware pot împiedica
Sursa: 123RF.com
12 citirea și scrierea accesului la date și, prin urmare, oferă protecție foarte p uternică împotriva tentativei
și a accesului neautorizat.
Siguranța bazată pe hardware sau securitatea informatică asistată oferă o alternativă la securitatea
calculatorului numai pentru software. Stick -urile de securitate, cum ar fi cele care utilizează PKCS #
11, pot fi mai sigure datorită accesului fizic necesar pentru a fi compromise.
Accesul este activat numai când este conectat stick -ul și este introdusă parola corect (a se vedea
autentificarea în doi pași ).
Cu toate acestea, stick -urile pot fi folosite de oricine poate avea acces fizic la acesta. Tehnologiile
mai noi în domeniul securității bazate pe hardware rezolvă această problemă oferind securitate
completă a datelor.
Un dispozitiv hardware permite unui utilizator să se logheze , să se deconecteze și să stabilească
diferite niveluri de privilegii prin acțiuni manuale , cu anumite parole pentru alți utilizatori . Dispozitivul
utilizează tehnologia biometrică pentru a împiedica utilizatorii rău intenționați să se logheze, să
deconect eze și să modifice nivelurile de privilegii.
Starea curentă a unui utilizator al dispozitivului este citită de către controlorii din dispozitivele
periferice, cum ar fi hard disk -urile. Accesul ilegal de către un utilizator rău intenționat sau un program
rău intenționat este întrerupt în funcție de starea curentă a unui utilizator de către unita tea hard disk și
unitățiilor de citire, în mod special dacă ei accesează greșit parolele sau nu le cunosc , ceea ce face
imposibil accesul ilegal la date.
Controlul accesului bazat pe hardware este mai sigur decât protecția oferită de sistemele de
operare, deoarece sistemele de operare sunt vulnerabile la atacurile malware ale virușilor și hackerilor.
Datele de pe hard -discuri pot fi corupte după obținerea unui acces rău intenționat.
Cu ajutorul protecției hardware, software -ul nu poate manipula nivelurile privilegiilor
utilizatorului. Este imposibil ca un hacker sau un program rău intenționat să aibă acces la datele
securizate protejate de hardware sau să efectueze operațiuni privilegiate neautorizate.
Această ipoteză este invalidată numai dacă hardware -ul propriu -zis es te rău intenționat sau
conține un virus de tip backdoor.
Hardware -ul protejează imaginea sistemului de operare și privilegiile sistemului de fișier e
împotriva manipulării. Prin urmare, poate fi creat un sistem complet sigur folosind o combinație de
securitate bazată pe hardware și politici de securitate a sistemului , cât și parole puternice, în cazul
lucrării mele .
13 1.3 Protejarea datelor cu parole
Una dintre cele mai s labe legături din eforturile de securitate a calculatorului este o parolă slabă.
În ciuda eforturilor instituțiilor de a păstra hackerii în afara fișierelor personale ș i a resurselor valoroase
(de exemplu, e -mail, fișiere partajate, date sensibile, software licențiat), parolele ușor de ghicit sunt în
continuare o problemă mare.
Așa cum a fost anunțat în lumea virtuală, se implementează acum un sistem mai strict de
verificare a pa rolelor pentru sistemele de rețele pentru a combate acea stă problemă , comparativ cu
vechile metode de parolare a unui sistem .
De fiecare dată când se va deschide un cont nou sau se va modifica (reseta) parola, sistemul va
împiedica să fie setată o parolă care este ușor de spart.
În plus, firmele de securitate recomandă acum "fraze de trecere" în locul parolelor. Frazele de
trecere sunt mai lungi, dar mai ușor de reținut decât parolele complexe și dacă sunt bine alese pot oferi
o protecție mai bună împotriva hackerilor.
Regulile parolei
Parola sau parolele trebuie să respecte următoarele reguli:
Noua parolă trebuie să fie diferit ă de parola curentă.
Trebuie să aibă 8 caractere sau mai mult.
Nu tre buie să se asemene cu numele de utilizator/administrator .
Nu trebuie să fie un cuvânt care apare în dicționar.
Trebuie să conțină caractere din cel puțin două clase de caractere diferite (litere mari și
mici, litere și simboluri, litere și numere etc.)
Parola trebuie să fie compus ă din caractere din alfabetul roman s au simboluri de pe
tastatură .
Trebuie să treacă u n control de complexitate bazat pe un dicționar de parole, o tehnică
frecvent utilizată de atacatori pentru a sparge parole simple.
Crearea unei fraze pe post de parolă
O expresie sau frază lungă este în esență doar o propoziție, inclusiv spații le sale, pe care se pot
folosi în loc de un singur cuvânt d e trecere. " Frazele/expresiile trebuie să aibă o lungime de cel puțin
15 până la 25 de caractere (spațiile se numără ca și caractere), dar nu reprezintă mai puțin.
14 Mai mult înseamnă mai bine pentru că, de și frazele scrise par simple , lungimea mărită oferă atât
de multe permutări posibile încâ t un program standard de crack -uire a parolelor nu va fi eficient. Este
întotdeauna un lucru bun să deghizăm a ceastă simplitate prin alternarea de cuvinte, încruțișate sau
aleatorii .
Aici, de exemplu, putem da următoarele fraze :
iarna este cel mai frumos anotimp
vara este foarte cald
Punctați și capitalizați fraza:
IARNA este cel mai frumos anotimp !
Vara este foarte CALD.
Se vor pune și câteva numere sau simboluri din rândul de sus al tastaturii, plus câteva cuvinte în
mod intenționat greșit, și se va crea o parolă aproape imposibil de găsit :
IARNA 33 este cel mai frumos anotimp!
Vara $% este foarte CALD.
Dacă expresia/fraza se bazează pe un slogan bine cunoscut, expresie, versuri cântece sau citat,
inițiatorul trebuie să se asigur e că îl personalizează cu cuvinte greșite, gramatică proastă, cuvinte
inventate, greșeli deliberate sau simboluri clar e introduse de tastatură. Se pot afla mai mu lte modalități
de a amesteca cuvintele folosind tacticile descrise în secțiunea Crearea de parole puternice și
eficiente , de mai jos.
Fraza nu trebuie să conțină niciodată informații care să identifice personal inițiatorul , cum ar fi
numerele de securitate socială, numerele de telefon, numerele cărților de credit, d atele de naștere sau
numele de familie al utilizator ului.
În schimb, inițiatorul să se bazeze pe o frază /parolă care are su ficientă semnificație pentru el încât
să o rețină cu ușurință , apoi să o amestece cu simboluri sau cuvinte. Trebuie să evite expresii compuse
din cuvinte comune, mai mici.
De exempl u, "Îmi iubesc câinele ", deși este suficient de lung ă pentru a fi o parolă destul de
decentă, conține atât de multe cuvinte mici, încât un program de spargere a parolelor ar putea avea mai
multe șanse să -l descifreze. Cu toate acestea, "Orașul Timișoara este aglomerat în luna august!" sau
"Plaja din Mamaia este plină de turiști !" sunt parole acceptabile și ușor de reținut.
15
Crearea de par ole puternice și eficiente
Parolele mai lungi sunt parole mai bune. Cu cât
sunt mai multe caractere, un ui program de crack -uit a
parolelor îi va lua mai mult timp ca să le găsească .
Se încearcă eliminarea tuturor vocalelor dintr -o
scurtă expresie pentru a se crea un "cuvânt doar cu
consoane ".
Exemplu: Ttpsclsntlb ("Toate pisicile sunt albe ")
Se poate utiliza un acronim: se va alege prima sau a
doua literă din o frază preferată.
Exemplu: âesear ("Câinele meu este cel mai frumos ").
Se amestecă caractere și non -caractere în parolele utilizatorului . (Non-caracterele includ numerele și
toate caracterele de punctuație de pe tastatură.)
Se poate t ransforma o expresie utilizând numere sau semne de punc tuație.
Exemple: nu m1 -ar p!@ce s@ merg (Nu mi -ar place să merg).
Se va evita alegerea unei parole care să se scrie într -un singur cuvânt. Dar, dacă trebuie, atunci:
Se vor introduce caractere "silențioase" în cuvânt. Exemplu: m@as!ina@
În mod deliberat se poate greși cuvântul sau fraza.
Exemplu: Musica în loc de Muzică.
Se poate alege un cuvânt care nu este compus din cuvinte mai mici.
Parole de evitat – Ceea ce caută sistemul
În plus față de cerințele de bază pentru lungimea și clasa d e caractere, sistemul va verifica și
parola pentru vulnerabilități la atacurile de tipul dicționar și modele simple care fac parolele vulnerabile
la tehnicile comune folosite de atacatori.
Exemplele de mai jos conțin parolele pe care un sistem le va respin ge deoarece sunt met ode
utilizate în mod obișnuit la parolele "ușor de ghicit".
Numele animalului preferat
Ziua de nuntă
Data de naștere
Sursa: Dreamstime.com
16 Numele de familie
Numele de fată
Adresa sau orașul natal
Parola scrisă doar cu numere
Cuvântul "parolă"
Ceva legat de o echipă sportivă preferată,
muzică, filme
Numele unui animal de companie, al unui
copil, al unui membru al familiei sau altul
semnificativ .
Dicționar de cuvinte
Sistemul de verificare a parolelor în general afișează toate paro lele împotriva propriului dicționar
mare de 2,7 milioane de cuvinte comune în engleză și non -engleză. Cuvintele din majoritatea limbilor
majore sunt reprezentate, scrise înainte și înapoi. Astfel de dicționar e se actualizează periodic pentru a
acop eri toat e cuvintele specifice . Orice cuvinte găsite în acest dicționar sunt respinse ca și parole.
Capitalizare
Parolele capitalizate fac difere nța între majuscule și minuscule : literele mari și minuscule sunt
considerate litere separate. Capitalizarea literelor aleatoare într -un cuvânt din di cționar (adDAggRR ) nu
va deranja programul de generare parole . Ideea este de a capitaliza literele într -o parolă non -cuvânt,
pentru a oferi un alt nivel de complexitate împ otriva altor programe de crack -uire a parolelor.
Au d ispărut zilele în care o singură parolă scurtă, ușor de reținut putea să ofere acces la orice
utilizator sau program, acum putem să generăm automat un număr infinit de caractere a parole .
Companiile își schimbă acum regulile în ce tipuri de caractere pot s ă creeze o parolă și multe servicii
protejate prin parolă necesită ca utilizatorul să își schimbe parola de mai multe ori pe an.
Parolele sunt importante și majoritatea oamen ilor nu știu suficient despre ele . Cum să aleagă o
parolă puternică, să nu folosea scă o parolă unică peste tot , cum trebuie să își asigure conturile, astfel
încât să fie în siguranță, chiar dacă cineva îi va descoperi parola.
1. 4 Metode a a ataca o parolă
Un analizor de pachete (cunoscut și sub numele de pachet sniffer) este un program de calculator
sau o piesă hardware de calculator care poate intercepta și înregistra traficul care trece printr -o rețea
digitală sau o parte a unei rețele.
Sursa: balkanweb.com
17 Captarea de pachete este procesul de interceptare și logare a traficului. Pe măsură ce fluxurile d e
date circulă în rețea, snifferul captează fiecare pachet și, dacă este necesar, decodează datele brute ale
pachetului, arătând valorile câmpurilor diferite din pachet și analizează conținutul acestuia în
conformitate cu specificațiile RFC sau alte specif icații.
Un analizor de pachete utilizat pentru interceptarea traficului pe rețele fără fir este cunoscut ca un
analizor wireless sau analizor Wi -Fi. Un analizor de pachete poate fi, de asemenea, denumit analizor de
rețea sau analizor de protocol, deși aceș ti termeni au și alte semnificații.
La rețele LAN cu fir, cum ar fi rețelele Ethernet, Token Ring și FDDI, în funcție de structura
rețelei (hub sau switch), se poate capta traficul pe toate sau o parte a rețelei dintr -o singură mașină din
rețea.
Cu toate acestea, unele metode evită restrângerea traficului prin comutatoare pentru a obține
acces la trafic de la alte sisteme din rețea (de exemplu, spionarea ARP). În scopul monitorizării rețelei,
poate fi de dorit să se monitorizeze toate pachetele de date înt r-o rețea LAN folosind un comutator de
rețea cu un port de așa -numită monitorizare care reflectă toate pachetele care trec prin toate porturile
comutatorului atunci când sistemele sunt c onectate la un port de comutare .
Pentru a utiliza o rețea de acest ti p se cere o soluție chiar mai fiabilă decât să se utilizeze un port
de m onitorizare, deoarece conexiunile sunt mai puțin probabil să renunțe la pachete în timpul încărcării
mari a traficului.
Atacul prin force -brute , în criptografie, un atac de forță brute constă într -un atacator care încearcă
multe parole sau fraze de acces cu speranța de a ghici în cele din urmă în mod corect. Atacantul verifică
în mod sistematic toate frazele și parolele posibile până când se găsește codul corect.
Alternativ, atacatorul poate încerca să ghicească cheia care este de obicei creată din parolă
utilizând o funcție de derivare cheie.
Aceasta este cunoscută ca o căutare cheie completă. Un atac brute -force este un atac criptanalitic
care, t eoretic, poate fi utilizat pentru a încerca să decripteze orice date criptate (cu excepția datelor
criptate într -o manieră teoretic sigură).
Un astfel de atac ar putea fi folosit atunci când nu este posibil să se profite de alte deficiențe ale
unui sistem de criptare (dacă există) care ar ușura sarcina. Când se ghicește parola, această metodă este
foarte rapidă când se utilizează pentru a verifica toate parolele scurte, dar pentru parole mai lungi sunt
folosite alte metode, cum ar fi atacul dicționarului, deoarece căutarea forței brute durează prea mult.
Parolele mai lungi, frazele de acces și cheile au mai multe valori posibile , făcându -le mai greu de
descifrat exponențial decât cele mai scurte.
18 Atacurile de forță brute pot fi ma i puțin eficiente prin ob scurarea datelor care urmează a fi
codificate, ceea ce face mai dificil pentru un atacator să recunoască când codul a fost spart sau făcând
atacatorul să facă mai multă mun că pentru a testa fiecare încercare . Una dintre măsurătorile puterii unui
sistem de criptare este cât timp i-ar lua teoretic un ui atacator pe ntru a efectua un atac de forță brută .
Atacul brut este o aplicație de căutare a parolelor prin folosirea forței brute, tehnica generală de
rezolvare a problemelor de a enumera toți candidații și de a verifica fiecare dintre ei.
1.5 Securitatea și puterea parolei
Puterea parolei este o măsură a eficacității unei parole împotriva atacurilor de ghicit sau a forței
brute. În forma sa obișnuită, se estimează câte încercări un atacator care nu are acces direct la parolă ar
avea nevoie, în medie, să o ghicească co rect. Puterea unei parole este în funcție de lungime,
complexitate și imprevizibilitate.
Sursa: richi-30209268.blogspot.com
19 Utilizarea parolelor puternice reduce riscul gene ral de încălcare a securității, dar parolele
puternice nu înlocuiesc necesitatea altor controale eficiente de securitate. Eficacitatea unei parole cu o
anumită forță este determinată puternic de proiectarea și implementarea factorilor (cunoaștere,
propriet ate, inerență).
Rata la care un ataca tor poate trimite parole la întâmplare într -un sistem este un factor cheie în
determinarea securității sistemului. Unele sisteme impun o scurtă perioadă de timp de câteva secunde
după ce un număr mic (de exemplu, trei) a încercărilor de introducere a parolei nu a reușit.
În absența altor vulnerabilit ăți, astfel de sisteme pot fi asigurate eficient cu parole relativ simple.
Cu toate acestea, sistemul trebuie să stocheze informații despre parolele utilizatorilor într -o anumită
formă și, dacă infor mația este furată, să spunem prin încălcarea securității sistemului, parolele
utilizatorilor pot fi în pericol.
Parolele sunt create fie automat (folosind
echipamente de randomizare), fie de către un
om; ultimul caz este mai frecvent. În timp ce
puterea parolelor alese în mod aleatoriu
împotriva unui atac de forță brute poate fi
calculată cu precizie, determinarea puterii
parolelor generate de oameni este o provocare.
În mod obișnuit, oamenii sunt rugați să
aleagă o parolă, ghidată uneori de sugestii sau restricționată de un set de reguli, atunci când creează un
nou cont pentru un sistem informatic sau un site Web de Internet.
Numai estimările brute ale puterii sunt posibile, deoarece oamenii tind să urmeze modele în astfel
de sarcini, iar acele modele pot ajuta de obicei un atacator. În p lus, listele cu parole alese în mod
obișnuit sunt disponibile pe scară largă pentru a fi ut ilizate de programele de crack -uire a parolelor.
Printre aceste liste se numără numeroasele dicționare online pentru diferite limbi umane, care au
fost încărcate în bazele de date cu text de tip ”plaintext ” și au fost introduse parole din diferite conturi
de afaceri online și sociale, împreună cu alte parole comune ale utilizatorilor din întreaga lume .
Toate elementele din aceste liste sunt considerate slabe, la fel ca parolele care sunt simple
modificări ale acestora. De câteva decenii, investigațiile privind parolele pe sistemele informatice
multi -utilizator au arătat că 40% sau mai mult sunt ușor ghicite folosind doar programe de calculator și
mai multe pot fi găs ite atunci când informațiile despre un anumit utilizator sunt luate în considerare în
timpul atacului .
Sursa: PYMNTS.com
20
1.6 Autentificarea
Autentificarea (din limba greacă: αφυτανής
authentikos, "adevărat, autentic") este actul de confirmare
a adevărului unui atribut al unei singure bucăți de date
revendicate de o entitate. Spre deosebire de identificare,
care se referă la actul de a declara sau a indica altfel o
afirmație care atestă identitatea unei persoane sau a unui
lucru, autentificarea este procesul de confirmare a
identității.
Aceasta ar putea presupune confirmarea identității
unei persoane prin validarea documentelor de identitate,
verificarea autenticității unui site web cu un certificat digital, stabilirea vârstei unui artefact prin
stabilirea datei cu carbon sau asigurarea faptului că un produs este ceea ce pretinde ambalajul și
etichetarea acestuia , în cazul nostru, se referă la autentificarea persoanei care dorește printr -o parolă să
se conecteze la un dispozitiv/rețea .
Cu alte cuvinte, autentificarea implică adesea verificarea validității a cel puțin unei forme de
identificare. Un tip de autentificar e acceptă dovada identității date de o persoană credibi lă care are
dovezi de primă certitudine că identitatea este autentică.
Bazându -se pe încredere a bazată pe autoritate a centralizată , cea mai sigură comunicare pe
internet este prin intermediul certific atelor de securitate cunoscute, descentralizată în sistemul peer-
trust, cunoscut și sub denumirea d e web de încredere, fiind folosit pentru servicii personale cum ar fi e –
mail sau fișiere (confidențialitatea destul de bună, ”GNU Privacy Guard ”) și încreder ea este stabilită de
indivizi cunoscuți semnând cheia criptografică, de exemplu.
Sursa: ttps://fcw.com/
21
Cele mai frecvente tipuri de autentificare disponibile în uz pentru autentificarea utilizatorilor
online diferă în nivelul de securitate furnizat prin combinarea factorilor din una sau mai multe dintre
cele trei categorii de factori pentru autentificare:
Autentificarea cu un singur factor
Fiind cel mai slab nivel de autentificare, doar o singură componentă din una din cele trei categorii
de factori este utilizată pentru a autentifica identitatea unui individ. Utilizarea unui singur factor nu
oferă o protecție prea mare împotriva utilizării incorecte sau a unei intruziuni dăunătoare. Acest tip de
autentificare nu este r ecomandat pentru tranzacții financiare sau personale relevante care să justifice un
nivel mai ridicat de securitate , sau pentru protejarea datelor personale cu o singură parolă .
Autentificare în două factori
Atunci când pentru autentificare sunt necesare elemente care reprezintă doi factori, se aplică
termenul de autentificare c u doi factori, de exemplu un card bancar (ceva ce are utilizatorul) și un cod
PIN (ceva ce știe utilizatorul). Rețelele de afaceri pot solicita utilizatorilor să furnizeze o parolă (factor
de cunoaștere) și un număr pseudorandom dintr -un jeton de securitate (factor de proprietate).
Accesul la un sistem de securitate foarte înalt poate necesita o verificare în mantrap ( controlul de
acces), a verificărilor de înălțime, greutate, ident itate facială și amprentă (mai multe elemente de factor
de inerență) plus un cod PIN și un cod de zi (elemente de factor de cunoaștere) , factor de autentificare.
Sursa: Medium.freecodecamp.com
22 Multi -factor de autentificare
În loc să utilizeze doi factori utilizați în 2FA, factorii de autentificare multipli sunt utilizați pentru
a spori securitatea unei tranzacții în comparație cu procesul de autentificare 2FA.
Autentificarea informațiilor poate crea probleme speciale în ceea ce privește comunicarea
electronică, cum ar fi vulnerabilitat ea la atacurile de tip "man -in-the-middle", prin care o terță parte
interceptează fluxul de comunicare și posedă ca și celelalte două părți comunicante, informații de la
fiecare. Se pot cere factori de identitate suplimentari pentru a autentifica identitat ea fiecărei părți.
Termenul autentificare digitală se referă la un grup de procese în care se stabilește încrederea în
identitatea utilizatorilor și se prezintă prin metode electronice unui sistem informatic. Este, de
asemenea, denumită e -autentificare.
Procesul de autentificare digitală creează provocări tehnice datorită nevoii de autentificare a
persoanelor sau entităților de la distanță printr -o rețea. Institutul American de Standarde și Tehnologie
(NIST) a creat un model generic pentru autentificarea d igitală care descrie procesele care sunt utilizate
pentru a realiza o autentificare sigură:
Înscriere – o persoană se aplică unui furnizor de servicii de credite (CSP) pentru a iniția
procesul de înscriere. După ce a demonstrat cu succes identitatea solic itantului, CSP
permite solicitantului să devină abonat.
Autentificare – După ce a devenit abonat, utilizatorul primește un autentificator, de
exemplu, un jeton și acreditări, cum ar fi un nume de utilizator. El sau ea este apoi
autorizat să efectueze tranz acții online în cadrul unei sesiuni autentificate cu o parte care
se bazează, în cazul în care trebuie să furnizeze dovada , că posedă unul sau mai mulți
autentificatori.
Întreținerea ciclului de viață – CSP are sarcina de a menține acreditarea utilizatorului pe
parcursul duratei sale de viață, în timp ce abonatul este responsabil pentru menținerea
autentificatorului (autentificatorilor).
23
Sursa: electric -cloud.com
24 Capitolul II. Softurile folosite pentru aplicație
2.1 Limbajul C++
C++ este un ӏimbaj de programare genera ӏ, compi ӏat. Este
un ӏimbaj mu ӏti-paradigmă, cu verificarea statică a tipu ӏui
variabi ӏeӏor ce suportă programare procedura ӏă, abstractizare a
dateӏor, programare orientată pe obiecte. În anii 1990, C++ a
devenit unu ӏ dintre ce ӏe mai popu ӏare ӏimbaje de programare
comerci aӏe, rămânând astfe ӏ până azi .
Bjarne Stroustrup de ӏa Be ӏӏ ӏabs a dezvo ӏtat C++ (iniția ӏ
denumit C cu c ӏase) în anii 1980, ca o serie de îmbunătățiri a ӏe
ӏimbaju ӏui C. Acestea au început cu adăugarea noțiunii de c ӏase,
apoi de funcții virtua ӏe, suprascrierea operatori ӏor, moștenire
muӏtipӏă, șab ӏoane (eng ӏeză temp ӏate) și excepții. ӏimbaju ӏ de programare C++ a fost standardizat în
1998 ca și ISO 14882:1998, v ersiunea curentă fii nd din 2003 . Următoarea versiune standard, cunoscută
informa ӏ ca C++0x, este în ӏucru.
Stroustrup a început să ӏucreze ӏa C cu c ӏase în 1979. Ideea creării unui nou ӏimbaj a venit din
experiența de programare pentru pregătirea tezei sa ӏe de doctorat. Stroustrup a descoperit că Simu ӏa
avea faci ӏități foarte uti ӏe pentru proiecte mari, însă era prea ӏent, în timp ce BCP ӏ era rapid, însă nu era
de nive ӏ înaӏt și era nepotrivit pentru proiecte mari.
Când a început să ӏucreze pentru Be ӏӏ Labs, avea sarcina de a ana ӏiza nuc ӏeuӏ UNIX referitor ӏa
caӏcuӏ distribuit. Amintindu -și de experiența sa din perioada ӏucrării de doctorat, Stroustrup a început să
îmbunătățească C cu faci ӏități asemănătoare Simu ӏa. C a fost a ӏes deoarece era rapid și portabi ӏ. ӏa
început faciӏitățiӏe adaugate C -uӏui au fost c ӏase, c ӏase derivate, verificare a tipu ӏui, in ӏine și argumente
cu va ӏori imp ӏicite.
În timp ce Stroustrup a proiectat C cu c ӏase (mai apoi C++), a scris de asemenea și Cfront, un
compi ӏator care genera cod sursă C di n cod C cu c ӏase. Prima ӏansare comercia ӏă a fost în 1985.
În 1982, nume ӏe ӏimbaju ӏui a fost schimbat de ӏa C cu c ӏase ӏa C++. Au fost adaugate noi
faciӏități, inc ӏusiv funcții virtua ӏe, supraîncărcarea operatori ӏor și a functii ӏor, referințe, constante,
aӏocare dinamică, un contro ӏ aӏ tipuӏui mai puternic și noua variantă de comentariu pe un singur rând
(ӏiniiӏe care încep cu caractere ӏe '//').
În 1985 a fost ӏansată prima ediție a cărții "The C++ Programming Language" ( ӏimbaju ӏ de
programare C++), oferind informații importante despre ӏimbaj, care încă nu era un standard oficia ӏ. În
1989 a fost ӏansată versiunea 2.0 a C++. Au apărut acum moștenirea mu ӏtipӏă, cӏase abstracte, funcții
Sursa: Bloodshed.net
25 statice, funcții constante și membri protected. În 1990 o a ӏtă carte a fost ӏansată, oferind suport pentru
standarde viitoare. U ӏtimeӏe adăugări inc ӏudeau temp ӏate-uri, excepții, spații de nume (namespace -uri)
și tipu ӏ booӏean.
O dată cu evo ӏuția ӏimbaju ӏui C++, a evo ӏuat și o bib ӏiotecă standard. Prima adăugire a fost
bibӏioteca de intrări/ieșiri (I/O stream), care oferea faci ӏități pentru a în ӏocui funcții ӏe tradiționa ӏe C cum
ar fi printf și scanf. Mai târziu, printre ce ӏe mai semnificative adăugari ӏa biblioteca standard a fost STL
(Standard Template Library) (Biblioteca de formate standard).
Exemplu de cod C++:
26
2.2 .NET Framework
NET Framework (pronunțat dot net) este un cadru software dezvoltat de Microsoft care rulează în
primul rând pe Microsoft Windows. Acesta include o bibliotecă de clasă mare denumită Framework
Class Library (FCL) și oferă interoperabilitate lingvistică (fiec are limbă poate folosi codul scris în alte
limbi) în mai multe limbi de programare.
Programele scrise pentru .NET Framework se execută într -un mediu software (în contrast cu un
mediu hardware) numit ”Common Language Runtime ” (CLR), o aplicație virtuală ca re oferă servicii
precum securitatea, gestionarea memoriei și tratarea excepțiilor. (Ca atare, codul computerului scris
folosind .NET Framework se numește "cod gestionat".) FCL și CLR constituie împreună .NET
Framework.
27 FCL oferă interfața pentru utilizator, acces la date, conectivitate la baze de date, criptografie,
dezvoltare de aplicații web, algoritmi numerici și comunicații de rețea. Programatorii produc software
prin combinarea codului lor sursă cu .NET Framework și alte biblioteci.
Cadrul este destinat să fie utilizat de majoritatea aplicațiilor create pentru platforma Windows. De
asemenea, Microsoft produce un mediu integrat de dezvoltare în mare parte pentru software -ul .NET
numit Visual Studio.
.NET Framework a început ca software propri etar, deși firma a lucrat pentru a standardiza stiva
software -ului aproape imediat, chiar înainte de prima lansare. În ciuda eforturilor de standardizare,
dezvoltatorii, în special cei din comunitățile software gratuite și cu surse deschise, și -au exprimat
neliniștea cu termenii selectați și cu perspectivele de implementare gratuită și open -source, în special în
ceea ce privește brevetele software.
De atunci, Microsoft a schimbat dezvoltarea .NET pentru a urmări mai îndeaproape un model
contemporan al unui proiect software dezvoltat în comunitate, inclusiv emiterea unei actualizări a
brevetului său, promițând să răspundă preocupărilor.
.NET Framework a condus la crearea unei
familii de platforme .NET care să vizeze
computerele mobile, dispozitivele încorporate,
sistemele de operare alternative și plug -in-urile de
browser web. O versiune redusă a cadrului, .NET
Compact Framework, este dis ponibilă pe
platformele Windows CE, inclusiv pe dispozitivele Windows Mobile precum smartphone -urile. .NET
Micro Framework se adresează dispozitivelor încorporate cu resurse foarte limitate.
Silverlight a fost disponibil ca plugin de browser web. Mono est e disponibil pentru multe sisteme
de operare și este personalizat în sistemele de operare populare pentru smartphone -uri (Android și iOS)
și în motoarele de jocuri. .NET Core vizează platforma Windows Universal (UWP) și volumul de lucru
pe platforme și ”cloud computing ”.
Securitate
.NET Framework are propriul mecanism de securitate cu două caracteristici generale: Security
Access Code (CAS), validare și verificare. CAS se bazează pe dovezi care sunt asociate cu o ansamblu
specific. De obicei, dovezile sunt sursa ansamblului (fie că este instalat pe mașina locală, fie că a fost
descărcat de pe Internet).
CAS utilizează dovezi pentru a determina permisiunile acordate codului. Un alt cod poate cere ca
acel cod de apelare să primească o permisiune specificată. Cererea determină CLR să efectueze o
Sursa: Expta.com
28 verificare în stiva de apel: fiecare ansamblu a fiecărui metodă din stiva de apel este verifi cat pentru
permisiunea necesară, în cazul în care nu se acordă permisiunea unei adunări, o exce pție de securitate
este afișată .
2.3 Visual Basic
Visual Basic .NET (VB.NET) este un
limbaj de programare multi -paradigmă,
orientat obiect, implementat pe .NET
Framework. Microsoft a lansat VB.NET în
2002 ca succesor al limbii sale originale
Visual Basic. Deși porțiunea ".NET" a fost
abandonată în 2005, acest articol folosește
"Visual Basic [.NET]" pentru a s e referi la
toate versiunile de limbi Visual Basic din
2002, pentru a face distincția între ele și
Visual Basic clasic. Împreună cu Visual C #, acesta este unul dintre cele două limbi principale care
vizează cadrul .NET.
Mediul de dezvoltare integrat al Mi crosoft (IDE) pentru dezvoltarea în limba Visual Basic .NET
este Visual Studio. Majoritatea edițiilo r Visual Studio sunt comerciale, singurele excepții sunt Visual
Studio Express și comunitatea Visual Studio, care sunt gratuite. În plus, SDK -ul .NET Framew ork
include un compilator de linii de comandă freeware numit vbc.exe. Mono include, de asemenea, un
compilator de linie de comandă VB.NET.
VB.NET utilizează instrucțiuni pentru a specifica acțiunile. Cea mai comună afirmație este o
declarație de expresie, constând dintr -o expresie care urmează să fie evaluată, pe o singură linie. Ca
parte a acestei evaluări, se pot apela funcții sau subrutine, iar variabilelor li se pot atribui noi valori.
Pentru a modifica execuția secvențială normală a instrucțiunilor, V B.NET furnizează mai multe
instrucțiuni de flux -control identificate prin cuvinte cheie rezervate. Programarea structurată este
susținută de mai multe constructe, inclusiv două construcți i condiționate de execuție ( If … Then …
Else … End If and Select Case … Case … End Select ) și trei construcții iterative de execuție (buclă) (Do
… Loop, For … To , și Pentru fiecare).
Declarația For … Pentru a conține secțiuni separate de inițializare și testare, ambele trebuie să fie
prezente. (Vedeți exemplele de mai jos.) Pașii instrucțiunilor Fiecare pentru fiecare valoare dintr -o
listă.
Sursa: latofonts.com
29 În plus, în Visual Basic .NET:
Nu există un mod unificat de definire a blocurilor de declarații. În schimb, anumite
cuvinte cheie, cum ar fi "If … Then" sau "Sub", sunt interpretate ca începători ale sub –
blocurilor de cod și au potrivite cuvinte cheie de terminare, cum ar fi "End If" sau "End
Sub".
Declarațiile se termină cu un colon (":") sau cu sfârșitul liniei. Exemplele de linii multiple
din Visual Basic .NET sun t activate cu "_" la sfârșitul fiecărei linii. Necesitatea
caracterului de continuare a sublinierii a fost în mare parte eliminată în versiunea 10 și
versiunile ulterioare.
Semnul egal ("=") este folosit în ambele valori de atribuire la variabile și în comparație.
Parantezele rotunde (paranteze) sunt utilizate cu matrice, atât pentru a le declara, cât și
pentru a obține o valoare la un indice dat în unul dintre ele. Visual Basic .NET utilizează
paranteze rotunde pentru a defini parametrii subrutinel or sau funcțiilor.
Un marcaj unic ('), plasat la începutul unei linii sau după orice număr de caractere spațiu
sau tab la începutul unei linii sau după alt cod pe linie, indică faptul că linia (restul) liniei
este cometariu.
Schimbările au modificat numeroasele ipoteze care stau la baza legăturii dintre performanță și
întreținere. Unele funcț ii și biblioteci nu mai există, altele sunt disponibile, dar nu la fel de eficiente ca
alternativele "native" .NET.
Chiar dacă compilează, majorita tea aplicațiilor Visual Basic 6 care vor fi convertite vor necesita
un anumit nivel de refactorizare pentru a profita din plin de noua limbă. Documentația este disponibilă
pentru a acoperi modificările în sintaxă, aplicații de depanare, implementare și ter minologie.
Următoarele exemple simple compară sintaxa VB și VB.NET. Ele presupun că dezvoltatorul a
creat un formular, a pus un buton pe el și a asociat subrutinele demonstrate în fiecare exemplu cu
ajutorul unui handler al evenimentului clic k al butonulu i menționat. Fiecare exemplu creează o casetă
de mesaj "Hello, World" după ce se face clic pe butonul din formular.
30
Mai jos avem un exemplu de creare a unui ”string” în aplicație consolă :
Această bucată de coduri scoate triunghiul lui Floyd în consolă :
31
2.4 C++ compiler
Un compilator este un program de calculator care transformă codul computerului scris într -un
limbaj de programare (limba sursă) într -un alt limbaj de programare (limba țintă). Compilatorii sunt un
tip de traducător care acceptă dispozitive digitale, în primul rând computere.
Cu toate acestea, există multe tipuri diferite de compilatoare. Dacă programul compilat poate rula
pe un computer a cărui CPU sau sistem de operare este diferit de cel pe care rulea ză compilatorul,
compilatorul este un compilator încrucișat.
Un compilator de bootstrap este scris în limba jul pe care intenționează să o compileze. Un
program care se traduce dintr -un limbaj de nivel inferior la un nivel superior este un decompilator. Un
program care traduce între limbi de nivel înalt este de obicei numit un compilator sursă -sursă sau
transpilator.
Un reseller de limbaj este de obicei un program care traduce expresia fără a schimba limba jul.
Termenul compilator -compilator se referă la in strumentele folosite pentru a crea parser -ele care
efectuează analiza sintaxei.
32 Compilatorul de nume este utilizat în primul rând pentru programele care traduc codul sursă de la
un limbaj d e programare la nivel înalt la un limbaj de nivel inferior (de exe mplu, limba j de asamblare,
codul obiect sau codul mașinii) pentru a crea un program executabil.
Visual C ++ include un compilator C ++ de linie de comandă pe care inițiatorul îl poate folosi
pentru a crea totul, de la aplicațiile de consolă de bază la apli cațiile Windows universale, aplicațiile
Windows Store și componentele .NET.
În acestă perspectivă , se poate crea un program de bază, ca exemplu -style C ++, utilizând un
editor de text și apoi se va compila pe linia de comandă. Dacă se dorește să se încerc e Visual Studio
IDE în loc să se utilizeze linia de comandă, se va consulta manualul : Lucrul cu proiecte și soluții (C
++) sau Utilizarea Visual Studio IDE pentru C ++ Desktop Development.
În această privință , se poate utiliza propriul program Visual C ++ în loc să se tasteze unul care
este afișat sau se poate utiliza o mostră de cod Visual C ++ dintr -un alt articol de ajutor.
Computerel e înțeleg un singur limbaj și acel limbaj constă în setur i de instrucțiuni făcute din 1 și
din zerouri. Acest limbaj de computere este denumit în mod corespunzător limbajul mașinii.
O instrucțiune unică pe un computer ar putea arăta astfel:
Un program de limbaj special al unui computer, care permite unui utilizator să introducă două
numere, adaugă cele două numere împreună și afișează totalul care poate include aceste instrucțiuni
pentru codul mașinii:
Pentru a facilita p rogramarea, s -au dezvoltat limbaje de nivel înalt. Programele de nivel înalt
facilitează, de asemenea, prog ramatorii să -și inspecteze și să înțeleagă reciproc programele mai ușor.
Când se selectează compilatorul, trebuie să se ia în cons iderare sistemul de operare folosit,
preferințele inițiatorului personale ș i documentația pe care o poate utiliza.
În cazul în care nu are acces la un copilator , dacă va dori sau avea nevoie de un co mpilator
instalat pe mașina sa, poate utiliza un compilator gratuit WEB disponibil pe diverse site -uri (ex.
http://codepad.org ), dar va trebui să schimbe codul care nu necesită o intr are interactivă). Se poate
obține î ntotdeauna unul local dacă va avea nevoie de el.
33 Limbajele de programare de nivel superior apar, de obicei, cu un tip de traducere în minte: fie
concepute ca limbaj compilat, fie interpretat .
Cu toate acestea, în pract ică, rareori este vorba despre un limbaj care necesită o interpretare
exclusivă sau o compilare exclusivă, deși este posibil să se pro iecteze limbaje care se bazează pe re –
interpretare la timpul de execuție.
Clasificarea reflectă de obicei cele mai popula re sau mai răspândite implementări ale unui limbaj
– de exemplu, BASIC este uneori numit un limbaj interpretat, iar C este compilat , în ciuda existenței
compilatoarelor BASIC și a interpreților C.
Există multe compilatoare și chiar mai multe IDE -uri, unel e fiind gratuite și open source. IDE –
urile vor include adesea în instalarea compilatorul necesar (fiind cel mai comun GCC).
34 Capitolul III. Realizarea aplicației
3.1 Descrierea aplicației
Securitatea este un su biect vast și acoperă o multitudine de imperfec țiuni. În forma sa cea mai
simplă, ea se asigură că persoane le curioase nu po t citi sau, și mai rău, modifice mesajele ce sunt
adresate altor destinatari , cât și accesarea în mod ilegal al unui sistem . Ea se ocupă de persoanele care
încearcă să acceseze servicii le și rețelele ce nu le aparțin, și nu sunt autorizați să le folosească .
În această privință documentându -mă mult în domeniul acesta, am creat aplicația mea, care est e
foarte eficientă. Am folosit diverse programe, între care C++, Visual Basic, .NET Framework , cât și
compilatorul C++ compiler .
3.2 Scopul și obiectivele aplicației
Cu această aplicație am dorit sa vin în ajutorul acelor persoane ce doresc să aibe parole puternice,
însă nu au o inspirație pentru crearea acestora, ori de multe ori uită parolele create. Aplicația va salva și
parolele create în propria arhivă, dacă se va dori acest lucru, astfel că o parolă nu trebuie memorată ori
salvată în altă parte, totul se poate implementa cu ușurință în același fișier.
Ca și obiectiv principa l, am luat în calcul generarea de parole puternice prin crearea unui program
scris în C++ și Visual Basic , astfel aplicația creată mi-a permis să dezvolt practic un sistem de creare a
parolelor până la câteva sute de caractere.
În baza acestui pro iect, am lucrat cu următoarele programe , respectiv:
C++
C++ compiler
Visual Basic
.NET Framework
Iar ca informații și documentație:
Surse din cărti
Internet
Diverse tutoriale video
Cunoștințe proprii.
35 3.3 Aplicația propriu zisă
Aplicația conține mai multe .dll -uri, executabilul propriu și un fișier unde se pot salva noile
parole, ca și un fel de backup în cazul în care sunt uitate.
Ca și interfața, este foarte simplă, tocmai am gandit aplicația ca să fie ușor de utilizat de către
oricine, fără să fie complexă și să aibă un nivel de utilizare prea complex, astfel descurajând potențialii
utilizatori să o folosească.
Sunt multe sisteme de acest gen, însă sunt prea complexe și necesită mult timp pentru înțelegerea
modului de funcționare, majoritatea având o interfață grafică greu de utilizat. Mai jos am pus interfața
aplicației mele a și comparație cu interfața altui soft de acest gen, care este mai complicată și poate
induce în eroare utilizatorul.
Fig. 3.1 Interfață simplă a aplicației mele
36
În cele ce urmează voi descrie interfața aplicației cât și funcțiile sale, cât și tehnica prin care se
pot salva parolele iar ulterior folosi în cazul în care se uită:
Fig. 3.2 Interfață complexă a unei aplicații similare
37
1
2
3
4
5
1. În acea casetă se va introduce numărul de caractere care se va dori să îl conțină parola aleasă.
2. Repezintă șirul de caractere ce definesc parola, caracterele cât și non -caractere alese la întâmplare.
3. Butonul ”Genereaza”, va genera aut omat parola atunci când butonul se va apăsa, astfel în funcție de
numărul de caractere care va fii introdus, va fi afișată parola în căsuța de la punctul 2.
4. Reprezintă un buton opțional care oferă inițiatorului șansa să își salveze parolele într-un fișier .dat
dintr -un folder ales.
5. Reprezintă calea de acces spre fișierul unde au fost salvate parolele, în cazul în care se pierd ori sunt
uitate.
Modul de funcționare
Se va deschide aplicația, apoi se va introduce numărul dorit de caractere p e care dorim să îl conțină
parola.
38
Numărul de caractere dorite
Se apasă tasta ”Generează”, și ne va
afișa parola dorită formată din 20 de
caractere.
Apoi se poate salva parola direct în fișierul ”Parole.dat” și ca să vedem parolele salvate, apasăm
pe tasta ”Parole salvate”:
39 O parte din c odul sursă al aplicației îmbunătățite
După cum se vede în imagini, am încercat să implementez noi comenzi în baza aplicației.
40 Concluzii
Softul implementat funcționează perfect, nu am întâmpinat prob leme serioase lucrând la el, după
crearea parolei, pur și simplu se poate copia unde dorim să o folosim, iar mai apoi putem folosi
programul să vedem unde a rămas salvată parola , dacă nu am scris -o în alt loc.
Dat fiind faptul că programul folosește caractere și non -caractere la întamplare, ținerea minte a
unei parole, poate să fie dificilă, de aici trebuie să precizăm faptul că funcția pe care am implementat -o,
și anume ca parolele să aibă o opțiune de salvare și ulterior de revedere a acestor parole , este un lucru
foarte folositor și important.
Acest concept este conceput pentru persoanele interesate de folosirea unor parole cât mai
complexe. Nu este necesară nici -o experiență în domeniu IT pentru folosirea acestui program, deoarece
are o interfață în limba română și foarte ușor de folosit și înțeles, până și pentru persoanele cu vârste
mici.
Scop ul principal a fost acela de a putea folosi parole cât mai lungi pentru o bună protecție însă
fără să fiu nevoit să le memorez sau să le țin scrise în mai m ulte locuri, astfel aplicația poate de fiecare
dată să îmi genereze o altă parolă și să o salveze automat în cazul în care se va uita. Programul mai
poate ajuta și prin faptul ca exista practic un număr infinit de parole, de fiecare dată generând una
difer ită.
Apӏic ația, î n stadiuӏ în care se afӏă, nu se compară cu apӏicațiiӏe de mare succes, însă fiind ӏa
început de drum, pentru mine este un reaӏ succes și o satisfacție proprie. De aceea este necesară
dezvoӏtarea și îmbunătățirea ei continuă, precum și ada ptarea acesteia ӏa cerințeӏe utiӏizatoruӏui, putând
să o adaptez portabiӏ și sub formă de apӏicație mobiӏă.
În perioad a de dezvoӏtare a acestei apӏicații mi -am atins obiectivuӏ principaӏ de a crea apӏicația
și de a o vedea funcționând. Dezvoӏtarea apӏicaț iei a decurs uniform, fară a întâmpina probӏeme majore.
Cea mai mare încerc are a fost î nsă crearea coduriӏor sursă pentru anumite eӏemente, ca și ”comenziiӏe
de setări”.
Pe viitor, mi -am fixat un obiectiv personaӏ în vederea continuării dezvoӏtării aceste i apӏicații,
impӏementarea unor noi idei și refacerea graficii și a comenziiӏor, apoi adoptându -o pentru gadget -uriӏe
mobiӏe. Ca și concluzie finală am gă sit satisfacție în ceea ce am reaӏizat, considerând că poate să fie un
reaӏ ajutor această apӏicație p entru persoaneӏe ce doresc să aibă un ajutor când vine vorba de siguranță
și securitate, dorind să aibe parole puternice . Această apӏicație poate reprezenta un prim pas în posibiӏa
mea carieră de dezvoӏtator, o carieră ce doresc ca să o imbrățișez cu optim ism și dedicare .
41
Bibliografie
C. Gălățan, S. Gălățan, C# pentru elevi – Programare în Visual C# 2008 Express Edition
Mârșanu R.: Informatică generală, Editura Tehnică, 1996
Coplien O. James, Advanced Programming Styles and Idioms, Addison -Wesley Publ ishing,
Massachusetts, 1992
Booch Grady, Object -Oriented Analysis and Design – With applications, Benjamin/Cummings
Publishing, Redwood City, 1994
Liberty Jess, Teach Yourself C++ in 21 Days, SAMS Publishing, Indianapolis, 1994
Muslea Ionut, Initiere in C++, microInformatica, Cluj -Napoca, 1993
Salomie Ioan, Tehnici Orientate pe Obiecte, microInformatica, Cluj -Napoca, 1995
George, Mack. "History of Visual Basic". June 2002. George Mack, 3rd edition, Copyright June 2002
„Microsoft Gives Peek at Visual Studi o .Nets Future”. Darryl K. Taft. eWeek. 11 februarie 2003
Liviu Negrescu, Limbajele C și C++ pentru incepatori , Vol. I (p.1 si 2) – Limbajul C (editia XI)
Editura Albastra, Cluj -Napoca, 2005
David Pogue (June 5, 2013). "Remember All Those Passwords? No N eed". The New York Times
Anthony Dean (Jul 16, 2012). "KeePassX: Keeping Your Passwords Safe"
Jason McDonald Ph.D. , The Password Book: Internet Security & Passwords Made Easy , 2017
Andrew Sheppard , A Book of Random Passwords , 2017
Kevin Mitnick, William L. Simon , Ghost In The Wires: My Adventures as the World's Most Wanted
Hacker , 2011
Scott Meyers , Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C+ , 2014
James Foxall , Visual Basic 2015 in 24 Hours, Sams Teach Yourself , 2015
Andrew T roelsen, Philip Japikse , C# 6.0 and the .NET 4.6 Framework , 2015
Didactica predării informaticii, Autor Cristian M asalagiu, Editura Polirom, 2016
William Stallings , Cryptography and Network Security: Principles and Practice , 1998
Bruce Schneier, Niels Ferg uson, Tadayoshi Kohno , Cryptography Engineering: Design Principles and
Practical Applications , 2010
Scott Vanstone, Alfred Menezes , Handbook of Applied Cryptography , 1996
Bruce Schneier, Niels Ferguson , Practical Cryptography , 2003
Eugen Popescu, Sofia Vit elaru, Marius Nicoli, Mihaela Grindeanu , Limbajul C++. Teorie si aplicatii,
Partea a II -a, 2011
42 L. Negrescu, Limbajele C și C++ pentru începători, Volumul I – Limbajul C, Editura Albastră, Cluj –
Napoca, 2009
M. Pănoiu, M. Ionel, C. Pănoiu, Utilizarea si Pro gramarea Calculatoarelor, Editura Mirton, Timișoara,
2002
Serb Aurel , Constantin Baron , Isaila Narcisa , Claudia Ionescu , Costinela Luminita Defta , Securitatea
informatica in societatea informationala , 2013
Ștefan PRUNĂ, Ioan -Cosmin MIHAI – Criminalitatea informatică, Editura Sitech, 2008
Ioana VASIU, Lucian VASIU – Criminalitatea în cyberspațiu, Editura Universul Juridic, 2011
Maxim DOBRINOIU – Infracțiuni în domeniul informatic, Editura C.H. Beck, 2006
Irina Alexe, Nicolae D. Ploesteanu, Da niel-Mihail Sandru, Protecția datelor cu caracter personal , 2017
Doina Logofătu: Algoritmi fundamentali in C++. Aplicații, Ed. 1, Editura Polirom, Iași, 2007
"What's New in Visual Basic and Visual C#". October 2010
Turner, Dawn M. "Digital Authentication: The Basics". Cryptomathic. Archived from the original on
14 August 2016
Cyber Security Tip ST04 -002". Choosing and Protecting Passwords. US CERT. Archived from the
original on July 7, 2009
Jason A. McDonald , The Password Book: Internet Security and Passwor ds Made Easy , 2017.
Carmen Holotescu,Programarea in C/C++ – curs,online la
http://www.timsoft.ro/weblog/index.php?blog=9&cat=43&blog=9 , 2013
Resurse Online
https://whatis.techtarget.com/definition s/compiler
www.cplusplus.com/doc/tutorial/introduction 1/
gcc.gnu.org/onlinedocs/…/Common -Predefined -Macro ns.html
https://auth0.com/blog/what -is-data-security s/
https://www.csoonline.com/…/data -protection/take -a-new
https://software.microfocus.com/en -us/what -is/data -security
https://www.khanacademy.org/computing/…/cryptography s
https://www.coursera.org/learn/crypto s
43
Anexe
Codul sursă
44
45
46
47
48
49
50
51
52
53
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: FUNDAȚIA PENTRU CULTURĂ ȘI ÎNVĂȚĂMÂNT “IOAN SLAVICI” TIMIȘOARA UNIVERSITATEA “IOAN SLAVICI” TIMIȘOARA FACULTATEA DE INGINERIE DOMENIUL CALCULATOARE… [629692] (ID: 629692)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
