MEGA jelszó mint titkosító kulcs

Sziasztok!

A Mega cloudban ha jól értem a jelszavammal titkosítva vannak a fileok. Ha megosztok egy filet, akkor a link utén íródik egy kulcs. Ez fileonként eltérő. Nomost ha publikussá válik egy link tőlem akkor a jelszavam is kompromitálódik?

Köszönöm.

Hozzászólások

Az nagy lámerség lenne - az a kulcs arra szolgál, hogy a letöltés jogosultságát az adott fájlra ellenőrizzék. Szerintem.

Oké, de akkor mivel van visszatitkosítva a letöltendő adat?

Van egy key - passwd táblázat, ahol a key az egy random generált egyedi ellenőrző kód, a passwd pedig maga a titkosításhoz használt titkos kulcs...?

-------------
"Mérnökkel vitatkozni olyan, mint disznóval birkózni a sárban - kis idő múlva rájössz: Ő ezt élvezi..."
Winben blogja

Előre szólok, hogy kicsit offtopic leszek, mert a Mega titkosítását nem ismerem, de a linkeket elnézve hasonló elven működhet, mint amit mindjárt leírok.

Az RSA (aszimmetrikus) titkosítás számításigényes, és a titkosítás kimenete kb. 30 %-kal nagyobb, mint a bemenet (néhány nem reprezentatív, saját mérés eredménye). Az adatokat ezért egy szimmetrikus (pl.: AES) kódolással szokták titkosítani, ami kevésbé számításigényes, és az output mérete kb. megegyezik az input méretével (maximum padding miatt hosszabb lehet ~60 byte-tal (fixme)). Az AES által használt szimmetrikus kulcsot elő lehet állítani egy jelszóból, valamiféle hash-eléssel, ennek részleteit nem ismerem. Tehát van egy jelszó, amiből AES kulcs lesz, és evvel titkosítják az adatokat. Majd ezt az AES kulcsot mellékelik egy vagy több példányban, a címzettek RSA publikus kulcsával titkosítva. Kb. így:

Kódolt file a lemezen = [aes-titkosított adat] + [Felhasználó1 RSA publikus kulcsával kódolt AES kulcs] + [Felhasználó2 RSA publikus kulcsával kódolt AES kulcs]

Így lehet megoldani, hogy többen is ki tudják kódolni ugyanazt a fájlt.

"Kódolt file a lemezen = [aes-titkosított adat] + [Felhasználó1 RSA publikus kulcsával kódolt AES kulcs] + [Felhasználó2 RSA publikus kulcsával kódolt AES kulcs]"

Ez így biztos nem jó arra, hogy publikusan letölthető legyen az a titkosított adat és még olvasható is legyen mindenki számára. Ugyanis, ha két ember a publikus kulcsával titkosít akkor külön külön nem tuják megnézni az adatokat. Max Felhasználó2 tudja majd megnézni az adatokat, amennyiben Felhasználó1 levette a saját titkosítását róla.

Szerintem nem értetted meg, amit írtam. Lehet, hogy nem jól fejeztem ki magamat. :)

Az adat csak egyszer van titkosítva, egy - akár jelszóból generált - AES kulccsal. Innentől kezdve ha valakinek hozzáférést akar a tulajdonos biztosítani, elkéri az új felhasználó publikus-RSA kulcsát (tegyük fel, hogy ez triviálisan hozzáférhető), és ezzel elkódolja az AES kulcsot. A tulajdonos a jelszava begépelésével előlállítja a titkosítatlan AES kulcsot, amit az új felhasználó publikus RSA kulcsával eltitkosít, és az így titkosított AES kulcsot elküldi neki. Az új felhasználó a nála lévő privát RSA kulccsal ki tudja nyitni az AES kulcsot, azzal pedig hozzáfér a tartalomhoz.

A lakatos példánál maradva: adott egy lezárt széf, aminek a kombinációja egy papíron van. Amikor új felhasználónak akarod engedélyezni a hozzáférést, a következőket kell tenned:
* Lemásolod a papírt
* Elkéred a felhasználó publikus lakatját (könnyen hozzáférhető)
* Belakatolod egy új ládikába a papírt, és elküldöd neki

Így nem az egész széf, és a tartalma utazik, csak a zárnyitó kombináció. Egyszerűsítettem egy kicsit a működésen, feltételeztem, hogy nem kell plusz köröket futni a publikus, meg a privát lakatok feltételével-levételével.