prng
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| prng [2023/11/28 14:34] – lss | prng [2025/12/01 11:40] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====Sigurnosni problemi pri korištenju pseudoslučajnih brojeva==== | ||
| + | |||
| Kada je potrebno generirati nekakav tajni ključ, lozinku ili slično, često želimo da taj podatak bude nasumično odabran. | Kada je potrebno generirati nekakav tajni ključ, lozinku ili slično, često želimo da taj podatak bude nasumično odabran. | ||
| Računala mogu proizvesti nasumične nizove koristeći algoritme generatora pseudonasumičnih brojeva. Kao što im ime kaže, | Računala mogu proizvesti nasumične nizove koristeći algoritme generatora pseudonasumičnih brojeva. Kao što im ime kaže, | ||
| takvi algoritmi ne generiraju istinski nasumične brojeve, brojevi koje generiraju ovise o inicijalnoj vrijednosti (engl. seed). | takvi algoritmi ne generiraju istinski nasumične brojeve, brojevi koje generiraju ovise o inicijalnoj vrijednosti (engl. seed). | ||
| - | Inicijalna vrijednost može biti nešto poput vremena, vrijednosti izvedene iz pokreta miša, temperature računala i slično. | + | Inicijalna vrijednost može biti nešto poput trenutnog |
| Pri korištenju generatora pseudonasumičnih brojeva u kriptografske svrhe, sigurnosni problemi mogu nastati u sljedećim slučajevima: | Pri korištenju generatora pseudonasumičnih brojeva u kriptografske svrhe, sigurnosni problemi mogu nastati u sljedećim slučajevima: | ||
| a) Koristi se inicijalna vrijednost koju napadač može pogoditi | a) Koristi se inicijalna vrijednost koju napadač može pogoditi | ||
| + | |||
| b) Koristi se algoritam za generiranje slučajnih brojeva koji nije kriptografski siguran, pa se promatranjem dovoljnog broja generiranih nasumičnih vrijednosti može predvidjeti buduće vrijednosti | b) Koristi se algoritam za generiranje slučajnih brojeva koji nije kriptografski siguran, pa se promatranjem dovoljnog broja generiranih nasumičnih vrijednosti može predvidjeti buduće vrijednosti | ||
| Line 14: | Line 17: | ||
| - | Predvidljiva inicijalna vrijednost - Zadatak s Hacknite platforme - " | + | __**PRIMJER**__ - **Predvidljiva inicijalna vrijednost - Zadatak s Hacknite platforme - " |
| < | < | ||
| Marko je odlučio napraviti blog na kojem će dijeliti svoje programske projekte. | Marko je odlučio napraviti blog na kojem će dijeliti svoje programske projekte. | ||
| - | Daje ti dopuštenje da testiraš sigurnost, ali s obzirom da nema previše funkcionalnosti vjerojatno nećeš pronaći nikakvu ranjivost. | + | Daje ti dopuštenje da testiraš sigurnost, ali s obzirom |
| Flag je u formatu CTF2022[brojevi] | Flag je u formatu CTF2022[brojevi] | ||
| Line 26: | Line 29: | ||
| Na početnoj stranici vidimo da je Marko podijelio C kod generatora lozinki te spominje da je koristio taj kod i kako bi generirao lozinku za tu stranicu. | Na početnoj stranici vidimo da je Marko podijelio C kod generatora lozinki te spominje da je koristio taj kod i kako bi generirao lozinku za tu stranicu. | ||
| - | // Slika ovdje | + | {{prng_1.png}} |
| - | U kodu je vidljiva linija < | + | U kodu je vidljiva linija < |
| To upućuje na to da ako otkrijemo kada je Marko pokrenuo ovaj generator lozinki, možemo saznati njegovu lozinku. | To upućuje na to da ako otkrijemo kada je Marko pokrenuo ovaj generator lozinki, možemo saznati njegovu lozinku. | ||
| Klikom na poveznicu "Marko Markić" | Klikom na poveznicu "Marko Markić" | ||
| - | // Slika ovdje | + | {{prng_2.png}} |
| Možemo pretvoriti to vrijeme u UNIX vrijeme i izračunati lozinku. Međutim, budući da nam je dostupna samo minuta kad je Marko stvorio korisnički račun, a ne i | Možemo pretvoriti to vrijeme u UNIX vrijeme i izračunati lozinku. Međutim, budući da nam je dostupna samo minuta kad je Marko stvorio korisnički račun, a ne i | ||
| Line 60: | Line 63: | ||
| Pokretanjem programa dobijemo 60 potencijalnih lozinki. Isprobavajući ih sve možemo otkriti pravu < | Pokretanjem programa dobijemo 60 potencijalnih lozinki. Isprobavajući ih sve možemo otkriti pravu < | ||
| - | TODO:flag slika | + | Ovakve ranjivosti su prisutne i u stvarnom svijetu. Kaspersky Password Manager je u prošlosti imao vrlo sličnu ranjivost [1] |
| - | + | ||
| - | Ovakve ranjivosti su prisutne i u stvarnom svijetu. Kaspersky Password Manager je u prošlosti imao vrlo sličnu ranjivost [1][https:// | + | |
| Kako bi se ovakva ranjivost popravila, potrebno je koristiti siguran izvor nasumičnosti. Popularni operacijski sustavi često imaju ugrađen sigurni izvor nasumičnosti (npr. / | Kako bi se ovakva ranjivost popravila, potrebno je koristiti siguran izvor nasumičnosti. Popularni operacijski sustavi često imaju ugrađen sigurni izvor nasumičnosti (npr. / | ||
| - | Korištenje algoritma neprikladnog za kriptografske svrhe - Zadatak s Hacknite platforme - Twister | + | __**PRIMJER **__ - **Korištenje algoritma neprikladnog za kriptografske svrhe - Zadatak s Hacknite platforme - Twister** |
| < | < | ||
| Line 136: | Line 137: | ||
| 636 izlaza, što je više nego dovoljno da saznamo ključ. | 636 izlaza, što je više nego dovoljno da saznamo ključ. | ||
| - | Možemo koristiti alat " | + | Možemo koristiti alat //randcrack//[2] kako bi riješili zadatak: |
| < | < | ||
| Line 182: | Line 183: | ||
| </ | </ | ||
| - | Pokretanjem skripte u direktoriju gdje se nalaze i šifrirane datoteke dobivamo flag. | + | Pokretanjem skripte u direktoriju gdje se nalaze i šifrirane datoteke dobivamo flag. |
| + | |||
| + | Ovaj zadatak je također inspiriran stvarnim slučajem, NemucodAES ransomware je koristio Mersenne twister algoritam za generiranje kriptografskog ključa [3]. | ||
| + | |||
| + | Iako je dobro da su ransomware developeri nepažljivi i koriste loše metode kriptografije, | ||
| + | |||
| + | ==Izvori== | ||
| + | [1] https:// | ||
| + | [2] https:// | ||
| + | [3] https:// | ||
prng.1701182073.txt.gz · Last modified: 2025/12/01 11:40 (external edit)