Documente Academic
Documente Profesional
Documente Cultură
1
Lucrarea de laborator nr. 1
Criptarea ca metodă de securitate a informaţiilor
Scopul lucrării: înţelegerea şi familiarizarea cu tehnica de criptare prin cheie secretă.
Realizarea criptării şi decriptării mesajelor folosind metoda cifrului lui Cezar/ Vernam/
Vigenere.
În prezent există două tipuri principale de tehnici utilizate în criptografie, şi anume:
• criptografia prin cheie simetrice (chei secrete sau chei private) şi,
• criptografia prin chei asimetrice (chei publice).
În cazul cheii simetrice, atât expeditorul cât şi destinatarul mesajului folosesc o cheie
comună secretă. În cazul cheii asimetrice, expeditorul şi destinatarul folosesc în comun o
cheie publică şi, individual, câte o cheie privată.
Cifrul lui Cezar
Cea mai simplă metodă de criptare, în acest cifru, caracterele mesajului şi numărul
de repetiţii ale cheii sunt însumate laolaltă, modulo 26. În adunarea modulo 26, literelor
alfabetului latin, de la A la Z, li se dau valori de la 0 la 25. Pentru cheie trebuie să se ofere
doi parametri:
• D – numărul literelor ce se repetă, reprezentând chei;
• K – cu rol de cheie.
2
Dacă sumele valorilor cheii şi ale numărului aferent literelor sunt mai mari sau egale
cu 26, se determină modulo 26 din sumă, adică rezultatul final este obţinut prin scăderea din
sumă a numărului 26.
Exemplu:
D=3, K=PIC, mesajul este SECRET, rezultatul va fi:
- valorile numerice atribuie mesajului:
SECRET
18 4 2 17 4 19
- valorile numerice ale cheii sunt: P I C = 15 8 2
3
nu va mai putea fi folosită niciodată. Lungimea şirului de caractere a cheii este egală cu
lungimea mesajului. Metoda este foarte utilă pentru criptarea mesajelor scurte.
Exemplu: criptarea mesajului: LA MULTI ANI
Cifrul Vigenere
Cifrul Vigenere deplasează literele, dar, spre deosebire de acesta nu se poate sparge
uşor în 26 combinaţii. Cifrul Vigenere foloseşte o deplasare multiplă. Cheia nu este
constituită de o singură deplasare, ci de mai multe. Cheia este constituită din câţiva întregi
ki , unde 0 ≤ ki ≤25.
Criptarea se face în felul următor:
ci = mi + ki (mod 26).
Cheia poate fi, de exemplu, k =(21, 4, 2 19, 14, 17) şi ar provoca deplasarea primei
litere cu 21, c1 = m1 + 21 (mod 26), a celei de a doua cu 4, c2 = m2 + 4 (mod 26), ş.a.m.d.
până la sfârşitul cheii şi apoi de la început, din nou. Cheia este de obicei un cuvânt, pentru a
fi mai uşor de memorat – cheia de mai sus corespunde cuvântului „vector”. Metoda cu
deplasare multiplă oferă protecţie suplimentară din două motive:
• primul motiv este că ceilalţi nu cunosc lungimea cheii.
• cel de al doilea motiv este că numărul de soluţii posibile creşte; de exemplu, pentru
lungimea cheii egală cu 5, numărul de combinaţii care ar fi necesare la căutarea exhaustivă
ar fi 265 =11 881 376.
Decriptarea pentru cifrul Vigenere este asemănătoare criptării. Diferenţa constă în
faptul că se scade cheia din textul cifrat,
mi = ci – ki (mod 26).
Exemplu. De cifrat, utilizand cifrul Vigenere, mesajul „Per aspera ad astra” folosind
cheia K= SUPER. Pentru a cifra sau descifra mai intai facem corespondenţa următoare:
C= HYGEJHYGERVUHXIS.
Pentru decriptare procedăm la fel, cu excepţia mi = ci – ki (mod 26).
Apoi alcătuim şi completăm tabelul:
4
M = PERASPERAADASTRA.
Desfăşurarea lucrării:
1. Analizaţi exemplele propuse, testaţi programele şi analizaţi rezultatele obţinute.
/*Cifrul lui Cezar(criptarea şi decriptarea unui cuvînt)*/
#include<iostream>
using namespace std;
int main(){ char s[100],*p; int n;
cin.get(s,100);
cin>>n;
strupr(s);
for(p=s;*p;p++)
if(isalpha(*p))
*p=(*p-'A'+n)%26+'A';
cout<<s<<endl;
for(p=s;*p;p++)
if(isalpha(*p))
*p=(*p-'A'+26-n)%26+'A';
cout<<s;}
7
Lucrarea de laborator nr. 2
Algoritmi pentru semnătură digitală
Scopul lucrării: Studiul şi implementarea algoritmilor pentru semnătură digitală.
RSA face parte din clasa algoritmilor de criptare cu cheie publică ce au drept principală
caracteristică existenţa a două chei: o cheie publică ce poate fi cunoscută de orice expeditor
şi o cheie privată cunoscută doar de destinatar.
Descrierea algoritmului RSA
1. Generarea cheilor
1. Generaţi 2 numere prime p şi q cât mai mari
2. Fie n = p * q
3. Fie m = (p-1)*(q-1)
4. Alegeţi e astfel încât cmmdc(e,m) = 1
5. Găsiţi d astfel încât (d*e) % m = 1
Se vor publica cheile publice: e şi n.
Se vor păstra cheile private: d şi n.
2. Criptarea RSA
C = Me % n,
unde:
M = Mesaj
e şi n sunt cheia publică
C = CipherText (mesajul criptat)
3. Decriptarea RSA
M = Cd % n
Unde:
C = CipherText
d şi n sunt cheia privată
M = Mesajul iniţial
Exemplu de criptare / decriptare RSA
Generarea Cheilor
1) Generaţi 2 numere prime p şi q cât mai mari. Pentru a face exemplul cât mai uşor de
urmărit, vom folosi numerele prime 7 şi 19.
p=7
q = 19
2) Fie n = p * q
n= 7 * 19
n = 133
3) Fie m = (p-1)*(q-1)
m = (7-1)*(19-1)
m = 6 * 18
m = 108
4) Alegeţi e astfel încât cmmdc(e,m) = 1
8
e = 2 => cmmdc(e, 108) = 2 (NU)
e = 3 => cmmdc(e, 108) = 3 (NU)
e = 4 => cmmdc(e, 108) = 4 (NU)
e = 5 => cmmdc(e, 108) = 1 (DA)
5) Găsiţi d astfel încât (d*e) % m = 1 sau altfel spus, d*e = 1 + x*m (unde x poate fi orice
număr întreg) =>
d = (1 + x*m)/e
x = 0 => d = 1/5 (NU)
x = 1 => d = 109/5 (NU)
x = 2 => d = 217/5 (NU)
x = 3 => d = 326/5 (DA)
d = 65
Cheie publică = 133, 5
Cheie privată = 133, 65
2 Criptarea RSA
Vom calcula C = Me % n
Fie M = 6 =>
C = Me % n
= 65 % 133
= 7776 % 133
= 62
3. Decriptarea RSA
Vom calcula M = Cd % n
M = Cd % n
= 6265 % 133
= 62 * 6264 % 133
= 62 * (622)32 % 133
= 62 * 384432 % 133
= 62 * (3844 % 133)32 % 133
= 62 * 12032 % 133
= 62 * 3616 % 133
= 62 * 998 % 133
= 62 * 924 % 133
= 62 * 852 % 133
= 62 * 43 % 133
= 2666 % 133
=6
Desfăşurarea lucrării:
1. Analizaţi exemplu propuse, testaţi programul şi analizaţi rezultatele opţinute.
#include<stdio.h>
#include<conio.h>
#include<string.h>
9
main(){
long int p,q,n,fn,e,s=0,d=1,C[100],M;
char m[100];
unsigned long int b=0,c=0;
int i,j,t;
printf("Introduceti doua numere relativ prime: ");
scanf("%ld%ld",&p,&q);
n=p*q;
fn=(p-1)*(q-1);
printf("\nIntroduceti e: ");
scanf("%ld",&e);
do{ s=(d*e)%fn;
d++;}while(s!=1);
d=d-1;
printf("\n\tCheia publica (%ld,%ld) ",e,n);
printf("\n\tCheia privata (%ld,%ld) ",d,n);
printf("\n\nMesaj :\n");
scanf("%s",m);
for(j=0;j<strlen(m);j++){
t=(int)m[j];
c=1;
for(i=0;i< e;i++)
c=c*t%n;
c=c%n;
printf("%d ",c);}
printf("\n\nIntroduceti textul cifrat :\n");
for(i=0;i<strlen(m);i++)
scanf("%ld",&C[i]);
printf("\n\n\tMesaj original :");
for(j=0;j< strlen(m);j++){
M=1;
for(i=0;i< d;i++)
M=M*C[j]%n;
M=M%n;
printf("%c",M);}}
2. Realizaţi sarcinile propuse:
Sa se realizeze un program sau mai multe in unul din limbajele de programare
studiate, care sa folosească algoritmul RSA. Se vor genera 2 numere prime P si Q. Apoi, se
vor calcula cheile publica P(E,N) si privata Q(D,N). Folosind cheile publica si private, sa se
realizeze criptarea unui mesaj si decriptarea mesajului criptat.
10
Lucrarea de laborator nr. 3
Clase de atacuri şi modele de securitate
Scopul lucrării: studiul celor mai frecvente tipuri de atacuri, precum şi tehnicile
utilizate pentru a evita aceste atacuri.
Desfăşurarea lucrării:
1. Studiaţi noţiunile teoretice
Securizarea se poate pune în aplicare prin diverse metode pornind de la încuierea
încăperilor cu calculatoare şi a calculatorului însuşi, protejarea intrărilor în reţeaua de
calculatoare cu parole, folosirea sistemelor de protejare a fişierelor de date pentru
împiedicarea distrugerii acestora, criptarea liniilor de comunicaţii din reţelele de
calculatoare şi ajunge până la folosirea unor tehnologii speciale pentru împiedicarea
interceptării diferitelor radiaţii emise de echipamentele de calcul în timpul funcţionarii
normale a acestora.
Toate calculatoarele emit radiaţii electrice şi electromagnetice care pot fi interceptate,
analizate şi descifrate. De aceea, informaţiile stocate şi transmise în și din sistemele de
calcul şi reţele devin vulnerabile.
Cele mai des întâlnite tipuri de atacuri sunt următoarele:
a) atacuri social engineering;
b) atacuri DoS;
c) scanări şi spoofing;
d) source routing şi alte exploituri de protocoale;
e) exploituri de software;
f) troieni, viruşi şi worms;
Atacurile de tip social engineering. Social engineering aduce în prim plan omul şi
greşelile lui. Atacatorul câştigă încrederea utilizatorilor (sau şi mai bine, a administratorilor)
şi obţin drepturi cu ajutorul cărora se pot conecta pe sisteme.
Atacuri Denial-of-Service (DoS). Scopul unui atac DoS este de a genera o cantitate
foarte mare de trafic care pune în imposibilitatea de a mai răspunde într-un timp rezonabil a
serverilor, routere-lor sau altor echipamente, astfel ele nemaifiind capabile să funcţioneze
normal.
Distributed Denial-of-Service. Acest tip de atac face cam acelaşi lucru ca şi DoS-ul,
numai că se foloseşte în atingerea scopului său de computere intermediare, numite agenţi,
pe care rulează unele aplicaţii (zombies) care au fost instalate pe calculatoare anterior. Din
cauză că atacul provine de la mai multe calculatoare care pot să fie răspândite prin toată
lumea, originea reală a pericolului este foarte greu de găsit.
Atacul DNS DoS. Acest tip de atac exploatează diferenţele de mărime între DNS
querry (interogarea name server-ului) şi DNS response (răspunsul name server-ului).
Atacatorul foloseşte serverele de DNS ca şi amplificatoare pentru a mări traficul de DNS.
Atacul SYN. Atacurile de tip SYN (synchronization request) exploatează handshake-
ul three-way al protocolului de transport TCP, procesul prin care se stabileşte o sesiune de
comunicare între două computere.
11
Atacul LAND derivă din cel descris mai sus, cu precizarea că în acest caz, atacatorul
în loc să trimită SYN-uri cu adrese IP care nu există, trimite pachete SYN cu adresa IP a
clientului-target care este victima în acest caz.
Atacul Ping of Death ( large packet ping). Se creează un pachet IP mai mare decât
valoarea admisă de specificaţiile protocolului IP, adică 65 536 bytes. Sistemul ţintă este
compromis, soluţia fiind un reboot (de multe ori forţat – sistemul blocându-se).
Atacul Teardrop. Programul teardrop creează fragmente IP care fac parte dintr-un
pachet IP. Problema este că aceste fragmente folosesc offset fields (rolul lor este de a indica
porţiunea în bytes a acestor fragmente). Problema apare atunci când aceste offset-uri se
suprapun. Când computerul ţintă încearcă să reasambleze aceste fragmente în pachetul IP
original normal că va genera o problemă (resetare, blocare sau eroare de sistem).
Flood-ul cu ICMP (ping). Se bazează pe o mulţime de pachete ICMP echo request
până când se ocupă toată banda disponibilă. Acestui gen de atac i se mai spune şi ping
storm deoarece luminiţele router-ului sau switch-ului luminează intermitent, cu viteză foarte
mare şi interogările în reţea rămân fără răspuns.
Atacul Smurf. Este un fel de agresiune brute force şi foloseşte aceeaşi metodă a
flood-ului prin ping, numai că de data asta adresa destinaţie din pachetele ICMP echo
request este adresa de broadcast a reţelei. Un router când primeşte astfel de pachete le
trimite înspre toate hosturile pe care le “maschează”. Pot rezulta cantităţi mari de trafic şi
congestionarea reţelei. Combinaţia dintre atacul fraggle si cel Smurf fac ca reţeaua
destinaţie cât şi sursa să fie afectate.
Atacul Mail Bomb. Numele acestui tip de “armă” este edificator. Se trimit aşa de
multe mailuri înspre un mail server, încât acesta ajunge în imposibilitatea de a le gestiona,
iar userii legitimi nu mai pot beneficia de serviciile acestuia. Din acest tip de atac a derivat
unul care presupune “înscrierea” mail serverului la o grămadă de mailing lists-liste uneori
legitime, care oferă tot felul de informaţii.
Scanning-ul şi spoofing-ul. Termenul de scanner, în contextul securităţii în IT, se
referă la o aplicaţie software folosită de către hackeri pentru determinarea porturilor TCP
sau UDP deschise pe un sistem. Dar şi administratorii este indicat să folosească astfel de
aplicaţii, pentru a putea detecta vulnerabilităţile pe sistemele proprii.
Un virus este un program creat să distrugă datele sau echipamentele unui calculator.
Viruşii sunt programe cu dimensiuni foarte mici, ascunşi fie în fişiere executabile fie ataşaţi
unor programe. Ei au menirea de a distruge date, să se reproducă şi pot distruge chiar şi
componente ale calculatorului.
13
Lucrarea de laborator nr.4
Steganografia ca metodă de securitate a informaţiilor
Scopul lucrării: înţelegerea şi familiarizarea cu tehnica de ascundere a informaţiilor prin
steganografie şi utilizarea unei aplicaţii de ascundere a informaţiilor în imagini
steganography;
Steganografia este folosită pentru a ascunde mesaje (fişiere) în alte fişiere mai mari şi
anume în imagini de tip jpg, bmp, png, în fişiere audio (mp3 sau wav) sau chiar video (avi)
fără a exista posibilitatea ca o terţă persoană să ştie sau să afle de existenţa lor. Totuşi una
dintre cele mai cunoscute tehnici de steganografie este "cerneala simpatică" (înscrisul
devine vizibil după un procedeu - lampa UV, încălzire, etc.). Steganografia nu trebuie
confundată cu criptografia. Acesta din urma face ca un mesaj să devină indescifrabil, dar
existenta lui este vizibilă, pe când steganografia ascunde existenţa mesajului şi nu mesajul
şi face ca steganografia să fie completarea perfectă pentru codificare.
Desfăşurarea lucrării:
1. Descărcaţi aplicaţia de la http://www.securekit.com/
2. După instalare, efectuaţi ascunderea unui fişier text în spatele unei imagini, care
poate fi jpg, bmp, tif, pgn etc.
3. Lansaţi în execuţie a aplicaţiei:
Start→Programs →Steganography→ Steganography
Moment în care se va deschide fereastra de mai jos:
14
În acest prim pas se va alege fişierul (imaginea) în care se va ascunde mesajul (sau
fişierul) secret.
1. Pentru a ascunde un fişier deja existent se apasă "File" şi apoi "Next" , selectându-
se de pe hard disc fişierul dorit.
2. Pentru a ascunde un mesaj, se apasă "New Messge" şi apoi "Next", deschizându-se
fereastra "Instant Message":
Paşii de mai sus se repetă dacă dorim să ascundem mai multe fişiere.
Pentru a îndepărta un fişier sau un mesaj ce trebuia ascuns, se selectează din tabel şi
15
5. Descoperiţi unui fişier ascuns conform paşilor enumeraţi:
Pasul 1: Alegerea fişierului purtător
16
Lucrarea de laborator nr. 5
Firewall-uri
Scopul lucrării: înţelegerea funcţionării şi a rolului unui firewall în securitatea
sistemelor informatice, pornirea şi configurarea firewall-ului sistemului de operare
Windows XP.
Un firewall este o aplicaţie sau un echipament hardware care monitorizează şi
filtrează permanent transmisiile de date realizate între PC sau reţeaua locală şi Internet, în
scopul implementării unei "politici" de filtrare. Această politică poate însemna:
• protejarea resurselor reţelei de restul utilizatorilor din alte reţele.
• Controlul resurselor pe care le vor accesa utilizatorii locali.
Un firewall, lucrează îndeaproape cu un program de routare, examinează fiecare
pachet de date din reţea ce va trece prin serverul gateway pentru a determina dacă va fi
trimis mai departe spre destinaţie. Un firewall include de asemenea sau lucrează împreună
cu un server proxy care face cereri de pachete în numele staţiilor de lucru ale utilizatorilor.
În cele mai întâlnite cazuri aceste programe de protecţie sunt instalate pe calculatoare ce
îndeplinesc numai această funcţie şi sunt instalate în faţa routerelor.
Soluţiile firewall se împart în două mari categorii: prima este reprezentată de soluţiile
profesionale hardware sau software dedicate protecţiei întregului trafic dintre reţeaua unei
întreprinderi şi Internet; iar cea de a doua categorie este reprezentată de firewall-urile
personale dedicate monitorizării traficului pe calculatorul personal.
Astfel, un firewall este folosit pentru două scopuri:
• pentru a păstra în afara reţelei utilizatorii rău intenţionaţi (viruşi, viermi cybernetici,
hackeri, crackeri) ;
• pentru a păstra utilizatorii locali (angajaţii, clienţii) în reţea .
Firewall-urile pot fi clasificate după:
• Layerul (stratul) din stiva de reţea la care operează
• Modul de implementare
În funcţie de layerul din stiva TCP/IP (sau OSI) la care operează, firewall-urile pot fi:
• Layer 2 (MAC) şi 3 (datagram): packet filtering.
• Layer 4 (transport): tot packet filtering, dar se poate diferenţia între protocoalele de
transport şi există opţiunea de "stateful firewall", în care sistemul ştie în orice moment care
sunt principalele caracteristici ale următorului pachet aşteptat, evitând astfel o întreagă clasă
de atacuri
• Layer 5 (application): application level firewall (există mai multe denumiri). În
general se comportă ca un server proxy pentru diferite protocoale, analizând şi luând decizii
pe baza cunoştinţelor despre aplicaţii şi a conţinutului conexiunilor. De exemplu, un server
SMTP cu antivirus poate fi considerat application firewall pentru email.
Un firewall poate să:
• monitorizeze căile de pătrundere în reţeaua privată, permiţând în felul acesta o mai
bună monitorizare a traficului şi deci o mai uşoară detectare a încercărilor de infiltrare;
• blocheze la un moment dat traficul în şi dinspre Internet;
• selecteze accesul în spaţiul privat pe baza informaţiilor conţinute în pachete.
17
• permită sau interzică accesul la reţeaua publică, de pe anumite staţii specificate;
• şi nu în cele din urmă, poate izola spaţiul privat de cel public şi realiza interfaţa
între cele două.
De asemeni, o aplicaţie firewall nu poate:
• interzice importul/exportul de informaţii dăunătoare vehiculate ca urmare a acţiunii
răutăcioase a unor utilizatori aparţinând spaţiului privat (ex: căsuţa poştală şi ataşamentele);
• interzice scurgerea de informaţii de pe alte căi care ocolesc firewall-ul (acces prin
dial-up ce nu trece prin router);
• apăra reţeaua privată de utilizatorii ce folosesc sisteme fizice mobile de introducere
a datelor în reţea (USB Stick, dischetă, CD, etc.)
• preveni manifestarea erorilor de proiectare ale aplicaţiilor ce realizează diverse
servicii, precum şi punctele slabe ce decurg din exploatarea acestor greşeli
Firewall Windows XP
Cum aflu ce versiune de Windows utilizez?
1. Faceţi clic pe Start, apoi pe Run.
2. În caseta de dialog Executare, tastaţi winver. Faceţi clic pe OK. O casetă de dialog
vă va spune ce versiune de Windows executaţi.
19