MUZIKE SHQIP ME TE BUKURA NE BOTE,WINDOWS SHQIP FILMA SHQIPTAR DHE PROGRAME FALAS 2023

Siguria e fjalekalimeve

« Older   Newer »
  Share  
icon1  view post Posted on 27/2/2010, 12:41     +1   -1
Avatar

DURRSAK KAM LE DURRSAK DO TE VDES!https://www.dailymotion.com/alice-desi

Group:
Administrator
Posts:
6,279
Location:
DURRES

Status:
Offline


Siguria e aplikacioneve ėshtė njė nga elementėt qė shqetėson mė shumė programuesit dhe qė duhet marrė me shumė seriozitet. Vrimat e sigurisė mund t’i lėnė mundėsi sulmuesit tė marrė informacione tė rėndėsishme nga sistemi (fjalėkalime, emaile, etj) apo thjeshtė ta nxjerrin atė jashtė funksionimit normal. Njė programues duhet tė paktėn tė zotėrojė bazat e sigurisė, nė mėnyrė qė aplikacionet qė ai krijon tė jenė tė sigurta nga sulmet e rėndomta. Njė nga masat e rėndėsishme pėr njė aplikacion tė sigurt dhe tema e kėtij artikulli ėshtė kriptimi i fjalėkalimeve, nė mėnyrė qė mos tė bien nė duar tė gabuara. Le ta shtjellojmė mė tej.

- Problemet e fjalėkalimeve tė pa kriptuar -

Le tė supozojmė qė kemi njė aplikacion ku pėr tė pasur akses nė zona tė caktuara, pėrdoruesit duhet tė regjistrohen nė faqe me njė e-mail dhe fjalėkalim. Pra unė jam pėrdorues dhe regjistrohem me fjalėkalimin “web12345” duke menduar se tė dhėnat janė tė sigurta. Ndėrkohė njė sulmues tenton tė gjejė vrima sigurie nė sistem dhe arrin t’i gjejė duke pėrdorur njė teknike shumė tė pėrhapur (fatkeqėsisht) si SQL Injections. Nė dorėn e sulmuesit ėshtė e gjithė tabela e pėrdoruesve me e-mailet e tyre dhe fjalėkalimet, duke i dhėnė mundėsi tė identifikohet nė sistem si kushdo pėrdorues. Imagjinoni qė sistemi nė fjalė tė jetė pėr tė blerė produkte! E gjithė kjo mund tė parandalohej nėse kriptohej fjalėkalimi, pa harruar gjithashtu edhe vrimat ndaj SQL Injections.

- Ēfarė ėshtė kriptimi? -

Kriptografia ėshtė shkenca e fshehjes sė informacionit, nė mėnyrė qė tė lexohet vetėm nga personat apo sistemet qė dinė ta dekriptojnė mesazhin. Pėr kėtė artikull, ne na intereson mė tepėr njė fushė e kriptografisė, qė merret me kriptimin Hash, veēanėrisht me funksionet njė-krah. Duke i dhėnė njė vlerė pėr tu kriptuar, funksionet Hash njė-krah gjenerojnė njė fjalė me madhėsi tė caktuar e cila ėshtė e pamundur tė dekriptohet nė vlerėn origjinale.

- MD5 -

MD5 (Message-Digest algorithm 5) ėshtė njė funksion Hash shumė i pėrdorur nė web dhe zgjedhja pėr kriptim nė shumė aplikacione tė njohura. Fjala e gjeneruar ėshtė 128 bit e gjatė me 32 karaktere heksadecimale. Nė shumė pėrdorime sensitive, MD5 ėshtė abandonuar sepse ėshtė provuar dobėsia e tij, megjithatė pėr qėllimin tonė e bėn punėn mė sė miri. Nė PHP egziston njė funksion qė quhet pikėrisht md5(), i cili gjeneron Hash-in e njė vlere. Provoni kodin e mėposhtėm:
view source
print?
1 $fjalekalimi = 'web12345';
2 $hash = md5($fjalekalimi);
3 echo $hash;

Nėse e egzekutoni kodin, nė ekran do t’ju printohet fjala Hash e atij fjalėkalimi (egzaktėsisht: 1bfe5bbf619681e49cdc62d07badc4cb).

Me siguri po pyesni veten se si ta dekriptojmė kėtė fjalėkalim, kur MD5 ėshtė njė funksion qė gjeneron njė fjalė tė pa dekriptueshme. Zgjidhja ėshtė e thjeshtė. Bėjmė krahasime tė fjalėve Hash. Le tė marrim njė shembull:

Njė pėrdorues regjistrohet nė sistem me fjalėkalimin “nukegjendot”, i cili pas kriptimit me MD5 ruhet nė databazė si c45f12cc8df8ad9b45141146e36200f2. Kur ky pėrdorues tenton tė indetifikohet, ajo qė do bėjmė ėshtė krahasimi i Hashit tė ruajtur nė databazė, me Hashin e fjalėkalimit qė pėrdoruesi ka plotėsuar. Njė shembull nė PHP:
view source
print?
1 //lidhja me databazen nuk perfshihet ne kete shembull
2 $emri = mysql_real_escape_string($_POST['emri']); //vlera e marre nga forma dhe e pastruar per tu futur ne query
3 $fjalekalimi = $_POST['fjalekalimi']; //vlera e marre nga forma
4 $hash = md5($fjalekalimi); //kriptojme fjalekalimin e futur
5
6 $rezultatet = mysql_query("SELECT id FROM perdoruesit WHERE emri='$emri' AND fjalekalimi='$hash'"); //kerkojme ne databaze nese ky emer dhe hash egziston
7 if(mysql_num_rows($rezultatet) == 1){ //nese ky if() eshte i vertete, te dhenat jane te sakta
8 echo 'Te dhenat jane te sakta';
9 }

Shembulli mė sipėr ėshtė rasti mė i thjeshtė i krahasimit tė Hashit tė fjalėkalimit me atė tė ruajtur nė databazė. Kjo teknikė vlen edhe pėr funksionet e tjera njė-krahėsh.

- SHA1 -

Ashtu si MD5, edhe SHA1 (familja SHA – Secure HAsh Standart) gjeneron njė fjalė tė pa dekriptueshme, por gjatėsia e tė cilės ėshtė 160 bit dhe 40 karaktere heksadecimale. SHA1 konsiderohet mė i sigurt se MD5 nė pėrgjithėsi, edhe pse dobėsi sigurie janė gjetur nė tė. Megjithatė, ashtu si MD5, pėr qėllimin tonė ky funksion e bėn punėn mė sė miri. PHP ofron njė funksion sha1() pėr tė gjeneruar fjalė tė kriptuara. Konsideroni shembullin e mėposhtėm.
view source
print?
1 $fjalekalimi = 'web12345';
2 $hash = sha1($fjalekalimi);
3 echo $hash;

Nėse e egzekutoni kodin, do t’ju shfaqet kjo fjalė e kriptuar: 20d5b81872a334e86183db3dcd108717d182ffdf. Kė doni tė zgjidhni midis MD5 dhe SHA1 mbetet tėrėsisht nė dorėn tuaj dhe asnjėri nuk ofron ndonjė avantazh mbi tjetrin pėr qėllimin tonė. Une personalisht kam zgjedhur tė perdor SHA1, pa ndonjė arsye specifike.

- Siguria e funksioneve Hash njė-krahėsh dhe Salt -

Megjithėse teknikat MD5 dhe SHA1 janė praktikisht tė pa kriptueshme, siguria sėrish nuk ėshtė maksimale sepse egzistojnė mėnyra pėr tė gjetur vlerėn e kriptuar. E di qė mund t’ju duket e pamundur, por teknikat pėr “dekriptim” janė shumė tė thjeshta. Le tė marrim njė shembull tė thjeshtė pėr ta ilustruar.

Shumė pėrdorues pėrdorin fjalėkalime tė thjeshta qė mund tė jenė edhe fjalė fjalori nė rastin mė tė keq. Sulmuesi i cili ka arritur tė gjejė fjalėkalimet te kriptuara, pėrdor njė lloj “fjalori” (Rainbow Tables) me njė numėr masiv fjalėsh dhe kombinime abstrakte gėrmash tė kriptuara nė MD5 apo SHA1 dhe krahason Hashin e gjetur me to. Pra, ashtu si sistemet qė ne kodojmė krahasojnė njė Hash me njė tjetėr Hash tė ruajtur nė databazė, sulmuesi krahason njė Hash me qindra mijėra (apo miliona) Hashe tė tjera. Qė njė “fjalor” tė jetė efikas duhet tė pėrmbajė praktikisht tė gjitha fjalėt e fjalorit dhe miliona kombinime gėrmash, numrash dhe karakteresh speciale tė cilat do e bėnin kėrkimin tė vėshtirė dhe tė gjatė. Megjithatė, shumė fjalėkalime janė thyer nė kėtė mėnyre. Atėherė si tė rrisim sigurinė? Fare e thjeshtė; pėrdorim njė Salt.

Salt ėshtė njė fjalė qė i shtohet fjalėkalimit dhe kriptohet sė bashku me tė, nė mėnyrė qė rezultati pėrfundimtar tė jetė i ndryshėm nga ai qė pritet. Ta ilustrojmė me njė kod PHP, sepse me fjalė mund tė ngjajė me komplekse se nė realitet.
view source
print?
1 $fjalekalimi = 'web12345';
2 $salt = 'internet';
3
4 echo md5($fjalekalimi); //1bfe5bbf619681e49cdc62d07badc4cb
5 echo md5($fjalekalimi . $salt); //597e5797991d2236256015b3af004693

Fjalėkalimit i kemi ngjitur njė fjalė arbitrate (internet) e cila e modifikon tėrėsisht Hashin pėrfundimtar, duke e bėrė fjalėn tė pa gjatshme nė “fjalorėt” e sipėr pėrmendur pa njohur Saltin. Pėrmbajtja e Saltit ėshtė nė dorėn e programuesit dhe fantazia e tij. Mund tė jetė njė fjalė statike, emri i pėrdoruesit, njė fjalė e rastėsishme qė ruhet nė databazė, etj.

- Njė mėnyrė personale kriptimi -

Pėrmbajtja e kėsaj pike ėshtė thjeshtė njė mėnyrė alternative kriptimi i fjalėkalimeve (e-maileve apo tė tjera tė dhėna sensitive) e cila ka tė bėjė me krijimin e algoritmeve personalė pėr kriptim. Nėse krijoni sisteme me kod tė hapur (Open Source), as mos e mendoni kėtė alternative sepse do tė ishte shumė e lehtė tė gjehej algoritmi. Edhe nė rast tė kundėrt, merreni parasysh vetėm pėr arsye edukative.

Kodi i mėposhtėm pėrdor njė algoritėm fare tė thjeshtė (ndoshta mė i thjeshti nė botė) enkriptimi dhe dekriptimi.
view source
print?
01 function enkripto($fjalekalimi){
02 $alf = range('a', 'z');
03 $fjalekalimiRi = '';
04 for($i = 0; $i < strlen($fjalekalimi); $i++){
05 if($fjalekalimi[$i] <= 126){
06 $chr = ord($fjalekalimi[$i]);
07 } else{
08 $chr = $fjalekalimi[$i];
09 }
10 $rand = rand(0, count($alf)-1);
11 $fjalekalimiRi .= $chr . $alf[$rand];
12 }
13 return strtoupper($fjalekalimiRi);
14 }
15
16 function dekripto($kriptimi){
17 $fjalekalimi = '';
18 $temp = '';
19 for($i = 0; $i < strlen($kriptimi); $i++){
20 if(is_numeric($kriptimi[$i])){
21 $temp .= $kriptimi[$i];
22 } else{
23 $fjalekalimi .= chr($temp);
24 $temp = '';
25 }
26 }
27 return $fjalekalimi;
28 }
29
30 echo enkripto('web12345');
31 echo dekripto('119T101N98G49T50Z51Z52H53D');

Nėse akoma nuk e keni kuptuar se si ky algoritėm fare i thjeshtė funksionon, po ju them 2 fjalė. Fjalėkalimi kalohet gėrmė pėr gėrmė, e cila konvertohet nė ekuivalentin nė kod ASCII. Pas konvertimit, secilės gėrmė i shtohet njė karakter i rastėsishėm i alfabetit, nė mėnyrė qė tė bėhet paksa mė kriptik leximi. Dekriptimi po ashtu ėshtė i thjeshtė, ku lexohet fjala e kriptuar dhe skanohet gėrmė pėr gėrmė (numėr pėr numėr). Numrat ndahen nga gėrmat pėr tė pėrftuar kodet ASCII tė cilat konvertohen nė karaktere. Si thashė, algoritmi i kriptimin mė i thjeshtė nė botė.

Zbuluam dhe ilustruam teknikat mė tė pėrdorura nė internet pėr kriptimin e fjalėkalimeve. Shpresoj t’ju kem dhėnė njė ide tė mirė pėr funksionimin e tyre dhe t’ju kem treguar rėndėsinė e kriptimit pėr siguri mė tė lartė. Nėse keni pyetje apo sygjerime mbi ato qė janė shkruar nė kėtė artikull, jeni tė lirė tė komentoni. Teknikat alternative janė shumė tė mirėpritura.
 
Top
0 replies since 27/2/2010, 12:41   88 views
  Share