Bulut mega yükleyin. Mega bulut hizmeti

  • 07.08.2019

Eminim tüm aktif İnternet kullanıcıları, popüler Megaupload dosya paylaşım hizmetinin kapanma tarihini ve yaratıcısının talihsizliklerini duymuşlardır. Ve kesinlikle Kim Dotcom'un yeni projesini biliyorlar. Mega. Bu hizmetin, Kim'in önceki yaratımının reenkarnasyonu olduğunu, ancak tamamen farklı bir platformda olduğunu hatırlatırız.

Oluştururken, Megaupload'ın tüm eksiklikleri ve hataları dikkate alındı ​​​​ve öncelikle dosya paylaşım hizmetinin kararlılığına vurgu yapıldı. Ve sadece ağ yüklerine değil, aynı zamanda telif hakkı sahiplerinin saldırılarına da. Bunun için verilerinizin gizliliğine ve güvenliğine büyük önem verilmektedir. Yüklediğiniz tüm dosyalar özel bir algoritma ile şifrelenir, bu nedenle hizmet yönetiminin hesaplarınızın içeriği hakkında hiçbir fikri yoktur ve dolayısıyla bundan sorumlu tutulamaz. Aynı amaçla, Mega sunucular farklı ülkelerde bulunur, bu nedenle bir ülkede yasalarla ilgili sorunlar varsa, bu tüm hizmetin çökmesine yol açmayacak ve verileriniz bozulmadan kalacaktır.

Bugün sizi bu hizmetin işleyişiyle tanıştırmak ve işlevleriyle ilgili küçük bir ekran görüntüsü turu sunmak istiyoruz.

Başlamak için kayıt olmanız gerekir. Bunu yapmak için adınızı, e-posta adresinizi ve şifrenizi girmeniz gerekir. Hizmet iyi Ruslaştırılmış ve iyi tasarlanmış.

Kayıt tamamlandıktan sonra, sağladığınız e-posta adresine bir giriş bağlantısı gönderilecektir. Bağlantıya tıklayarak, sizin için hangi verilerin şifreleneceği özel gizli anahtarlar oluşturulana kadar birkaç dakika beklemeniz gerekecek.

Bulut depolamamıza giriyoruz. Burada her şey açık ve basit: solda klasör ağacı, ortada dosya görüntüleme alanı, üstte araç çubuğu. Dosyalar butona tıklayarak indirilebilir Yeni indirme veya servis penceresine sürükleyip bırakarak. İndirmeler son derece hızlıdır.

Dosyalar klasörler halinde düzenlenebilir. Dosyaları klasörler arasında taşımak, sürükleyerek veya içerik menüsü kullanılarak yapılır (aşağıya bakın). Dizinlerin iç içe geçme düzeyi sınırsızdır.

Bir açılır pencere, dosyayı indirmek için bir bağlantı oluşturur.
Bu pencerenin üst kısmındaki seçeneklere dikkat edin. Yalnızca etkinleştirildiyse dosya bağlantısı, bu durumda alıcınız, kendisine e-posta ile ayrı olarak gönderebileceğiniz özel bir şifre girmeden dosyayı indiremez. Bu şekilde, indirme bağlantılarını blog veya forum gibi halka açık yerlerde yayınlayabilir, ancak yalnızca belirli kişilerin indirmesine izin verebilirsiniz.
Ek olarak işaretlenirse Dosya Anahtarı, ardından herkes oluşturulan bağlantıyı kullanarak dosyayı indirebilir. onay kutuları İsim ve Dosya boyutu dosyanın uygun özelliklerini ekleyin.

Klasör içerik menüsü biraz farklıdır. Burada bir öğe var paylaşım. Bununla çalışanlarınızı, arkadaşlarınızı veya ailenizi paylaşmaya davet edebilirsiniz. Davetiyeler e-posta ile gönderilir ve erişim farklı düzeylerde olabilir. Salt okunur - yalnızca görüntüleme, Okuma yazma- dosyalarınızı görüntüleyin ve bir klasöre yükleyin, Tam erişim- dosyaları görüntüleme, indirme ve silme.

Bölümde Hesap depolama alanınızın doluluğunu görüntüleyebilir, ek alan satın alabilir, veri aktarım ayarlarını değiştirebilir ve diğer bazı seçenekleri kullanabilirsiniz.

Bazı kişisel izlenimler

Dosya paylaşım hizmeti Mega mega bir izlenim bırakıyor. Mükemmel hız, net ve hoş arayüz, 50 gigabayt disk alanı, yüklenen dosyaların trafiği ve boyutu üzerinde kısıtlama olmaması, ayrıca verilerinizin tamamen ücretsiz ve gizliliği. Bu sadece bir tatil!

Mega hizmetinin yetenekleri çeşitli amaçlar için kullanılabilir. Her şeyden önce, bu, tüm kıtalardaki korsanları çok memnun edecek çeşitli bilgi türlerinin yayılmasıdır. Bununla birlikte, şifrelerle sınırlı erişim olanakları, eserlerinin, örneğin müzisyenler tarafından yasal satışı için de yararlı olabilir. Klasör paylaşımı, Mega'yı uzaktan çalışmayı organize etmek için ilginç bir araç haline getirir. Ve elbette, sizin için önemli bilgilerin sıradan bir yedeği.

Bu aşamada Mega'da eksik olan tek şey, farklı işletim sistemleri için bir masaüstü ve mobil istemcidir. Hizmetin genç yaşı göz önüne alındığında, geliştiricilerin henüz zamanları olmadığı ve böyle bir müşterinin yakında ortaya çıkacağı umulabilir. Bundan sonra, Mega'nın bulut dosya depolama için yeni standart haline gelmesi için hiçbir engel görmüyorum.

Eminim tüm aktif İnternet kullanıcıları, popüler Megaupload dosya paylaşım hizmetinin kapanma tarihini ve yaratıcısının talihsizliklerini duymuşlardır. Ve kesinlikle Kim Dotcom'un yeni projesini biliyorlar. Mega. Bu hizmetin, Kim'in önceki yaratımının reenkarnasyonu olduğunu, ancak tamamen farklı bir platformda olduğunu hatırlatırız.

Oluştururken, Megaupload'ın tüm eksiklikleri ve hataları dikkate alındı ​​​​ve öncelikle dosya paylaşım hizmetinin kararlılığına vurgu yapıldı. Ve sadece ağ yüklerine değil, aynı zamanda telif hakkı sahiplerinin saldırılarına da. Bunun için verilerinizin gizliliğine ve güvenliğine büyük önem verilmektedir. Yüklediğiniz tüm dosyalar özel bir algoritma ile şifrelenir, bu nedenle hizmet yönetiminin hesaplarınızın içeriği hakkında hiçbir fikri yoktur ve dolayısıyla bundan sorumlu tutulamaz. Aynı amaçla, Mega sunucular farklı ülkelerde bulunur, bu nedenle bir ülkede yasalarla ilgili sorunlar varsa, bu tüm hizmetin çökmesine yol açmayacak ve verileriniz bozulmadan kalacaktır.

Bugün sizi bu hizmetin işleyişiyle tanıştırmak ve işlevleriyle ilgili küçük bir ekran görüntüsü turu sunmak istiyoruz.

Başlamak için kayıt olmanız gerekir. Bunu yapmak için adınızı, e-posta adresinizi ve şifrenizi girmeniz gerekir. Hizmet iyi Ruslaştırılmış ve iyi tasarlanmış.

Kayıt tamamlandıktan sonra, sağladığınız e-posta adresine bir giriş bağlantısı gönderilecektir. Bağlantıya tıklayarak, sizin için hangi verilerin şifreleneceği özel gizli anahtarlar oluşturulana kadar birkaç dakika beklemeniz gerekecek.

Bulut depolamamıza giriyoruz. Burada her şey açık ve basit: solda klasör ağacı, ortada dosya görüntüleme alanı, üstte araç çubuğu. Dosyalar butona tıklayarak indirilebilir Yeni indirme veya servis penceresine sürükleyip bırakarak. İndirmeler son derece hızlıdır.

Dosyalar klasörler halinde düzenlenebilir. Dosyaları klasörler arasında taşımak, sürükleyerek veya içerik menüsü kullanılarak yapılır (aşağıya bakın). Dizinlerin iç içe geçme düzeyi sınırsızdır.

Bir açılır pencere, dosyayı indirmek için bir bağlantı oluşturur.
Bu pencerenin üst kısmındaki seçeneklere dikkat edin. Yalnızca etkinleştirildiyse dosya bağlantısı, bu durumda alıcınız, kendisine e-posta ile ayrı olarak gönderebileceğiniz özel bir şifre girmeden dosyayı indiremez. Bu şekilde, indirme bağlantılarını blog veya forum gibi halka açık yerlerde yayınlayabilir, ancak yalnızca belirli kişilerin indirmesine izin verebilirsiniz.
Ek olarak işaretlenirse Dosya Anahtarı, ardından herkes oluşturulan bağlantıyı kullanarak dosyayı indirebilir. onay kutuları İsim ve Dosya boyutu dosyanın uygun özelliklerini ekleyin.

Klasör içerik menüsü biraz farklıdır. Burada bir öğe var paylaşım. Bununla çalışanlarınızı, arkadaşlarınızı veya ailenizi paylaşmaya davet edebilirsiniz. Davetiyeler e-posta ile gönderilir ve erişim farklı düzeylerde olabilir. Salt okunur - yalnızca görüntüleme, Okuma yazma- dosyalarınızı görüntüleyin ve bir klasöre yükleyin, Tam erişim- dosyaları görüntüleme, indirme ve silme.

Bölümde Hesap depolama alanınızın doluluğunu görüntüleyebilir, ek alan satın alabilir, veri aktarım ayarlarını değiştirebilir ve diğer bazı seçenekleri kullanabilirsiniz.

Bazı kişisel izlenimler

Dosya paylaşım hizmeti Mega mega bir izlenim bırakıyor. Mükemmel hız, net ve hoş arayüz, 50 gigabayt disk alanı, yüklenen dosyaların trafiği ve boyutu üzerinde kısıtlama olmaması, ayrıca verilerinizin tamamen ücretsiz ve gizliliği. Bu sadece bir tatil!

Mega hizmetinin yetenekleri çeşitli amaçlar için kullanılabilir. Her şeyden önce, bu, tüm kıtalardaki korsanları çok memnun edecek çeşitli bilgi türlerinin yayılmasıdır. Bununla birlikte, şifrelerle sınırlı erişim olanakları, eserlerinin, örneğin müzisyenler tarafından yasal satışı için de yararlı olabilir. Klasör paylaşımı, Mega'yı uzaktan çalışmayı organize etmek için ilginç bir araç haline getirir. Ve elbette, sizin için önemli bilgilerin sıradan bir yedeği.

Bu aşamada Mega'da eksik olan tek şey, farklı işletim sistemleri için bir masaüstü ve mobil istemcidir. Hizmetin genç yaşı göz önüne alındığında, geliştiricilerin henüz zamanları olmadığı ve böyle bir müşterinin yakında ortaya çıkacağı umulabilir. Bundan sonra, Mega'nın bulut dosya depolama için yeni standart haline gelmesi için hiçbir engel görmüyorum.

Mega co nz veri depolama hizmeti 2013 yılında hayata geçirilmiştir. İlk gün 1 milyon kullanıcı tarafından ziyaret edilen site, ilk bir saat içinde 100.000'den fazla kullanıcı tarafından kayıt yaptırdı. 2015 için Mega, İnternette 15 milyondan fazla kullanıcı hakkında bilgi depolar.

Mega bulut hizmeti, "MEGA Şifreli Küresel Erişim" anlamına gelir. Veriler depoya yüklendiğinde, tüm dosyalar AES algoritması kullanılarak tarayıcıda şifrelenir ve sunucuda şifrelenmiş biçimde depolanır. Ek olarak, Mega şifreleri saklamaz ve . Yalnızca kullanıcıya aittirler ve şirkete geri yüklenemezler. Parolanızı unuttuysanız, kurtarmanın tek yolu bir Mega nz ana anahtarına sahip olmaktır.

Veri depolama Mega co nz - İnternetteki dosyalar için hem ücretsiz hem de ücretli depolama alanı sağlar. Dosyalarınızı dünyanın herhangi bir yerinde depolamanıza ve bunlara erişmenize olanak tanır. Bir web tarayıcısı veya özel istemci uygulamaları kullanarak dosyaları Mega.nz deposuna yüklemenin birkaç yolu vardır.

Mega ile bir hesap oluşturmak basittir. Başlamak için bir e-posta adresi ve şifre sağlamalısınız. Mega.co ve Mega.co depolama arasındaki fark, bundan sonra internette ücretsiz dosya depolamak için 50 GB disk alanı alacaksınız ve kayıt sırasında kredi kartı bilgilerini girmenize gerek yok.

Mega ortak bulutta gezinmek çok kolaydır. Dosyaları ve klasörleri indirme düğmeleri üst menü çubuğunda bulunur ve altında indirilen veriler bulunur. Solda, Mega bulut hizmetindeki kontrol ve görüntüleme sütunu bulunur. Sağ üstte yer alan menü butonuna tıklayarak dili değiştirebilir, Google Chrome, Mozilla Firefox tarayıcılarına Add-On uygulamaları kurabilir, Windows, Mac, Linux işletim sistemlerini çalıştıran bir bilgisayarda dilediğiniz klasörü Mega buluttaki klasörler ile senkronize edebilirsiniz. , Android iOS Blackberry Windows mobil uygulamasını bir akıllı telefona veya tablete yükleyerek verilerinizi senkronize edin ve buluttan indirin.


Dosyaları Mega.co.nz bulut hizmetinde depolamak ve paylaşmak, üst menüdeki "Dosya Yükle" düğmesine basarak yeni bir klasör oluşturmak, fotoğraf, video, belge veya diğer bilgileri yüklemek çok kolaydır. Mega.nz veri deposu, ayarlarda sınırlamadıysanız, yüklenen dosyanın boyutuna ve indirme hızına ilişkin sınırlamalar kullanmaz.

Açılır menüde bir klasöre sağ tıklayarak açabilir, bir bulut hizmetinden dosya indirmek için bağlantı alabilir, diskten verileri kopyalayabilir, yeniden adlandırabilir, taşıyabilir, silebilirsiniz.

Mega.nz Veri Depolama, üç ücretli bulut depolama planı sunar:

profesyonel Ⅰ 500 GB € 9,99/ay VEYA € 99,99/yıl
profesyonel Ⅱ 2 TB GB € 19,99/ay VEYA € 199,99/yıl
PRO Ⅲ 4 TB GB €29,99/ay VEYA €299,99/yıl
Yıllık bir PRO planı satın aldığınızda, 2 ay ücretsiz olarak kazanırsınız.
Herkes MEGA bulutunu ücretsiz olarak kullanabilir.

Mega.co.nz'de kayıt

mega | bulut depolama Mega | Bulut Mega | Depolama Alanı

Biraz skandal olan MEGA hizmetinin piyasaya sürülmesinden sonra, güvenliğiyle ilgili konuşmalar biraz köpürdü ve sakinleşti. Bugüne kadar hizmet kendi hayatını yaşıyor ve kimse onu bozmadı bile. MEGA'nın övündüğü "Kullanıcı Kontrollü Şifreleme" (UCE veya Kullanıcı Kontrollü Kriptografi) terimi nedense tüm konuşmalardan atlandı. "Kayıp" derken, istemci tarafında JavaScript'te çalışan bir şifreleme motorunun bize sunduğu tüm olasılıkları ele almadığımız gerçeğini kastediyorum.

Tabii ki, MEGA hizmetinin kendisi bununla yalnızca şifreleme anahtarlarının sunucuda değil, tümünün saklandığı anlamına gelir. onlaraşifreleme, tarayıcı bağlamında gerçekleştirilir. Aynı zamanda, hizmetin piyasaya sürülmesinden sonra, kararsız kriptografik algoritmalar kullandığı ve genel olarak her şeyin kötü olduğu ve hepimizin öleceği ve FSB'nin dosyalarımızı okuyacağı çok konuşuldu. Bu, beni "UCE" kavramını genişletmeye ve kriptografiyi gerçekten kontrolüm altına almaya, yani hizmetin bazı güvenlik mekanizmalarını değiştirmeye veya tamamlamaya sevk etti.

Bu makalede, iki megabaytlık MEGA JavaScript kodunda devam eden sihri kısmen çözeceğim ve endişelenmeyi bırakıp kriptografiyi sevmek için bazı yöntemleri nasıl geçersiz kılabileceğinizi göstereceğim. Sonuç olarak, kritik bilgilerin iki faktörlü kimlik doğrulaması ve donanım şifrelemesi ile bir bulut dosya depolama hizmeti alacağız.

MEGA, UCE ve hepsi hepsi hepsi

Öyleyse, hizmetin istemci kısmının üzerine inşa edildiği teknolojilere, yeni kullanıcıların nasıl kaydedildiğine, kayıtlı kullanıcıların kimlik doğrulamasının nasıl yapıldığına, şifrelerin nasıl değiştirildiğine ve dosyaların nasıl yüklendiğine / indirildiğine bakarak başlayalım.

JavaScript

Bildiğiniz gibi, hizmetin tüm istemci tarafı JavaScript'e dayalıdır, ana sayfa kodu, tarayıcı tarafından yüklenen tüm komut dosyaları ve sayfalar için SHA-256 sağlama toplamlarını içerir. İndirmenin kendisi şu şekilde gerçekleşir: tüm dosyalar için sağlama toplamları kontrol edilir, ardından bunlar tarayıcıya verilen tek bir BLOB'da birleştirilir. Js dosyalarının kaynak kodu, farklı kişiler tarafından yazıldığını ve bazen kopyala-yapıştır sonuçları, anlamsız koşullar ve sadece garip değişkenler gibi komik inciler olduğunu gösterir.

Sitenin kaynak kodunu inceleme sürecinde, oldukça aktif bir şekilde güncellendiğini, geliştiricilerin küçük hataları düzelttiğini ve önceden yazılmış kodu optimize ettiğini de fark ettim ki bu iyi bir haber. Kodun kendisi çok basit bir şekilde ve prototip biçiminde aşırı hile yapılmadan yazılmıştır: site, üç yüz global değişken ve 8000'den fazla işlevle yönetilir. Sitenin mimarisini anlamak ve kodunu değiştirmek çok basitti.

Üçüncü taraf çerçevelerden MEGA, jQuery (artık onsuz hiçbir yerde), Ext JS ve SJCL kullanır. İkincisi, yalnızca AES şifrelemeli bir kriptografik çekirdek uygular. SJCL ayrıca anahtarları ve diğer bayt dizilerini depolamak için ilginç bir biçim sağlar: baytları normal bir dizide çalıştırmak yerine, bunlar a32 adı verilen bir biçime "sıkıştırılır". Özü, herhangi bir bayt dizisinin içeriğinin 32 bitlik sayılar halinde paketlenmesi ve daha küçük uzunlukta bir diziye yazılmasıdır. Yani, dizinin her 4 baytı bir banal int'ye dönüştürülür. Site kodu, doğaçlama bir kümede (a32 dizisi, dizi, base64 dizisi) her türlü dönüşümü gerçekleştiren işlevler içerir.

Anahtar bilgi

Kayıt ve kimlik doğrulama işlemlerinin açıklamasına geçmeden önce, şifrelenecek olan bilgileri, yani aşağıdakileri göz önünde bulundurmaya değer:
  • Hesap ana anahtarı, kullanıcı kaydı sırasında rastgele oluşturulur ve 128 bit uzunluğundadır. Ve prensip olarak simetrik şifreleme için kullanılan tüm anahtarların uzunluğu 128 bittir.
  • RSA özel anahtarı: Fare hareketleri ve klavye girişine göre kayıt sırasında oluşturulur. Bu yazıda, indirilen dosyaları paylaşmak için kullanıldığı için asimetrik kriptografiye odaklanmayacağım ve görevim, kullanıcı verilerini doğrulama ve şifreleme sürecini değiştirmekti.
  • Bireysel dosya anahtarları ve dosyaların kendileri servise yüklendi. Anahtarlar, bir dosya yüklendiğinde rasgele oluşturulur, anahtarın kendisi dosya verilerini şifrelemek için kullanılır ve tek tek dosya anahtarına ve sağlama toplamına dayalı olarak oluşturulan anahtar, nitelikleri şifrelemek için kullanılır.

koda daha yakın

Şimdi kayıt ve kimlik doğrulama işlemlerini parçalara ayırmayı, ana anahtarın nasıl oluşturulduğunu ve nasıl şifrelendiğini görmeyi öneriyorum.
İşte bu süreçleri bir kağıt parçası üzerinde tasvir etmeye çalıştım ve deliliğin tüm özünü anlamanız için şu fotoğrafı bile çektim:

yeni kullanıcı kaydı

Kayıt işleminin kendisi oldukça kafa karıştırıcıdır, kullanıcı anketi doldurduktan sonra çok sayıda işlev çağrılır, ancak biz api_createuser işleviyle ilgileniyoruz:

// yeni bir kullanıcı ve onun ana anahtar işlevini oluştur api_createuser(ctx, davet kodu, davet adı, uh) ( var i; var ssc = Array(4); // oturum kendi kendine meydan okuma, şifreyi doğrulamak için kullanılacak 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(); // rasgele bir ana anahtar u_k üret for (i = 4; i--;) ssc[i] = rand(0x100000000); // if (d) console.log("api_createuser - masterkey: " + u_k + " passwordkey: " + ctx.passwordkey); // ana anahtarı geçerli parola ile şifreleyin ve sunucuya gönderin (k alanı) // ts alanı ssc'nin şifrelenmiş değeri req = ( a: "yukarı" , 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 (davet kodu) ( req.uh = uh; req .ic = davet kodu; req.name = davetname; ) if (d) console.log("Kayıt anahtarı: " + req.k); api_req(, ctx); )
Bu işlevde, aşağıdaki şeylerle ilgileniyoruz:

  • u_k, genel bir değişken olan ana anahtarın kendisidir. api_create_uk işlevi tarafından oluşturulan 4x 32 bitlik sayı dizisi
  • ssc, ana anahtarla şifrelenen, genel değeriyle birleştirilen ve sunucuya gönderilen rastgele bir dizidir. Daha sonra, kimlik doğrulama sırasında ana anahtarın doğruluğunu kontrol etmek için kullanılacaktır.
  • sjcl, AES uygulayan bir şifreleme kitaplığıdır
  • Rand() - RC4'e dayalı sözde rasgele sayı üretecinin yerel uygulaması
  • encrypt_key(), hizmetin simetrik kriptografisinin mihenk taşı işlevidir. Anahtarla başlatılan bir sjcl nesnesini ve şifrelenecek bir diziyi kabul eder. İşlev kodu aşağıdadır ve umarım açıklayıcıdır.
// 4- veya 8-elemanlı 32-bit tamsayı dizisini şifrele/şifre çöz 0 ben< a.length; i += 4) x = x.concat(cipher.encrypt(, a, a, a])); return x; }
Sonuç olarak, kayıttan sonra sunucuya aşağıdakiler gönderilir:
  • Hesap parolasından türetilen bir anahtarla şifrelenmiş ana anahtar
  • ssc||encrypt_AES-128(u_k, ssc) gibi bir dizi

Kullanıcı Girişi

Artık sorunsuz bir şekilde kimlik doğrulama işlemine geçebilirsiniz. Kısaca şöyle yapılır:
  1. Kullanıcı, kullanıcı adını/şifreyi girer
  2. Kimlik doğrulamanın ilk aşaması geçilirse, şifrelenmiş ana anahtar ve kayıt sırasında oluşturulan kimlik doğrulama dizisi (ssc) sunucudan gelir.
  3. Ana anahtarın şifresi, kullanıcı tarafından girilen parola kullanılarak çözülür.
  4. Ana anahtarda, kimlik doğrulama dizisinin şifresi çözülür ve genel değeriyle karşılaştırılır - böylece ana anahtarın ve parolanın doğruluğu kontrol edilir.
api_getsid2 geri arama işlevi, yukarıdakilerin hepsinden sorumludur:

// kullanıcı api_getsid2(res, ctx) ( var t, k; var r = false; if (typeof res == "object") ( // sjcl-aes'i geçerli hesapla başlat) işlevinde oturum açtıktan sonra ana anahtarın şifresini çöz password var aes = new sjcl.cipher.aes(ctx.passwordkey); // sunucu yanıtında bir ana anahtar aldıysak... if (typeof res.k == "string") ( k = base64_to_a32(res. k); if (k.uzunluk == 4) ( // ... sonra şifresini çöz k = decrypt_key(aes, k); // ve aes = new sjcl.cipher ana anahtarını kullanarak sjcl-aes'i yeniden başlatın. aes( k); // kayıt işleminden ssc aldıysak if (typeof res.tsid == "string") ( t = base64urldecode(res.tsid); // string'in ilk yarısını şifreleyin ve sunucudan alınan değer // eğer eşleşirlerse - bu, tüm görünümlerin ve şifrelerin kabul edildiği anlamına gelir ve kullanıcının if (a32_to_str(encrypt_key(aes, str_to_a32(t.substr(0, 16)))) == t girmesine izin verebilirsiniz. substr(-16)) r = ; ) // RSA çiftinin özel anahtarı aşağıda çözümlenmiştir, bununla henüz ilgilenmiyoruz, aksi halde (typeof res.csid == "s) tring") ( var t = mpi2b(base64urldecode(res.csid)); var ayrıcalık = a32_to_str(decrypt_key(aes, base64_to_a32(res.privk))); var rsa_privk = Dizi(4); // (var i = 0; i) için özel anahtarı ayrıştır< 4; i++) { var l = ((privk.charCodeAt(0) * 256 + privk.charCodeAt(1) + 7) >> 3) + 2; rsa_privk[i] = mpi2b(privk.substr(0, l)); if (typeof rsa_privk[i] == "sayı") break; özel = özel.substr(l); ) // formatı kontrol et if (i == 4 && privk.length< 16) { // TODO: check remaining padding for added early wrong password detection likelihood r = ; } } } } } ctx.result(ctx, r); }
Kayıt/doğrulama bonusu olarak, parola değiştirme işlemine bakabilirsiniz.

// kullanıcı şifresini değiştir function 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); )
Bu işlevin kodu kendisi için konuşur: ana anahtarı eski ve yeni parolalardan elde edilen iki anahtarla şifreleriz ve ardından bu değerleri sunucuya göndeririz. Geçerli parola eşleşirse, yenisiyle değiştirilir. Burada, önceki tüm işlemlerde dolaylı olarak mevcut olan ready_key_pw işlevine daha fazla dikkat etmek istedim. Görevi, dize parolasını bir a32 dizisine dönüştürmek ve ardından aşağıdaki gibi anahtar türetme işlemini gerçekleştirmektir:

// kullanıcı tarafından sağlanan parolayı dönüştür dizi işlevi hazır_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; }
Bu özellik, bir homebrew algoritmasına dayandığından çok fazla eleştiriye neden oldu. Makalenin yazılması sırasında, hizmetin yaratıcıları kodunu biraz değiştirmeyi başardılar, ancak burada önemli bir değişiklik fark etmedim. Özü, rastgele bir anahtardan ayırt edilemeyen bir anahtar elde etmek için iletilen parolanın sabit bir anahtarla 65536 kez şifrelenmesidir. Hizmetin yaratıcılarının neden mevcut algoritmaları (örneğin, PBKDF2) kullanmadıkları bir sır olarak kalıyor.

Dosyaları İndirme ve Şifreleme

Kısaca, tüm süreç aşağıdaki gibi temsil edilebilir:

Sizi uyarıyorum, bu resme uzun süre dalmak beyin için tehlikelidir, bu yüzden aşağıda size her şeyin nasıl olduğunu anlatacağım.

Daha önce de söylediğim gibi, her dosya için yükleme yaparken, 6 adet 32 ​​bit sayıdan oluşan rastgele bir anahtar dizisi oluşturulur. Bu dizinin ilk dört elemanı dosyanın içeriğini şifrelemek için kullanılır ve son ikisi dosyanın sağlama toplamını hesaplamak için kullanılan sayacın başlangıç ​​değerleri olarak kullanılır. Bu dizi ul_key global değişkeninde saklanır. İçeriği, JSON seri hale getirilmiş ul_KeyNonce dizesine yazılır.

Şifre çözme, Web Çalışanı kullanılarak (tarayıcı bu teknolojiyi destekliyorsa) veya yalnızca ana sayfa kodunun içinde gerçekleşir. Bir dosya gönderilmeye hazır olduğunda, ul_key ve dosyanın sağlama toplamına dayalı olarak özniteliklerini (şu anda öznitelikler yalnızca dosya adı anlamına gelir) şifrelemek için yeni bir anahtar olan filekey oluşturulur. Bu anahtar daha sonra ana anahtarla şifrelenir ve dosya öznitelikleriyle birlikte sunucuya gönderilir. Tüm bu eylemlerden initupload3 ve api_completeupload2 işlevleri sorumludur. Filekey anahtarının oluşturulması ul_chunkcomplete fonksiyonunda gerçekleşir, aşağıda bir kısmını vereceğim.

// bir dosya yüklemeye başlayın: özel anahtarını oluşturma ve şifreleme mekanizması işlevini başlatma initupload3() ( // ... cut =) // rastgele bir özel dosya anahtarı oluşturma // sayfa kodunda ul_key kullanılır, // ul_keyNonce Web Çalışanına iletilir ve orada // dosyayı şifrelemek ve sağlama toplamını hesaplamak için kullanılır ul_key = Array(6); for (i = 6; i--;) ul_key[i] = rand(0x100000000); ul_keyNonce = JSON.stringify(ul_key); ul_macs = ; // ... sıradaki indirme sırası işleniyor, ilgilendirmiyor... // ul_key tabanlı bir dosya için sjcl-aes başlatılıyor ul_aes = new sjcl.cipher.aes(); // ... // dosya yükleme işlemini başlat: // diskten oku, şifrele ve UploadStart'ta gönder(ul_queue_num); ul_dispatch_chain(); ) // dosya özniteliklerini şifrelemek için bir anahtar oluşturma function ul_chunkcomplete(slot,pos,response) ( // ... var t = ; // ul_macs - işçi içinde elde edilen dosya sağlama toplamı ile dizi"ve for (ul_macs'ta p) t . push(p); // geçici bir diziyi doldurma ve sıralama, nedenini bilen varsa - lütfen açıklayın t.sort(function(a,b) ( return parseInt(a)-parseInt(b) )); for (var i = 0; ben< 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 ( // dosya adını şununla şifrele: ul_key ve sağlama toplamından türetilen anahtar // ctx.k == dosya anahtarı a = ( n: ctx.n ); if (d) console.log(ctx.k); var ea = enc_attr(a, ctx.k) ; if (d) (d) console.log(ea); // öznitelikleri ve ana anahtarda şifrelenen dosya anahtarını geçirme var req = ( a: "p", t: ut, n: [( h: ctx.t, t: 0 , a: ab_to_base64(ea), // öznitelikler k: a32_to_base64(encrypt_key(u_k_aes, ctx.k))), // == AES_encrypt(u_k, filekey) fa: ctx.fa )] ); if (ut) ( / / bir hedef sağlandı: ilgili tüm paylaşımlara şifrele var sn = fm_getsharenodes(ut); if (sn.length) ( req.cr = crypto_makecr(, sn, false); req.cr = ctx.t; ) ) api_req (, ctx.ctx); ) )

Dosyaları indirme ve şifre çözme

Açıkçası bu işlemler, şifrelenen dosyanın tam tersi olmalıdır. İlgilenilebilecek tek şey, sunucudan gelen şifrelenmiş dosya anahtarı değerinden ul_key anahtarının değerini almaktır.

Dosyanın indirilmesi sırasında, tarayıcı bağlamı zaten şifresi çözülmüş dosya anahtarlarını depolayan bir nesne içerir. Bu nedenle, öncelikle kullanıcı kimlik doğrulamasından hemen sonra gerçekleşen süreci, yani dosya yöneticisini yüklemeyi dikkate almak mantıklıdır. Kullanıcının hizmete girmesine izin verildikten sonra, doğal olarak dosyalarına erişmek ister (bu dosyalara zaten sahip olduğunu varsayarsak). Bunu yapmak için önce dosya anahtarlarının, ardından özniteliklerinin şifresini çözmemiz gerekiyor. Bu iş, loadfm_callback ve process_f_f ile ilgilendiğimiz başka bir grup işlev tarafından yürütülür.

Kısaca, dosya niteliklerini elde etme süreci aşağıdaki algoritma ile açıklanabilir:

  1. Dosya yöneticisinin (loadfm_callback) yüklenmesini bekleyin, yüklenen tüm dosyaların açıklamasını içeren JSON nereden alınır?
  2. Dosyalar hakkında bilgi içeren bir dizi koymak için farray dizisi oluşturun
  3. Her dosya için process_f_f işlevini çalıştırın (yinelemeli olarak)
  4. Bir anahtarı olan her dosya için, bu anahtarın ve özniteliklerin şifresini çözün (crypto_processkey işlevi) ve bunları dosya bilgileriyle birlikte bir diziye geri depolayın
  5. Bundan sonra, şifresi çözülmüş değerleri FileStore değişkenine kaydedin (process_f_f'de özyinelemenin sonu)
Aşağıda bu algoritmayı gösteren koddan alıntılar vereceğim.

// dosya yöneticisi load callback function loadfm_callback(json, res) ( // ... // JSON'u dosya bilgisi ile işle 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 (json.s'de i) ( if ( u_sharekeys. h]) ( shareData.push(( id: json.s[i].h + "_" + json.s[i].u, kullanıcı kimliği: json.s[i].u, klasör kimliği: json.s[ i].h, haklar: json.s[i].r, tarih: json.s[i].ts )); paylaşılannodes.h] = doğru; ) ) ) // ... daha fazlası yok. .. / / dosyalarla ilgili bilgileri başka bir global diziye ekleme farray = yeni Nesne; farray.f = json.f; // işlemeye başlayarak, geri arama yukarıda // bu işlevde bildirildi ve yalnızca düzeni değiştirir process_f(fi, false , callback); fi++; ) // anahtarların ve dosya özniteliklerinin şifresinin çözüldüğü özyinelemeli işlev // process_f işlevinden çağrılır process_f_f(fid) ( // özyineleme sonlandırma koşulu - fa dizisindeki tüm dosyaları işledik rray if (!farray.f.i]) ( if (farray.ap) FileStore.suspendEvents(); // verileri FileStore'a yaz FileStore.loadData(farray.mdata, true); if (farray.ap) FileStore.resumeEvents(); if (d) console.log("reqmissingkeys'i arayın:"); crypto_reqmissingkeys(); if (farray.callback) farray.callback.fn(farray.callback); yanlış dönüş; ) var f = farray.f.i]; f.attrs = f.a; if (f.sk) u_sharekeys = crypto_process_sharekey(f.h, f.sk); // dosya türle eşleşiyorsa ve bir anahtarı varsa, o zaman onu işle if ((f.t !== 2) && (f.t !== 3) && (f.t !== 4) && (f.k)) ( crypto_processkey(u_handle) , u_k_aes) , f); // bu işlevin açıklaması aşağıda u_nodekeys = f.key; if ((typeof f.name !== "undefined") && (f.p == InboxID)) InboxCount++; ) else ( if (f.a) ) ( if ( !missingkeys) ( eksikkeys = true; newmissingkeys = true; ) ) f.k = ""; f.name = ""; ) if (f.t == 2) RootID = f.h; aksi takdirde (f.t == 3) InboxID = f.h; aksi takdirde (f.t == 4) TrashbinID = f.h; başka ise ((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 + ":"); // önce dosyanın paylaşılıp paylaşılmadığını kontrol edin if (p) ( // yok"t - uygun bir sharekey'im var mı? for (u_sharekeys'de id) ) ( p = file.k.indexOf(id + ":"); if (p >= 0 && (!p || file.k.charAt(p - 1) == "/")) break; p = -1; ) ) // ve sonra if (p >= 0) ( keycache'i sil; // eğik çizgi - görünüşe göre topların bir işareti var pp = file.k.indexOf("/", p)) ; eğer (pp< 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(encrypt_key(u_k_aes, k)); ) // anahtarın ve özniteliklerin şifresini doğru bir şekilde çözdüysek, bunları dosya nesnesi dosyasına kaydedin.key = k; dosya.adı = o.n; ) ) else ( if (d) console.log("Uygun bir anahtar alınmadı: " + file.h); if (!missingkeys) ( newmissingkeys = true; missingkeys = true; ) keycache = file.k; ) )
Bundan sonra, orijinal ul_key'in değerini tarayıcı bağlamından şu şekilde alabiliriz: dl_keyNonce = JSON.stringify();
Bu dönüştürme, startdownload işlevinde gerçekleşir. dl_key == filekey değerinin ul_chunkcomplete işlevinden geldiğini dikkate alıp basit modulo ekleme işlemlerini gerçekleştirirsek, dl_keyNonce değişkeninin dosya yüklenirken oluşan ul_key değerini saklayacağını fark ederiz. Bunun bir örneği, dosya yükleme bölümünün başındaki fotoğrafta panonun sol alt köşesinde görülebilir.

Kriptografik işlemlerin "aşırı yüklenmesi"

Yukarıda açıklanan dosya ve anahtarları koruma ilkeleri çok güvenli olmasına rağmen, bazıları hala hizmetin sağladığı algoritmaların uygulanmasına bağlı olmamızdan hoşlanmayabilir. Bu durumda, hizmetin bazı işlevlerini geçersiz kılacak ve bunlara ek şifreleme uygulayacak kendi tarayıcı uzantımızı geliştirebiliriz. Yani, GOST 28147-89 algoritmasına göre kurtarılamayan bir anahtarda donanım şifrelemesi kullanarak anahtar bilgilerinin (ana anahtar ve dosya anahtarları) korunmasını uygulamaya karar verdim. Buna bir bonus da hizmete iki faktörlü kimlik doğrulamanın dahil edilmesi olacaktır.
Öyleyse, bu kullanım durumunu göz önünde bulundurun:
  • Kullanıcı hizmete kaydolur
  • Sonra uzantıyı yükler
  • Yardımıyla, ana anahtarın donanım şifrelemesi, belirteçten alınamayan bir anahtar üzerinde gerçekleştirilir.
  • Bu şekilde şifrelenen ana anahtar sunucuya yüklenir.
Bundan sonra, belirteç ve PIN kodu olmadan ana anahtarın değerini almak imkansız olacaktır. Bu verecek:
  1. Hizmette iki faktörlü kimlik doğrulama (şifresi doğru şekilde çözülmüş bir ana anahtar olmadan api_getsid2 işlevi başarısız olur)
  2. Jeton olmadan cari hesap şifresini değiştirmek de imkansız olacaktır.
Bir sonraki adım, dosya şifreleme anahtarı belirtecini (aka ul_key) ve henüz sunucuda depolanan dosya öznitelik anahtarını (filekey) kullanarak şifrelemektir. Böylece, her dosyanın sunucuya asla ulaşamayacak bir anahtarla şifreleneceğini ve api_completeupload2 işlevinden bizim tarafımızdan şifrelenen dosya anahtarının gideceğini anlıyoruz. Dosya öznitelikleri, filekey öğesinin genel değerinde şifrelenecektir. Daha fazla netlik için, bir dosyayı indirme sürecini gösteren aşağıdaki diyagramı çizdim:

Burada çok hileli bir yöntem uyguladığımı belirtmek isterim. Bu durumda saldırganın sunucudan gelen dosya anahtarını ele geçirip kullanıcının ana anahtarını bilse bile dosyanın şifresini çözememesi bizim için önemlidir. Bu nedenle, burada hizmet mimarisinin özellikleri üzerinde oynayabilir ve dosyaları şifrelemek (de)şifrelemek için belirteç üzerindeki ul_key (veya dl_key) anahtar değerinin şifrelenmesi sonucunda elde edilen ul_keyNonce (aka dl_keyNonce) anahtar değerini kullanabilirsiniz.

Bu makalelerin yazılmasından bu yana, ürünümüze GOST 28147-89 algoritmasına göre donanım şifreleme olasılığı eklenmiştir. GOST 28147-89 algoritmasına göre donanım şifreleme işlevine sahip eklentinin beta sürümü indirilebilir. Eklentinin bu sürümü henüz tam olarak test edilmedi, bu yüzden kişisel bir mesajla bildirmenizi rica ettiğim hatalar içerebileceği konusunda sizi uyarıyorum.
Eklenti arayüzünde, simetrik şifreleme, aşağıdaki sözdizimine sahip encrypt işlevi tarafından gerçekleştirilir:
encrypt(deviceId, keyLabel, data, resultCallback, errorCallback) → (dize)
İşlev girdi olarak şunları alır:

  • Cihaz kimliği, numarası
  • Şifreleme için anahtar etiketi, sayı (böyle bir anahtar yoksa üretilecektir)
  • Şifrelenecek veriler, dize ("aa:bb:cc:dd" biçiminde bir bayt dizisi içeren bir dize)
  • Bir şifreleme işleminin başarısı ve başarısızlığı için geri arama işlevleri
Şifre çözme, şifre çözme işlevi kullanılarak aynı şekilde yapılır.
Verilerin şifresini çözmek/şifrelemek için hangi anahtarın kullanılacağını belirlediğinden, anahtar etiketine özel dikkat gösterilmelidir. Etiket keyfi bir dizedir ve esas olarak anahtarı kolayca tanımlamak için kullanılır. Bu durumda, iki anahtar çifti kullanıyorum: biri ana anahtarı şifrelemek (de)şifrelemek için, ikincisi dosyaların tek tek anahtarlarını şifrelemek için. Ana anahtarın şifrelendiği anahtarın, kullanıcının parolasına eşit bir etiketi vardır (şimdi e-posta||parola dizesinden bir karma kullanma fikri geldi, bunu yakın gelecekte düzelteceğim). Yüklenen dosyaların anahtarlarını şifrelemek için, ana anahtarın dize temsiline eşit bir etikete sahip bir anahtar kullanılır (burada, ana anahtarın karmasını da kullanmalısınız).

Doğrudan geliştirme

Kaynak kodum hakkında hemen bir not almak istiyorum: yukarıda açıklanan işlevselliği uygulamasına rağmen aslında alfa sürümünde. Yeniden çalışmamın hizmetin geri kalan işlevleriyle ne kadar uyumlu olduğunu kontrol etmedim, bu nedenle tüm kaynakları github'a gönderdim ve bu sistemi sonlandırmak için herhangi bir yardımdan memnuniyet duyacağım. Bu nedenle, makaleyi daha fazla büyük listelerle tıkamayacağım, yalnızca uzantının genel şemasını anlatacağım.

Bitmiş uzantı indirilebilir. Üç tarayıcı (Chrome, Firefox ve IE) için uzantılar sağlayan Crossrider hizmeti kullanılarak geliştirilmiştir, ancak çalışmasını Chrome veya Firefox'ta kontrol etmek daha iyidir ve ilkinde çok daha kararlı çalışır.

Uzantı kodu son derece basittir: hizmet sayfasında olup olmadığımızı kontrol eder ve öyleyse, sadece ek komut dosyaları yükler. Bu komut dosyaları, birkaç iletişim kutusu ekleyerek sayfa kodunu değiştirir ve aşağıdaki hizmet işlevlerini geçersiz kılar:

  • changepw: şifreyi değiştirmekten sorumludur
  • api_getsid2: oturum açma geri aramalarından biri
  • api_completeupload2: dosya yüklemeyi tamamlamak için geri arama
  • loadfm_callback: dosya yöneticisi yükleme geri araması
  • processpacket: az önce yüklenen dosyanın özniteliklerinin şifresini çözen başka bir geri arama
  • ayrıştırma sayfası: ek diyalogların çizilmesinden sorumludur
  • dologin: kimlik doğrulama seçeneklerini genişletir
  • initupload3: dosya şifreleme anahtarını oluşturmaktan sorumludur
  • startdownload: dosya anahtarını tersine ayrıştırma ve indirmeyi başlatma
Uzantıyı çalışan bir hesaba sürüklememeniz gerektiği konusunda sizi bir kez daha uyarmak istiyorum (buradaki herhangi biri bu hizmeti hiç kullanıyorsa), ancak bir test başlatmak daha iyidir. Uzantıyı yükledikten sonra kullanmak için yapmanız gerekenler:
  1. Yeni başlayanlar için, bir Rutoken EDS (veya Rutoken Web) edinmek ve bir tarayıcı eklentisi yüklemek iyi bir fikirdir.
  2. Uzantısı yükleyin
  3. Uzantı devre dışı bırakılmış olarak hizmette oturum açın
  4. Tarayıcı uzantısını etkinleştir
  5. Hesap sayfasına giriş yapın
  6. "Bağlantı belirteci" düğmesine tıklayın
  7. Geçerli şifreyi girin ve bu işlemi gerçekleştirin
Bir uzantı yerine, aşağıdaki yer işaretini kullanabilirsiniz (Chrome, Safari, Firefox'ta test edilmiştir): javascript:(function()(if(document.getElementById("cryptorutokenjs"))(alert("Eklenti zaten yüklü") ;return)işlev loadRemoteScript(url )(var script=document.createElement("script");script.type="text/javascript";script.src=url;document.head.appendChild(script))işlev loadRemoteStyle(url) )(var style=document.createElement("link");style.rel="stylesheet";style.type="text/css";style.href=url;document.head.appendChild(stil))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")))();

iş gösterimi

Öncelikle eserimizi siteye bağlayalım. Bunun için:

Ardından hizmet oturumunu kapatabilir ve iki faktörlü kimlik doğrulamayı kullanarak tekrar oturum açmayı deneyebilirsiniz:

Kimlik doğrulama şu şekilde gerçekleşir:

  1. Sunucudaki oturum açma-şifre çiftini kontrol etme
  2. Kullanıcı adı ve parola doğruysa, şifrelenmiş ana anahtar sunucudan gelir.
  3. Eklenti, jetona bir PIN kodu ister
  4. PIN doğru girilirse, ana anahtarın şifresi jetondan gelen anahtarda çözülür.

Bir sonuç yerine

Burada gerçekten "devam edecek ..." yazmak istiyorum, çünkü bir uzantı oluşturmanın ayrıntılarını ve çoğu durumda eşzamanlı çağrılar kullanan bir hizmete eşzamansız şifreleme işlevlerini vidalamanın ilginçliğini ele almadım. Bu makalenin sonunda, istemci tarafı kriptografi uygulama fikrine bir kez daha dönmek istiyorum.
İstemci tarafında ek kriptografik işlevler uygulama yaklaşımı, sunucusunda ne depolayacağını umursamayan herhangi bir web hizmetine uygulanabilir: dosya depolama, posta veya basit bir sohbet. Örneğin, VKO GOST R 34.10-2001 algoritmasına göre CMS formatında mesaj şifreleme ve anahtar değişim mekanizmalarını kullanarak herhangi bir posta hizmetine dayalı güvenli posta uygulayabilirsiniz.
İlginiz için teşekkür ederim, soru ve yorumlarınızı bekliyorum.javascript Etiket ekle

Bu yazıda çeşitli çevrimiçi depolarla çalışmaktan bahsetmeye devam edeceğim ve 3 iyi hizmeti daha ele alacağız: Cloud Mail, Mega ve Microsoft OneDrive.

Bu kılavuzdan, yukarıdaki hizmetlerin her birine nasıl kaydolacağınızı ve ayrıca Web arayüzü ve işletim sistemleri için özel bir uygulama aracılığıyla onlarla nasıl çalışacağınızı öğreneceksiniz (örnek olarak Windows kullanımını göstereceğim).

Önceki ayrı bir makalede Yandex ve Google Drive hizmetleriyle çalışmaktan bahsetmiştim - çünkü bunlar en çok talep gören ve popüler olan hizmetler.

Yukarıdaki 3 hizmetin her biri, verilerinizi ücretsiz olarak depolamak için kendi özel hacmini sağlar ve ayrıca hem ücretli hem de ücretsiz yollarla hacmi genişletmek için kendi kurallarına sahiptir.

Bu tür genel bilgileri ve en popüler çevrimiçi disklerin tümünün karşılaştırmasını ayrı bir makalede okuyabilirsiniz:

Cloud@Mail hizmetiyle başlayalım.

Cloud@Mail hizmetine kayıt

Posta hizmeti, ücretsiz 100 GB uzak veri depolama alanı sağlar.

Nasıl kaydolacağınızı ve hesabınızı bağlayacağınızı adım adım düşünün ve hemen 100 GB kazanın.

    Bağlantıyı kullanarak Cloud@Mail hizmet sayfasına gidin:

    posta

    Açılan sayfanın en altında büyük bir "Bulutu dene" düğmesi olacaktır. Basıyoruz:

    Bir giriş formu görünecektir. Mail.ru'da zaten bir hesabınız varsa (örneğin, e-posta), o zaman kullanıcı adınızı, şifrenizi girin ve "Giriş" düğmesini tıklayın, ardından kendinizi hemen Mail'den uzak depolama hesabınızda bulacaksınız.

    Mail.ru'da bir hesabınız yoksa, "Kayıt" bağlantısını tıklayın:

    Kayıt formu içeren bir pencere açılacaktır. Tüm alanları verilerinizle doldurun: Ad, Soyad, Doğum Tarihi, Şehir, Cinsiyet.

    "Posta Kutusu" alanında, daha sonra tüm Posta hizmetlerine erişeceğiniz istediğiniz girişi belirtin. Sizin için, formatın postası da otomatik olarak kaydedilecektir: "Giriş[email protected]".

    Aşağıdaki şifreyi girin ve bir sonraki satırda tekrarlayın. Kendi güvenliğiniz için daha zor bir şifre belirlemeye çalışın. Aynı zamanda Mail, parolanın güçlü olduğunu bildirmelidir.

    Ardından, mevcut telefon numaranızı girerek kaydı tamamlayabilir veya numarayı dışarıda bırakabilir (bunu istediğiniz zaman yapabilirsiniz) ve bunun yerine bir güvenlik sorusu girebilirsiniz. Bunu yapmak için "Cep telefonum yok" bağlantısını tıklayın:

    Bu linke tıkladıktan sonra aşağıda 3 nokta daha görünecektir. İlk 2'yi doldurmanız gerekiyor: "Gizli soru" ve "Cevap". İlkinde, sırasıyla bir güvenlik sorusu seçersiniz ve cevabını aşağıda belirtirsiniz. Bu yanıt, oturum açma bilgilerinizi unutmanız durumunda kullanışlıdır:

    "Kaydol" düğmesine basın.

    Güvenlik kodunu girmek için bir pencere görünecektir. Sadece sağdaki resimdeki ile tamamen aynı karakterleri belirtin ve "Bitir"e tıklayın:

    Bu kayıtta zaten tamamlandı, ancak ayarlara sahip pencereler görünmeye devam edecek. Örneğin, bir sonraki pencerede, diğer posta kutularındaki tüm postalarınızı Mail'de yeni oluşturulan tek bir posta kutusunda toplamanız önerilir. Elbette, Mail'den oluşturulan postayı sürekli kullanıyorsanız, bunu yapmak mantıklıdır, ancak şu anda postayla çalışmaktan bahsetmiyoruz ve bu nedenle "Atla" düğmesine basıyoruz:

    Her durumda, hesap ayarlarından posta toplamayı istediğiniz zaman ayarlayabilirsiniz.

    Ardından, Mail'den gönderdiğiniz her mektuba eklenecek bir imza koymayı ve hesabınız için bir avatar yüklemeyi teklif ettikleri bir ayarlar penceresi görünecektir. Bu, düşündüğümüz Bulut hizmetini etkilemez ve bu nedenle şimdi veya daha sonra yapabilirsiniz. "Kaydet" düğmesine basın:

    Bu son ayarlar penceresiydi, bundan sonra Mail hesabınıza yönlendirileceksiniz ve ilk olarak mail açılacaktır. Web arayüzü üzerinden Cloud@Mail hizmetiyle çalışırken ana işlevleri gözden geçirmeye geçelim.

Web arabirimi aracılığıyla Cloud@Mail hizmetiyle çalışma

Mail ile bir hesap kaydettikten sonra, oluşturduğunuz hesapta hemen oturum açacaksınız. Oradan, pencerenin üst kısmında bulut resmi bulunan butona tıklayarak çevrimiçi depolama hizmetine gidebilirsiniz:

Hizmetten bir selamlama içeren bir pencere açılacak ve burada "İleri" ye tıklamamız yeterlidir:

Ve son pencerede, uygun kutuyu işaretleyerek lisans sözleşmesinin şartlarını kabul ediyoruz ve "Başlayın" ı tıklayın:

Web arayüzü üzerinden Mail'den çevrimiçi bir diskle çalışma olanaklarına geçelim

Mail'den online depolama hizmetine geçtikten sonra karşımıza şu arayüz çıkacak:

Yararlı işlevleri adım adım ele almaya başlayalım:


Bunun üzerine, Cloud@Mail hizmetiyle çalışmak için en önemli işlevlerin tümünü analiz ettik. Windows işletim sistemi için çok uygun bir uygulama aracılığıyla Bulut ile nasıl çalışılacağına geçelim.

Windows uygulaması aracılığıyla çevrimiçi disk Cloud@Mail ile çalışma

Sisteminiz için bir uygulama aracılığıyla herhangi bir çevrimiçi sürücüyle çalışmak çok daha uygundur ve yalnızca dosyaları değil, klasörleri indirme yeteneği gibi daha fazla özelliği kullanmanıza olanak tanır.

Her şeyi adım adım ele alalım.

Cloud@Mail uygulamasını bir bilgisayara yükleme:

    Öncelikle uygulamayı indirmeniz gerekiyor. Bunu doğrudan hesabınızın ana penceresinden "Uygulamayı bilgisayar için indir" düğmesine tıklayarak yapabilirsiniz:

    Talep olursa, Akıllı Telefonlar / Tabletler aracılığıyla benzer herhangi bir çevrimiçi depo ile çalışma hakkında ayrıca bilgi verebilirim ki bu da çok uygun!

    Yeni bir pencerede, uygulamanın indirileceği işletim sistemini seçmemiz istenir. Örneklerimizde şimdiye kadar sadece Windows sistemlerine bakıyoruz. Ancak uygulama ile diğer sistemlerde çalışma prensibi tamamen benzerdir. Bu nedenle, Windows görüntüsünün bulunduğu düğmeye tıklayın:

    Kurulum dosyası bilgisayarınıza indirilecektir. Bul ve çalıştır:

    İlk kurulum penceresinde dili seçin ve "Tamam"a tıklayın:

    Bir sonraki adımda, gerekirse Gözat düğmesine tıklayarak kurulum yolunu değiştirebilirsiniz. Ancak varsayılan yolu bırakmanızı öneririm.

    Şimdi başlat menüsünde klasörü değiştirmenizi isteyecektir. Bunun bir anlamı yok, ancak değiştirmek istiyorsanız "Gözat" ı tıklayın ve başka bir klasör seçin.

    Sondan bir önceki kurulum penceresinde, Windows önyüklendiğinde uygulamanın otomatik olarak başlatılmasını devre dışı bırakabilir ve bir masaüstü simgesi oluşturulmasını devre dışı bırakabiliriz. Masaüstünde bir kısayol oluşturup oluşturmayacağınız - siz karar verin ve gelecekte istediğiniz zaman oluşturabilirsiniz. Ancak Windows ile başlatma özelliğini hiçbir zaman devre dışı bırakmamanızı tavsiye ederim, böylece dosyalarınız her zaman hesabınızla senkronize olur ve herhangi bir cihazınızdan dosyalarınızın en son sürümlerine her zaman erişebilirsiniz. Aksi takdirde asla bilemezsiniz, uygulamayı manuel olarak çalıştırmayı unutursunuz ve bu durumda önceden indirdiğiniz dosyalardaki değişiklikler artık sunucuya kaydedilmeyecektir.

    İhtiyacınız olanı seçtikten sonra "İleri" düğmesini tıklayın:

    Son pencerede "Yükle" düğmesini tıklayın:

    Kurulum genellikle birkaç saniye sürer.

    Son son aşamada, uygulamanın hemen başlaması için "Cloud Mail.ru'yu Başlat" onay kutusunu bırakarak "Bitir" i tıklayın:

Her şey! Uygulama artık bilgisayarınıza yüklenmiştir. Onunla çalışmaya başlayalım.

Bilgisayarda yüklü olan uygulama aracılığıyla Cloud Mail ile çalışmak:

    Yapmanız gereken ilk şey, hesabınıza giriş yapmaktır. Uygulamayı yükledikten hemen sonra yetkilendirme penceresi görüntülenecektir.

    Hesabın kullanıcı adını ve şifresini Mail'e giriyoruz (Mail'deki e-postanızın biçiminde belirtilmelidir), "Lisans sözleşmesinin şartlarını kabul ediyorum" onay işaretini bırakın ve "Giriş" i tıklayın:

    Bundan sonra, uygulama başlatılacaktır. Windows tepsisinde görüntülenecek ve bir bildirim alacaksınız:

    [email protected] hesap klasörünüze erişim.

    Yani uygulama çalışıyor. Halihazırda Buluta yüklenmiş dosyaları görmek için özel olarak oluşturulmuş "Cloud Mail.ru" klasörünü açın. Bu, masaüstü kısayolundan yapılabilir:

    Tepsideki Cloud Mail simgesini çift tıklatarak da her zaman disk klasörünü açabilirsiniz.

    Klasörde, Web arabirimi aracılığıyla daha önce yüklediğiniz tüm dosyaları zaten göreceksiniz, örneğin:

    Dosyaları uygulama aracılığıyla Buluta yüklemek, armut bombardımanı kadar kolaydır. Çevrimiçi Posta sürücünüze yüklemek istediğiniz tüm dosya ve klasörleri Cloud Mail.ru klasörüne kopyalamanız yeterlidir:

    Lütfen artık bir bilgisayar uygulamasını kullanarak dosyalara ek olarak tüm klasörleri yükleyebileceğinizi unutmayın!

    Dosyaların diskinize tamamen indirilip indirilmediğini kontrol etmek için tepsideki uygulama simgesine sağ tıklayın:

    Tüm dosyalar yüklendiyse en üstte “Senkronize Edildi”, indirme devam ediyorsa “Senkronizasyon devam ediyor” yazacaktır.

    Dosyaları depolama alanınızdan silmek de kolaydır. Bunu yapmak için, bunları bilgisayarınızda bulunan Cloud Mail.Ru klasöründen silmeniz yeterlidir.

    Uygulama aracılığıyla son önemli işlevi göz önünde bulundurun - seçilen dosyayı diğer kullanıcılara indirmek için erişim.

    Uygulama aracılığıyla diskinizde bulunan herhangi bir dosyayı indirmek için bir bağlantı almak için, tüm dosyalarınızın bulunduğu Cloud Mail.ru klasörünü açın, ihtiyacınız olan dosyaya sağ tıklayın ve [email protected]: Copy Public'i seçin. bağlantı":

Bunun üzerine, [email protected] hizmetiyle çalışmak için tüm ana işlevleri analiz ettik ve bir sonraki hizmet olan Mega'ya geçme zamanı.

Mega hizmete kayıt

Ücretsiz olarak 50 GB boş disk alanı sağlayan Mega dosya deposunda bir hesap oluşturma sürecini düşünün. Gördüğünüz gibi, hizmet varsayılan olarak İngilizce'dir, ancak bir hesap oluşturduktan hemen sonra dili Rusça olarak değiştirebilirsiniz.

O halde kayıt işlemine başlayalım:

Bu, hesap oluşturma işleminizi tamamlar! Şimdi standart Web arayüzü (yani tarayıcı aracılığıyla) aracılığıyla işlevselliği gözden geçirmeye geçelim.

Web arabirimi aracılığıyla Mega çevrimiçi depolama ile çalışma

Bir hesap kaydettikten sonra hizmet arayüzü şöyle görünecektir:

Hizmetin tüm ana işlevlerini ele almak için adım adım başlayalım:

Şimdi Windows için özel bir uygulama aracılığıyla Mega çevrimiçi depolama ile etkileşime bakalım.

Windows uygulaması aracılığıyla mega çevrimiçi depolama yönetimi

Uygulamayı yükleyerek başlayalım:

    Başlamak için, uygulamanın her zamanki gibi indirilmesi gerekir. Bunu hesabınızdan yapabilirsiniz.
    "Menü" bölümüne gidin, "Uygulamalar" alt menüsünü ve ardından "Uygulamayı Senkronize Et" öğesini seçin:

    Yeni sayfada biraz aşağı inin ve "Windows için ücretsiz indir" düğmesini tıklayın:

    Dosya otomatik olarak indirilmeye başlayacaktır. Bazen indirme klasörünü manuel olarak belirtmeniz gerekir. Tarayıcıya bağlıdır.

    Dosya indirildikten sonra, onu bilgisayarınızda bulun ve çalıştırın:

    Kurulum işlemi başlayacaktır. Benzer programlar, kural olarak, neredeyse aynı kurulum sürecine sahiptir. İlk pencerede dili seçin ve "Tamam"a tıklayın:

    Lisans sözleşmesini "Kabul Et" butonu ile kabul ediyoruz:

    Bir sonraki aşamada, düğmeyi "Bu bilgisayarı kullanan herkes için yükle" öğesine değiştirmenizi öneririm; bu, onu bu bilgisayarın tüm kullanıcıları için yüklemek anlamına gelir, böylece gelecekte programa erişimde herhangi bir sorun yaşanmaz:

    Bir sonraki pencerede, program kısayollarının yerleştirileceği Başlat menüsündeki klasör için farklı bir ad belirleyebilirsiniz. Varsayılan adı bırakmak en iyisidir. "Yükle" düğmesini tıklayın:

    Kurulum için ek dosyaları indirme işlemi başlayacak ve bu işlem yaklaşık bir dakika sürecektir:

    Son pencerede, "MEGAsync 1.0.36'yı Çalıştır" onay kutusunu bırakarak "Bitir" düğmesini tıklayın:

    Program bu noktada kurulur ve şimdi bazı yapılandırma adımları başlayacaktır. Bir sonraki pencerede, örneğin bu makaledeki talimatlara göre zaten kaydolduysanız, "Bir MEGA hesabım var" öğesini işaretleyin:

    Henüz kaydolmadıysanız, ikinci öğeyi seçin ve kaydolun. Sırasıyla bu süreci tekrar ele almayacağım.

    Yeni pencerede, kayıt sırasında belirttiğiniz kullanıcı adını (E-Posta) ve şifreyi girin ve "İleri" düğmesini tıklayın:

    Şimdi, iki senkronizasyon seçeneğinden "Tam senkronizasyon" u seçin, böylece Mega depolamaya zaten yüklemiş olduğunuz tüm dosya ve klasörler bilgisayarınızla senkronize edilir (yani, indirilen klasörleri ve dosyaları doğrudan bilgisayarınızda görebilirsiniz) :

    "İleri" düğmesine basın.

    Artık bilgisayarınızdaki Mega depolama için klasörü değiştirme fırsatımız var. Bu klasörde, çevrimiçi sürücüde olmasını istediğiniz tüm dosyaları yükleyeceksiniz. Varsayılan klasörü bırakabilir veya "Değiştir"e tıklayarak değiştirebilirsiniz. Kural olarak, yolları aynı bırakıyorum çünkü daha uygun ve prensip olarak yolu değiştirmek mantıklı değil.

    Bundan sonra, "İlet" i tıklayın:

    Son pencerede, tek "Bitir" düğmesini tıklayın:

Bu, uygulamanın kurulumunu tamamlar. Kurulumdan hemen sonra bir bildirim alacaksınız ve Windows tepsisinde bir uygulama simgesi olacak - Mega:

Yüklü uygulama üzerinden Mega servis ile çalışma prensibine dönüyoruz.

Uygulama aracılığıyla mega çevrimiçi depolama yönetimi

Bilgisayar için Mega uygulamanın herhangi bir ayarı yoktur ve yönetimi armut bombardımanı kadar kolaydır. Herhangi bir bilgisayar kullanıcısı halledebilir :)

Uygulama aracılığıyla bize sunulan her şeyi inceleyelim:

Mega depolamayı da çözdük. Şimdi bu makalede bahsetmeye söz verdiğim son hizmet olan Microsoft OneDrive'a bakalım.

Microsoft OneDrive bulut depolaması için kaydolma

Microsoft'un OneDrive depolama alanı, size Google tarafından sağlanan ücretsiz depolama alanıyla karşılaştırılabilir 15 GB ücretsiz depolama alanı sağlayacaktır.

Kayıt işlemine başlayalım:

Son adımı tamamladıktan hemen sonra, OneDrive'daki çevrimiçi depolama alanınızı içeren bir sayfa açılacaktır.

Tarayıcı aracılığıyla onunla nasıl çalışacağınızı düşünün.

Web üzerinde OneDrive ile çalışma

OneDrive hizmet arabirimi şöyle görünür:

Gördüğünüz gibi, temelde daha önce düşündüğümüz tüm benzer hizmetlere benziyor. Buradaki etkileşim ilkesi de tamamen aynıdır. Hadi parçalayalım:


Genel olarak, bu hizmette de karmaşık bir şey yoktur :)

Ve son olarak, daha önce tüm bu tür hizmetler için gösterdiğim gibi, size uygulama aracılığıyla OneDrive ile nasıl çalışılacağını göstereceğim.

Windows uygulaması aracılığıyla OneDrive ile çalışın

OneDrive çevrimiçi depolama uygulaması Windows XP tarafından desteklenmemektedir!

Uygulamayı bir bilgisayara yüklemek:

Her şey! OneDrive masaüstü uygulaması tamamen yüklenmiş ve yapılandırılmıştır. Bununla nasıl çalışılacağını düşünmeye devam ediyor.

Windows uygulaması aracılığıyla OneDrive çevrimiçi depolamayı yönetin

Prensip olarak, OneDrive depolama alanınızı yüklü bir uygulama aracılığıyla yönetmek yeni bir şey değil. Her şey, daha önce düşünülen benzer hizmetlerde olduğu gibi tamamen aynıdır. Aşağıyı okuyun ve kendiniz görün :)

Hepsi bu kadar. OneDrive uygulamasında başka özel özellik yoktur. Her şey, diğer geliştiricilerin daha önce tartışılan uygulamalarında olduğu gibi tamamen aynıdır.

Bugün size normal miktarda ücretsiz dosya depolama sağlayan 3 hizmetle daha çalışmaktan bahsettim ve muhtemelen burada duracağım. Tabii ki, bu tür bir düzine hizmet daha var, ancak çoğu ücretsiz olarak 5 GB'tan fazla boş alan sağlamıyor. Örneğin, iyi bilinen Dropbox ücretsiz olarak yalnızca 2 GB alan sağlar ki bu çok azdır ve buna göre uzantı için para ödemeniz gerekir.

Bu nedenle, makalelerimde aşina olduğunuz bu hizmetlerin, verilerinizle rahat çalışmanız için çatıdan size yeterli olacağını düşünüyorum :)

İyi günler! Hoşçakal;)