Vi tar kontroll over kryptografi i MEGA skylagring. Cloud fildeling MEGA Cloud disk mega

Og Microsoft SkyDrive.

Men MEGA skylagring er ikke så kjent, selv om den tilbyr så mye som 50Gb for ubegrenset gratis bruk, tilgjengelig umiddelbart etter registrering!


Hvis en så betydelig "økning" på harddisken din ikke ville skade deg, og du vil finne ut hvordan du får de samme 50 gigabytene og administrerer dem effektivt, så les dagens anmeldelse!

Hvor kom MEGA.NZ-tjenesten fra?

Siden du skal overlate noen av dine personopplysninger til tjenesten, vil det være en god idé å finne ut hvor de faktisk kom fra og hvem som står bak...

Du har sikkert hørt om slik lagring som Megaupload. Den ble stengt i 2012 etter avgjørelse fra amerikanske myndigheter - de involverte i opprettelsen av tjenesten, inkludert grunnleggeren Kim Dotcom, ble anklaget av FBI for brudd på opphavsretten (lagring og distribusjon av lisensiert innhold). Nøyaktig et år senere lanserte Kim Dotcom en ny tjeneste på mega.co.nz-domenet.

For øyeblikket er inngangen til skyen tilgjengelig på mega.nz, så hvis du kommer over lignende anmeldelser av dette depotet, hvor mega co eller mega co nz er angitt som adressen, vær oppmerksom på at de er håpløst utdaterte :)

Er registrering nødvendig for Mega?

På hovedsiden til depotet vil du se en stor rød knapp som inviterer deg til å dra filer til den og begynne å bruke tjenesten.

Man får en følelse av at registrering ikke er nødvendig for å fungere i det hele tatt. I prinsippet er dette sant - du kan umiddelbart laste opp noen av filene dine til skyen og til og med se dem i lagringen. Men uten registrering, vil de nedlastede dataene dine slettes fra lagringen etter at du har lukket siden eller nettleseren:

Gå derfor gjennom standard registreringsprosessen, hvoretter du umiddelbart mottar 50 gigabyte med skyplass helt gratis!

Nødvendige innstillinger umiddelbart etter registrering

Mega nz vil legge stor vekt på datalagringssikkerhet og konfidensialitet. Vi vil snakke om dette i detalj litt senere, men foreløpig vil jeg påpeke hva du må gjøre umiddelbart etter registrering.


Siden tjenesten ikke lagrer passordet ditt på sine servere, hvis du mister det, vil du ikke kunne få tilgang til kontoen din igjen. For å unngå dette problemet må du laste ned og lagre gjenopprettingsnøkkelen på PC-en din:

Dette er en nødvendig forholdsregel som ikke bør neglisjeres! Enig, det vil være synd å miste alle filene dine i skyen bare fordi du har glemt passordet ditt.

Slik bruker du Mega-lagring

I menyen på venstre side av vinduet klikker du på skyikonet:

Du vil finne deg selv i skystasjonen din. Ved å bruke verktøyene øverst i vinduet kan du opprette nye mapper, laste opp filer der og til og med laste ned ferdige mapper med filer fra datamaskinen din.

Å jobbe med lagringsgrensesnittet er ikke vanskeligere enn å bruke Windows Utforsker. Høyreklikk på en mappe eller fil får opp en kontekstmeny med en hel rekke alternativer.

Med den kan du:

  • Motta informasjon om et element (størrelse, opprettelsesdato osv.)
  • Tildel fargemerker og legg til i favoritter
  • Gi nytt navn
  • Flytt innenfor disken, kopier, slett
  • nedlasting
  • Del mapper
  • Opprett en offentlig lenke for å laste ned filer

Utviklerne tok selvfølgelig hensyn til deres negative erfaring med Megaupload, så når du oppretter en offentlig lenke, vil følgende vindu vises, med vilkårene du bare må godta:

Tjenesten pålegger ingen begrensninger på størrelsen på nedlastede filer! Innenfor 50 GB-kvoten din kan du laste opp tusenvis av små filer, eller for eksempel to filer på 25 gigabyte hver. Men husk at nettlesere selv har funksjonelle begrensninger på størrelsen på filene de kan laste ned. De mest "sårbare" nettleserne i denne forbindelse er Internet Explorer, Firefox og Safari, som ennå ikke fullt ut støtter HTML5.

Opprette delt tilgang til filmapper

Du kan organisere generell tilgang til hvilken som helst mappe på nettlagringen din (del den). For å gjøre dette, utfør følgende manipulasjoner:

  1. Høyreklikk på den og velg "Deling" -alternativet fra rullegardinmenyen.
  2. Angi e-postadressen til brukeren du vil dele tilgangen til mappen med (du kan spesifisere en hel liste over brukere samtidig).
  3. Velg tilgangsmetoden: skrivebeskyttet, lese-skrive eller full tilgang.

Etter dette vil den angitte brukeren motta en e-post med en lenke for å få tilgang til den delte mappen.

Hvordan lage en lenke til en fil i Mega nz-lagring

I tillegg til tilgang til mapper, kan du la alle brukere laste ned individuelle filer fra lagringen din.


For å gjøre dette, høyreklikk på en fil i skyen og velg alternativet "Hent lenke":

  1. Link uten dekrypteringsnøkkel
  2. Link med nøkkel

Også i dette vinduet kan du separat kopiere selve dekrypteringsnøkkelen. Hva er forskjellen mellom disse typene lenker? Og det er veldig viktig!

I det første tilfellet må brukeren, etter å ha fulgt lenken, skrive inn dekrypteringsnøkkelen du gir ham i et spesielt vindu for å laste ned filen. Og i det andre tilfellet følger brukeren en lenke med en sikkerhetsnøkkel som allerede er "hardwired" og kan umiddelbart laste ned filen.

For en oversikt over lagringsfunksjonaliteten og innstillingene som ikke er inkludert i anmeldelsen, se denne videoen:

Hvorfor kan Mega stole på personopplysninger?

  1. Utviklerne legger stor vekt på konfidensialiteten til lagrede data. Selve forkortelsen MEGA står for Mega Encrypted Global Access, dvs. Megakryptert global tilgang).
  2. Krypter filer direkte i nettleseren ved hjelp av AES-algoritmen.
  3. Tjenesten lagrer ikke brukerpassord for å få tilgang til skystasjonen.
  4. Alle filer i lagringen er kryptert og kan ikke vises uten en sikkerhetsnøkkel. Selv om angripere får tilgang til selskapets servere, vil de ikke kunne lese brukerdata.
  5. Selv for filer beregnet for offentlig nedlasting, kan tilgangsnøkler genereres separat.

Mega co nz datalagringstjeneste ble lansert i 2013. Den første dagen besøkte 1 million brukere siden, og i løpet av den første timen registrerte mer enn 100 000 brukere seg. Fra og med 2015 lagrer Mega informasjon på Internett for mer enn 15 millioner brukere.

Mega Cloud Service står for "MEGA Encrypted Global Access". Når data lastes inn i lagring, krypteres alle filer i nettleseren ved hjelp av AES-algoritmen og lagres på serveren i kryptert form. I tillegg lagrer ikke Mega passord eller . De tilhører kun brukeren og kan ikke gjenopprettes av selskapet. Hvis du har glemt passordet ditt, er den eneste måten å gjenopprette det på å ha en Mega nz hovednøkkel.

Datalagring Mega co nz - gir både gratis og betalt plass for lagring av filer på Internett. Gir deg muligheten til å lagre og få tilgang til filene dine hvor som helst i verden. Den har flere måter å laste opp filer til Mega.nz-lagring ved å bruke en nettleser eller spesielle klientapplikasjoner.

Det er enkelt å opprette en konto hos Mega. Du må oppgi en e-postadresse og passord for å komme i gang. Forskjellen mellom Mega.co lagring og lagring er at du da vil motta 50 GB ledig diskplass for å lagre filer på Internett, og du trenger ikke oppgi kredittkortinformasjon under registreringen.

Mega co-skyen er veldig enkel å navigere. Knapper for nedlasting av filer og mapper er plassert i den øverste menylinjen, og under er det nedlastede data. Til venstre er kontroll- og visningskolonnen i Mega-skytjenesten. Ved å klikke på menyknappen øverst til høyre kan du endre språk, installere tilleggsapplikasjoner på Google Chrome, Mozilla Firefox-nettlesere, synkronisere eventuelle mapper på en datamaskin som kjører Windows, Mac, Linux med mapper i Mega-skyen, synkronisere og last ned dataene dine fra skyen ved å installere Android iOS Blackberry Windows-mobilapplikasjonen på smarttelefonen eller nettbrettet.


Å lagre filer og dele dem i skytjenesten Mega.co.nz er veldig enkelt, lag en ny mappe, last opp bilder, videoer, dokumenter eller annen informasjon til den ved å klikke på "Last opp fil"-knappen i toppmenyen. Mega.nz-datalageret begrenser ikke størrelsen på den nedlastede filen, og nedlastingshastigheten med mindre du begrenser den i innstillingene.

Når du høyreklikker på en mappe i rullegardinmenyen, kan du åpne den, få en lenke for å laste ned filen fra en skytjeneste, kopiere, gi nytt navn, flytte, slette data fra disken.

Datalagring Mega.nz tilbyr tre betalte planer for lagring av filer på skyen:

PRO Ⅰ 500 GB € 9,99/måned ELLER € 99,99/år
PRO Ⅱ 2TB GB € 19,99/måned ELLER € 199,99/år
PROⅢ 4TB GB € 29,99/måned ELLER € 299,99/år
Når du kjøper en årlig PRO-plan, får du 2 måneder gratis.
Alle kan bruke MEGA-skyen gratis.

Registrer deg hos Mega.co.nz

Mega | skylagring Mega | Cloud Mega | Mega lagring

Etter lanseringen av den noe skandaløse MEGA-tjenesten begynte samtalene om sikkerheten å koke litt og stilnet. I dag lever tjenesten sitt eget liv, og ingen har engang brutt den. Av en eller annen grunn ble begrepet "User Controlled Encryption" (UCE, eller User Controlled Cryptography), som MEGA kan skryte, savnet fra alle samtalene. Det jeg mener med "savnet" er det faktum at vi ikke har dekket alle mulighetene som en kryptografimotor som kjører i JavaScript på klientsiden gir oss.

Selve MEGA-tjenesten betyr selvfølgelig ganske enkelt at krypteringsnøklene ikke er lagret på serveren, men alle deres kryptografi utføres i sammenheng med nettleseren. Etter lanseringen av tjenesten var det dessuten mye snakk om det faktum at den bruker svake kryptografiske algoritmer og at generelt er alt dårlig og vi alle vil dø, og filene våre vil bli lest av FSB. Dette ga meg ideen om å utvide konseptet "UCE" og virkelig ta kontroll over kryptografi, nemlig erstatte eller supplere noen av tjenestens sikkerhetsmekanismer.

I denne artikkelen skal jeg bryte ned noe av magien som skjer i to megabyte MEGA JavaScript-kode og vise hvordan du kan overstyre noen metoder for å slutte å bekymre deg og elske kryptografi. Som et resultat vil vi motta en skyfillagringstjeneste med tofaktorautentisering og maskinvarekryptering av kritisk informasjon.

MEGA, UCE og alt, alt, alt

Så la oss starte med å se på teknologiene som klientdelen av tjenesten er bygget på, hvordan nye brukere registreres, registrerte brukere autentiseres, passord endres og filer lastes opp/lastes ned.

JavaScript

Som du kanskje allerede vet, er hele klientsiden av tjenesten basert på JavaScript; hovedsidekoden inneholder SHA-256-sjekksummer for alle skript og sider som lastes inn av nettleseren. Selve nedlastingen skjer som følger: kontrollsummer sjekkes for alle filer, hvoretter de kombineres til en BLOB, som gis til nettleseren. Kildekoden til js-filene viser at de ble skrevet av forskjellige mennesker, og noen ganger er det morsomme perler, som konsekvensene av copy-paste, meningsløse forhold og rett og slett merkelige variabler.

I prosessen med å studere kildekoden til nettstedet la jeg også merke til at den oppdateres ganske aktivt, utviklerne retter opp mindre feil og optimaliserer den allerede skrevne koden, noe som er gode nyheter. Selve koden er skrevet veldig enkelt og uten unødvendig prototyping: nettstedet bruker tre hundre globale variabler og mer enn 8000 funksjoner. Det var veldig enkelt å forstå nettstedets arkitektur og endre koden.

Blant tredjeparts rammeverk bruker MEGA jQuery (du kan ikke leve uten det nå), Ext JS og SJCL. Sistnevnte implementerer en kryptografisk kjerne med AES-kryptering. SJCL gir også et interessant format for lagring av nøkler og andre byte-matriser: i stedet for bare å lagre byte i en vanlig matrise, blir de "komprimert" til et format kalt a32. Essensen er at innholdet i en hvilken som helst byte-matrise er pakket inn i 32-biters tall og skrevet inn i en matrise med kortere lengde. Det vil si at hver 4 byte i arrayet konverteres til en banal int. Nettstedets kode inneholder funksjoner som utfører alle slags transformasjoner på et improvisert sett (a32 array, string, base64 string).

Nøkkelinformasjon

Før du går videre til beskrivelsen av registrerings- og autentiseringsprosessene, er det verdt å vurdere informasjonen som er gjenstand for kryptering, nemlig:
  • Kontoens hovednøkkel, som opprettes tilfeldig på tidspunktet for brukerregistrering og har en lengde på 128 biter. Og i prinsippet er lengden på alle nøkler som brukes til symmetrisk kryptering 128 biter.
  • RSA privat nøkkel: Opprettet på registreringstidspunktet basert på musebevegelser og tastaturinndata. I denne artikkelen vil jeg ikke fokusere på asymmetrisk kryptografi, siden den brukes til å dele nedlastede filer, og min oppgave var å endre prosessen med autentisering og kryptering av brukerdata.
  • Individuelle filnøkler og selve filene, lastet opp til tjenesten. Nøklene genereres tilfeldig når en fil lastes, selve nøkkelen brukes til å kryptere fildataene, og en nøkkel opprettet basert på filens individuelle nøkkel og dens kontrollsum brukes til å kryptere attributtene.

Nærmere koden

Nå foreslår jeg å analysere registrerings- og autentiseringsprosessene, se hvordan hovednøkkelen er opprettet og hvordan den er kryptert.
Jeg prøvde å skildre disse prosessene på papir, og for å la deg forstå essensen av galskapen, tok jeg til og med dette bildet:

Ny brukerregistrering

Selve registreringsprosessen er ganske forvirrende; etter at brukeren har fylt ut spørreskjemaet, kalles en mektig haug med funksjoner, men vi er interessert i api_createuser-funksjonen:

// opprettelse av en ny bruker og hovednøkkelfunksjonen hans api_createuser(ctx, invitecode, invitename, uh) ( var i; var ssc = Array(4); // session self challenge, vil bli brukt til å verifisere passord var req, res; if (!ctx.passwordkey) ( ctx.passwordkey = Array(4); for (i = 4; i--;) ctx.passwordkey[i] = rand(0x100000000); ) if (!u_k) api_create_u_k(); // genererer en tilfeldig hovednøkkel u_k for (i = 4; i--;) ssc[i] = rand(0x100000000); // genererer en tilfeldig autentiseringssekvens hvis (d) console.log("api_createuser - masterkey: " + u_k + " passwordkey: " + ctx.passwordkey); // krypter hovednøkkelen på gjeldende passord og send den til serveren (felt k) // ts-feltet er sammenkoblingen av ssc med dens krypterte verdi req = ( a: "opp" , 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.cipher.aes(u_k) , ssc))) ); if (invitasjonskode) ( req.uh = uh; req.ic = invitecode; req.name = invitasjonsnavn; ) if (d) console.log("Lagre nøkkel: " + req.k); api_req(, ctx); )
I denne funksjonen er vi interessert i følgende ting:

  • u_k er selve hovednøkkelen, en global variabel. En matrise med 4 32-biters tall, som er opprettet av funksjonen api_create_uk
  • ssc er ganske enkelt en tilfeldig matrise som er kryptert med hovednøkkelen, sammenkoblet med dens offentlige verdi og sendt til serveren. Senere vil den bli brukt til å kontrollere riktigheten av hovednøkkelen under autentisering
  • sjcl - kryptografisk bibliotek som implementerer AES
  • rand() - lokal implementering av en pseudotilfeldig tallgenerator basert på RC4
  • encrypt_key() er hjørnesteinsfunksjonen i tjenestens symmetriske kryptografi. Godtar et sjcl-objekt initialisert med en nøkkel og en matrise som må krypteres. Funksjonskoden er gitt nedenfor og trenger forhåpentligvis ikke forklaring.
// krypter/dekrypter 4- eller 8-elements 32-bits heltallsmatrisefunksjon encrypt_key(cipher, a) ( if (a.length == 4) return cipher.encrypt(a); var x = ; for (var i = 0;i< a.length; i += 4) x = x.concat(cipher.encrypt(, a, a, a])); return x; }
Som et resultat, etter registrering sendes følgende til serveren:
  • Hovednøkkel kryptert med nøkkelen hentet fra kontopassordet
  • Streng som ssc||encrypt_AES-128(u_k, ssc)

Brukerinnlogging

Nå kan du enkelt gå videre til autentiseringsprosessen. Kort fortalt gjøres det slik:
  1. Bruker oppgir pålogging/passord
  2. Hvis det første stadiet av autentisering er bestått, mottas en kryptert hovednøkkel og en autentiseringssekvens (ssc) opprettet under registreringen fra serveren
  3. Hovednøkkelen dekrypteres ved hjelp av brukeroppgitt passord
  4. Autentiseringssekvensen dekrypteres på hovednøkkelen og sammenlignes med dens åpne verdi - og kontrollerer dermed riktigheten av hovednøkkelen og passordet.
Api_getsid2 tilbakeringingsfunksjonen er ansvarlig for alt det ovennevnte:

// dekrypter hovednøkkelen etter at brukeren logger på funksjonen api_getsid2(res, ctx) ( var t, k; var r = false; if (typeof res == "objekt") ( // initialiser sjcl-aes med gjeldende konto passord var aes = new sjcl.cipher.aes(ctx.passwordkey); // hvis vi mottok en hovednøkkel i serversvaret... if (typeof res.k == "string") ( k = base64_to_a32(res. k); if (k.length == 4) ( // ... så dekrypter den k = decrypt_key(aes, k); // og re-initialiser sjcl-aes ved å bruke hovednøkkelen aes = new sjcl.cipher. aes(k); // hvis vi mottok ssc fra registreringsprosessen if (typeof res.tsid == "streng") ( t = base64urldecode(res.tsid); // krypter den første halvdelen av strengen og sammenlign med verdi fra serveren // hvis de samsvarte - det betyr at alle pålogginger og passord er blitt enige og du kan slippe brukeren inn if (a32_to_str(encrypt_key(aes, str_to_a32(t.substr(0, 16)))) == t .substr(-16)) r = ; ) // Den private nøkkelen til RSA-paret er analysert nedenfor, vi er ikke interessert i dette ennå ellers if (typeof res.csid == "streng") ( var t = mpi2b( base64urldecode(res.csid)); var privk = a32_to_str(dekrypteringsnøkkel(aes, base64_to_a32(res.privk))); var rsa_privk = Array(4); // dekomponer privat nøkkel for (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)); if (type rsa_privk[i] == "nummer") pause; privk = privk.substr(l); ) // sjekk format if (i == 4 && privk.length< 16) { // TODO: check remaining padding for added early wrong password detection likelihood r = ; } } } } } ctx.result(ctx, r); }
Som en bonus til registrering/autentisering kan du ta en titt på prosessen for endring av passord.

// endre brukerpassordfunksjonen changepw(currentpw, newpw, ctx) ( var pw_aes = new sjcl.cipher.aes(prepare_key_pw(newpw)); api_req([( a: "up", currk: a32_to_base64(encrypt_key(new sjcl) . cipher.aes(prepare_key_pw(currentpw)), u_k)), k: a32_to_base64(encrypt_key(pw_aes, u_k)), uh: stringhash(u_attr["email"].toLowerCase(), pw_aes) )], ctx); )
Koden for denne funksjonen er selvforklarende: vi krypterer hovednøkkelen med to nøkler hentet fra det gamle og nye passordet, og sender deretter disse verdiene til serveren. Hvis gjeldende passord er riktig, erstattes det med et nytt. Her ønsket jeg å trekke mer oppmerksomhet til prepare_key_pw-funksjonen, som var implisitt tilstede i alle tidligere operasjoner. Dens oppgave er å konvertere strengpassordet til en a32-matrise, og deretter utføre nøkkelavledningsoperasjonen som følger:

// konverter brukerlevert passord array-funksjon prepare_key(a) ( var i, j, r; var aes = ; var pkey = ; for (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; }
Denne funksjonen har forårsaket mye kritikk fordi den er basert på en hjemmedyrket algoritme. Mens du skrev denne artikkelen, klarte skaperne av tjenesten å endre koden litt, men jeg la ikke merke til noen vesentlige endringer. Essensen er at det overførte passordet er kryptert 65536 ganger ved hjelp av en konstant nøkkel for å få en nøkkel som ikke kan skilles fra en tilfeldig. Hvorfor skaperne av tjenesten ikke brukte eksisterende algoritmer (for eksempel PBKDF2) er fortsatt et mysterium.

Opplasting og kryptering av filer

Kort fortalt kan hele denne prosessen representeres slik:

Jeg advarer deg, å dykke ned i dette bildet i lang tid er farlig for hjernen, så nedenfor vil jeg fortelle deg hvordan det hele skjer.

Som jeg allerede sa, når du laster, lager hver fil sin egen tilfeldige array-nøkkel med 6 32-bits tall. De fire første elementene i denne matrisen brukes til å kryptere innholdet i filen, og de to siste brukes som startverdiene til telleren som brukes til å beregne kontrollsummen til filen. Denne matrisen er lagret i den globale variabelen ul_key. Innholdet legges inn i den JSON-serialiserte strengen ul_KeyNonce .

Selve dekrypteringen skjer ved hjelp av en Web Worker (hvis nettleseren støtter denne teknologien) eller ganske enkelt inne i hovedsidekoden. Når en fil er klar til å sendes, opprettes en ny nøkkel, filekey , for å kryptere dens attributter (for øyeblikket bare filnavnet) basert på ul_key og filens kontrollsum. Denne nøkkelen blir deretter kryptert med hovednøkkelen og sendt til serveren sammen med filattributtene. Funksjonene initupload3 og api_completeupload2 er ansvarlige for alle disse handlingene. Filnøkkelen er opprettet i funksjonen ul_chunkcomplete, nedenfor vil jeg gi en del av den.

// begynn å laste filen: opprette dens individuelle nøkkel og initialisere krypteringsmekanismen funksjonen initupload3() ( // ... cut =) // lage en tilfeldig individuell nøkkel for filen // ul_key brukes i sidekoden, / / ul_keyNonce sendes til Web Worker og brukes der // for å kryptere en fil og beregne kontrollsummen ul_key = Array(6); for (i = 6; i--;) ul_key[i] = rand(0x100000000); ul_keyNonce = JSON.stringify(ul_key); ul_macs = ; // ... neste er å behandle nedlastingskøen, det er ikke av interesse... // initialiserer sjcl-aes for en fil basert på ul_key ul_aes = new sjcl.cipher.aes(); // ... // starter filopplastingsprosessen: // leser den fra disk, krypterer og sender onUploadStart(ul_queue_num); ul_dispatch_chain(); ) // opprette en nøkkel for å kryptere filattributter funksjon ul_chunkcomplete(slot,pos,respons) ( // ... var t = ; // ul_macs - en matrise med filsjekksummen innhentet inne i arbeideren for (p i ul_macs) t .push(p); // fylle og sortere en midlertidig array, hvis noen vet hvorfor dette er - vennligst forklar t.sort(function(a,b) ( return parseInt(a)-parseInt(b) )); for ( 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); ) else ( // krypter filnavnet til nøkkel avledet fra ul_key og checksum // ctx.k == filnøkkel a = ( n: ctx.n ); if (d) console.log(ctx.k); var ea = enc_attr(a, ctx.k); if (d) console.log(ea); // overføring av attributter og filnøkkel kryptert på hovednøkkelen var req = ( a: "p", t: ut, n: [( h: ctx.t, t: 0, a: ab_to_base64(ea), // attributter k: a32_to_base64(encrypt_key(u_k_aes, ctx.k)), // == AES_encrypt(u_k, filekey) fa: ctx.fa )] ); if (ut) ( // et mål har blitt levert: krypter til alle relevante delinger var sn = fm_getsharenodes(ut); if (sn.length) ( req.cr = crypto_makecr(, sn, false); req.cr = ctx.t; ) ) api_req(, ctx.ctx); ) )

Laste ned og dekryptere filer

Åpenbart bør disse prosessene ganske enkelt være det motsatte av å kryptere filen. Det eneste som kan være av interesse er å hente verdien til ul_key-nøkkelen fra den krypterte filnøkkelverdien som kom fra serveren.

På det tidspunktet filen lastes ned, inneholder nettleserkonteksten allerede et objekt som lagrer de dekrypterte filnøklene. Derfor er det først fornuftig å vurdere prosessen som skjer umiddelbart etter brukerautentisering, nemlig nedlasting av filbehandleren. Etter at brukeren har fått tilgang til tjenesten, ønsker han naturligvis å få tilgang til filene sine (forutsatt at han allerede hadde dem der). For å gjøre dette må vi først dekryptere filnøklene, og deretter deres attributter. Denne saken håndteres av en annen pakke med funksjoner, hvorav vi er interessert i loadfm_callback og process_f_f .

Kort fortalt kan prosessen med å skaffe filattributter beskrives med følgende algoritme:

  1. Vent til filbehandleren laster inn (loadfm_callback), hvor du kan få JSON med en beskrivelse av alle nedlastede filer
  2. Lag en array farray for å sette en array med informasjon om filer
  3. Kjør (rekursivt) funksjonen process_f_f for hver fil
  4. For hver fil som har en nøkkel, dekrypter den nøkkelen og attributtene (crypto_processkey-funksjonen) og lagre dem tilbake i en matrise med filinformasjon
  5. Deretter lagrer du de dekrypterte verdiene til FileStore-variabelen (slutt på rekursjon i process_f_f)
Nedenfor vil jeg gi kodeutdrag som illustrerer denne algoritmen

// tilbakeringing for å laste filbehandlingsfunksjonen loadfm_callback(json, res) ( // ... // behandler JSON med informasjon om filer json = json; if (d) console.log(json); if (d) console. log (json); if (json.u) process_u(json.u, false); if (json.ok) process_ok(json.ok); if (json.s) ( for (i in json.s) ( if ( u_sharekeys.h]) ( sharingData.push(( id: json.s[i].h + "_" + json.s[i].u, bruker-id: json.s[i].u, mappe-id: json . s[i].h, rettigheter: json.s[i].r, dato: json.s[i].ts )); sharednodes.h] = sant; ) ) ) // ... så ikke noe spesielt . .. // legge inn informasjon om filer i en annen global array farray = new Object; farray.f = json.f; // starter behandlingen, tilbakeringingen ble erklært ovenfor // i denne funksjonen og endrer ganske enkelt layouten process_f (fi, falsk , tilbakeringing); fi++; ) // rekursiv funksjon der filnøkler og attributter er dekryptert // kalt opp fra prosess_f-funksjonen prosess_f_f(fid) ( // sluttbetingelse for rekursjon - vi har behandlet alle filene i farray-matrisen hvis (!farray.f.i ]) ( if (farray.ap) FileStore.suspendEvents(); // skrive data til FileStore FileStore.loadData(farray.mdata, true); if (farray.ap) FileStore.resumeEvents(); if (d) console.log("call reqmissingkeys:"); crypto_reqmissingkeys(); if (farray.callback) farray.callback.fn(farray.callback); returner falsk; ) var f = farray.f.i]; f.attrs = f.a; if (f.sk) u_sharekeys = krypto_prosess_sharekey(f.h, f.sk); // hvis filen samsvarer med typen og har en nøkkel, så behandle den hvis ((f.t !== 2) && (f.t !== 3) && (f.t !== 4) && (f.k)) ( crypto_processkey(u_handle) , u_k_aes , f); // beskrivelse av denne funksjonen nedenfor u_nodekeys = f.key; if ((typeof f.name !== "undefined") && (f.p == InboxID)) InboxCount++; ) else ( if (f.a) ( if ( !missingkeys) ( missingkeys = true; newmissingkeys = true; ) ) f.k = ""; f.name = ""; ) if (f.t == 2) RootID = f.h; annet hvis (f.t == 3) InnboksID = f.h; annet hvis (f.t == 4) TrashbinID = f.h; annet hvis ((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++; } // иначе - запускаем обработку следующего файла else process_f_f(fid); } // обработка ключа файла и его атрибутов function crypto_processkey(me, master_aes, file) { var id, key, k, n; if (!file.k) { if (!keycache) return; file.k = keycache; } id = me; // do I own the file? (user key is guaranteed to be first in .k) // ключ записан в виде ":/" var p = file.k.indexOf(id + ":"); // sjekk først om filen er delt hvis (p) ( // jeg ikke - har jeg en passende delenøkkel? for (id i u_sharekeys) ) ( p = file.k.indexOf(id + ":"); hvis (p >= 0 && (!p || file.k.charAt(p - 1) == "/")) bryter; p = -1; ) ) // og så kan vi gå videre til dekryptering hvis (p >= 0) ( slette keycache; // skråstrek - tilsynelatende et tegn på aksjer var pp = file.k.indexOf("/", p) ; hvis (s< 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 key for node " + file.h); return; } } else { if (d) console.log("Received RSA key, but have no public key published: " + file.h); return; } } // декодируем атрибуты файла var ab = base64_to_ab(file.a); // и расшифровываем их с помощью только что полученного ключа var o = dec_attr(ab, k); if (typeof o == "object") { if (typeof o.n == "string") { if (file.h) { u_nodekeys = k; if (key.length >= 46) rsa2aes = a32_to_str(krypteringsnøkkel(u_k_aes, k)); ) // hvis vi har dekryptert nøkkelen og attributtene riktig, lagrer vi dem i en fil objekt file.key = k; fil.navn = o.n; ) ) ) else ( if (d) console.log("Mottok ingen passende nøkkel: " + file.h); if (!missingkeys) ( new missingkeys = true; missingkeys = true; ) keycache = file.k; ) )
Etter dette kan vi få verdien av den opprinnelige nøkkelen ul_key fra nettleserkonteksten slik: dl_keyNonce = JSON.stringify();
Denne konverteringen skjer i startnedlastingsfunksjonen. Hvis vi tar i betraktning at verdien dl_key == filekey fra ul_chunkcomplete-funksjonen og utfører enkle modulo-addisjonsoperasjoner, vil vi legge merke til at dl_keyNonce-variabelen vil lagre ul_key-verdien som genereres når filen lastes. En illustrasjon av dette kan sees i nedre venstre hjørne av tavlen på bildet i begynnelsen av avsnittet om opplasting av filer.

"Overbelastning" av kryptografiske operasjoner

Til tross for at prinsippene beskrevet ovenfor for å beskytte filer og nøkler er veldig sikre, kan det hende at noen ikke liker det faktum at vi fortsatt er avhengige av implementeringen av algoritmene som tjenesten gir. I dette tilfellet kan vi utvikle vår egen nettleserutvidelse, som vil overstyre noen av tjenestens funksjoner, og implementere ytterligere kryptering i dem. Jeg bestemte meg nemlig for å implementere beskyttelsen av nøkkelinformasjon (hovednøkkel og filnøkler) ved å bruke maskinvarekryptering på en ikke-flyttbar nøkkel i henhold til GOST 28147-89-algoritmen. En bonus til dette vil også være inkludering av tofaktorautentisering på tjenesten.
Så la oss vurdere denne brukssaken:
  • Brukeren registrerer seg på tjenesten
  • Deretter installerer den utvidelsen
  • Med dens hjelp utføres maskinvarekryptering av hovednøkkelen ved hjelp av en nøkkel som ikke kan trekkes ut fra tokenet.
  • Hovednøkkelen som er kryptert på denne måten, lastes opp til serveren
Etter dette vil det være umulig å få hovednøkkelverdien uten å ha tokenet og PIN-koden. Dette vil gi:
  1. Tofaktorautentisering på tjenesten (uten en korrekt dekryptert hovednøkkel vil api_getsid2-funksjonen mislykkes)
  2. Uten et token vil du heller ikke kunne endre ditt nåværende kontopassord.
Det neste trinnet er å kryptere ved å bruke filkrypteringsnøkkelen (også kjent som ul_key) og filattributtnøkkelen (filnøkkel), som er lagret på serveren. Dermed vil vi få at hver fil blir kryptert med en nøkkel som aldri kommer til serveren, hvor filnøkkelen vi krypterte fra api_completeupload2-funksjonen vil gå. Filattributter vil bli kryptert på den offentlige verdien til filnøkkelen. For større klarhet skisserte jeg følgende diagram som illustrerer prosessen med å laste ned en fil:

Jeg vil merke meg at her brukte jeg en veldig utspekulert metode. I dette tilfellet er det viktig for oss at en angriper ikke kan dekryptere filen, selv om han fanger opp filnøkkelen mottatt fra serveren og kjenner brukerens hovednøkkel. Derfor kan du her spille på særegenhetene til tjenestens arkitektur og bruke nøkkelverdien ul_keyNonce (aka dl_keyNonce) oppnådd ved å kryptere verdien av ul_key (eller dl_key) nøkkelen for å kryptere filer.

Siden disse artiklene ble skrevet, har produktet vårt lagt til muligheten til å bruke maskinvarekryptering ved å bruke GOST 28147-89-algoritmen. Betaversjonen av plugin-en med masi henhold til GOST 28147-89-algoritmen kan lastes ned. Denne versjonen av plugin er ennå ikke ferdig testet, så jeg advarer deg om at den kan inneholde feil, vennligst rapporter dem i en personlig melding.
I plugin-grensesnittet implementeres symmetrisk kryptering av krypteringsfunksjonen, som har følgende syntaks:
krypter (enhets-ID, nøkkeletikett, data, resultatCallback, errorCallback) → (streng)
Funksjonen tar som input:

  • Enhets-ID, nummer
  • Etikett på krypteringsnøkkelen, nummer (hvis det ikke finnes en slik nøkkel, vil den bli generert)
  • Krypterte data, streng (streng som inneholder en byte-array av formen "aa:bb:cc:dd")
  • Tilbakeringingsfunksjoner for vellykket og mislykket gjennomføring av en krypteringsoperasjon
Dekryptering gjøres på samme måte ved å bruke dekrypteringsfunksjonen
Spesiell oppmerksomhet bør rettes mot nøkkeletiketten, siden den bestemmer hvilken nøkkel dataene skal dekrypteres på. Etiketten er en vilkårlig streng og tjener hovedsakelig til å enkelt identifisere nøkkelen. I dette tilfellet bruker jeg to nøkkelpar: ett for å kryptere hovednøkkelen, det andre for å kryptere individuelle filnøkler. Nøkkelen som hovednøkkelen er kryptert på har en etikett som tilsvarer brukerens passord (nå kom jeg på ideen om å bruke en hash fra e-post||passordstrengen, jeg vil fikse dette i nærmeste fremtid framtid). For å kryptere nøklene til nedlastede filer, brukes en nøkkel med en etikett lik strengrepresentasjonen til hovednøkkelen (her er det også verdt å bruke hashen til hovednøkkelen).

Direkte utvikling

Jeg vil umiddelbart gjøre et notat om kildekoden min: den er faktisk i en alfaversjon, selv om den implementerer funksjonaliteten beskrevet ovenfor. Jeg sjekket ikke hvor kompatibel endringen min viste seg å være med de andre funksjonene til tjenesten, så jeg la ut alle kildene på github og vil være glad for all hjelp med å fullføre dette systemet. Derfor vil jeg ikke rote opp artikkelen ytterligere med enorme oppføringer, men vil bare beskrive det generelle opplegget for hvordan utvidelsen fungerer.

Den ferdige utvidelsen kan lastes ned. Den ble utviklet ved hjelp av Crossrider-tjenesten, som gir utvidelser for tre nettlesere (Chrome, Firefox og IE), men det er bedre å sjekke driften i Chrome eller Firefox, og i den første fungerer den mye mer stabilt.

Utvidelseskoden er ganske enkel: den sjekker om vi er på tjenestesiden, og i så fall laster den ganske enkelt inn flere skript. Disse skriptene endrer sidekoden, legger til et par dialogbokser og overstyrer følgende tjenestefunksjoner:

  • changepw: ansvarlig for å endre passordet
  • api_getsid2: en av tilbakeringingene for pålogging
  • api_completeupload2: tilbakeringing for å fullføre filopplasting
  • loadfm_callback: filbehandler laster tilbakeringing
  • prosesspakke: en annen tilbakeringing, der attributtene til den nettopp nedlastede filen dekrypteres
  • parsepage: ansvarlig for å tegne flere dialoger
  • dologin: utvider autentiseringsmuligheter
  • initupload3: ansvarlig for å lage filkrypteringsnøkkelen
  • startnedlasting: omvendt parse filnøkkelen og initialiser nedlastingen
Nok en gang vil jeg advare deg om at du ikke bør dra utvidelsen til jobbkontoen din (hvis noen her bruker denne tjenesten i det hele tatt), men det er bedre å lage en test. For å bruke utvidelsen etter at du har installert den, trenger du:
  1. For å komme i gang er det en god idé å skaffe seg Rutoken EDS (eller Rutoken Web) og installere en nettleserplugin
  2. Installer utvidelse
  3. Logg på tjenesten med utvidelsen deaktivert
  4. Aktiver utvidelse i nettleseren
  5. Gå til kontosiden
  6. Klikk på "Bind token"-knappen
  7. Skriv inn gjeldende passord og utfør denne operasjonen
I stedet for utvidelsen kan du bruke følgende bokmerke (testet i Chrome, Safari, Firefox): javascript:(function())(if(document.getElementById("cryptorutokenjs"))(alert("Pluginen er allerede installert" );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(style))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")))();

Demonstrasjon av arbeid

Først, la oss koble skapelsen vår til nettstedet. For dette:

Deretter kan du logge ut av tjenesten og prøve å logge på igjen med tofaktorautentisering:

Autentisering skjer i henhold til følgende skjema:

  1. Kontrollerer påloggingspassord-paret på serveren
  2. Hvis pålogging og passord er riktig, kommer en kryptert hovednøkkel fra serveren
  3. Programtillegget ber om en PIN-kode for tokenet
  4. Hvis PIN-koden er angitt riktig, dekrypteres hovednøkkelen på nøkkelen fra token

I stedet for en konklusjon

Her har jeg lyst til å skrive "fortsetter...", siden jeg ikke dekket detaljene rundt å lage utvidelsen og det interessante med å bolte asynkrone krypteringsfunksjoner inn i en tjeneste som i de fleste tilfeller bruker synkrone anrop. Avslutningsvis av denne artikkelen vil jeg igjen vende meg til ideen om å implementere kryptografi på klientsiden.
Tilnærmingen til å implementere ytterligere kryptografiske funksjoner på klientsiden kan brukes på enhver webtjeneste som ikke bryr seg om hva som er lagret på serveren: enten det er fillagring, e-post eller en enkel chat. For eksempel kan du implementere sikker e-post basert på hvilken som helst posttjeneste ved å bruke meldingskryptering i CMS-format og nøkkelutvekslingsmekanismer ved å bruke VKO GOST R 34.10-2001-algoritmen.
Takk for oppmerksomheten, jeg ser frem til dine spørsmål og kommentarer.javascript Legg til tagger

Husker du gangene da 40 GB lagringsplass på datamaskinen virket som en uoverkommelig luksus? Nå går tellingen opp i hundrevis av gigabyte, og ofte i terabyte, og vi er så vant til dette at vi tar opp plass på PC-disker vilkårlig – med alt.

I mellomtiden har sparing og komfort ennå ikke blitt kansellert, og eksistensen, velstanden og de lyse utsiktene til skylagring beviser deres verdi. I løpet av de siste årene har tjenestene til slike Internett-tjenester utviklet seg i gigantiske fremskritt, og flere skydatalagringer kan nevnes som et eksempel:

1. Yandex.Disk - tilbyr nybegynnere 5 GB ledig plass for lagring av filer i forskjellige formater og utvidelser, pluss diverse bonuser. For eksempel, hvis du har brukt Yandex mail i 5 år, vil du få ytterligere 2 GB diskplass.
2. Google Disk – gratis 15 GB plass.
3. Microsoft SkyDrive - 7 GB gratis i stedet for 25 GB tidligere tilbudt.
4. – 2 GB pluss utvidelse av diskplass for å tiltrekke henvisninger.
5. Apple iCloud – 5 gratis gigabyte plass.
6. – her kan du ikke låne mer enn 40 MB for hver lapp gratis, og bruke trafikkvolumet til å skrive/redigere notater opptil 60 MB per måned.
7. Amazon Google Drive - 5 GB.
8. Skytjenesteboks - 5 GB.
9. SugarSync-tjeneste - 5 GB.
10. Skylagring Mega.co.nz – 50 GB ledig diskplass.

Skylagring Mega.co.nz

Alle de ovennevnte tjenestene kan fungere ikke bare på stasjonære PC-er, men også på alle mobile applikasjoner, noe som utvilsomt utvider omfanget av applikasjonen deres og øker deres popularitet. Men lederen i de gratis gigabytene som tilbys er fortsatt Mega.co.nz - 50 GB er ingen spøk, du må fortsatt klare å fylle den med noe, så jeg foreslår at vi snakker mer detaljert om denne skytjenesten - Mega.co. nz. Forresten, jeg bruker denne tjenesten aktivt, siden den er stabil, anonym, og skaperne er kjente mennesker.

Lederen for selskapet som tilbyr tjenestene til dette lageret er Kim Dotcom, grunnlegger av Megaupload-tjenesten, som stengte for to år siden på oppdrag fra Justisdepartementet og FBI of America. Kanskje du husker den historien. Egentlig var den gamle veksleren deres ganske praktisk. Men nå har Kims nye kreasjon blitt enda kulere. La oss snakke om det mer detaljert.

Nå gir Mega-tjenesten ikke bare den vanlige lagringen av data i skyen ved hjelp av en PC, men, som utviklerne tidligere lovet, har de allerede inkludert muligheten til å jobbe fra mobile enheter - iPhone, iPad, enheter på , Win 8, montering filsystemet for Windows osv. Det vil si at det vil være mulig å sende filer direkte til skyen. For eksempel vil bildene dine fra smarttelefonen bli lagret i gadgeten, men samtidig vil de bli overført til Mega.сo.nz, slik at muligheten for uventet tap eller skade på filer vil bli fullstendig eliminert. Alle dataene dine er kryptert under overføring, og ingen bortsett fra deg kan pakke dem ut for lesing.

Fordeler og forskjeller med Mega

1. Hovedfunksjonen og forskjellen mellom Mega.co.nz skytjeneste og lignende ressurser er den første ledige mengden diskplass som tilbys – 50 GB. På Mega.co.nz kan du laste opp filer i alle størrelser, med hvilken som helst utvidelse, i alle formater - det er ingen begrensninger i denne forbindelse.

2. Forkortelsen MEGA er navnet på "MEGA Encrypted Global Access".

3. Hovedfunksjonene til Mega er de samme som andre ressurser - nedlasting, lagring av filer på en tredjeparts stasjon, og muligheten til å dele filer med venner og kolleger ved å overføre lenker eller kryptert tilgang. Filer i nettleseren er kryptert med AES-algoritmen, som betyr at du er beskyttet mot uautorisert tilgang. Filoverføringslenker er også kryptert, og selv tjenesteansatte har ikke tilgang til dataene dine. Det er i hvert fall det de påstår.

4. Tjenesten for utveksling og lagring av Mega-filer er flerspråklig, så du vil ikke ha språkvansker når du jobber med den – bare velg ønsket språk i kontrollpanelet.

Men for å begynne å bruke skylagring, må du gå gjennom en enkel registreringsprosedyre.

Registrere deg og komme i gang med Mega.co.nz

Som du kan se fra registreringslenken, skjer innlogging på nettstedet https://mega.co.nz/ via en sikker tilkobling. Neste på hovedsiden må du velge russisk språk for praktisk arbeid - menyen er plassert øverst til høyre. Nå kan du registrere deg:

Når du registrerer deg trenger du en ekte e-postadresse, resten av dataene kan enkelt tas fra hodet ditt. Etter at vi har fylt ut alle feltene og klikket på "Opprett konto", vil vi motta et brev til vår e-post med en lenke som bekrefter registreringen vår:

Klikk på denne lenken i brevet og bekreft kontoen din på tjenestesiden - for dette er det et skjema i øvre høyre hjørne, det vil si bare skriv inn e-postadressen og passordet. Dette gjøres én gang – da vil tjenesten bruke våre nettleserinformasjonskapsler. Når vi bekrefter registreringen, vil vi bli bedt om å lage vår egen individuelle nøkkel, som vil bestemme vår autentisering. Å lage en nøkkel er av en leken karakter, og jeg ble til og med revet med og savnet øyeblikket da nøkkelen allerede var laget.

Spillet ser ut som å slå ut klosser med en ball, som utgjør MEGA-inskripsjonen. Når du når 100 % på skalaen øverst på skjermen, opprettes en nøkkel:

Og etter å ha klikket på "Fullfør"-knappen, gå til siden din i skytjenesten Mega.co.nz:

Slik bruker du Mega.co.nz-tjenesten

Det er en veldig liten forskjell på å bruke tjenesten når du jobber med Google Chrome, som jeg vil diskutere nedenfor. I mellomtiden, la oss snakke om generelle kontroll- og brukspunkter. På høyre side av siden ser du en kontrollkolonne og en visning av lagringsstrukturen. Øverst er det en meny for nedlasting, visning og administrasjon av filer. Det vil si at i rullegardinmenyen for allerede nedlastede filer vil du se muligheten for å få en lenke til filen, muligheten til å kopiere den, redigere den osv.

Brukere av Mozilla Firefox-nettleseren kan installere et tillegg i nettleseren MEGA utvidelse. Utviklerne av dette tillegget lover at etter å ha installert det, vil du merke en betydelig forbedring i filnedlastingshastigheten. Dette resultatet sikres ved batch-opplasting av et ubegrenset antall filer uten å begrense størrelsen. Hver lenke i Mega.co.nz-tjenesten fanges opp av MEGA-utvidelsesapplikasjonen din og forblir lokal (JavaScript-skript lastes ikke ned fra servere). Tjenesten gir pålitelige automatiske oppdateringer takket være en kryptografisk signatur med en kryptert nøkkel.

Uten å installere dette tillegget, for å jobbe mer effektivt med Mega-tjenesten, foreslår utviklere å bruke Google Chrome-nettleseren. Siden jeg har brukt flere nettlesere hele livet på datamaskinen, installerte jeg den anbefalte utvidelsen i Firefox, men for å være ærlig la jeg ikke merke til noen forskjell i driften av skytjenesten. Applikasjonen kan installeres både fra "Add-ons" i nettleseren og fra MEGA-tjenesten ("Meny" - "Applications" - "Firefox Application")

Det er bedre å bruke Google Chrome-nettleseren hvis du skal laste opp hele mapper med filer til skyen - Mozilla har ikke dette alternativet, men Chrome kan laste opp både filer og mapper:

Slik ser lagringskontrollpanelet ut i Google Chrome-nettleseren, men i Mozilla Firefox er det rett og slett ingen "Last opp mappe"-knapp - det er bare en "Last opp fil"-knapp. Ved å bruke "Last opp fil"-knappen kan du laste opp en fil til skyen fra din personlige datamaskin. Etter at du har klikket på "Last opp mappe"-knappen i Google Chrome, åpnes et Utforsker-vindu, i det velger du en mappe du vil laste opp til fillagringen, og det er det - nedlastingen har begynt.

La oss nå snakke om hvordan du kan omgå dette problemet i Firefox. La oss si at du vil laste ned hele mappen - ikke installer en ny nettleser for dette! Da trenger du bare å lage en mappe med samme navn i Mega («Ny mappe»-elementet i menyen), og laste opp alle filene til den (trykk Ctrl + A for å velge alle samtidig) som er plassert i samme mappe på datamaskinen.

Vi fortsetter å gjøre oss kjent med tjenesten. I «Min konto»-elementet vil du ikke bare se at du bruker en gratis konto, men du vil også se hvor mye skyplass du bruker, og du kan også endre profilinnstillingene dine eller konfigurere dataoverføring:

I innstillingene ("Meny" - "Min konto") kan du gjøre mye. Endre for eksempel antall parallellkoblinger for nedlasting av filer, samt antall parallellkoblinger ved nedlasting av filer. Du kan også sette en grense på nedlastingshastigheten.

Hvis du klikker på menyknappen "Meny" - "Min konto", kan du lære mer om reglene for bruk av Mega.co.nz skytjeneste. Jeg vil ikke fortelle deg mye om Pro-kontoen, siden jeg ikke har brukt den ennå - de gratis 50 GB er nok. Men etter at du har klikket på "Oppgrader status"-knappen i gratiskontoen din, kan du velge hvilken som helst betalt pakke fra tilbudene for å kunne lagre mer av dataene dine i skyen - fra 500 GB til 96 TB. Personlig kan jeg ikke forestille meg et slikt volum - 96 terabyte - men likevel, hvis du tenker deg nøye om, kan du finne en bruk. For eksempel for sikkerhetskopiering av nettsidedatabaser osv.

La oss fortsette å jobbe med filer - du kan ganske enkelt opprette en ny mappe for å laste opp noen tematiske filer til den. For å gjøre dette, klikk på "Ny mappe"-knappen og gi nytt navn til mappen etter behov. I denne nye mappen kan du også opprette andre undermapper som du kan laste opp filer til. Hvis du høyreklikker på en mappe (fil), kan du se de tilsvarende kommandoene for handlingene dine med mappen (filen) i hurtigmenyen som dukker opp. Som du kan se, er det mange muligheter, inkludert muligheten til å motta en lenke for å overføre til andre brukere. Linken vil være kryptert.

Hvis du ikke har begrenset filnedlastingshastigheten i skyinnstillingene dine, vil datanedlastingshastigheten være ubegrenset og vil kun avhenge av hastigheten på PC-ens Internett-tilkobling. Da jobber du med mapper/filer på akkurat samme måte som på en vanlig datamaskin – du kan redigere dem, hente linker til dem, flytte dem, tillate delt tilgang til dem, kopiere dem osv. Prosessen med å laste opp og laste ned filer vises til høyre nederst på siden på tjenesten - klikk på ikonet

Hvordan dele mapper

Du kan angi offentlige tilgangsrettigheter til mappene du vil lagre i Mega co nz-skylagringen. For å gjøre dette, høyreklikk ganske enkelt på mappen, og klikk på "Deling" i hurtigmenyen som dukker opp. Deretter vil du se "Deling"-vinduet, der du må spesifisere e-postadressen til brukeren du vil gi delingsrettigheter til. For denne brukeren kan du konfigurere rettigheter - for eksempel sette rettighetene til "Read Only", "Les og skriv", "Full kontroll". Etter dette kan delingsrettigheter tillate brukere med tillatelsene du angir å redigere filer, eller bare se dem, eller bare laste dem ned. Det kan være et hvilket som helst antall slike brukere.

Etter at vi har angitt e-postadressen for å gi offentlig tilgang, vil et brev bli sendt til hans e-post med en lenke som er nødvendig for å gå til tjenesten og få tilgang til den angitte mappen. Delte mapper har et litt annerledes utseende enn andre skylagringsmapper og ser slik ut:

Hvordan få en lenke til Mega.co.nz

Mega.co.nz-tjenesten lar deg gi andre brukere lenker for å laste ned filer som du er vert for på Mega-skytjenesten. For å få en slik lenke, må du høyreklikke på filen og i kontekstmenyen som vises, klikk på menyelementet "Hent lenke". I et nytt vindu som åpnes vil du se din (krypterte eller ukrypterte) lenke for å laste ned filen. Generelt utstedes alle lenker for å laste ned filer i skytjenesten Mega.co.nz i to typer, og lenketypen vil avhenge av graden av konfidensialitet til sikkerhetsnøklene.

Hvis selve lenken er dannet i ukryptert form, overføres filen fortsatt kryptert, og bare hvis brukeren følger denne lenken, dekrypteres filen og blir tilgjengelig for nedlasting. Det vil si at inntil noen laster ned denne filen, vil den bli lagret i kryptert form. Hvis selve lenken er kryptert, vil kun brukeren som har mottatt lenken til filen sammen med en spesiell sikkerhetskode (nøkkel) kunne laste ned filen fra denne lenken. Uten denne sikkerhetskoden vil ikke mottakeren kunne laste ned filen fra lenken.

På bildet nedenfor kan du se at hvis alternativet "Med filnøkkel" er aktivert, er den krypterte koden innebygd i selve lenken, og den er tilgjengelig for nedlasting for alle brukere. Og omvendt - hvis du ikke merker av i denne boksen, vil målbrukeren bare kunne laste ned filen hvis han skriver inn nøkkelen du oppga separat.

Brukeren som lenken til filen var ment til, kan også lagre den i skyen sin på Mega.co.nz. For å gjøre dette, etter å ha mottatt lenken, må du klikke på "Importer" -knappen. Med dette alternativet vil lenken ikke lastes ned til datamaskinen din, men vil ganske enkelt bli flyttet fra en konto til en annen. Det er klart at for å utføre en slik operasjon er det nødvendig at mottakeren også har sin egen diskplass i Mega.co.nz-skyen, akkurat som for eksempel i . Du kan se alle disse mulighetene i figuren nedenfor:

Hvordan laste ned en lenke med en individuell nøkkel (andre alternativ)? Under på bildet ser du løsningen hans. Ved en separat overført nøkkel vil mottakeren kunne laste ned filen dersom han mottar fra deg både en lenke og en nøkkel for å laste ned filen fra skylageret. Du vil motta selve nøkkelen ved å kopiere den når du overfører filen (på bildet over er det "Kopier nøkler"). Du sender alle disse dataene (både den delte lenken og lenken med en egen nøkkel) til brukeren via vanlig e-post.

Etter å ha klikket på "Dekrypter"-koblingen, må brukeren i et nytt vindu skrive inn sikkerhetsnøkkelen mottatt fra deg for å laste ned filen, eller for å lagre den i sin egen skylagring. Etter at nøkkelen er angitt, må brukeren klikke på "Last ned"-knappen og merke av i boksen "Jeg godtar MEGAs vilkår for bruk", eller ganske enkelt importere filen til deres sky.

Etter at filen er fullstendig lastet ned, åpnes vinduet "Nedlasting fullført", og i det vil brukeren bli bedt om å lagre filen manuelt på et hvilket som helst passende sted på datamaskinen for å fullføre nedlastingen.

Og til slutt, alle filer du vil plassere på Mega.co.nz skylagringstjeneste vil være kryptert - jeg har allerede snakket om dette ovenfor. På den ene siden er dette flott, men på den andre siden vil du ikke kunne se innholdet deres visuelt, spille av eller lytte til lyd- og videofiler mens de er i skyen. Det vil si at for å bruke disse filene må du flytte dem til datamaskinen eller mobilenheten. For å slette alle nedlastede filer fullstendig, må du flytte dem til papirkurven og deretter tømme den også.

Et program for å utveksle data med en skybeholder. Tjenesten tilbyr 50 GB lagringsplass gratis og håndhever en informasjonspolicy med null tilgang.

Hva du trenger å vite om Mega Cloud Drive

Dette er en sikker skylagring, som skiller seg gunstig fra de fleste lignende tjenester ved å bruke den såkalte "Zero Access Policy". I henhold til dette prinsippet overføres alle data mellom klientenheten og datamaskinen via en sikker protokoll. For å få tilgang til objekter i skyen, må du ha en brukerkryptografisk nøkkel. Uten den vil verken tjenesteutviklere eller etterretningsbyråer kunne åpne filen - dette er utelukket av logikken til lagringen.

Et annet pluss med Mega er en ganske stor mengde plass tildelt gratis - 50 Gigabyte. Du kan øke diskplassen din med opptil 4 terabyte for 29,99 euro per måned; det er også mer lojale "mellomliggende" tariffer.

Andre funksjoner inkluderer integrert chat, adressebok, automatisk synkronisering av objekter, komprimering av filer til et arkiv før nedlasting, integrasjon i Explorer og muligheten til å bruke en proxy-server. Det mest interessante alternativet er å generere lenker, og det er derfor Mega ofte fungerer som en filvertstjeneste med funksjonen å lage "direkte" URL-er for nedlasting av filer.

Kort og tydelig:

  • virtuell disk for lagring av informasjon;
  • bruk av Zero-knowledge-algoritmen;
  • 50 GB ledig plass for alle brukere;
  • innebygd chat;
  • klientmeny på russisk.