Mega ni huduma ya kuhifadhi habari ya New Zealand. Hifadhi ya wingu Mega.co.nz. "Kupakia kupita kiasi" kwa shughuli za kriptografia

Baada ya kuzinduliwa kwa huduma ya kashfa ya MEGA, mazungumzo juu ya usalama wake yalianza kuchemka kidogo na kufa. Leo huduma inaishi maisha yake mwenyewe na hakuna mtu aliyeivunja. Kwa sababu fulani, neno "Usimbaji Fiche Unaodhibitiwa na Mtumiaji" (UCE, au Mtumiaji anadhibitiwa cryptography), ambayo MEGA inajivunia. Ninachomaanisha kwa "kukosa" ni ukweli kwamba hatujashughulikia uwezekano wote ambao injini ya cryptography inayoendesha JavaScript upande wa mteja inatupa.

Kwa kweli, huduma ya MEGA yenyewe inamaanisha kuwa funguo za usimbuaji hazihifadhiwa kwenye seva, lakini zote zao cryptography inafanywa katika muktadha wa kivinjari. Aidha, baada ya uzinduzi wa huduma, kulikuwa na majadiliano mengi juu ya ukweli kwamba hutumia algorithms dhaifu ya cryptographic na kwamba kwa ujumla kila kitu ni mbaya na sisi sote tutakufa, na faili zetu zitasomwa na FSB. Hili lilinipa wazo la kupanua dhana ya "UCE" na kudhibiti usimbaji fiche, yaani, kubadilisha au kuongeza baadhi ya njia za usalama za huduma.

Katika makala haya, nitachambua baadhi ya uchawi unaotokea katika megabaiti mbili za msimbo wa JavaScript wa MEGA na kuonyesha jinsi unavyoweza kubatilisha baadhi ya mbinu za kuacha kuwa na wasiwasi na kupenda kriptografia. Kwa hivyo, tutapokea huduma ya kuhifadhi faili ya wingu yenye uthibitishaji wa vipengele viwili na usimbaji fiche muhimu wa maunzi. habari muhimu.

MEGA, UCE na yote, yote, yote

Kwa hiyo, hebu tuanze kwa kuangalia teknolojia ambayo imejengwa sehemu ya mteja huduma, jinsi watumiaji wapya wanavyosajili, kuthibitisha watumiaji waliosajiliwa, kubadilisha nenosiri na kupakia/kupakua faili.

JavaScript

Kama unavyoweza kujua, upande mzima wa mteja wa huduma unategemea JavaScript; nambari kuu ya ukurasa ina ukaguzi wa SHA-256 kwa hati zote na kurasa ambazo zimepakiwa na kivinjari. Upakuaji yenyewe hutokea kama ifuatavyo: hundi huangaliwa kwa faili zote, baada ya hapo zimeunganishwa kwenye BLOB moja, ambayo hupewa kivinjari. Nambari ya chanzo ya faili za js inaonyesha kuwa ziliandikwa na watu tofauti na wakati mwingine kuna vito vya kuchekesha, kama vile matokeo ya kunakili-kubandika, hali zisizo na maana na anuwai za kushangaza tu.

Katika mchakato wa kusoma msimbo wa chanzo cha tovuti, niliona pia kuwa inasasishwa kikamilifu, watengenezaji wanasahihisha makosa madogo na kuboresha nambari iliyoandikwa tayari, ambayo ni habari njema. Nambari yenyewe imeandikwa kwa moja kwa moja na bila protoksi isiyohitajika: tovuti hutumia vigezo mia tatu vya kimataifa na kazi zaidi ya 8,000. Ilikuwa rahisi sana kuelewa usanifu wa tovuti na kubadilisha msimbo wake.

Miongoni mwa mifumo ya wahusika wengine, MEGA hutumia jQuery (huwezi kuishi bila hiyo sasa), Ext JS na SJCL. Mwisho hutumia msingi wa kriptografia na usimbaji fiche wa AES. SJCL pia hutoa umbizo la kuvutia la kuhifadhi funguo na safu zingine za byte: badala ya kutupa baiti tu ndani. safu ya kawaida, "zimebanwa" katika umbizo linaloitwa a32. Kiini chake ni kwamba yaliyomo katika safu yoyote ya baiti yamejaa katika nambari 32-bit na kuandikwa kwa safu ya urefu mfupi. Hiyo ni, kila baiti 4 za safu hubadilishwa kuwa int moja ya banal. Msimbo wa tovuti una vitendaji ambavyo hufanya mabadiliko ya kila aina kwenye seti iliyoboreshwa (safu ya a32, kamba, kamba ya base64).

Taarifa muhimu

Kabla ya kuendelea na maelezo ya michakato ya usajili na uthibitishaji, inafaa kuzingatia habari ambayo iko chini ya usimbaji fiche, ambayo ni:
  • Ufunguo mkuu wa akaunti, ambayo imeundwa kwa nasibu wakati wa usajili wa mtumiaji na ina urefu wa bits 128. Na kwa kanuni, urefu wa funguo zote zinazotumiwa usimbaji fiche linganifu, ni sawa na biti 128.
  • Ufunguo wa kibinafsi wa RSA: Iliundwa wakati wa usajili kulingana na harakati za panya na uingizaji wa kibodi. Katika makala hii sitazingatia cryptography asymmetric, kwani inatumika ufikiaji wa umma kwa faili zilizopakuliwa, na nilikuwa na kazi ya kubadilisha mchakato wa uthibitishaji na usimbuaji wa data ya mtumiaji.
  • Funguo za faili za kibinafsi na faili zenyewe, iliyopakiwa kwenye huduma. Funguo huzalishwa kwa nasibu faili inapopakiwa, ufunguo yenyewe hutumiwa kusimba data ya faili, na ufunguo unaoundwa kulingana na ufunguo wa kibinafsi wa faili na hundi yake hutumiwa kusimba sifa.

Karibu na kanuni

Sasa ninapendekeza kuchambua michakato ya usajili na uthibitishaji, angalia jinsi ufunguo mkuu umeundwa na jinsi ulivyosimbwa.
Nilijaribu kuonyesha michakato hii kwenye karatasi na ili kukupa ufahamu wa kiini cha wazimu, hata nilichukua picha hii:

Usajili Mpya wa Mtumiaji

Mchakato wa usajili wenyewe unachanganya sana; baada ya mtumiaji kujaza dodoso, rundo kubwa la utendaji huitwa, lakini tunavutiwa na chaguo la kukokotoa la api_createuser:

// kuunda mtumiaji mpya na kitendakazi chake kikuu cha ufunguo api_createuser(ctx, invitecode, invitename, uh) ( var i; var ssc = Array(4); // kipindi cha changamoto binafsi, kitatumika kuthibitisha nenosiri var req, res; ikiwa (!ctx.passwordkey) ( ctx.passwordkey = Array(4); kwa (i = 4; i--;) ctx.passwordkey[i] = rand(0x100000000); ) ikiwa (!u_k) api_create_u_k(); // kuzalisha ufunguo mkuu wa nasibu u_k kwa (i = 4; i--;) ssc[i] = rand(0x100000000); // kutoa mlolongo wa uthibitishaji wa nasibu ikiwa (d) console.log("api_createuser - masterkey: " + u_k + " ufunguo wa nenosiri: " + ctx.passwordkey); // encrypt ufunguo mkuu kwenye nenosiri la sasa na utume kwa seva (uwanja k) // sehemu ya ts ni muunganisho wa ssc na thamani yake iliyosimbwa req = ( a: "juu" , k: a32_to_base64(encrypt_key(new sjcl.cipher.aes(ctx.passwordkey), u_k)), ts: base64urlencode(a32_to_str(ssc) + a32_to_str(encrypt_key(new sjcl.es(cipher_k). , ssc)))); ikiwa (msimbo wa mwaliko) ( req.uh = uh; req.ic = msimbo wa kukaribisha; req.name = invitename; ) ikiwa (d) console.log("Ufunguo wa kuhifadhi: " + req.k); api_req(, ctx); )
Katika kazi hii tunavutiwa na mambo yafuatayo:

  • u_k ndio ufunguo mkuu wenyewe, tofauti ya kimataifa. Safu ya nambari 4-32, ambayo imeundwa na chaguo la kukokotoa la api_create_uk
  • ssc ni safu nasibu ambayo imesimbwa kwa njia fiche kwa ufunguo mkuu, unaoshikamana na thamani yake ya umma, na kutumwa kwa seva. Baadaye itatumika kuangalia usahihi wa ufunguo mkuu wakati wa uthibitishaji
  • sjcl - maktaba ya kriptografia inayotekeleza AES
  • rand() - utekelezaji wa ndani wa jenereta ya nambari ya uwongo kulingana na RC4
  • encrypt_key() - kazi ya msingi kriptografia linganifu huduma. Hukubali kipengee cha sjcl kilichoanzishwa kwa ufunguo na mkusanyiko unaohitaji kusimbwa kwa njia fiche. Nambari ya kukokotoa iko hapa chini na kwa matumaini inaweza kujieleza.
// simbua/simbua kipengele cha 4- au 8-safu kamili ya safu 32 ya chaguo za kukokotoa encrypt_key(cipher, a) ( ikiwa (a.length == 4) rudisha cipher.encrypt(a); var x = ; kwa (var i = 0;i< a.length; i += 4) x = x.concat(cipher.encrypt(, a, a, a])); return x; }
Kama matokeo, baada ya usajili zifuatazo hutumwa kwa seva:
  • Ufunguo mkuu umesimbwa kwa njia fiche kwa ufunguo unaotokana na nenosiri la akaunti
  • Mfuatano kama ssc||encrypt_AES-128(u_k, ssc)

Kuingia kwa Mtumiaji

Sasa unaweza kuendelea vizuri kwenye mchakato wa uthibitishaji. Kwa kifupi, inafanywa kama hii:
  1. Mtumiaji anaingia kuingia/nenosiri
  2. Ikiwa hatua ya kwanza ya uthibitishaji imepitishwa, basi ufunguo mkuu uliosimbwa na mlolongo wa uthibitishaji (ssc) iliyoundwa wakati wa usajili hupokelewa kutoka kwa seva.
  3. Ufunguo mkuu unasimbwa kwa kutumia nenosiri lililowekwa na mtumiaji
  4. Mlolongo wa uthibitishaji unasimbwa kwenye ufunguo mkuu na ikilinganishwa na thamani yake iliyo wazi - hivyo kuangalia usahihi wa ufunguo mkuu na nenosiri.
Api_getsid2 kitendakazi cha kurudi nyuma kinawajibika kwa yote yaliyo hapo juu:

// kusimbua ufunguo mkuu baada ya mtumiaji kuingia kwenye chaguo la kukokotoa api_getsid2(res, ctx) ( var t, k; var r = uongo; ikiwa (typeof res == "kitu") ( // anzisha sjcl-aes na akaunti ya sasa password var aes = new sjcl.cipher.aes(ctx.passwordkey); // ikiwa tulipokea ufunguo mkuu katika jibu la seva... ikiwa (typeof res.k == "string") ( k = base64_to_a32(res. k); ikiwa (k.length == 4) ( // ... basi isimbue k = decrypt_key(aes, k); // na uanzishe tena sjcl-aes kwa kutumia kitufe kikuu aes = new sjcl.cipher. aes( k); // ikiwa tulipokea ssc kutoka kwa mchakato wa usajili ikiwa (typeof res.tsid == "string") ( t = base64urldecode(res.tsid); // encrypt nusu ya kwanza ya kamba na kulinganisha na thamani kutoka kwa seva // ikiwa yanalingana - inamaanisha kuwa logi zote na nywila zimekubaliana na unaweza kumruhusu mtumiaji kuingia ikiwa (a32_to_str(encrypt_key(aes, str_to_a32(t.substr(0, 16))))) == t .substr(-16)) r = ; ) // imejadiliwa hapa chini ufunguo wa kibinafsi RSA jozi, hatuvutiwi na hii tena ikiwa (typeof res.csid == "string") ( var t = mpi2b(base64urldecode(res.csid)); var privk = a32_to_str(decrypt_key(aes, base64_to_a32(res. privk ))); var rsa_privk = Array(4); // tenga ufunguo wa kibinafsi kwa (var i = 0; i< 4; i++) { var l = ((privk.charCodeAt(0) * 256 + privk.charCodeAt(1) + 7) >> 3) + 2; rsa_privk[i] = mpi2b(privk.substr(0, l)); ikiwa (typeof rsa_privk[i] == "nambari") itavunjika; privk = privk.substr(l); ) // angalia umbizo ikiwa (i == 4 && privk.length< 16) { // TODO: check remaining padding for added early wrong password detection likelihood r = ; } } } } } ctx.result(ctx, r); }
Kama bonasi kwa usajili/uthibitishaji, unaweza kuangalia mchakato wa kubadilisha nenosiri.

// badilisha kitendakazi cha nenosiri la mtumiaji changepw(currentpw, newpw, ctx) ( var pw_aes = new sjcl.cipher.aes(prepare_key_pw(newpw)); api_req([(a: "juu", currk: a32_to_base64(encrypt_key(mpya mpya) . cipher.aes(prepare_key_pw(currentpw)), u_k)), k: a32_to_base64(encrypt_key(pw_aes, u_k)), uh: stringhash(u_attr["barua pepe"].toLowerCase(), pw_aes) )], ctx); )
Nambari ya kazi hii inajieleza: tunasimba ufunguo mkuu na funguo mbili zilizopatikana kutoka kwa nywila za zamani na mpya, na kisha kutuma maadili haya kwa seva. Ikiwa nenosiri la sasa ni sahihi, linabadilishwa na jipya. Hapa nilitaka kuvutia umakini zaidi kwenye kitendakazi cha prepare_key_pw, ambacho kilikuwepo kwa uwazi katika shughuli zote za awali. Kazi yake ni kubadilisha nenosiri la kamba kuwa safu ya a32, na kisha kufanya operesheni muhimu ya derivation kama ifuatavyo:

// badilisha kitendakazi cha safu ya nenosiri linalotolewa na mtumiaji prepare_key(a) ( var i, j, r; var aes = ; var pkey = ; kwa (j = 0; j< a.length; j += 4) { key = ; for (i = 0; i < 4; i++) if (i + j < a.length) key[i] = a; aes.push(new sjcl.cipher.aes(key)); } for (r = 65536; r--;) for (j = 0; j < aes.length; j++) pkey = aes[j].encrypt(pkey); return pkey; }
Kipengele hiki kimesababisha ukosoaji mwingi kwa sababu kinatokana na kanuni za nyumbani. Wakati wa kuandika makala hii, waundaji wa huduma waliweza kubadilisha msimbo wake kidogo, lakini sikuona mabadiliko yoyote muhimu. Kiini chake ni kwamba nenosiri lililotumwa limesimbwa mara 65536 kwa kutumia ufunguo wa mara kwa mara ili kupata ufunguo usioweza kutofautishwa kutoka kwa nasibu. Kwa nini waundaji wa huduma hawakutumia algorithms zilizopo (kwa mfano, PBKDF2) bado ni siri.

Inapakia na kusimba faili

Kwa kifupi, mchakato huu wote unaweza kuwakilishwa kama hii:

Ninakuonya, kuingia kwenye picha hii kwa muda mrefu ni hatari kwa ubongo, kwa hiyo hapa chini nitakuambia jinsi yote yanavyotokea.

Kama nilivyosema tayari, wakati wa kupakia, kila faili huunda ufunguo wake wa safu ya nasibu ya nambari 6-32. Vipengele vinne vya kwanza vya safu hii hutumiwa kusimba yaliyomo kwenye faili kwa njia fiche, na mbili za mwisho hutumiwa kama maadili ya awali ya kihesabu ambayo hutumiwa kuhesabu hundi ya faili. Safu hii imehifadhiwa katika ul_key tofauti ya kimataifa. Yaliyomo ndani yake yameingizwa kwenye mfuatano wa mfululizo wa JSON ul_KeyNonce .

Usimbuaji yenyewe hutokea na kwa kutumia Mtandao Mfanyakazi (ikiwa kivinjari kinaauni teknolojia hii) au tu ndani ya msimbo kuu wa ukurasa. Wakati faili iko tayari kutumwa, ili kusimba sifa zake ( on wakati huu(sifa zinamaanisha tu jina la faili) ufunguo mpya, filekey , huundwa kulingana na ul_key na ukaguzi wa faili. Kisha ufunguo huu husimbwa kwa njia fiche kwa ufunguo mkuu na kutumwa kwa seva pamoja na sifa za faili. Vitendaji vya initupload3 na api_completeupload2 vinawajibika kwa vitendo hivi vyote. Kitufe cha faili kimeundwa katika kazi ya ul_chunkcomplete, hapa chini nitatoa sehemu yake.

// anza kupakia faili: kuunda ufunguo wake wa kibinafsi na kuanzisha utendakazi wa utaratibu wa usimbuaji initupload3() ( // ... kata =) // kuunda ufunguo wa kibinafsi wa faili // ul_key inatumika katika nambari ya ukurasa, // ul_keyNonce hupitishwa kwa Mfanyakazi wa Wavuti na hutumika hapo // kusimba faili kwa njia fiche na kukokotoa hundi yake ul_key = Array(6); kwa (i = 6; i--;) ul_key[i] = rand(0x100000000); ul_keyNonce = JSON.stringify(ul_key); ul_macs = ; // ... kinachofuata ni kuchakata foleni ya upakuaji, haina riba... // kuanzisha sjcl-aes kwa faili kulingana na ul_key ul_aes = new sjcl.cipher.aes(); // ... // kuanza mchakato wa kupakia faili: // kuisoma kutoka kwa diski, usimbaji fiche na kutuma onUploadStart(ul_queue_num); ul_dispatch_chain(); ) // kuunda ufunguo wa kusimba sifa za faili ul_chunkcomplete(slot,pos,response) ( // ... var t = ;// ul_macs - safu iliyo na ukaguzi wa faili uliopatikana ndani ya mfanyakazi kwa (p katika ul_macs) t. .sukuma(p); // kujaza na kupanga safu ya muda, ikiwa kuna mtu anajua kwa nini hii ni - tafadhali eleza t.sort(function(a,b) ( return parseInt(a)-parseInt(b) )); kwa ( var i = 0;i< t.length; i++) t[i] = ul_macs]; // внутри condenseMacs производится зашифрование // и "уплотнение" контрольной суммы файла в массив из 4х элементов var mac = condenseMacs(t,ul_key); ul_settimeout(-1); // на основе контрольной суммы и ключа файла создается ключ для шифрования атрибутов // он же в зашифрованном виде позже будет отправлен на сервер var filekey = ; // ... } // завершение загрузки файла: зашифрование атрибутов и ключа файла и отправка их на сервер function api_completeupload2(ctx, ut) { var p; if (ctx.path && ctx.path != ctx.n && (p = ctx.path.indexOf("/")) >0) ( var pc = ctx.path.substr(0, p); ctx.path = ctx.path.substr(p + 1); fm_requestfolderid(ut, pc, ctx); ) vinginevyo ( // encrypt jina la faili kwa ufunguo unaotokana na ul_key na checksum // ctx.k == filekey a = ( n: ctx.n ); ikiwa (d) console.log(ctx.k); var ea = enc_attr(a, ctx.k) ; ikiwa (d) console.log(ea); // uhamisho wa sifa na ufunguo wa faili uliosimbwa kwa njia fiche kwenye ufunguo mkuu var req = ( a: "p", t: ut, n: [( h: ctx.t, t: 0, a: ab_to_base64(ea), // sifa k: a32_to_base64(encrypt_key(u_k_aes, ctx.k)), // == AES_encrypt(u_k, filekey) fa: ctx.fa )] ); ikiwa (ut) ( // lengo limetolewa: encrypt kwa hisa zote husika var sn = fm_getharenodes(ut); ikiwa (sn.length) ( req.cr = crypto_makecr(, sn, false); req.cr = ctx.t; ) api_req(, ctx.ctx); ) )

Inapakua na kusimbua faili

Ni wazi, michakato hii inapaswa kuwa kinyume cha usimbuaji faili. Kitu pekee ambacho kinaweza kufurahisha ni kupata thamani ya kitufe cha ul_key kutoka kwa thamani ya ufunguo wa faili iliyosimbwa kwa njia fiche ambayo ilitoka kwa seva.

Wakati faili inapakuliwa, muktadha wa kivinjari tayari una kitu ambacho huhifadhi funguo za faili zilizosimbwa. Kwa hiyo, kwanza ni mantiki kuzingatia mchakato unaotokea mara baada ya uthibitishaji wa mtumiaji, yaani, kupakua meneja wa faili. Baada ya mtumiaji kuruhusiwa kuingia kwenye huduma, kwa kawaida anataka kupata ufikiaji wa faili zake (ikizingatiwa kuwa tayari alikuwa nazo). Ili kufanya hivyo, tunahitaji kwanza kufuta funguo za faili, na kisha sifa zao. Suala hili linashughulikiwa na kifurushi kingine cha chaguo za kukokotoa, ambacho tunavutiwa nacho loadfm_callback na process_f_f .

Kwa kifupi, mchakato wa kupata sifa za faili unaweza kuelezewa na algorithm ifuatayo:

  1. Subiri kidhibiti faili kipakie (loadfm_callback), ambapo unaweza kupata JSON ikiwa na maelezo ya faili zote zilizopakuliwa.
  2. Unda safu ya farray ambayo unaweza kuweka safu na habari kuhusu faili
  3. Endesha (kwa kurudia) kitendakazi process_f_f kwa kila faili
  4. Kwa kila faili iliyo na ufunguo, simbua ufunguo huo na sifa (kazi ya crypto_processkey) na uzihifadhi kwenye safu iliyo na habari ya faili.
  5. Baada ya hayo, hifadhi maadili yaliyosimbwa kwa utofauti wa FileStore (mwisho wa kujirudia katika process_f_f)
Hapo chini nitatoa dondoo za nambari zinazoonyesha algorithm hii

// kupiga simu tena kwa kupakia kitendakazi cha kidhibiti faili loadfm_callback(json, res) ( // ... // kuchakata JSON na maelezo kuhusu faili json = json; ikiwa (d) console.log(json); ikiwa (d) kiweko. log (json); ikiwa (json.u) process_u(json.u, sivyo); ikiwa (json.ok) process_ok(json.ok); ikiwa (json.s) ( kwa (i katika json.s) ( ikiwa ( u_sharekeys.h]) ( sharingData.push(( id: json.s[i].h + "_" + json.s[i].u, userid: json.s[i].u, folderid: json .s[i].h, haki: json.s[i].r, tarehe: json.s[i].ts )); sharednodes.h] = kweli; ) ) ) // ... basi hakuna maalum .. // kuingiza habari kuhusu faili kwenye nyingine safu ya kimataifa farray = Kitu kipya; farray.f = json.f; // kuanzia usindikaji wake, kurudi nyuma kulitangazwa hapo juu // katika kazi hii na kurekebisha tu mpangilio mchakato_f(fi, uongo, urejeshaji simu); fi++; // kazi ya kujirudia, ambamo funguo na sifa za faili zimesimbwa // huitwa kutoka process_f function process_f_f(fid) ( // hali ya kukomesha urejeshaji - tumechakata faili zote kwenye safu ya farray if (!farray.f.i]) ( if (farray) .ap) FileStore. suspendEvents(); // kuandika data kwa FileStore FileStore.loadData(farray.mdata, true); ikiwa (farray.ap) FileStore.resumeEvents(); ikiwa (d) console.log("call reqmissingkeys: "); crypto_reqmissingkeys( ); ikiwa (farray.callback) farray.callback.fn(farray.callback); rudisha sivyo; ) var f = farray.f.i]; f.attrs = f.a; ikiwa (f.sk) u_sharekeys = crypto_process_sharekey(f.h, f .sk); // ikiwa faili inalingana na aina na ina ufunguo, basi itachakata ikiwa ((f.t !== 2) && (f.t !== 3) && (f.t !== 4) && (f.k)) ( crypto_processkey (u_handle, u_k_aes, f); // maelezo ya chaguo hili la kukokotoa hapa chini u_nodekeys = f.key; ikiwa (((typeof f.name !== "haijafafanuliwa") && (f.p == InboxID)) InboxCount++; ) vinginevyo ( ikiwa (f.a ) ( ikiwa (!missingkeys) ( missingkeys = kweli; newmissingkeys = kweli; ) ) f.k = ""; f.jina = ""; ) ikiwa (f.t == 2) RootID = f.h; vinginevyo ikiwa (f.t == 3) InboxID = f.h; vinginevyo ikiwa (f.t == 4) TrashbinID = f.h; vinginevyo ikiwa ((f.t< 2) || (f.t == 5)) { // тут идет обработка расшаренных файлов } else { // подготовка массива для записи в FileStore farray.mdata.push({ id: f.h.replace(/[^a-z^A-Z^0-9^_^-]/g, ""), name: f.name, size: f.s, type: filetype(f.name, f.t), icon: fileicon(f.name, icontype), parentid: f.p, folder: f.t, owner: f.u, date: f.ts, attrs: f.attrs, key: f.key, r: f.r, su: f.su, fa: f.fa, }); if (f.p == TrashbinID) trashbinfull = true; if (((f.t) && (farray.ap)) || (f.p == InboxID)) refreshtree = true; } farray.i++; // проверка таймаута (видимо, чтобы загрузка файл-менеджера не выглядела слишком долгой) timeoutcount++; if (!(timeoutcount & 63)) { // если у нас больше 63 файлов - дальше грузим их асинхронно setTimeout("process_f_f(" + fid + ")", 1); timeoutcount2++; } // иначе - запускаем обработку faili inayofuata mchakato mwingine_f_f(fid); ) // kuchakata ufunguo wa faili na sifa zake hufanya kazi crypto_processkey(mimi, master_aes, faili) ( var id, key, k, n; ikiwa (!file.k) ( if (!keycache) inarudi; file.k = keycache; ) id = mimi; // ninamiliki faili? (ufunguo wa mtumiaji umehakikishiwa kuwa wa kwanza katika .k) // ufunguo umeandikwa kama " :/" var p = file.k.indexOf(id + ":"); // kwanza angalia ikiwa faili imeshirikiwa ikiwa (p) ( // sina"t - je, nina ufunguo wa kushiriki unaofaa? kwa (kitambulisho katika u_sharekeys ) ( p = file.k.indexOf(id + ":"); ikiwa (p >= 0 && (!p || file.k.charAt(p - 1) == "/")) itavunjika; p = -1; ) ) // kisha tunaweza kuendelea na usimbuaji ikiwa (p >= 0) ( futa kashe ya vitufe; // slash - dhahiri ni ishara ya hisa var pp = file.k.indexOf("/", p) ; ikiwa (uk< 0) pp = file.k.length; p += id.length + 1; key = file.k.substr(p, pp - p); // we have found a suitable key: decrypt! if (key.length < 46) { // short keys: AES k = base64_to_a32(key); // check for permitted key lengths (4 == folder, 8 == file) if (k.length == 4 || k.length == 8) { // ключ расшифровывается либо на мастер-ключе, либо на общем ключе шары k = decrypt_key(id == me ? master_aes: new sjcl.cipher.aes(u_sharekeys), k); } else { if (d) console.log("Received invalid key length (" + k.length + "): " + file.h); return; } } else { // long keys: RSA if (u_privk) { var t = mpi2b(base64urldecode(key)); if (t) k = str_to_a32(crypto_rsadecrypt(t, u_privk).substr(0, file.t ? 16: 32)); else { if (d) console.log("Corrupt ufunguo kwa nodi " + file.h); return; ) ) kwingine ( ikiwa (d) console.log("Umepokea ufunguo wa RSA, lakini hauna ufunguo wa umma uliochapishwa: " + file.h); rudisha; ) ) // kusimbua faili attributes var ab = base64_to_ab(file.a); // na usimbue kwa kutumia kitufe ambacho tumepokea hivi punde var o = dec_attr(ab, k); ikiwa (typeof o == "kitu") ( ikiwa (aina ya o.n == " string ") ( ikiwa (file.h) ( u_nodekeys = k; ikiwa (key.length >= 46) rsa2aes = a32_to_str(encrypt_key(u_k_aes, k)); ) // ikiwa tumesimbua ufunguo na sifa kwa usahihi, sisi zihifadhi kwenye faili ya kitu file.key = k; file.name = o.n; ) ) ) kwingine ( if (d) console.log("Haijapokea ufunguo unaofaa: " + file.h); ikiwa (!missingkeys) ( newmissingkeys = kweli; missingkeys = kweli; ) keycache = file.k; ) )
Baada ya haya, tunaweza kupata thamani ya ufunguo asilia ul_key kutoka kwa muktadha wa kivinjari kama hii: dl_keyNonce = JSON.stringify();
Ubadilishaji huu hutokea katika kitendakazi cha upakuaji wa kuanza. Ikiwa tutazingatia kwamba thamani dl_key == filekey kutoka kwa kazi ya ul_chunkcomplete na kufanya shughuli rahisi za kuongeza modulo, tutaona kwamba kutofautiana kwa dl_keyNonce kutahifadhi thamani ya ul_key inayozalishwa wakati wa kupakia faili. Mchoro wa hili unaweza kuonekana kwenye kona ya chini kushoto ya ubao kwenye picha mwanzoni mwa sehemu ya kupakia faili.

"Kupakia kupita kiasi" kwa shughuli za kriptografia

Licha ya ukweli kwamba kanuni zilizoelezwa hapo juu za kulinda faili na funguo ni salama sana, wengine hawawezi kupenda ukweli kwamba bado tunategemea utekelezaji wa algorithms ambayo huduma hutoa. Katika kesi hii, tunaweza kuendeleza ugani wetu wa kivinjari, ambacho kitabatilisha baadhi ya vipengele vya huduma, kwa kutekeleza usimbaji fiche wa ziada ndani yao. Yaani, niliamua kutekeleza ulinzi wa habari muhimu (ufunguo mkuu na funguo za faili) kwa kutumia usimbuaji wa vifaa kwenye ufunguo usioweza kuondolewa kulingana na algorithm ya GOST 28147-89. Bonasi kwa hii pia itakuwa ujumuishaji wa uthibitishaji wa sababu mbili kwenye huduma.
Kwa hivyo, wacha tuzingatie kesi hii ya utumiaji:
  • Mtumiaji anajiandikisha kwenye huduma
  • Kisha inasakinisha kiendelezi
  • Kwa msaada wake, usimbuaji wa vifaa vya ufunguo mkuu unafanywa kwa kutumia ufunguo ambao hauwezi kutolewa kutoka kwa ishara.
  • Ufunguo mkuu uliosimbwa kwa njia hii hupakiwa kwenye seva
Baada ya hayo, haitawezekana kupata thamani kuu ya ufunguo bila kuwa na ishara na msimbo wake wa PIN. Hii itatoa:
  1. Uthibitishaji wa mambo mawili kwenye huduma (bila ufunguo mkuu uliosimbwa kwa usahihi, kazi ya api_getsid2 itashindwa)
  2. Bila tokeni, hutaweza pia kubadilisha nenosiri lako la sasa la akaunti.
Hatua inayofuata ni kusimba kwa kutumia ishara ya ufunguo wa usimbaji faili (pia inajulikana kama ul_key) na kitufe cha sifa ya faili (filekey), ambacho kimehifadhiwa kwenye seva. Kwa hivyo, tutapata kwamba kila faili itasimbwa kwa ufunguo ambao hautawahi kufika kwa seva, ambapo ufunguo wa faili tuliosimbwa kutoka kwa kazi ya api_completeupload2 utaenda. Sifa za faili zitasimbwa kwa njia fiche kwa thamani ya umma ya filekey . Kwa uwazi zaidi, nilichora mchoro ufuatao unaoonyesha mchakato wa kupakua faili:

Ninataka kutambua kwamba hapa nilitumia njia ya ujanja sana. KATIKA kwa kesi hii Ni muhimu kwetu kwamba mshambulizi hawezi kusimbua faili, hata kama ataingilia ufunguo wa faili uliopokelewa kutoka kwa seva na anajua ufunguo mkuu wa mtumiaji. Kwa hivyo, hapa unaweza kucheza kwenye upekee wa usanifu wa huduma na kutumia thamani muhimu ul_keyNonce (aka dl_keyNonce) iliyopatikana kwa kusimba thamani ya ul_key (au dl_key) muhimu ili kusimba faili.

Tangu makala haya yalipoandikwa, bidhaa yetu imeongeza uwezo wa kutumia usimbaji fiche wa maunzi kwa kutumia algoriti ya GOST 28147-89. Toleo la beta la programu-jalizi yenye utendaji wa usimbaji fiche wa maunzi kulingana na algorithm ya GOST 28147-89 inaweza kupakuliwa. Toleo hili la programu-jalizi bado halijatolewa mtihani kamili, kwa hiyo ninakuonya kwamba kunaweza kuwa na makosa ndani yake, uwepo ambao ninakuuliza uripoti katika ujumbe wa kibinafsi.
Katika kiolesura cha programu-jalizi, usimbaji fiche wa ulinganifu unatekelezwa na kazi ya usimbaji fiche, ambayo ina syntax ifuatayo:
encrypt(ID ya kifaa, Lebo ya ufunguo, data, resultCallback, errorCallback) → (kamba)
Chaguo za kukokotoa huchukua kama pembejeo:

  • Kitambulisho cha Kifaa, nambari
  • Lebo ya ufunguo wa usimbuaji, nambari (ikiwa hakuna ufunguo kama huo, itatolewa)
  • Data iliyosimbwa kwa njia fiche, kamba (kamba iliyo na safu ya baiti ya fomu "aa:bb:cc:dd")
  • Vitendaji vya kupiga simu kwa ajili ya kukamilisha na bila mafanikio ya utendakazi wa usimbaji fiche
Usimbuaji unafanywa kwa njia ile ile kwa kutumia kazi ya kusimbua
Tahadhari maalum inapaswa kulipwa kwa lebo ya ufunguo, kwani huamua ni ufunguo gani data itasimbwa. Lebo ni mfuatano wa kiholela na hutumika hasa kutambua ufunguo kwa urahisi. Katika kesi hii, mimi hutumia jozi mbili muhimu: moja kusimba ufunguo mkuu, pili kusimba funguo za faili za kibinafsi. Ufunguo ambao ufunguo mkuu umesimbwa una lebo sawa na nenosiri la mtumiaji (sasa nilikuja na wazo la kutumia heshi kutoka kwa barua pepe|| mfuatano wa nenosiri, nitarekebisha hii karibu baadaye). Ili kusimba funguo za faili zilizopakuliwa, ufunguo ulio na lebo sawa na uwakilishi wa kamba ya ufunguo mkuu hutumiwa (hapa pia inafaa kutumia hash ya ufunguo mkuu).

Maendeleo ya moja kwa moja

Ningependa kuandika mara moja kuhusu msimbo wangu wa chanzo: ni, kwa kweli, katika toleo la alpha, ingawa inatekeleza utendakazi ulioelezwa hapo juu. Sikuangalia jinsi marekebisho yangu yalivyoendana na kazi zingine za huduma, kwa hivyo nilichapisha vyanzo vyote kwenye github na nitafurahi kwa msaada wowote katika kukamilisha mfumo huu. Kwa hivyo, sitachanganya nakala zaidi na orodha kubwa, lakini nitaelezea tu mpango wa jumla kazi ya upanuzi.

Ugani uliomalizika unaweza kupakuliwa. Iliundwa kwa kutumia huduma ya Crossrider, ambayo hutoa upanuzi kwa vivinjari vitatu (Chrome, Firefox na IE), lakini ni bora kuangalia uendeshaji wake katika Chrome au Firefox, na katika kwanza inafanya kazi imara zaidi.

Nambari ya ugani ni rahisi sana: inakagua ikiwa tuko kwenye ukurasa wa huduma na ikiwa ni hivyo, inapakia hati za ziada. Hati hizi hurekebisha msimbo wa ukurasa, na kuongeza mazungumzo kadhaa, na kubatilisha utendaji wa huduma zifuatazo:

  • changepw: kuwajibika kwa kubadilisha nenosiri
  • api_getsid2: moja ya njia za kuingia
  • api_completeupload2: piga simu ili kukamilisha upakiaji wa faili
  • loadfm_callback: upakiaji wa meneja wa faili
  • processpacket: simu nyingine tena, ambayo sifa za faili iliyopakuliwa hivi punde zimesimbwa
  • parsepage: kuwajibika kwa kuchora mazungumzo ya ziada
  • dologin: huongeza uwezo wa uthibitishaji
  • initupload3: kuwajibika kwa kuunda ufunguo wa usimbuaji faili
  • startdownload: badilisha ufunguo wa faili na uanzishe upakuaji
Kwa mara nyingine tena nataka kukuonya kwamba hupaswi kuburuta kiendelezi kwenye akaunti yako ya kazini (ikiwa mtu yeyote hapa anatumia huduma hii kabisa), lakini ni bora kuunda jaribio. Ili kutumia kiendelezi baada ya kuiweka, utahitaji:
  1. Ili kuanza, ni wazo nzuri kupata Rutoken EDS (au Rutoken Web) na usakinishe programu-jalizi ya kivinjari.
  2. Sakinisha kiendelezi
  3. Ingia kwenye huduma na kiendelezi kimezimwa
  4. Washa kiendelezi katika kivinjari
  5. Nenda kwenye ukurasa wa akaunti
  6. Bofya kwenye kitufe cha "Bind token".
  7. Ingiza nenosiri la sasa na ufanyie operesheni hii
Badala ya kiendelezi, unaweza kutumia alamisho ifuatayo (iliyojaribiwa katika Chrome, Safari, Firefox): javascript:(function())(if(document.getElementById("cryptorutokenjs"))(tahadhari("Programu-jalizi tayari imesakinishwa" );return)function loadRemoteScript(url )(var script=document.createElement("script");script.type="text/javascript";script.src=url;document.head.appendChild(script))function loadRemoteStyle( url)(var style=document. createElement("link");style.rel="stylesheet";style.type="text/css";style.href=url;document.head.appendChild(mtindo))loadRemoteStyle( "https://mega-crypto .googlecode.com/git/mega.css");loadRemoteScript("https://mega-crypto.googlecode.com/git/util.js");loadRemoteScript("https:/ /mega-crypto.googlecode.com /git/rutoken-extra.js");loadRemoteScript("https://mega-crypto.googlecode.com/git/rutoken-crypto.js");loadRemoteScript("https:/ /mega-crypto.googlecode.com /git/mega.js")))();

Maonyesho ya kazi

Kwanza, hebu tuunganishe uumbaji wetu kwenye tovuti. Kwa hii; kwa hili:

Basi unaweza kutoka kwa huduma na ujaribu kuingia tena kwa kutumia uthibitishaji wa sababu mbili:

Uthibitishaji hutokea kulingana na mpango ufuatao:

  1. Kuangalia jozi ya nenosiri la kuingia kwenye seva
  2. Ikiwa kuingia na nenosiri ni sahihi, basi ufunguo mkuu uliosimbwa hutoka kwa seva
  3. Programu-jalizi inaomba msimbo wa PIN kwa tokeni
  4. Ikiwa PIN imeingizwa kwa usahihi, basi ufunguo mkuu unasimbwa kwenye ufunguo kutoka kwa ishara

Badala ya hitimisho

Hapa ninahisi kama kuandika "kuendelea ...", kwa kuwa sikushughulikia maelezo ya kuunda kiendelezi na kuvutia kwa kuweka kazi za usimbuaji wa asynchronous kwenye huduma ambayo katika hali nyingi hutumia simu zinazolingana. Kwa kuhitimisha makala hii, ningependa kwa mara nyingine kurejea kwenye wazo la kutekeleza kriptografia ya upande wa mteja.
Mbinu ya utekelezaji wa ziada kazi za kriptografia kwa upande wa mteja inaweza kutumika kwa huduma yoyote ya wavuti ambayo haijali kile kilichohifadhiwa kwenye seva yake: iwe uhifadhi wa faili, barua au mazungumzo rahisi. Kwa mfano, unaweza kutekeleza barua salama kulingana na yoyote huduma ya posta kutumia usimbuaji wa ujumbe katika umbizo la CMS na taratibu muhimu za kubadilishana kwa kutumia algorithm ya VKO GOST R 34.10-2001.
Asante kwa umakini wako, ninatarajia maswali na maoni yako.javascript Ongeza lebo

Huduma ya uhifadhi Data ya Mega co nz ilizinduliwa mwaka 2013. Katika siku ya kwanza, watumiaji milioni 1 walitembelea tovuti, na ndani ya saa ya kwanza, zaidi ya watumiaji 100,000 walijiandikisha. Kufikia 2015, Mega huhifadhi habari kwenye Mtandao kwa zaidi ya watumiaji milioni 15.

Huduma ya Wingu Mega inasimamia "Ufikiaji Uliosimbwa wa MEGA Ulimwenguni". Wakati wa kupakia data kwenye hifadhi, faili zote zimesimbwa kwenye kivinjari kwa kutumia algorithm ya AES na kuhifadhiwa kwenye seva katika fomu iliyosimbwa. Kwa kuongeza, Mega haihifadhi nywila au . Ni za mtumiaji pekee na haziwezi kurejeshwa na kampuni. Ikiwa umesahau nenosiri lako, njia pekee kuirejesha - kuwa na ufunguo mkuu wa Mega nz.

Ghala la data la Mega co nz - hutoa bure na mahali palipolipwa kwa kuhifadhi faili kwenye mtandao. Hukupa fursa ya kuhifadhi na kufikia faili zako popote duniani. Ina njia kadhaa za kupakia faili kwenye hifadhi ya Mega.nz kwa kutumia kivinjari cha wavuti au programu maalum za mteja.

Kufungua akaunti na Mega ni rahisi. Lazima utoe barua pepe na nenosiri ili kuanza. Tofauti kati ya uhifadhi wa Mega.co na uhifadhi ni kwamba baada ya hapo utapokea 50GB bila malipo nafasi ya diski kuhifadhi faili kwenye mtandao, na huna haja ya kuingiza data kadi ya mkopo wakati wa usajili.

Wingu la ushirikiano wa Mega ni rahisi sana kuabiri. Vifungo vya kupakia faili na folda ziko ndani paneli ya juu menyu, na chini yake data iliyopakuliwa. Upande wa kushoto ni safu wima ya kudhibiti na kuonyesha kwenye wingu Huduma ya Mega. Kwa kubofya kitufe cha menyu upande wa juu kulia, unaweza kubadilisha lugha, kusakinisha programu za Kuongeza kwenye vivinjari. Google Chrome, Firefox ya Mozilla, sawazisha folda zozote kwenye kompyuta inayoendesha Windows, Mac, Linux mifumo ya uendeshaji yenye folda kwenye wingu la Mega, sawazisha na upakie data yako kwenye wingu kwa kusakinisha programu ya simu ya mkononi. Android iOS Blackberry Windows kwenye simu mahiri au kompyuta kibao.


Kuhifadhi faili na kuzishiriki katika huduma ya wingu Mega.co.nz ni rahisi sana, tengeneza folda mpya, pakia picha, video, hati au habari zingine ndani yake kwa kubofya kitufe cha "Pakia faili" kwenye menyu ya juu. Hifadhi ya data ya Mega.nz haipunguzi ukubwa wa faili iliyopakuliwa, na kasi ya upakuaji isipokuwa ukiweke kikomo katika mipangilio.

Unapobonyeza bonyeza kulia panya kwenye folda kwenye menyu ya kushuka, unaweza kuifungua, pata kiunga cha kupakua faili kutoka kwa huduma ya wingu, nakala, kubadilisha jina, kusonga, kufuta data kutoka kwa diski.

Hifadhi ya data Mega.nz inatoa mipango mitatu iliyolipiwa ya kuhifadhi faili kwenye wingu:

PRO Ⅰ GB 500 € 9.99/mwezi AU € 99.99/mwaka
PRO Ⅱ 2TB GB € 19.99/mwezi AU € 199.99/mwaka
PROⅢ 4TB GB € 29.99/mwezi AU € 299.99/mwaka
Unaponunua mpango wa PRO wa kila mwaka, pata miezi 2 bila malipo.
Kila mtu anaweza kutumia wingu la MEGA bila malipo.

Jisajili na Mega.co.nz

Mega | hifadhi ya wingu Mega | Cloud Mega| Hifadhi ya Mega

Nina hakika kwamba watumiaji wote wanaofanya kazi wa Mtandao wamesikia kuhusu hadithi ya kufungwa kwa huduma maarufu ya upangishaji faili ya Megaupload na matukio mabaya ya muundaji wake. Na hakika wanajua kuhusu mradi mpya wa Kim Dotcom unaoitwa Mega. Hebu tukumbushe kwamba huduma hii ni kuzaliwa upya kwa uumbaji wa awali wa Kim, lakini kwenye jukwaa tofauti kabisa.

Wakati wa kuunda, mapungufu na makosa yote ya Megaupload yalizingatiwa na msisitizo uliwekwa hasa juu ya utulivu wa huduma ya mwenyeji wa faili. Na si tu kwa mizigo ya mtandao, lakini pia kwa mashambulizi ya wamiliki wa hakimiliki. Ili kufikia hili, tahadhari kubwa hulipwa kwa usiri na usalama wa data yako. Faili zote unazopakia zimesimbwa kwa algorithm maalum, kwa hivyo usimamizi wa huduma haujui yaliyomo kwenye akaunti yako na, ipasavyo, hauwezi kuwajibika kwa hilo. Kwa madhumuni sawa, seva za Mega ziko ndani nchi mbalimbali, kwa hivyo ikiwa kuna matatizo na sheria katika nchi moja, hii haitasababisha kuanguka kwa huduma nzima na data yako itasalia sawa.

Leo tunataka kukujulisha karibu na kazi ya huduma hii na kukupa ziara ndogo ya skrini ya kazi zake.

Ili kuanza unahitaji kujiandikisha. Ili kufanya hivyo, unahitaji kutoa jina lako, barua pepe na nenosiri. Huduma hiyo imefanywa kikamilifu Kirusi na imeundwa kikamilifu.

Baada ya usajili kukamilika, utatumiwa kiungo cha kuingia kwa anwani ya barua pepe uliyotoa. Kwa kubofya kiungo, utalazimika kusubiri dakika kadhaa hadi maalum zitatolewa kwa ajili yako funguo za siri, ambayo data itasimbwa kwa njia fiche.

Tunaingia kwenye hifadhi yetu ya wingu. Kila kitu hapa ni wazi na rahisi: mti wa folda iko upande wa kushoto, eneo la maonyesho ya faili liko katikati, na upau wa zana uko juu. Faili zinaweza kupakuliwa kwa kubofya kitufe Upakiaji mpya au Drag rahisi na kuacha kwenye dirisha la huduma. Upakuaji ni haraka sana.

Faili zinaweza kupangwa katika folda. Kusogeza faili kati ya folda hufanywa kwa kuburuta na kuacha au kutumia menyu ya muktadha (tazama hapa chini). Kiwango cha kuota kwa saraka sio mdogo.

Kiungo cha kupakua faili kinatolewa kwenye dirisha ibukizi linaloonekana.
Angalia chaguzi zilizo juu ya dirisha hili. Ikiwashwa tu Kiungo cha faili, basi mpokeaji wako hataweza kupakua faili bila kuingiza nenosiri maalum, ambayo unaweza kutuma kwake tofauti na barua pepe. Kwa njia hii, unaweza kuchapisha viungo vya upakuaji katika maeneo ya umma, kama vile blogu au mijadala, lakini ruhusu tu watu fulani kupakua.
Ikiwa imewekwa alama ya ziada Kitufe cha faili, basi mtu yeyote anaweza kupakua faili kwa kutumia kiungo kilichoundwa. Visanduku vya kuteua Jina Na ukubwa wa faili ongeza sifa zinazofaa za faili.

Menyu ya muktadha wa folda ni tofauti kidogo. Kuna jambo hapa Kugawana . Pamoja nayo unaweza kualika kugawana wafanyakazi wako, marafiki au familia. Mialiko hutumwa kwa barua pepe na ufikiaji unaweza kutofautiana. Kusoma tu - kutazama tu, Soma na Andika- kutazama na kupakia faili zako kwenye folda, Ufikiaji kamili- kutazama, kupakua na kufuta faili.

Katika sura Akaunti unaweza kuona ukamilifu wa hifadhi yako, kununua nafasi ya ziada, kubadilisha mipangilio ya uhamisho wa data na chaguo zingine.

Baadhi ya maonyesho ya kibinafsi

Huduma ya kushiriki faili Mega hufanya hisia kubwa. Kasi bora kazi, kiolesura wazi na cha kupendeza, gigabytes 50 za nafasi ya diski, hakuna vikwazo kwa trafiki na ukubwa wa faili zilizopakiwa, pamoja na uhuru kamili na faragha ya data yako. Ni aina fulani ya likizo!

Uwezo wa huduma ya Mega unaweza kutumika kwa madhumuni mbalimbali. Awali ya yote, hii ni usambazaji wa aina mbalimbali za habari, ambayo itapendeza sana maharamia wa mabara yote. Hata hivyo, uwezekano wa upatikanaji mdogo kwa kutumia nywila pia inaweza kuwa muhimu kwa uuzaji wa kisheria wa ubunifu wao, kwa mfano na wanamuziki. Kushiriki folda hufanya Mega kuwa chombo cha kuvutia cha kuandaa kazi ya mbali. Na kwa kweli, nakala rudufu ya habari ambayo ni muhimu kwako.

Kitu pekee ambacho Mega inakosa katika hatua hii ni mteja wa eneo-kazi na simu kwa tofauti mifumo ya uendeshaji. Kwa kuzingatia umri mdogo wa huduma, mtu anaweza kuwa na matumaini kwamba watengenezaji hawana muda bado na mteja kama huyo ataonekana hivi karibuni. Baada ya haya, sioni vizuizi vyovyote vya Mega kuwa kiwango kipya cha uhifadhi wa faili za wingu.

Je! unakumbuka nyakati ambazo GB 40 za nafasi ya kuhifadhi kwenye kompyuta yako zilionekana kuwa anasa isiyoweza kumudu? Sasa hesabu inaingia kwenye mamia ya gigabytes, na mara nyingi ndani ya terabytes, na tumetumiwa sana kwa hili kwamba tunachukua nafasi kwenye disks za PC bila ubaguzi - na kila kitu.

Wakati huo huo, akiba na faraja bado hazijafutwa, na kuwepo, ustawi na matarajio mazuri ya hifadhi ya wingu huthibitisha thamani yao. Katika miaka michache iliyopita, huduma za huduma kama hizi za Mtandao zimekuwa zikiendelea kwa hatua kubwa, na hifadhi kadhaa za data za wingu zinaweza kutajwa kama mfano:

1. Yandex.Disk - inatoa GB 5 kwa Kompyuta nafasi ya bure kwa kuhifadhi faili za umbizo tofauti na viendelezi pamoja na mafao mbalimbali. Kwa mfano, ikiwa umekuwa ukitumia barua ya Yandex kwa miaka 5, utapewa nafasi nyingine ya 2 GB ya Disk.
2. Hifadhi ya Google - bila malipo ya GB 15 ya nafasi.
3. Microsoft SkyDrive - GB 7 bila malipo badala ya GB 25 iliyotolewa hapo awali.
4. - 2 GB pamoja na upanuzi wa nafasi ya disk kwa ajili ya kuvutia rufaa.
5. Apple iCloud - gigabytes 5 za bure za nafasi.
6. - hapa unaweza kukopa si zaidi ya MB 40 kwa kila noti bila malipo, na utumie kiasi cha trafiki kwa kuandika / kuhariri maelezo hadi 60 MB kwa mwezi.
7. Amazon Google Hifadhi - 5 GB.
8. Sanduku la huduma ya wingu - 5 GB.
9. Huduma ya SugarSync - GB 5.
10. Hifadhi ya wingu Mega.co.nz - GB 50 ya nafasi ya bure ya diski.

Hifadhi ya wingu Mega.co.nz

Huduma zote hapo juu zinaweza kufanya kazi sio tu kwenye PC za kompyuta, lakini kwa wote maombi ya simu, ambayo bila shaka huongeza wigo wa maombi yao na huongeza umaarufu wao. Lakini kiongozi katika gigabytes ya bure inayotolewa bado ni Mega.co.nz - 50 GB sio utani, bado unahitaji kusimamia kuijaza na kitu, kwa hiyo napendekeza tuzungumze kwa undani zaidi kuhusu huduma hii ya wingu - Mega.co. nz. Kwa njia, mimi hutumia huduma hii kikamilifu, kwa kuwa ni imara, haijulikani, na waumbaji wake ni watu wanaojulikana.

Mkuu wa kampuni inayotoa huduma za hifadhi hii ni Kim Dotcom, mwanzilishi wa huduma ya Megaupload, ambayo ilifungwa miaka miwili iliyopita kwa amri ya Idara ya Haki na FBI ya Amerika. Labda unakumbuka hadithi hiyo. Kwa kweli, exchanger yao ya zamani ilikuwa jambo rahisi sana. Lakini sasa ubunifu mpya wa Kim umekuwa baridi zaidi. Hebu tuzungumze juu yake kwa undani zaidi.

Sasa huduma ya Mega haitoi uhifadhi wa kawaida wa data kwenye wingu kwa kutumia PC, lakini, kama watengenezaji walivyoahidi hapo awali, tayari wamejumuisha uwezo wa kufanya kazi kutoka kwa vifaa vya rununu - iPhone, iPad, vifaa kwenye , Win 8, kuweka. mfumo wa faili kwa Windows, na kadhalika. Hiyo ni, itawezekana kutuma faili moja kwa moja kwenye wingu. Kwa mfano, picha zako kutoka kwa smartphone yako zitahifadhiwa kwenye gadget, lakini wakati huo huo zitahamishiwa Mega.сo.nz, hivyo uwezekano wa hasara zisizotarajiwa au uharibifu wa faili zitaondolewa kabisa. Data yako yote imesimbwa kwa njia fiche wakati wa uwasilishaji, na hakuna mtu isipokuwa wewe anayeweza kuifungua kwa usomaji.

Faida na tofauti za Mega

1. Kipengele kikuu na tofauti kati ya huduma ya wingu ya Mega.co.nz na nyenzo sawa katika toleo la awali lililopendekezwa sauti ya bure Nafasi ya diski - 50 GB. Katika Mega.co.nz unaweza kupakia faili za ukubwa wowote, na ugani wowote, katika muundo wowote - hakuna vikwazo katika suala hili.

2. Kifupi MEGA ni jina la "MEGA Encrypted Global Access".

3. Vipengele kuu vya Mega ni sawa na rasilimali nyingine - kupakua, kuhifadhi faili gari la mtu wa tatu, na uwezo wa kushiriki faili na marafiki na wafanyakazi wenzako kwa kupitisha viungo au ufikiaji uliosimbwa. Faili kwenye kivinjari zimesimbwa kwa kutumia algorithm ya AES, ambayo inamaanisha kuwa umelindwa dhidi ya ufikiaji usioidhinishwa. Viungo vya kuhamisha faili pia vimesimbwa kwa njia fiche, na hata wafanyikazi wa huduma hawana ufikiaji wa data yako. Na angalau, wanadai.

4. Huduma ya kubadilishana na kuhifadhi faili za Mega ni ya lugha nyingi, hivyo huwezi kuwa na matatizo ya lugha wakati wa kufanya kazi nayo - chagua tu lugha inayotakiwa kwenye jopo la kudhibiti.

Lakini kuanza kutumia hifadhi ya wingu, unahitaji kupitia utaratibu rahisi wa usajili.

Kujisajili na kuanza na Mega.co.nz

Kama inavyoonekana kutoka kwa kiungo cha usajili, kuingia kwenye tovuti https://mega.co.nz/ hutokea kupitia muunganisho salama. Ifuatayo kwenye ukurasa kuu unahitaji kuchagua lugha ya Kirusi kwa kazi rahisi - menyu iko juu kulia. Sasa unaweza kujiandikisha:

Wakati wa kusajili, unahitaji barua pepe halisi, data iliyobaki inaweza kuchukuliwa tu kutoka kwa kichwa chako. Baada ya kujaza sehemu zote na kubofya kitufe cha "Unda Akaunti", tutapokea barua kwa barua pepe yetu yenye kiungo kuthibitisha usajili wetu:

Bofya kwenye kiungo hiki katika barua na uhakikishe akaunti yako kwenye ukurasa wa huduma - kwa hili kuna fomu kwenye kona ya juu ya kulia, yaani, ingiza tu barua pepe yako na nenosiri. Hii inafanywa mara moja - basi huduma itatumia vidakuzi vyetu vya kivinjari. Wakati wa kuthibitisha usajili, tutaulizwa kuunda ufunguo wetu binafsi, ambao utaamua uthibitishaji wetu. Kuunda ufunguo ni tabia ya kucheza, na hata nilichukuliwa, nikikosa wakati ambapo ufunguo ulikuwa tayari umeundwa.

Mchezo unaonekana kama kugonga matofali kwa mpira, ambayo huunda maandishi ya MEGA. Ukifikia 100% kwenye mizani iliyo juu ya skrini, ufunguo utaundwa:

Na baada ya kubofya kitufe cha "Maliza", nenda kwenye ukurasa wako katika huduma ya wingu ya Mega.co.nz:

Jinsi ya kutumia huduma ya Mega.co.nz

Kuna tofauti kidogo sana katika kutumia huduma wakati wa kufanya kazi kwenye Google Chrome, ambayo nitazungumzia hapa chini. Wakati huo huo, hebu tuzungumze juu ya pointi za jumla za udhibiti na matumizi. Upande wa kulia wa ukurasa wako unaona safu wima ya udhibiti na onyesho la muundo wa uhifadhi. Hapo juu kuna menyu ya kupakua, kutazama na kudhibiti faili. Hiyo ni, katika orodha ya kushuka kwa faili zilizopakuliwa tayari, utaona fursa ya kupata kiungo kwenye faili, uwezo wa kuiga, kuihariri, nk.

Watumiaji wa kivinjari cha Mozilla Firefox wanaweza kusakinisha programu jalizi kwenye kivinjari chao Ugani wa MEGA. Watengenezaji wa ahadi hii ya nyongeza kwamba baada ya kuiweka, utaona uboreshaji mkubwa katika kasi ya kupakua faili yako. Matokeo haya yanahakikishwa kwa kupakia idadi isiyo na kikomo ya faili bila kupunguza ukubwa wao. Kila kiungo kwenye huduma ya Mega.co.nz kimenaswa na yako Programu ya MEGA ugani na kubaki ndani ( Hati za JavaScript hazijapakuliwa kutoka kwa seva). Kutegemewa sasisho otomatiki Huduma hutolewa shukrani kwa saini ya siri iliyo na ufunguo uliosimbwa.

Bila kusakinisha programu jalizi hii kwa zaidi kazi yenye ufanisi Kwa huduma ya Mega, watengenezaji hutoa kutumia kivinjari cha Google Chrome. Kwa kuwa nimekuwa nikitumia vivinjari kadhaa maisha yangu yote ya kompyuta, niliweka ugani uliopendekezwa katika Firefox, lakini, kuwa waaminifu, sikuona tofauti yoyote katika uendeshaji wa huduma ya wingu. Programu inaweza kusakinishwa kutoka kwa "Nyongeza" ya kivinjari na kutoka kwa huduma ya MEGA ("Menyu" - "Maombi" - "Maombi ya Firefox")

Ni bora kutumia kivinjari cha Google Chrome ikiwa utapakia folda zote za faili kwenye wingu - Mozilla haina chaguo hili, lakini Chrome inaweza kupakia faili na folda zote mbili:

Hivi ndivyo jopo la kudhibiti uhifadhi linavyoonekana kwenye kivinjari cha Google Chrome, lakini katika Firefox ya Mozilla hakuna kitufe cha "Pakia folda" - kuna kitufe cha "Pakia faili". Kwa kutumia kitufe cha "Pakia faili", unaweza kupakia faili kwenye wingu kutoka kwako kompyuta binafsi. Baada ya kubofya kitufe cha "Pakia folda" kwenye Google Chrome, dirisha la Explorer litafungua, ndani yake unachagua folda ya kupakia kwenye hifadhi ya faili, na ndivyo - upakuaji umeanza.

Sasa hebu tuzungumze kuhusu jinsi ya kuzunguka tatizo hili katika Firefox. Hebu tuseme unataka kupakua folda nzima - usisakinishe kivinjari kipya kwa hili! Kisha unahitaji tu kuunda folda ya jina moja kwenye Mega (kipengee cha "Folda Mpya" kwenye menyu), na upakie faili zote ndani yake (bonyeza Ctrl + A ili kuchagua zote mara moja) ambazo ziko katika sehemu moja. folda kwenye kompyuta.

Tunaendelea kujifahamisha na huduma. Katika kipengee "My Akaunti"utaona sio tu kwamba unatumia akaunti ya bure, lakini pia kiasi chako cha nafasi ya wingu iliyotumiwa, na pia utaweza kubadilisha mipangilio ya wasifu wako au kusanidi uhamisho wa data:

Katika mipangilio ("Menyu" - "Akaunti Yangu") unaweza kufanya mengi. Kwa mfano, kubadilisha idadi ya viunganisho vya sambamba kwa kupakua faili, pamoja na idadi ya viunganisho vilivyofanana wakati wa kupakua faili. Unaweza pia kuweka kikomo kwa kasi ya kupakua.

Ukibofya kwenye kitufe cha menyu "Menyu" - "Akaunti Yangu", unaweza kujifunza zaidi kuhusu sheria za kutumia huduma ya wingu ya Mega.co.nz. Sitakuambia mengi kuhusu akaunti ya Pro, kwa kuwa bado sijaitumia - GB 50 ya bure inatosha. Lakini baada ya kubofya kitufe cha "Boresha Hali Yako" kwenye akaunti yako isiyolipishwa, unaweza kuchagua yoyote kifurushi kilicholipwa kati ya zile zinazotolewa kuwa na uwezo wa kuhifadhi kiasi kikubwa cha data yako kwenye wingu - kutoka GB 500 hadi 96 TB. Binafsi, siwezi kufikiria kiasi kama hicho - terabytes 96 - lakini, hata hivyo, ikiwa unafikiria kwa uangalifu, unaweza kupata matumizi. Kwa mfano, kwa kuhifadhi hifadhidata za tovuti, nk.

Wacha tuendelee kufanya kazi na faili - unaweza kuunda folda mpya ili kupakia faili za mada ndani yake. Ili kufanya hivyo, bofya kitufe cha "Folda Mpya" na ubadilishe jina la folda kama unavyohitaji. Katika folda hii mpya, unaweza pia kuunda folda zingine ambazo unaweza kupakia faili. Ikiwa unabonyeza kulia kwenye folda (faili), unaweza kuona amri zinazofanana za vitendo vyako na folda (faili) kwenye menyu ya muktadha inayojitokeza. Kama unavyoona, kuna uwezekano mwingi, pamoja na uwezo wa kupokea kiunga cha kuhamisha kwa watumiaji wengine. Kiungo kitasimbwa kwa njia fiche.

Ikiwa haujapunguza kasi ya kupakua faili katika mipangilio yako ya wingu, basi kasi ya kupakua data haitakuwa na kikomo na itategemea tu kasi ya uunganisho wa Mtandao wa Kompyuta yako. Kazi zaidi na folda/faili hutokea kwa njia sawa na katika kompyuta ya kawaida- unaweza kuzihariri, kupata viungo kwao, kuzisogeza, kuruhusu ufikiaji wa pamoja nazo, kuzinakili, nk. Mchakato wa kupakia na kupakua faili huonyeshwa upande wa kulia chini ya ukurasa kwenye huduma - bonyeza kwenye ikoni.

Jinsi ya kushiriki folda

Unaweza kuweka haki za ufikiaji wa umma kwa folda ambazo utahifadhi kwenye hifadhi ya wingu ya Mega co nz. Ili kufanya hivyo, bonyeza tu kulia kwenye folda, na kwenye menyu ya muktadha inayoonekana, bonyeza "Kushiriki". Kisha utaona dirisha la "Kushiriki", ambalo unahitaji kutaja anwani ya barua pepe ya mtumiaji ambaye unataka kumpa haki za kushiriki. Kwa mtumiaji huyu, unaweza kusanidi haki - kwa mfano, weka haki za "Kusoma tu", "Kusoma na kuandika", " Ufikiaji kamili" Baada ya hayo, haki za kushiriki zinaweza kuruhusu watumiaji walio na ruhusa ulizoweka kuhariri faili, au kuzitazama tu, au kuzipakua pekee. Kunaweza kuwa na idadi yoyote ya watumiaji kama hao.

Baada ya kuonyesha anwani ya barua pepe ya kutoa ufikiaji wa umma, barua itatumwa kwa barua pepe yake na kiunga ambacho ni muhimu kwenda kwenye huduma na kupata ufikiaji wa folda maalum. Folda ambazo zimeshirikiwa hutofautiana kidogo mwonekano kutoka kwa folda zingine za uhifadhi wa wingu, na uonekane kama hii:

Jinsi ya kupata kiunga cha Mega.co.nz

Huduma ya Mega.co.nz hukuruhusu kuwapa watumiaji wengine viungo vya kupakua faili unazopangisha kwenye huduma ya wingu ya Mega. Ili kupata kiungo kama hicho, unahitaji kubofya kulia kwenye faili na kwenye menyu ya muktadha inayoonekana, bofya kipengee cha menyu cha "Pata kiungo". Katika dirisha jipya linalofungua utaona kiungo chako (kilichosimbwa kwa njia fiche au ambacho hakijasimbwa) ili kupakua faili. Kwa ujumla, viungo vyote vya kupakua faili katika huduma ya wingu ya Mega.co.nz hutolewa kwa aina mbili, na aina ya kiungo itategemea kiwango cha usiri wa funguo za usalama.

Ikiwa kiunga chenyewe kimeundwa kwa fomu ambayo haijasimbwa, basi faili bado inapitishwa kwa njia fiche, na ikiwa tu mtumiaji atafuata kiunga hiki, faili husimbwa na inapatikana kwa kupakuliwa. Hiyo ni, hadi mtu atakapopakua faili hii, itahifadhiwa katika fomu iliyosimbwa. Ikiwa kiungo chenyewe kimesimbwa kwa njia fiche, basi ni mtumiaji pekee aliyepokea kiungo cha faili pamoja na kanuni maalum usalama (ufunguo). Bila msimbo huu wa usalama, mpokeaji hataweza kupakua faili kutoka kwa kiungo.

Katika picha hapa chini unaweza kuona kwamba ikiwa chaguo la "Na ufunguo wa faili" limeanzishwa, basi msimbo uliosimbwa umeingizwa kwenye kiungo yenyewe, na inapatikana kwa kupakuliwa kwa watumiaji wote. Na kinyume chake - ikiwa hutaangalia kisanduku hiki, mtumiaji anayelengwa ataweza kupakua faili tu ikiwa ataingiza ufunguo uliotoa tofauti.

Pia, mtumiaji ambaye kiungo cha faili kilikusudiwa anaweza kuihifadhi katika wingu lake lililo kwenye Mega.co.nz. Ili kufanya hivyo, baada ya kupokea kiungo, unahitaji kubofya kitufe cha "Ingiza". Kwa chaguo hili, kiungo hakitapakuliwa kwenye kompyuta yako, lakini kitahamishwa tu kutoka kwa akaunti moja hadi nyingine. Ni wazi kwamba kutekeleza operesheni hiyo ni muhimu kwamba mpokeaji pia ana nafasi yake ya disk katika wingu la Mega.co.nz, kama vile, kwa mfano, katika. Unaweza kuona uwezekano huu wote kwenye takwimu hapa chini:

Jinsi ya kupakua kiunga na ufunguo wa mtu binafsi (chaguo la pili)? Chini kwenye picha unaona suluhisho lake. Katika kesi ya ufunguo uliohamishwa tofauti, mpokeaji ataweza kupakua faili ikiwa atapokea kutoka kwako kiungo na ufunguo wa kupakua faili kutoka kwa hifadhi ya wingu. Utapokea ufunguo yenyewe kwa kuiga wakati wa kuhamisha faili (katika takwimu hapo juu kuna kipengee cha "Copy keys"). Unatuma data hii yote (kiungo kilichoshirikiwa na kiungo kilicho na ufunguo tofauti) kwa mtumiaji kupitia barua pepe ya kawaida.

Baada ya kubofya kiungo cha "Decrypt", katika dirisha jipya mtumiaji atalazimika kuingiza ufunguo wa usalama uliopokelewa kutoka kwako ili kupakua faili, au kuihifadhi kwenye hifadhi yake ya wingu. Baada ya ufunguo kuingizwa, mtumiaji lazima abonye kitufe cha "Pakua" na uangalie kisanduku "Ninakubali sheria na masharti ya MEGA," au tu kuingiza faili kwenye wingu lao.

Baada ya faili kupakuliwa kabisa, dirisha la "Pakua Kamili" litafungua, na ndani yake mtumiaji ataombwa kuokoa faili kwa mikono katika eneo lolote linalofaa kwenye kompyuta ili kukamilisha kupakua.

Na mwishowe, faili zote ambazo utaweka kwenye huduma ya uhifadhi wa wingu ya Mega.co.nz zitasimbwa - tayari nilizungumza juu ya hii hapo juu. Kwa upande mmoja, hii ni nzuri, lakini kwa upande mwingine, hautaweza kutazama yaliyomo, kucheza au kusikiliza faili za sauti na video wakati ziko kwenye wingu. Hiyo ni, ili kutumia faili hizi utahitaji kuzihamisha kwenye kompyuta yako au kifaa cha mkononi. Ili kufuta kabisa faili zote zilizopakuliwa, unahitaji kuzihamisha hadi kwenye tupio, na kisha uifute pia.

Mega ni hifadhi ya wingu inayowapa watumiaji GB 50 ya nafasi ya bure ya diski kwa ajili ya kuhifadhi data. Ongezeko kama hilo la kumbukumbu kwa gari ngumu haitakuwa mbaya kwa mtu yeyote.

Ugani huruhusu ufikiaji wa hifadhi ya wingu kupitia kivinjari. Hii inapunguza muda wa kuwasha, inaboresha utendakazi na inaboresha usalama. Akizungumzia uhifadhi wa diski ya MEGA, tunazungumzia kuhusu kimataifa ufikiaji salama. Kutumia kiendelezi cha kivinjari, faili zinazohitajika zitapatikana mchana na usiku. MEGA hutoa usimbaji fiche wa mwisho hadi mwisho. Hii ina maana kwamba ujumbe, picha, video zinalindwa kutokana na kuanguka kwenye mikono isiyofaa. Ni zile tu hifadhi za wingu ambazo zinaweza kufikia data ya kibinafsi ndizo zilizo chini ya udhibiti wako. Hata MEGA haiwezi kuzifikia! Tofauti na wengine wengi huduma za wingu, Watengenezaji wa MEGA wanasimama kwa ushirikiano salama. Hii hukuruhusu kubadilishana habari, kuungana na unaowasiliana nao, na kutazama masasisho kwa wakati halisi.

Nafasi kubwa ya kuhifadhi

MEGA sio salama tu kuliko washindani wake. Kiasi cha hifadhi isiyolipishwa inayotolewa ni kubwa mara nyingi kuliko ya wengine. Shukrani kwa kipengele cha kusawazisha faili kwa wakati halisi, faili zote ziko salama na zinaweza kurejeshwa ikiwa ni lazima. Ili kutoa uthibitisho wa kujitegemea wa usahihi na uadilifu wa mtindo wa kriptografia, pamoja na utekelezaji wake, MEGA huchapisha msimbo kamili wa chanzo wa maombi ya mteja. Na inapendeza!

Leo, mtandao hutoa idadi kubwa hifadhi za faili, sawa na kila mmoja. Jambo la kwanza linalokuja akilini: Yandex.Disk, Hifadhi ya Google, Dropbox, OneDrive. Kinachofanya MEGA kuwa tofauti na washindani wake ni kwamba inatoa GB 50 za hifadhi ya diski bila malipo kwa watumiaji waliojiandikisha. MEGA haipunguzi ukubwa wa faili zilizopakiwa kwenye wingu.