Méga disque cloud. Méga stockage

Permettez-moi de commencer par dire que mon Internet n'est pas particulièrement rapide. Comme je vis actuellement dans un village, je dois utiliser un modem Megafon. Réseau 3G. Ma vitesse Internet habituelle est de 100 à 200 kilo-octets par seconde, et la plus rapide est de 500 à 600 kilo-octets par seconde. Et cela change constamment en fonction de l'heure de la journée et des conditions météorologiques. Mais malgré de telles circonstances, j'ai réussi à télécharger un énorme fichier de 12 Go à partir du service d'hébergement de fichiers Mega. Je vous en dirai plus plus tard et vous le découvrirez par vous-même. informations utiles sur la façon de télécharger des fichiers volumineux à partir de mega.nz.

Au départ, j'ai téléchargé de petits fichiers depuis Mega, en utilisant simplement navigateur classique. À propos, étant donné que l'accès à ce service d'hébergement de fichiers est fermé via certains réseaux, notamment via certains réseaux, vous devez rechercher des moyens supplémentaires pour y accéder. En règle générale, les adresses de fichiers commencent par la ligne https://mega.co.nz. Et si vous ne pouvez pas vous connecter via eux, il vous suffit de remplacer les symboles « mega.co.nz » par « eu.static.mega.co.nz ».

Première façon télécharger un fichier depuis Mega.nz signifie utiliser un navigateur classique. Il est recommandé d'utiliser Google Chrome pour un téléchargement plus réussi. Si le fichier est de grande taille, il est conseillé de nettoyer d'abord le navigateur lui-même de tous les déchets qui s'y accumulent et interfèrent avec le travail ultérieur - il s'agit de l'historique de téléchargement, des cookies, du journal des sites visités. À ces fins, j'utilise utilitaire gratuit appelé CCleaner.

Comment se déroule le processus de téléchargement sur Mega via un navigateur ? Tout d'abord, il est enregistré dans le navigateur, puis lorsqu'il est complètement téléchargé, il est automatiquement transféré sur l'ordinateur. Le plus souvent dans le dossier "Téléchargements". Eh bien, ou vers un autre dossier dans lequel vous avez installé.

Sélectionnez le fichier que vous souhaitez télécharger et cliquez sur « Télécharger en zip ». Ou vous pouvez cliquer sur le fichier clic-droit. Une fenêtre apparaîtra dans laquelle vous cliquerez sur « Télécharger », puis sélectionnerez soit un téléchargement régulier, soit un téléchargement zip. Je préfère télécharger des fichiers dans des archives comme zip et autres.

Au départ, j'ai téléchargé un objet - une archive de 8 Go. Tout s'est bien passé. Le lendemain, j'ai commencé à télécharger un fichier de 12 Go. Je l'ai fait balancer pendant environ 22 heures. Je suis fatigué de lui. La vitesse était, pour une raison inconnue, très faible. Ensuite, alors que le fichier était déjà téléchargé à 90 %, le processus de téléchargement était constamment interrompu et il fallait constamment le redémarrer. Il a été écrit en anglais, à peu près comme ça, le téléchargement continuera une fois que vous aurez libéré de l'espace sur le navigateur. Il est possible que 12 Go soient trop pour le navigateur. De plus, cela a également été influencé par le fait que je n’ai pas effacé le navigateur avant de télécharger. Et en conséquence, 99 % du téléchargement vers Mega a été interrompu. J'étais déçu parce que je ne pouvais rien y faire. Oui, et j'ai passé beaucoup de temps et de trafic. Par conséquent, j'ai dû chercher une autre méthode de téléchargement plus efficace à partir de Mega.

Deuxième façon Comment télécharger à partir du service d'hébergement de fichiers Mega.nz consiste à utiliser le programme Mipony. Elle présente de nombreux avantages. Il est capable de télécharger et ne crée pas de fichiers temporaires. Je l'ai installé depuis mipony.net. Mon programme antivirus n’a détecté aucun signe d’un virus « malveillant » dans ce fichier. Et le site mipony.net semble être officiel, du moins il y paraît. Certes, avec cet utilitaire, un tas de programmes qui n'étaient pas nécessaires pour moi ont été installés. Je vais m’en débarrasser, car je n’en ai pas besoin, même s’ils semblent inoffensifs. Et parmi eux il y a le navigateur Amigo. Je suis déjà tellement fatigué de lui. Je l'installe constamment avec certains programmes. Apparemment, les développeurs logiciel Ce système de promotion consiste à rémunérer les propriétaires d'autres programmes afin qu'en même temps que l'installation de leur fichier, leur application soit également installée.

Ensuite tu choisis fichiers nécessaires ou tout. Pour lancer le téléchargement, cliquez sur « Sélectionner le téléchargement » ci-dessous. Tous les fichiers après ces étapes commencent à être téléchargés.

L'ensemble du processus de téléchargement se déroule dans la section « Téléchargement ».

N'oubliez pas de régler la vitesse sur « Illimité » dans le coin inférieur droit. Au départ, j'avais 10 Ko/s. C'est très peu et vous téléchargerez des fichiers volumineux à cette vitesse non seulement pendant des semaines, mais pendant des mois, voire des années.

Grâce à Mipony, j'ai pu télécharger un fichier de 12 Go en 8 heures environ. Pour vous, ce processus peut prendre beaucoup moins de temps. Tout dépend de la vitesse d'Internet que vous utilisez.

Bonne chance! J'espère que l'article sur la façon de télécharger à partir du service d'hébergement de fichiers Mega vous a été utile.

Mega.co- un stockage cloud qui offre à ses utilisateurs 50 Go gratuits espace disque pour le stockage des données. Cette offre semble alléchante, n'est-ce pas ?

Pour beaucoup, une augmentation aussi significative disque dur pas empêcher. Toutes les données hébergées dans le cloud Méga stockage.co sont stockés sous forme cryptée.

Après la fermeture du plus grand service d'hébergement de fichiers Megaupload sur décision des autorités américaines en 2012, son fondateur Kim Dotcom a lancé un nouveau service cloud pour stocker des fichiers sur Internet.

Le fondateur de Megaupload a fui les poursuites engagées par les forces de l'ordre américaines en Nouvelle-Zélande. Exactement un an après la fermeture du populaire service de partage de fichiers, utilisé par plus de 160 millions d'utilisateurs dans le monde entier, il a été lancé nouveau projet- stockage de fichiers cloud Mega.

De nos jours, vous pouvez trouver de nombreux stockages de fichiers similaires sur Internet, par exemple Google Drive, Microsoft SkyDrive, Yandex.Disk, Dropbox et autres.

Sur cette image, en comparaison, vous pouvez voir le volume de espace libre certains services cloud populaires.

La principale différence entre le stockage cloud Mega.co et des ressources similaires est que actuellement Le stockage cloud offre aux utilisateurs enregistrés 50 Go d'espace disque gratuitement pour stocker leurs fichiers. Dans Mega co nz, il n'y a aucune restriction sur la taille des fichiers téléchargés sur le stockage.

Le nom du service MEGA signifie « MEGA Encrypted Global Access ».

Le stockage cloud vous permet de télécharger des fichiers sur le serveur, de les y stocker et également d'échanger des fichiers avec d'autres utilisateurs. Pendant le processus de téléchargement, les fichiers sont cryptés dans le navigateur à l'aide de l'algorithme AES, qui garantit leur protection contre tout accès non autorisé.

Physiquement, les fichiers sont stockés dans le stockage cloud sous forme cryptée ; l'administration du service cloud n'y a pas accès.

Le service de partage de fichiers Mega prend en charge de nombreuses langues, dont le russe.

Pour commencer à utiliser le stockage cloud, vous devez vous y inscrire en utilisant le lien Mega.co.nz.

Inscription sur Mega.co

Après vous être connecté au site https://mega.co.nz/ via une connexion sécurisée, sur la page principale du service sur panneau du haut besoin de sélectionner la langue russe pour plus utilisation pratique installations de stockage.

Ensuite, vous devez cliquer sur le bouton « Inscription » sur le panneau supérieur de la fenêtre du service. Vous devez saisir vos données dans les champs appropriés (pas nécessairement réels, une sorte de connexion fera l'affaire), saisir votre adresse e-mail (réelle), puis sélectionner un mot de passe pour vous connecter au stockage de fichiers cloud.

Après avoir coché la case à côté de l'élément indiquant votre consentement à la fourniture des services de ce service, vous devrez cliquer sur le bouton « S'inscrire » pour terminer la procédure d'inscription dans le stockage cloud Mega co.

Après cela, vous devrez vous connecter à votre compte de messagerie spécifié lors de l'inscription et ouvrir la lettre de Tim MEGA. puis suivez le lien pour terminer le processus d'inscription au référentiel. Vous devrez saisir les données spécifiées lors de l'inscription et vous connecter au stockage de fichiers cloud.

Comment utiliser Mega.co

Après avoir lancé le stockage, la fenêtre de menu « Gestionnaire de fichiers » s'ouvre devant vous. Tout en haut se trouve une barre de menus et en dessous se trouve une zone permettant de travailler avec les dossiers et fichiers téléchargés. A droite se trouve une colonne permettant de gérer et d'afficher la structure de stockage.

Utilisateurs du navigateur Mozilla Firefox Il est suggéré d'installer le module complémentaire MEGA EXTENSION. Les développeurs recommandent d'utiliser un navigateur sans installer de modules complémentaires Google Chrome. Puisque j'ai le principal Navigateur Firefox, puis j'ai installé l'extension de navigateur recommandée, mais je n'ai remarqué aucune différence dans le fonctionnement du stockage cloud.

La différence dans l'utilisation du service spécifiquement dans le navigateur Google Chrome est que, contrairement aux autres navigateurs, avec Google Chrome, vous pouvez télécharger non seulement des fichiers, mais également des dossiers entiers sur le stockage cloud Mega.co.

Voici à quoi ressemble le panneau de configuration du stockage dans le navigateur Mozilla Firefox. Il y a un bouton « Nouveau téléchargement » sur le panneau. À l'aide du bouton « Nouveau téléchargement », les fichiers sont téléchargés sur le stockage cloud.

Dans le navigateur Google Chrome, il y a deux boutons sur le panneau « Télécharger le fichier » et « Télécharger le dossier ». À l'aide du bouton « Télécharger le fichier », vous pouvez télécharger le fichier sur le stockage cloud depuis votre ordinateur. Après avoir cliqué sur le bouton « Télécharger le dossier », une fenêtre de l'Explorateur s'ouvre dans laquelle vous devez sélectionner un dossier à télécharger vers le stockage de fichiers.

Afin de contourner ce problème, les utilisateurs d'autres navigateurs peuvent créer un dossier dans Mega avec exactement le même nom que le dossier sur l'ordinateur qui doit être téléchargé sur le stockage. Ensuite, vous devez ouvrir le dossier sur votre ordinateur et télécharger son contenu dans le dossier nouvellement créé dans le stockage de fichiers. Ainsi, dossier souhaité sera entièrement chargé dans Mega.

Dans la barre de menu Mon compte, vous pouvez consulter votre statut, la quantité d'espace de stockage utilisé et également configurer le transfert de données.

Ici, vous pouvez modifier le nombre de connexions parallèles pour le téléchargement et le nombre de connexions parallèles pour le téléchargement. Si vous en avez besoin, vous pouvez imposer une limite à la vitesse de téléchargement.

Après avoir cliqué sur le bouton de menu Adhésion Pro, vous pouvez choisir parmi un forfait payant pour stocker un plus grand volume de vos fichiers, de 500 Go à 4 To.

Si vous cliquez sur le bouton de menu « Menu », vous pourrez en savoir plus sur les règles d'utilisation du stockage cloud Mega.co.

Vous pouvez créer un nouveau dossier en cliquant sur le bouton « Nouveau dossier ». Vous pouvez télécharger des fichiers dans le dossier nouvellement créé et également créer d'autres nouveaux dossiers dans ce dossier. Après avoir cliqué avec le bouton droit sur un dossier, dans le menu contextuel, vous pouvez sélectionner les commandes appropriées pour d'autres actions avec le dossier.

Pour télécharger des fichiers sur le stockage de fichiers Mega.co, vous devez cliquer sur le bouton « Télécharger le fichier » dans le navigateur Google Chrome et cliquer sur le bouton « Nouveau téléchargement » dans les autres navigateurs. Dans la fenêtre de l'Explorateur qui s'ouvre, sélectionnez un ou plusieurs fichiers à télécharger sur le stockage cloud.

La vitesse de téléchargement des fichiers est illimitée, sauf si vous la limitez dans les paramètres du service, et elle dépend de la vitesse de la connexion Internet de votre ordinateur. Vous pouvez déplacer les fichiers téléchargés sur le stockage cloud vers des dossiers, les renommer, les partager, obtenir des liens vers eux, les copier ou les supprimer.

Vous pouvez surveiller le processus de téléchargement et de téléchargement de fichiers en bas de la fenêtre du service.

Travailler avec des fichiers dans MEGA s'effectue via l'interface Web. Les clients pour ordinateurs et autres appareils n'ont pas encore été publiés.

Partager des dossiers dans Mega.co

Les dossiers stockés dans le service cloud Mega nz peuvent être partagés. Pour cela, faites un clic droit sur le dossier et cliquez sur « Partage » dans le menu contextuel. Cela ouvrira la fenêtre Partage, où vous pourrez accorder au nouvel utilisateur les autorisations pour partager ce dossier.

Vous devrez saisir l'adresse e-mail de l'utilisateur et sélectionner les autorisations permettant au nouvel utilisateur de partager le dossier hébergé sur votre stockage cloud. Vous pouvez accorder à un autre utilisateur les droits suivants : « Lecture seule », « Lecture et écriture », « Contrôle total ».

Sur adresse e-mail l'utilisateur recevra une lettre avec un lien qu'il devra suivre pour accéder au dossier correspondant situé dans le stockage de fichiers Mega cloud. Les dossiers partagés ont une apparence légèrement différente des autres dossiers de stockage cloud.

Comment obtenir un lien dans Mega. co

Afin de fournir aux autres utilisateurs un lien pour télécharger un fichier situé dans le stockage de données Mega cloud, vous devez cliquer avec le bouton droit sur le fichier et sélectionner « Obtenir le lien » dans le menu contextuel.

Dans un autre cas, seul l'utilisateur ayant reçu un lien vers le fichier et un code de sécurité spécial pourra télécharger le fichier crypté. Sans code de sécurité, il sera impossible de télécharger un fichier à partir d'un lien de ce type.

Dans cette image, deux éléments « File Link » et « File Key » sont activés. Dans ce cas, lorsque vous cliquez sur un lien de ce type, téléchargez ce fichier Tout internaute ayant accès à ce lien pourra le faire.

L'utilisateur peut enregistrer le fichier dans son propre stockage Mega.co si vous cliquez sur le bouton "Importer". Dans ce cas, le fichier sera importé d'un stockage à un autre, sans télécharger le fichier sur votre ordinateur. Il sera possible d'importer des fichiers si l'utilisateur dispose de son propre stockage sur le service Mega.co.

Après avoir cliqué sur le lien, dans une nouvelle fenêtre, l'utilisateur devra saisir la clé de sécurité reçue de votre part pour télécharger le fichier ou pour l'enregistrer dans son stockage de fichiers. Après avoir saisi la clé, l'utilisateur devra cliquer sur le bouton « Télécharger » et activer l'option « J'accepte les conditions de service de MEGA ».

Afin de recevoir une clé de sécurité pour un fichier téléchargé, après avoir copié le lien vers le fichier, vous devez activer le bouton « Clé de fichier » ; les autres boutons doivent être inactifs à ce moment. Vous devrez fournir la clé du fichier à l'autre utilisateur ainsi qu'un lien pour télécharger le fichier.

Après avoir cliqué sur le lien reçu de votre part, dans la fenêtre du service cloud Mega.co, l'utilisateur devra saisir la clé de sécurité reçue de votre part. Après avoir entré la clé du fichier, vous devrez accepter les conditions d'utilisation de MEGA, puis cliquer sur le bouton « Télécharger ».

Lorsque vous cliquez sur le bouton "Importer", le fichier sera enregistré dans le stockage cloud de l'utilisateur, si cet utilisateur dispose de son propre compte dans le stockage cloud Mega co.

Ensuite, la fenêtre « Téléchargement terminé » s'ouvrira, dans laquelle l'utilisateur est invité à enregistrer le fichier manuellement pour terminer le téléchargement. Pour ce faire, dans la fenêtre « Téléchargement terminé », cliquez sur le bouton « Enregistrer le fichier », et dans la fenêtre Explorateur qui s'ouvre, vous devez sélectionner l'emplacement pour enregistrer le fichier téléchargé, donner un nom au fichier, puis cliquer sur sur le bouton « Enregistrer ».

Après cela, le fichier sera enregistré sur votre ordinateur.

Les autres éléments « Nom du fichier » et « Taille du fichier » dans la fenêtre « Liens » ne sont pas particulièrement importants pour le téléchargement de fichiers et contiennent des informations de référence sur le fichier téléchargé.

Étant donné que les fichiers hébergés sur un service de stockage cloud sont cryptés, vous ne pourrez pas les visualiser, les lire ou les écouter lorsqu'ils se trouvent dans le stockage cloud. Pour supprimer complètement les fichiers du stockage cloud, vous devrez vider la corbeille.

Stockage cloud Mega co vous permet de stocker gratuitement des données d'un volume total de 50 Go sur ses serveurs. Les fichiers sont stockés dans le stockage de données cloud sous forme cryptée et, surtout, tout cet espace de stockage de données est fourni gratuitement.

Pour utilisateur régulier De nos jours, sur Internet, il n'est pas particulièrement difficile de trouver et d'utiliser gratuitement un service cloud de partage de fichiers - il y en a beaucoup. Comme on dit, pour tous les goûts et toutes les couleurs.

Le nouveau service de partage de fichiers MEGA ne fera pas exception. Quoi, vous n'avez pas encore entendu parler de MEGA ? MEGA est un nouveau en ligne nouveau service stockage de fichiers, créé par le célèbre homme d'affaires Tim Dotcom. Son service précédent - Megaupload.com - fermé en raison des fortes pressions exercées par les lobbyistes anti-piratage. Mais Tim a été libéré et il a repris ses anciennes habitudes et a créé un nouveau service de stockage de fichiers pour les utilisateurs. Encore plus cool et encore plus intéressant. Et même si le projet est encore humide, il a clairement de l'avenir, puisque l'ancien service d'hébergement de fichiers Megaupload.com il y avait beaucoup de fans.

Compte tenu de son amère expérience, Tim Dotcom est arrivé à la conclusion que tous les fichiers stockés et téléchargés sur le service doivent être cryptés. Cela augmentera la sécurité des utilisateurs utilisant le stockage cloud et empêchera « l’interception » informations personnelles. Dans cette vidéo, Kim partage son opinion sur le cryptage des informations et bien plus encore.

Revenons au service d'hébergement de fichiers MEGA.

Il n'est pas difficile de vérifier que le service est protégé par une connexion cryptée. Si vous regardez la barre d'adresse de votre navigateur (dans ce cas, le navigateur Google Chrome), cela indique que la connexion est établie via un réseau sécurisé. protocole https://. La lettre s signifie sécurisé(sûr).

Auparavant, une telle fonctionnalité n'était utilisée que par les systèmes de paiement et les sites sur lesquels vous deviez saisir des informations de paiement. Désormais, même les moteurs de recherche, comme Google, l’utilisent.

J'espère que vous êtes déjà intéressé. Alors inscrivons-nous sur MEGA et découvrons quoi et comment cela fonctionne là-bas.

Je me suis inscrit dans les premiers jours après l'ouverture du service. A cette époque, c'était encore très buggé, mais malgré cela, j'ai réussi à télécharger un certain nombre de fichiers.

Il convient de noter le fait que le service prend en charge plusieurs langues (dont le russe). C'est un plus indéniable du projet.

Pour vous inscrire, vous devez vous rendre sur le site MEGA et trouver le bouton " Inscription". Créez un nouveau compte - indiquez votre nom (vous pouvez trouver n'importe quel surnom), votre e-mail et votre mot de passe.

Cochez la case "" et cliquez sur le bouton "S'inscrire". Sur courrier électronique postal un e-mail devrait arriver peu de temps après l’inscription. Vous devez trouver un lien dans le corps de la lettre et le suivre. Celui-ci servira de confirmation d'inscription. C'est tout, en fait. L'inscription est terminée.

Connectez-vous à votre compte en précisant votre e-mail et votre mot de passe. Créons maintenant un nouveau dossier. Nous ferons cela afin de ne pas nous tromper, car à l'avenir, il pourrait y avoir beaucoup de fichiers. Recherchez l'icône du nuage rouge dans le gestionnaire de fichiers et cliquez avec le bouton droit. Un menu déroulant devrait apparaître. C'est ça.

Nommons le nouveau dossier " Livres" Nous le mettrons là livres électroniques, ce qui nous a plu :).

Cliquez sur le bouton Créer. On observe qu'un nouveau dossier « Livres » est apparu dans le gestionnaire de fichiers.

En plus du fait que nous pouvons créer un dossier, nous pouvons en supprimer un existant. C'est également facile à faire. Nous devons indiquer le dossier dont nous n'avons plus besoin, et en faisant un clic droit dessus, sélectionner l'élément " dans le menu déroulant Supprimer"Tout est intuitif.

En général, l'interface est très similaire à un système d'exploitation. Ici, vous pouvez également créer un dossier, le renommer, le déplacer ou le copier. La même chose peut être faite avec fichiers réguliers. Essayez-le vous-même et vous le découvrirez rapidement.

Il existe également un dossier spécial - " Panier" Oui, oui, c'est le même panier dans lequel ils s'accumulent fichiers supprimés et des dossiers. Tout comme dans le système d'exploitation. Et c'est très cool, puisque vous pouvez supprimer un fichier par erreur et le regretter amèrement. Les fichiers sont immédiatement supprimés dans la corbeille et peuvent être restaurés si vous le souhaitez. Cela se fait avec une simple commande de déplacement ou de copie.

Apparemment, la poubelle ne peut être vidée que de force via l'élément " Poubelle vide" Autrement dit, les fichiers supprimés sont stockés jusqu'à ce que vous les supprimiez complètement et irrévocablement.

Bon, d'accord, faisons une parenthèse. Essayons de télécharger un fichier dans le dossier « Livres » que nous avons créé. Pour tester. Cliquez sur le dossier « Livres » dans le « panneau » Gestionnaire de fichiers" Ensuite, cliquez sur le bouton « Télécharger le fichier » situé dans le menu supérieur.

Une fenêtre de sélection de fichier apparaît, sélectionnez-le et cliquez sur « Ouvrir ».

Au bas de la page, vous pouvez voir le processus de téléchargement du fichier.

Si le statut indique " en attente…", cela signifie que le fichier est en file d'attente et en attente d'être téléchargé. Cela se produit si plusieurs fichiers ou un dossier contenant des fichiers sont téléchargés. Ne fermez pas la fenêtre de votre navigateur. Dès que la file d'attente de téléchargement atteint un fichier avec un statut en attente, le processus de téléchargement commence, ce qui peut être observé.

En plus du téléchargement fichiers séparés Il est possible de télécharger des dossiers entiers contenant des fichiers. Pour ce faire, cliquez sur le bouton « Télécharger le dossier » et dans la fenêtre « Parcourir le dossier », sélectionnez celui souhaité, cliquez sur OK. Après avoir confirmé votre sélection, le téléchargement commencera.

Il convient d'avertir ici que le téléchargement de dossiers entiers contenant de nombreux fichiers peut prendre un certain temps. longues heures. Le temps de chargement dépend à la fois de la charge sur le service MEGA lui-même et de bande passante Connexions Internet.

Parlons maintenant de la façon dont vous pouvez obtenir un lien vers un fichier et le transférer à quelqu'un d'autre. Il s'agit d'un service de partage de fichiers.

Si vous regardez la liste des fichiers, vous verrez qu'à côté du nom de chaque fichier se trouve cette icône. Lorsque vous cliquez dessus, une fenêtre apparaît pour recevoir un lien vers le fichier (« Liens»).

Ce n'est pas si simple avec les liens. Comme déjà mentionné, tous les fichiers sont cryptés et transmis en toute sécurité sur le réseau. Dans la fenêtre de réception d'un lien vers un fichier, il y a plusieurs cases à cocher (fenêtres où l'on peut supprimer ou cocher des cases). Selon les cases que nous cochons, le lien que nous recevrons dépendra.

    Si vous la cochez, seul un lien vers le fichier apparaîtra dans la fenêtre. Mais vous ne pouvez pas télécharger le fichier à partir de ce lien. Vous avez besoin d'une clé du fichier. Il sera affiché si vous cochez la case clé de fichier.

    Clé de fichier. Il s'agit d'une certaine combinaison de caractères qui donne accès au fichier lors du téléchargement. Le destinataire du fichier devra le saisir dans un champ spécial sur la page de téléchargement.

    Nom de fichier. Cochez la case si vous souhaitez que le nom du fichier soit inclus dans le lien. Il en va de même pour la case à cocher " taille du fichier" Vous pouvez ou non l'indiquer. Ici à votre guise :)

Voyons ce qui se passe si vous spécifiez uniquement "" et "" + " dans les paramètres du lien Clé de fichier" Possibilités " Nom de fichier" Et " taille du fichier» nous ne l'indiquerons pas, car ils n'affectent rien particulièrement, mais sont purement informatifs.

Ensuite, nous ouvrirons nouvel onglet navigateur et copiez le texte du lien reçu dans la barre d'adresse. Vous pouvez utiliser une combinaison de raccourcis clavier CTRL+V. Cette combinaison est responsable du collage du texte copié dans le presse-papiers. Suivons le lien et voyons la page de téléchargement. La page est très bien conçue. Dans la zone centrale de la page, nous verrons ce message.

Oops! Ici, ils nous demandent quelque chose clé de décryptage. Ce n'est qu'en connaissant la clé du fichier que vous pouvez le télécharger. C'est la clé qu'on nous propose de recevoir dans la fenêtre de réception des liens.

Alors, récupérons-le et collons-le dans le champ qui dit " Entrez la clé de décryptage" N’oubliez pas de cocher la case à côté des mots « J'accepte les conditions d'utilisation de MEGA».

Appuie sur le bouton " Télécharger" et attendez que le fichier soit téléchargé.

Comme vous pouvez le constater, la vitesse de téléchargement des fichiers est de 864,5 kbps. , ce qui est beaucoup.

Mais que doivent faire ceux qui n’aiment pas jouer aux espions ? Dans ce cas, lors de la réception d'un lien vers le fichier, cochez les cases « » + « Clé de fichier"et copiez-le.

Voilà, le lien peut désormais être inséré dans le texte d'un e-mail, d'un message ICQ et envoyé à la personne à qui vous souhaitez transférer le fichier. Sur la page de téléchargement de fichiers, vous n'avez pas besoin de saisir de clé, il vous suffit d'accepter les conditions d'utilisation et de cliquer sur le bouton " Télécharger».

Maintenant que nous avons réussi à comprendre l'interface du service, examinons les paramètres. Allez dans l’onglet « Compte » et accédez à la page des paramètres et options.

Le type de compte gratuit sur MEGA vous permet d'utiliser 50 Go d'espace de stockage cloud.

Si vous en voulez plus, payez de l'argent. Mais, à des fins personnelles, ces 50 Go suffisent amplement. Le type de compte payant a également ses avantages. Premièrement, il s’agit d’une vitesse de téléchargement accrue. Deuxièmement, l'augmentation de la quantité d'espace sur le service est de 500 Go ( Pour Ⅰ), 2 To ( Pro Ⅱ), 4 To ( ProⅢ).

Le pourcentage est affiché ici sur la page. espace occupé en stock.

Vous pouvez également définir les paramètres de transmission : limiter la vitesse de transmission, définir le nombre de connexions parallèles. Ici, vous pouvez activer/désactiver la fonction sauter fichiers identiques lors du chargement, ainsi que lors de l'utilisation d'un Protocole SSL. La désactivation du protocole de transfert de données sécurisé augmente la vitesse de téléchargement des fichiers, car dans ce cas, aucun code redondant n'est utilisé.

Sur la même page, vous pouvez consulter votre solde (si vous utilisez un type de compte payant) et l'historique de vos sessions.

Après le lancement du service MEGA, quelque peu scandaleux, les conversations sur sa sécurité ont commencé à bouillonner un peu et se sont calmées. Aujourd'hui, le service vit sa propre vie et personne ne l'a même interrompu. Pour une raison quelconque, le terme « User Controlled Encryption » (UCE, ou User Controlled Cryptography), dont MEGA se vante, a été oublié dans toutes les conversations. Ce que j'entends par "manqué", c'est le fait que nous n'avons pas couvert toutes les possibilités que nous offre un moteur de cryptographie fonctionnant en JavaScript côté client.

Bien entendu, le service MEGA lui-même signifie simplement que les clés de chiffrement ne sont pas stockées sur le serveur, mais toutes leur la cryptographie est effectuée dans le contexte du navigateur. De plus, après le lancement du service, on a beaucoup parlé du fait qu'il utilise des algorithmes cryptographiques faibles et qu'en général tout va mal et nous mourrons tous, et nos fichiers seront lus par le FSB. Cela m’a donné l’idée d’élargir le concept « UCE » et de réellement prendre le contrôle de la cryptographie, c’est-à-dire remplacer ou compléter certains mécanismes de sécurité du service.

Dans cet article, je vais détailler une partie de la magie qui se produit dans deux mégaoctets de code MEGA JavaScript et montrer comment vous pouvez remplacer certaines méthodes pour cesser de vous inquiéter et aimer la cryptographie. En conséquence, nous recevrons un service de stockage de fichiers cloud avec authentification à deux facteurs et cryptage matériel critique une information important.

MEGA, UCE et tout, tout, tout

Commençons donc par examiner les technologies sur lesquelles la partie client du service est construite, comment les nouveaux utilisateurs sont enregistrés, les utilisateurs enregistrés sont authentifiés, les mots de passe sont modifiés et les fichiers sont téléchargés/téléchargés.

Javascript

Comme vous le savez peut-être déjà, tout le côté client du service est basé sur JavaScript, dans le code page d'accueil Les sommes de contrôle SHA-256 sont spécifiées pour tous les scripts et pages chargés par le navigateur. Le téléchargement lui-même se déroule comme suit : les sommes de contrôle sont vérifiées pour tous les fichiers, après quoi elles sont combinées en un seul BLOB, qui est transmis au navigateur. Le code source des fichiers js montre qu'ils ont été écrits par des personnes différentes et il y a parfois des joyaux amusants, comme les conséquences du copier-coller, des conditions dénuées de sens et des variables tout simplement étranges.

En train d'étudier le code source du site, j'ai également remarqué qu'il est mis à jour assez activement, les développeurs corrigent des erreurs mineures et optimisent le code déjà écrit, ce qui est une bonne nouvelle. Le code lui-même est écrit de manière très simple et sans prototypage inutile : le site utilise trois cents variables globales et plus de 8 000 fonctions. Il a été très simple de comprendre l'architecture du site et de modifier son code.

Parmi les frameworks tiers, MEGA utilise jQuery (vous ne pouvez plus vous en passer maintenant), Ext JS et SJCL. Ce dernier implémente un noyau cryptographique avec cryptage AES. SJCL fournit également un format intéressant pour stocker les clés et autres tableaux d'octets : au lieu de simplement stocker les octets dans un tableau normal, ils sont « compressés » dans un format appelé a32. Son essence est que le contenu de tout tableau d'octets est regroupé en nombres de 32 bits et écrit dans un tableau de longueur plus courte. Autrement dit, tous les 4 octets du tableau sont convertis en un entier banal. Le code du site contient des fonctions qui effectuent toutes sortes de transformations sur un ensemble improvisé (tableau a32, chaîne, chaîne base64).

Information clé

Avant de passer à la description des processus d'enregistrement et d'authentification, il convient de considérer les informations qui font l'objet d'un cryptage, à savoir :
  • Clé principale du compte, qui est créé aléatoirement au moment de l'enregistrement de l'utilisateur et a une longueur de 128 bits. Et en principe, la longueur de toutes les clés utilisées pour le chiffrement symétrique est de 128 bits.
  • Clé privée RSA: Créé au moment de l'inscription en fonction des mouvements de la souris et de la saisie au clavier. Dans cet article, je ne me concentrerai pas sur la cryptographie asymétrique, car elle est utilisée pour partager des fichiers téléchargés, et ma tâche consistait à modifier le processus d'authentification et de cryptage des données utilisateur.
  • Clés de fichiers individuelles et fichiers eux-mêmes, téléchargé sur le service. Les clés sont générées de manière aléatoire lorsqu'un fichier est chargé, la clé elle-même est utilisée pour chiffrer les données du fichier et une clé créée sur la base de la clé individuelle du fichier et de sa somme de contrôle est utilisée pour chiffrer les attributs.

Plus proche du code

Je propose maintenant d'analyser les processus d'enregistrement et d'authentification, de voir comment la clé principale est créée et comment elle est cryptée.
J'ai essayé de représenter ces processus sur papier et afin de vous faire comprendre l'essence de la folie, j'ai même pris cette photo :

Enregistrement d'un nouvel utilisateur

Le processus d'enregistrement lui-même est assez déroutant ; une fois que l'utilisateur a rempli le questionnaire, un grand nombre de fonctions sont appelées, mais nous nous intéressons à la fonction api_createuser :

// création d'un nouvel utilisateur et de sa fonction de clé principale api_createuser(ctx, invitecode, invitename, euh) ( var i; var ssc = Array(4); // auto-défi de session, sera utilisé pour vérifier le mot de passe 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(); // génération d'une clé principale aléatoire u_k pour (i = 4; i--;) ssc[i] = rand(0x100000000); // génération d'une séquence d'authentification aléatoire if (d) console.log("api_createuser - masterkey: " + u_k + " passwordkey: " + ctx.passwordkey); // chiffre la clé maître sur le mot de passe actuel et l'envoie au serveur (champ k) // le champ ts est la concaténation de ssc avec sa valeur chiffrée req = ( a: "up", 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 (invitecode) ( req.uh = euh; req.ic = invitecode; req.name = nom de l'invitation ; ) if (d) console.log("Clé de stockage : " + req.k); api_req(,ctx); )
Dans cette fonction nous nous intéressons aux choses suivantes :

  • u_k est la clé principale elle-même, une variable globale. Un tableau de 4 nombres de 32 bits, créé par la fonction api_create_uk
  • ssc est simplement un tableau aléatoire chiffré avec la clé principale, concaténé avec sa valeur publique et envoyé au serveur. Plus tard, il sera utilisé pour vérifier l'exactitude de la clé principale lors de l'authentification
  • sjcl - bibliothèque cryptographique implémentant AES
  • rand() - implémentation locale d'un générateur de nombres pseudo-aléatoires basé sur RC4
  • encrypt_key() est la fonction fondamentale de la cryptographie symétrique du service. Accepte un objet sjcl initialisé avec une clé et un tableau qui doit être chiffré. Le code de fonction est donné ci-dessous et, espérons-le, ne nécessite aucune explication.
// chiffrer/déchiffrer la fonction de tableau d'entiers 32 bits à 4 ou 8 éléments encrypt_key(cipher, a) ( if (a.length == 4) return cipher.encrypt(a); var x = ; for (var i = 0;je< a.length; i += 4) x = x.concat(cipher.encrypt(, a, a, a])); return x; }
En conséquence, après l'enregistrement, les éléments suivants sont envoyés au serveur :
  • Clé principale chiffrée avec la clé dérivée du mot de passe du compte
  • Chaîne comme ssc||encrypt_AES-128(u_k, ssc)

Utilisateur en ligne

Vous pouvez désormais passer en douceur au processus d'authentification. En bref, cela se fait ainsi :
  1. L'utilisateur saisit son identifiant/mot de passe
  2. Si la première étape d'authentification est réussie, alors une clé principale cryptée et une séquence d'authentification (ssc) créée lors de l'enregistrement sont reçues du serveur
  3. La clé principale est déchiffrée à l'aide du mot de passe saisi par l'utilisateur
  4. La séquence d'authentification est déchiffrée sur la clé principale et comparée à sa valeur ouverte, vérifiant ainsi l'exactitude de la clé principale et du mot de passe.
La fonction de rappel api_getsid2 est responsable de tout ce qui précède :

// déchiffre la clé principale une fois que l'utilisateur s'est connecté à la fonction api_getsid2(res, ctx) ( var t, k; var r = false; if (typeof res == "object") ( // initialise sjcl-aes avec le compte actuel password var aes = new sjcl.cipher.aes(ctx.passwordkey); // si nous avons reçu une clé principale dans la réponse du serveur... if (typeof res.k == "string") ( k = base64_to_a32(res. k); if (k.length == 4) ( // ... puis déchiffrez-le k = decrypt_key(aes, k); // et réinitialisez sjcl-aes en utilisant la clé principale aes = new sjcl.cipher. aes( k); // si nous avons reçu ssc du processus d'enregistrement if (typeof res.tsid == "string") ( t = base64urldecode(res.tsid); // crypte la première moitié de la chaîne et compare avec le valeur du serveur // s'ils correspondent - cela signifie que tous les identifiants et mots de passe sont convenus et vous pouvez laisser l'utilisateur entrer if (a32_to_str(encrypt_key(aes, str_to_a32(t.substr(0, 16)))) == t .substr(-16)) r = ; ) // La clé privée de la paire RSA est analysée ci-dessous, cela ne nous intéresse pas encore sinon if (typeof res.csid == "string") ( var t = mpi2b( base64urldecode(res.csid)); var privk = a32_to_str(decrypt_key(aes, base64_to_a32(res.privk))); var rsa_privk = Tableau(4); // décompose la clé privée pour (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 (typeof rsa_privk[i] == "number") break; prik = prik.substr(l); ) // vérifier le format if (i == 4 && prikk.length< 16) { // TODO: check remaining padding for added early wrong password detection likelihood r = ; } } } } } ctx.result(ctx, r); }
En bonus à l'inscription/authentification, vous pouvez jeter un œil au processus de changement de mot de passe.

// change la fonction de mot de passe utilisateur 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)), euh: stringhash(u_attr["email"].toLowerCase(), pw_aes) )], ctx); )
Le code de cette fonction est explicite : nous chiffrons la clé principale avec deux clés obtenues à partir de l'ancien et du nouveau mot de passe, puis envoyons ces valeurs au serveur. Si Mot de passe actuel apparaît, puis il est remplacé par un nouveau. Ici, je voulais attirer davantage l'attention sur la fonction prepare_key_pw, qui était implicitement présente dans toutes les opérations précédentes. Sa tâche est de convertir la chaîne de mot de passe en un tableau a32, puis d'effectuer l'opération de dérivation de clé comme suit :

// convertit la fonction de tableau de mots de passe fournie par l'utilisateur 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; }
Cette fonctionnalité a suscité de nombreuses critiques car elle repose sur un algorithme développé en interne. Lors de la rédaction de cet article, les créateurs du service ont réussi à modifier un peu son code, mais je n'ai remarqué aucun changement significatif. Son essence est que le mot de passe transmis est crypté 65 536 fois à l'aide d'une clé constante afin d'obtenir une clé impossible à distinguer d'une clé aléatoire. Pourquoi les créateurs du service n'ont pas utilisé les algorithmes existants (par exemple, PBKDF2) reste un mystère.

Téléchargement et cryptage de fichiers

En bref, tout ce processus peut être représenté comme ceci :

Je vous préviens, approfondir cette image pendant longtemps est dangereux pour le cerveau, je vais donc vous expliquer ci-dessous comment tout cela se passe.

Comme je l'ai déjà dit, lors du chargement, chaque fichier crée sa propre clé de tableau aléatoire de 6 nombres de 32 bits. Les quatre premiers éléments de ce tableau sont utilisés pour crypter le contenu du fichier et les deux derniers sont utilisés comme valeurs initiales du compteur utilisé pour calculer la somme de contrôle du fichier. Ce tableau est stocké dans la variable globale ul_key. Son contenu est saisi dans la chaîne sérialisée JSON ul_KeyNonce .

Le décryptage lui-même se produit avec utiliser le Web Worker (si le navigateur prend en charge cette technologie) ou simplement dans le code de la page principale. Lorsqu'un fichier est prêt à être envoyé, une nouvelle clé, filekey , est créée pour crypter ses attributs (actuellement juste le nom du fichier) en fonction de la ul_key et de la somme de contrôle du fichier. Cette clé est ensuite chiffrée avec la clé principale et envoyée au serveur avec les attributs du fichier. Les fonctions initupload3 et api_completeupload2 sont responsables de toutes ces actions. La clé de fichier est créée dans la fonction ul_chunkcomplete, ci-dessous j'en donnerai une partie.

// commence à charger le fichier : création de sa clé individuelle et initialisation du mécanisme de chiffrement fonction initupload3() ( // ... cut =) // création d'une clé individuelle aléatoire pour le fichier // ul_key est utilisé dans le code de la page, / / ul_keyNonce est transmis au Web Worker et utilisé ici // pour chiffrer un fichier et calculer sa somme de contrôle ul_key = Array(6); pour (i = 6; i--;) ul_key[i] = rand(0x100000000); ul_keyNonce = JSON.stringify(ul_key); ul_macs = ; // ... ensuite c'est le traitement de la file d'attente de téléchargement, cela n'a aucun intérêt... // initialisation de sjcl-aes pour un fichier basé sur ul_key ul_aes = new sjcl.cipher.aes(); // ... // démarrage du processus de téléchargement du fichier : // lecture à partir du disque, cryptage et envoi de onUploadStart(ul_queue_num); ul_dispatch_chain(); ) // création d'une clé pour chiffrer les attributs du fichier fonction ul_chunkcomplete(slot,pos,response) ( // ... var t = ; // ul_macs - un tableau avec la somme de contrôle du fichier obtenue à l'intérieur du travailleur pour (p in ul_macs) t .push(p); // remplissage et tri d'un tableau temporaire, si quelqu'un sait pourquoi - veuillez expliquer t.sort(function(a,b) ( return parseInt(a)-parseInt(b) )); for ( var je = 0;je< 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 ( // crypte le nom du fichier à la clé dérivée de ul_key et de la somme de contrôle // ctx.k == filekey a = ( n: ctx.n ); if (d) console.log(ctx.k); var ea = enc_attr(a, ctx.k) ; if (d) console.log(ea); // transfert d'attributs et clé de fichier chiffrés sur la clé maître var req = ( a: "p", t: ut, n: [( h: ctx.t, t: 0, a : ab_to_base64(ea), // attributs k : a32_to_base64(encrypt_key(u_k_aes, ctx.k)), // == AES_encrypt(u_k, filekey) fa: ctx.fa )] ); if (ut) ( // une cible a été fournie : chiffrer tous les partages pertinents var sn = fm_getsharenodes(ut); if (sn.length) ( req.cr = crypto_makecr(, sn, false); req.cr = ctx.t; ) ) api_req(, ctx.ctx); ) )

Téléchargement et décryptage de fichiers

Évidemment, ces processus devraient simplement être l’inverse du cryptage du fichier. La seule chose qui peut être intéressante est d'obtenir la valeur de la clé ul_key à partir de la valeur filekey cryptée provenant du serveur.

Au moment du téléchargement du fichier, le contexte du navigateur contient déjà un objet qui stocke les clés du fichier déchiffré. Par conséquent, il est logique de considérer d'abord le processus qui se produit immédiatement après l'authentification de l'utilisateur, à savoir le téléchargement du gestionnaire de fichiers. Une fois que l'utilisateur a été autorisé à accéder au service, il souhaite naturellement accéder à ses fichiers (en supposant qu'il les y avait déjà). Pour ce faire, nous devons d'abord décrypter les clés des fichiers, puis leurs attributs. Cette question est traitée par un autre pack de fonctions, dont nous nous intéressons à loadfm_callback et process_f_f .

En bref, le processus d'obtention des attributs du fichier peut être décrit par l'algorithme suivant :

  1. Attendez que le gestionnaire de fichiers se charge (loadfm_callback), où vous pourrez obtenir du JSON avec une description de tous les fichiers téléchargés
  2. Créer un tableau Farray dans lequel placer un tableau contenant des informations sur les fichiers
  3. Exécutez (récursivement) la fonction process_f_f pour chaque fichier
  4. Pour chaque fichier possédant une clé, déchiffrez cette clé et ces attributs (fonction crypto_processkey) et enregistrez-les dans un tableau contenant les informations sur le fichier.
  5. Après cela, enregistrez les valeurs déchiffrées dans la variable FileStore (fin de la récursion dans process_f_f)
Ci-dessous, je fournirai des extraits de code illustrant cet algorithme

// rappel pour charger la fonction du gestionnaire de fichiers loadfm_callback(json, res) ( // ... // traitement de JSON avec des informations sur les fichiers 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, ID utilisateur : json.s[i].u, ID de dossier : json . s[i].h, droits : json.s[i].r, date : json.s[i].ts )); sharednodes.h] = true; ) ) ) // ... alors rien de spécial . .. // saisie des informations sur les fichiers dans un autre tableau global farray = new Object; farray.f = json.f; // commençant son traitement, le rappel a été déclaré ci-dessus // ​​dans cette fonction et modifie simplement la mise en page process_f (fi, false , callback); fi++; ) // fonction récursive dans laquelle les clés et les attributs des fichiers sont déchiffrés // appelée depuis la fonction process_f process_f_f(fid) ( // condition de fin de récursion - nous avons traité tous les fichiers du tableau Farray si (!farray.f.i ]) ( if (farray.ap) FileStore.suspendEvents(); // écriture de données dans 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); renvoie faux ; ) var f = farray.f.i]; f.attrs = f.a; if (f.sk) u_sharekeys = crypto_process_sharekey(f.h, f.sk); // si le fichier correspond au type et possède une clé, alors traitez-le if ((f.t !== 2) && (f.t !== 3) && (f.t !== 4) && (f.k)) ( crypto_processkey(u_handle , u_k_aes , f); // description de cette fonction ci-dessous 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; sinon si (f.t == 3) InboxID = f.h; sinon si (f.t == 4) TrashbinID = f.h; sinon si ((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 + ":"); // vérifie d'abord si le fichier est partagé if (p) ( // je ne le fais pas - ai-je une clé de partage appropriée ? pour (id dans u_sharekeys ) ( p = file.k.indexOf(id + ":"); if (p >= 0 && (!p || file.k.charAt(p - 1) == "/")) break; p = -1; ) ) // et ensuite nous pouvons passer au décryptage if (p >= 0) ( delete keycache; // slash - apparemment un signe de partages var pp = file.k.indexOf("/", p) ; si (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)); ) // si nous avons correctement déchiffré la clé et les attributs, nous les sauvegardons dans un fichier objet file.key = k; fichier.nom = o.n; ) ) ) else ( if (d) console.log("Reçu aucune clé appropriée : " + fichier.h); if (!missingkeys) ( nouvelles clés manquantes = true; clés manquantes = true; ) keycache = fichier.k; ) )
Après cela, nous pouvons obtenir la valeur de la clé d'origine ul_key à partir du contexte du navigateur comme ceci : dl_keyNonce = JSON.stringify();
Cette conversion se produit dans la fonction startdownload. Si l'on prend en compte que la valeur dl_key == filekey de la fonction ul_chunkcomplete et effectue des opérations d'addition modulo simples, on remarquera que la variable dl_keyNonce stockera la valeur ul_key générée lors du chargement du fichier. Une illustration de ceci peut être vue dans le coin inférieur gauche du tableau sur la photo au début de la section sur le téléchargement de fichiers.

"Surcharge" des opérations cryptographiques

Malgré le fait que les principes décrits ci-dessus pour protéger les fichiers et les clés soient très sécurisés, certains pourraient ne pas apprécier le fait que nous dépendions toujours de la mise en œuvre des algorithmes fournis par le service. Dans ce cas, nous pouvons développer notre propre extension de navigateur, qui remplacera certaines fonctions du service en y implémentant un cryptage supplémentaire. À savoir, j'ai décidé de mettre en œuvre la protection des informations clés (clé principale et clés de fichiers) à l'aide d'un cryptage matériel sur une clé non amovible selon l'algorithme GOST 28147-89. Un bonus à cela sera également l'inclusion de l'authentification à deux facteurs sur le service.
Considérons donc ce cas d'utilisation :
  • L'utilisateur s'inscrit sur le service
  • Ensuite, il installe l'extension
  • Avec son aide, le cryptage matériel de la clé principale est effectué à l'aide d'une clé qui ne peut pas être extraite du jeton.
  • La clé principale ainsi chiffrée est téléchargée sur le serveur
Après cela, il sera impossible d'obtenir la valeur de la clé principale sans posséder le token et son code PIN. Cela donnera :
  1. Authentification à deux facteurs sur le service (sans clé principale correctement déchiffrée, la fonction api_getsid2 échouera)
  2. Sans jeton, vous ne pourrez pas non plus modifier le mot de passe de votre compte actuel.
L'étape suivante consiste à chiffrer à l'aide du jeton de clé de chiffrement de fichier (également appelé ul_key) et de la clé d'attribut de fichier (filekey), qui est stockée sur le serveur. Ainsi, nous obtiendrons que chaque fichier sera crypté avec une clé qui n'arrivera jamais au serveur, où ira la clé de fichier que nous avons chiffrée à partir de la fonction api_completeupload2. Les attributs du fichier seront chiffrés sur la valeur publique de filekey . Pour plus de clarté, j'ai esquissé le schéma suivant illustrant le processus de téléchargement d'un fichier :

Je tiens à souligner qu'ici j'ai utilisé une méthode très astucieuse. Dans ce cas, il est important pour nous qu’un attaquant ne puisse pas décrypter le fichier, même s’il intercepte la clé du fichier reçue du serveur et connaît la clé principale de l’utilisateur. Vous pouvez donc ici jouer sur les particularités de l'architecture du service et utiliser la valeur de clé ul_keyNonce (alias dl_keyNonce) obtenue en chiffrant la valeur de la clé ul_key (ou dl_key) pour chiffrer les fichiers.

Depuis la rédaction de ces articles, notre produit a ajouté la possibilité d'utiliser le cryptage matériel à l'aide de l'algorithme GOST 28147-89. La version bêta du plugin avec fonctionnalité de cryptage matériel selon l'algorithme GOST 28147-89 peut être téléchargée. Cette version du plugin n'a pas encore été entièrement testée, je vous préviens donc qu'elle peut contenir des erreurs, merci de les signaler dans un message personnel.
Dans l'interface du plugin, le chiffrement symétrique est implémenté par la fonction encrypt, qui a la syntaxe suivante :
encrypt(deviceId, keyLabel, data, resultCallback, errorCallback) → (string)
La fonction prend en entrée :

  • ID de l'appareil, numéro
  • Étiquette de la clé de cryptage, numéro (s'il n'y en a pas, elle sera générée)
  • Données chiffrées, chaîne (chaîne contenant un tableau d'octets de la forme "aa:bb:cc:dd")
  • Fonctions de rappel pour la réussite ou l'échec d'une opération de cryptage
Le décryptage se fait de la même manière en utilisant la fonction decrypt
Une attention particulière doit être portée au libellé de la clé, car elle détermine sur quelle clé les données seront déchiffrées. L'étiquette est une chaîne arbitraire et sert principalement à identifier facilement la clé. Dans ce cas, j'utilise deux paires de clés : une pour chiffrer la clé principale, la seconde pour chiffrer les clés de fichiers individuelles. La clé sur laquelle la clé principale est cryptée a une étiquette égale au mot de passe de l'utilisateur (j'ai maintenant eu l'idée d'utiliser un hachage de la chaîne e-mail||mot de passe, je vais résoudre ce problème prochainement avenir). Pour crypter les clés des fichiers téléchargés, une clé avec une étiquette égale à la représentation sous forme de chaîne de la clé principale est utilisée (ici, il vaut également la peine d'utiliser le hachage de la clé principale).

Développement direct

Je voudrais immédiatement faire une remarque sur mon code source : il est en fait en version alpha, bien qu'il implémente la fonctionnalité décrite ci-dessus. Je n'ai pas vérifié dans quelle mesure ma modification s'est avérée compatible avec les autres fonctions du service, j'ai donc posté toutes les sources sur github et je serai heureux de toute aide pour finaliser ce système. Par conséquent, je n’encombrerai pas davantage l’article avec d’énormes listes, mais je décrirai seulement régime général travaux d'agrandissement.

L'extension terminée peut être téléchargée. Il a été développé à l'aide du service Crossrider, qui fournit des extensions pour trois navigateurs (Chrome, Firefox et IE), mais il est préférable de vérifier son fonctionnement dans Chrome ou Firefox, et dans le premier, il fonctionne de manière beaucoup plus stable.

Le code de l'extension est assez simple : il vérifie si nous sommes sur la page du service et si c'est le cas, il charge simplement des scripts supplémentaires. Ces scripts modifient le code de la page, ajoutent quelques boîtes de dialogue et remplacent les fonctions de service suivantes :

  • changepw : responsable du changement du mot de passe
  • api_getsid2 : l'un des rappels de connexion
  • api_completeupload2 : rappel pour terminer le téléchargement du fichier
  • loadfm_callback : rappel de chargement du gestionnaire de fichiers
  • processpacket : un autre rappel, dans lequel les attributs du fichier qui vient d'être téléchargé sont déchiffrés
  • parsepage : responsable du dessin de boîtes de dialogue supplémentaires
  • dologin : étend les capacités d'authentification
  • initupload3 : responsable de la création de la clé de cryptage du fichier
  • startdownload : analyse inversée de la clé du fichier et initialise le téléchargement
Encore une fois, je tiens à vous avertir que vous ne devez pas faire glisser l'extension sur votre compte professionnel (si quelqu'un ici utilise ce service), mais il est préférable d'en créer une de test. Pour utiliser l'extension après l'avoir installée, vous aurez besoin de :
  1. Pour commencer, c'est une bonne idée d'obtenir Rutoken EDS (ou Rutoken Web) et d'installer un plugin de navigateur
  2. Installer l'extension
  3. Connectez-vous au service avec l'extension désactivée
  4. Activer l'extension dans le navigateur
  5. Aller à la page du compte
  6. Cliquez sur le bouton « Lier le jeton »
  7. Entrez le mot de passe actuel et effectuez cette opération
A la place de l'extension, vous pouvez utiliser le bookmarklet suivant (testé dans Chrome, Safari, Firefox) : javascript:(function())(if(document.getElementById("cryptorutokenjs"))(alert("Le plugin est déjà installé" );retour)fonction loadRemoteScript(url )(var script=document.createElement("script");script.type="text/javascript";script.src=url;document.head.appendChild(script))fonction 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")))();

Démonstration de travail

Tout d'abord, connectons notre création au site. Pour ça:

Vous pouvez ensuite vous déconnecter du service et essayer de vous reconnecter en utilisant l'authentification à deux facteurs :

L'authentification s'effectue selon le schéma suivant :

  1. Vérification du couple login-mot de passe sur le serveur
  2. Si le login et le mot de passe sont corrects, alors une clé principale cryptée provient du serveur
  3. Le plugin demande un code PIN pour le token
  4. Si le code PIN est saisi correctement, la clé principale est déchiffrée sur la clé du jeton

Au lieu d'une conclusion

Ici, j'ai envie d'écrire « à suivre... », puisque je n'ai pas abordé les détails de la création de l'extension et l'intérêt d'intégrer des fonctions de chiffrement asynchrone dans un service qui utilise dans la plupart des cas des appels synchrones. En conclusion de cet article, je voudrais revenir une fois de plus sur l'idée de mettre en œuvre une cryptographie côté client.
L'approche consistant à implémenter des fonctions cryptographiques supplémentaires côté client peut être appliquée à tout service Web qui ne se soucie pas de ce qui est stocké sur son serveur : qu'il s'agisse de stockage de fichiers, de courrier ou d'un simple chat. Par exemple, vous pouvez mettre en œuvre une messagerie sécurisée basée sur n'importe quel Service postal en utilisant le cryptage des messages au format CMS et des mécanismes d'échange de clés utilisant l'algorithme VKO GOST R 34.10-2001.
Merci de votre attention, j'attends avec impatience vos questions et commentaires.javascript Ajouter des tags

Je suis sûr que tous les internautes actifs ont entendu parler de l'histoire de la fermeture du service d'hébergement de fichiers populaire Megaupload et des mésaventures de son créateur. Et ils connaissent certainement le nouveau projet de Kim Dotcom intitulé Méga. Rappelons que ce service est la réincarnation de la précédente création de Kim, mais sur une toute autre plateforme.

Lors de sa création, toutes les lacunes et erreurs de Megaupload ont été prises en compte et l'accent a été mis principalement sur la stabilité du service d'hébergement de fichiers. Et pas seulement aux charges du réseau, mais aussi aux attaques des titulaires de droits d'auteur. Pour y parvenir, une grande attention est portée à la confidentialité et à la sécurité de vos données. Tous les fichiers que vous téléchargez sont cryptés avec un algorithme spécial, de sorte que l'administration du service n'a aucune idée du contenu de vos comptes et, par conséquent, ne peut en être tenue responsable. Dans le même but, les serveurs Mega sont situés dans différents pays, donc s'il y a des problèmes avec les lois d'un pays, cela n'entraînera pas l'effondrement de l'ensemble du service et vos données resteront intactes.

Aujourd'hui, nous souhaitons vous présenter de plus près le travail de ce service et vous proposer une petite visite guidée par capture d'écran de ses fonctions.

Pour commencer, vous devez vous inscrire. Pour ce faire, vous devez indiquer votre nom, adresse postale et mot de passe. Le service est parfaitement russifié et parfaitement conçu.

Une fois l'inscription terminée, vous recevrez un lien de connexion à l'adresse e-mail que vous avez fournie. En cliquant sur le lien, vous devrez attendre quelques minutes jusqu'à ce que des clés secrètes spéciales soient générées pour vous, avec lesquelles les données seront cryptées.

Nous entrons dans notre stockage cloud. Tout ici est clair et simple : l'arborescence des dossiers est à gauche, la zone d'affichage des fichiers est au centre et la barre d'outils est en haut. Les fichiers peuvent être téléchargés en cliquant sur le bouton Nouveau téléchargement ou simplement en le faisant glisser dans la fenêtre de service. Les téléchargements sont exceptionnellement rapides.

Les fichiers peuvent être organisés en dossiers. Le déplacement de fichiers entre dossiers se fait en glissant ou en utilisant menu contextuel(voir ci-dessous). Le niveau d'imbrication des répertoires n'est pas limité.

Un lien pour télécharger le fichier est généré dans la fenêtre pop-up qui apparaît.
Notez les options en haut de cette fenêtre. Si activé uniquement Lien vers le fichier, votre destinataire ne pourra pas télécharger le fichier sans saisir un mot de passe spécial, que vous pourrez lui envoyer séparément par e-mail. De cette façon, vous pouvez publier des liens de téléchargement dans des lieux publics, comme un blog ou un forum, mais n'autoriser que certaines personnes à télécharger.
Si en plus marqué Clé de fichier, alors n'importe qui peut télécharger le fichier en utilisant le lien créé. Cases à cocher Nom Et taille du fichier ajoutez les caractéristiques de fichier appropriées.

Le menu contextuel du dossier est légèrement différent. Il y a un point ici Partage. Avec lui, vous pouvez inviter vos collaborateurs, vos amis ou votre famille à partager. Les invitations sont envoyées par email et l'accès peut être différents niveaux. Lecture seule - visualisation uniquement, Lire écrire— visualiser et télécharger vos fichiers dans un dossier, Accès total— visualisation, téléchargement et suppression de fichiers.

Au chapitre Compte vous pouvez visualiser la plénitude de votre stockage, acheter lit supplémentaire, modifiez les paramètres de transfert de données et certaines autres options.

Quelques impressions personnelles

Service de partage de fichiers Méga fait une grande impression. Excellente vitesse de fonctionnement, interface claire et agréable, 50 gigaoctets d'espace disque, aucune restriction sur le trafic et la taille des fichiers téléchargés, ainsi que la liberté et la confidentialité totales de vos données. C'est juste une sorte de vacances !

Les capacités du service Mega peuvent être utilisées à diverses fins. Tout d'abord, c'est la distribution divers types des informations qui plairont grandement aux pirates de tous les continents. Cependant, la possibilité d'un accès limité à l'aide de mots de passe peut également être utile pour la vente légale de leurs créations, par exemple par des musiciens. Le partage de dossiers fait de Mega un outil intéressant pour organiser le travail à distance. Et bien sûr, une banale sauvegarde des informations qui vous tiennent à cœur.

La seule chose qui manque à Mega, c'est à ce stade- c'est un ordinateur de bureau et client mobile pour différent systèmes d'exploitation. Compte tenu du jeune âge du service, on peut espérer que les développeurs n’ont tout simplement pas encore eu le temps et qu’un tel client apparaîtra bientôt. Après cela, je ne vois aucun obstacle à ce que Mega devienne la nouvelle norme en matière de stockage de fichiers dans le cloud.