Keresés

Hirdetés

Új hozzászólás Aktív témák

  • daimonion

    senior tag

    válasz mexel #22024 üzenetére

    Fully functioning RoboForm on multiple computers and mobile devices, all in sync, for up to 10 Login
    Ez mit is takar az ingyenes verziónál ?? Ugye nem azt hogy csak 10 bejelentkezést kezel az ingyenes ?

  • dqdb

    Topikgazda

    válasz mexel #22024 üzenetére

    Egyáltalán feltörhető könnyen ha valaki hozzáfér a fájlokhoz? ( esetleg szívesen felteszek egy mesterjelszó nélküli és eg aránylag egyszerűen pár karakterrel kódolt próba pass fájlt ha valaki ki akarja próbálni )
    AES -el van alapból kódolva, de lehet mást is választani.

    Igen, de nem könnyen, az ehhez szükséges idő az algoritmustól és a számítási kapacitástól függ. Egy titkosítást kétféle módon lehet feltörni: végigpróbálgatva a lehetőségeket (brute force) vagy a kulcsgenerálás gyengeségeit kihasználva.

    Brute force esetén nemes egyszerűséggel az összes lehetséges esetet végig kell próbálni, ez AES256 esetén 2^256 lehetőség, ami durván 10^77. A lehetőségek számát lehet csökkenteni az algoritmus időközben kiderült (és publikált) gyengeségeit kihasználva, ezzel AES256 esetén "csak" 2^254,4 próbálkozást kell végrehajtani, ami durván 10^76, azaz az algoritmus megjelenése óta eltelt 15 év alatt a szükséges időt csak a tizedére tudták csökkenteni.

    A kulcsgenerálás gyengeségei alatt azt kell érteni, hogy kettő egymáshoz hasonló, nem független kulcsot használsz titkosításhoz. Jelenleg AES256 esetén 2^99,5 próbálkozást kell végrehajtani (ami durván 10^30), ez lényeges gyengítés, de ennek kihasználásához a RoboForm belsejében kell valamit nagyon elszúrni, szóval inkább elméleti, mint gyakorlati jelentőségű.

    Hozáértőktől kérdem, bár itt kicsit off de nem biztos: ha ugyanaza mesterjelszó és van pl 10db pass, de az egyiket sikerül feltörni akkor a mesterjelszó is kiderül és mind törhető, vag a többit ugyanúgy meg kell szenvedni.
    Az, hogy te jelszavakat kódolsz, a titkosítás szempontjából mindegy. A kérdésed leegyszerűsítve így hangzik: ha kódolok 10 szöveget egy jelszóval, és kikerül egyik esetében mind az eredeti szöveg, mind a titkosított, akkor ki lehet-e találni a jelszót könnyen?

    Nem, a jelszó nem derül ki könnyen, ehhez nagyon béna naiv algoritmust kell használni, amelyeket maximum a modern kriptográfia megszületése előtt alkalmaztak. Ha rendelkezel ilyen plain text-encrypted párral, akkor a brute force törés során az ellenőrzés hatékonyságát tudod növelni, ez a töréshez szükséges idő nagyságrendjét nem igazán befolyásolja.

    A mai modern algoritmusoknál a kódolás/dekódolás két lépcsőre bontható: key setup és a titkosítási művelet. Key setup esetén az általad megadott kulcsot fogja az algoritmus, megcsócsálja, S-boxokkal bűvészkedik, és előállít egy olyan állapotot, amellyel a tényleges titkosítás végrehajtható. Ez lassú, nagyon lassú, és brute force törés esetén minden próbálkozás része egy key setup is. Maga a titkosítási művelet ellenben a lehető leggyorsabb, hogy nagy adatmennyiségek esetén is hatékony legyen. Így 100 MB titkosítása 1 kulccsal sokkalta gyorsabb lehet, mind MB-onként külön kulcs használata.

    Hogy ne lógjon a levegőben, íme néhány saját mérés. Mindegyik esetben az OpenSSL implementációját használtam, amelyik algoritmust megírtak assemblyben is, ott azt. A teszteket egy korosabb (P8600) és egy fiatal (4300U) processzoron futtattam le. Az első érték mindig a 4300U eredménye, a második a P8600-é (ahol hiányzik a második adat, ott lusta voltam copy-paste-elni). Key setup során 100000 műveletre értendő a mért idő, titkosítás esetén 25,6 MiB-nyi adatra. Érdekességképpen a végére beraktam az RSA-t is kétféle bithosszal, a ma már nem eléggé biztonságosnak tartott 1024 bittel, és a ma alapnak számító 2048 bittel (a számokból jól látható, hogy miért nem direktben szokás használni az RSA-t, hanem egy szimmetrikus kulcsú titkosítással karöltve).

    ----- AES256 key setup and encryption -----
    key setup = 8.088 ms / 10.199 ms
    encryption = 341.542 ms / 435.906 ms

    key setup = 12363996 tps
    encryption = 75 MiB/s

    ----- RC4 (128 bits) key setup and encryption -----
    key setup = 61.811 ms / 93.996 ms
    encryption = 48.760 ms / 74.061 ms

    key setup = 1617835 tps
    encryption = 525 MiB/s

    ----- RC4 (384 bits) key setup and encryption -----
    key setup = 47.219 ms / 92.647 ms
    encryption = 43.284 ms / 71.051 ms

    key setup = 2117791 tps
    encryption = 591 MiB/s

    ----- RC4 (2048 bits) key setup and encryption -----
    key setup = 54.654 ms / 82.489 ms
    encryption = 45.256 ms / 70.553 ms

    key setup = 1829692 tps
    encryption = 566 MiB/s

    ----- RSA 1024 bits -----
    private encrypt = 841.061 ms
    public decrypt = 43.500 ms
    public encrypt = 44.758 ms
    private decrypt = 828.002 ms

    private encrypt = 1188.975 tps = 0.151 MiB/s
    public decrypt = 22988.703 tps = 29.425 MiB/s
    public encrypt = 22342.396 tps = 28.598 MiB/s
    private decrypt = 1207.727 tps = 0.154 MiB/s

    ----- RSA 2048 bits -----
    private encrypt = 5636.541 ms
    public decrypt = 169.512 ms
    public encrypt = 166.723 ms
    private decrypt = 5345.292 ms

    private encrypt = 177.414 tps = 0.045417 MiB/s
    public decrypt = 5899.272 tps = 1.510213 MiB/s
    public encrypt = 5997.966 tps = 1.535479 MiB/s
    private decrypt = 187.081 tps = 0.047892 MiB/s

    Vagyis a fentiek alapján egy 4300U esetén egy AES256 brute force-hoz csak a key setup idejét számolva 3,09 * 10^69 másodperc kellene, ami kerekítve 10^62 év.

    A blokkos vagy stream működésbe, és esetleges szivárványtáblát firtató kérdésbe nem mennék bele, mert úgyis valamilyen feedback megoldást használnak, mint CBC vagy CFB.

    [ Szerkesztve ]

    tAm6DAHNIbRMzSEARWxtZW50ZW0gdmFka5RydIJ6bmkuDQoNClOBc4Ek

Új hozzászólás Aktív témák