В данной статье я продолжу рассказывать о работе с различными онлайн хранилищами и рассмотрим мы ещё 3 хороших сервиса: Облако Mail, Mega и Microsoft OneDrive.
Из данного руководства вы узнаете как зарегистрироваться в каждом из приведённых выше сервисов, а также о том, как с ними работать через Web интерфейс и специальное приложение для операционных систем (я покажу на примере Windows).
О работе с сервисами Яндекс и Google дисками я рассказывал в отдельной предыдущей статье — , поскольку они являются наиболее востребованными и популярными.
Каждый из вышеуказанных 3-х сервисов предоставляет свой определённый объём для хранения ваших данных бесплатно, а также имеет свои правила по расширению объёма как платными, так и бесплатными средствами.
Такую общую информацию и сравнение всех наиболее популярных онлайн дисков вы сможете прочитать в отдельной статье:
Начнём с сервиса Oблако@Mail.
Cервис Mail предоставляет удалённое хранилище данных бесплатным объёмом 100 Гб.
Рассмотрим поэтапно как зарегистрироваться и подключить себе аккаунт и получить сразу 100 Гб.
Переходим на страницу сервиса Облако@Mail по ссылке:
В самом низу открывшейся страницы будет большая кнопка «Попробовать облако». Нажимаем её:
Появится форма для входа. Если у вас уже имеется аккаунт на Mail.ru (например, электронная почта), то просто введите логин, пароль и нажмите кнопку «Войти», после чего вы сразу окажитесь в своём аккаунте удалённого хранилища от Mail.
Если же аккаунта на Mail.ru у вас нет, то кликайте по ссылке «Регистрация»:
Откроется окно с регистрационной формой. Заполняйте все поля своими данными: Имя, Фамилия, Дата рождения, Город, Пол.
В поле «Почтовый ящик» укажите желаемый логин, по которому вы в дальнейшем будете заходить на все сервисы Mail. Для вас также автоматически зарегистрируется почта формата: «Ваш логин@mail.ru».
Ниже указываем пароль и повторяем его в следующей строке. Старайтесь указывать пароль посложнее для вашей же безопасности. При этом Mail должен сообщить о том, что пароль – сильный.
Далее вы можете указать свой существующий номер телефона и завершить регистрацию, а можете не вводить номер (это можно сделать в любое время) и указать вместо него контрольный вопрос. Для этого нажмите ссылку «У меня нет мобильного телефона»:
После клика по этой ссылке, ниже появится ещё 3 пункта. Нужно заполнить 2 верхних: «Секретный вопрос» и «Ответ». В первом вы, соответственно, выбираете контрольный вопрос и ниже указываете на него ответ. Этот ответ пригодится в случае, если вы забудете данные для входа в аккаунт:
Нажимаем кнопку «Зарегистрироваться».
Появится окно для ввода капчи. Просто указываем символы точно такие же как на картинке справа и нажимаем «Готово»:
На этом регистрация уже завершена, но будут ещё появляться окна с настройками. Например, в следующем окне вам предлагают собрать всю вашу почту с других ящиков в один ящик только что созданный на Mail. Конечно, если вы постоянно будете пользоваться созданной почтой от Mail, это имеет смысл сделать, но мы сейчас говорим не о работе с почтой и поэтому нажимаем кнопку «Пропустить»:
В любом случае настроить сбор почты можно будет в любое время через настройки аккаунта.
Далее появится окно настроек, где предлагают поставить подпись, которая будет прикрепляться к каждому отправляемому вами письму с Mail и загрузить аватарку для аккаунта. На сервис «Облако», который мы рассматриваем это никак не влияет, и поэтому можете сделать это сейчас, а можете и потом. Нажимаем кнопку «Сохранить»:
Это было последнее окно настроек, после которого вы перейдёте в ваш аккаунт Mail и по началу будет открыта почта. Перейдём к рассмотрению основных функций при работе с сервисом «Облако@Mail» через Веб-интерфейс.
После того как вы зарегистрируете аккаунт в Mail, сразу же будет выполнен вход в созданный аккаунт. Оттуда перейти на сервис онлайн хранилища можно кликнув по кнопке с изображением облака в верхней части окна:
Откроется окно с приветствием от сервиса, где мы просто нажимаем «Далее»:
И в последнем окне принимаем условия лицензионного соглашения, поставив соответствующую галочку и нажимаем «Начать работу»:
Переходим к возможностям работы с онлайн диском от Mail через Веб-интерфейс
После перехода в сервис онлайн-хранилище от Mail мы увидим вот такой интерфейс:
Начнём поэтапно рассматривать полезные функции:
На этом все самые главные функции по работе с сервисом Облако@Mail мы разобрали. Переходим к рассмотрению как работать с Облаком через очень удобное приложение для операционной системы Windows.
Работа с любым онлайн-диском через приложение для вашей системы намного удобнее и позволяет использовать больше возможностей, например, возможность загрузки папок, а не только файлов.
Рассмотрим всё поэтапно.
Установка приложения Облако@Mail на компьютер:
Для начала необходимо скачать приложение. Сделать это можно прямо из главного окна аккаунта, кликнув по кнопке «Скачай приложение для компьютера»:
Если будут просьбы, то могу также отдельно рассказать о работе с любыми подобными онлайн-хранилищами через Смартфоны / Планшеты, что тоже очень удобно!
В новом окошке нам предлагают выбрать операционную систему, для которой будет скачано приложение. В наших примерах мы рассматриваем пока что только системы Windows. Но принцип работы с приложением на других системах полностью аналогичен. Итак, щёлкаем по кнопке с изображением Windows:
Установочный файл загрузится на ваш компьютер. Находим его и запускаем:
В первом окне установке выбираем язык и жмём «ОК»:
На следующем этапе вы можете изменить путь установки, нажав кнопку «Обзор», если это необходимо. Но я рекомендую оставлять путь, заданный по умолчанию.
Теперь будет предложено изменить папку в меню «Пуск». Смысла в этом нет, но если хотите поменять – нажимайте «Обзор» и выбирайте другую папку.
В предпоследнем окне установки мы можем отключить автоматический запуск приложения при загрузке Windows и отключить создание значка на рабочем столе. Создать ярлык на рабочем столе или нет – решать вам и создать его можно будет и в дальнейшем в любое время. А вот функцию запуска вместе с Windows я рекомендую никогда не отключать чтобы ваши файлы всегда синхронизировались с вашим аккаунтом, и вы всегда имели доступ к последним версиям ваших файлов с любых ваших устройств. А то мало ли, забудете запустить приложение вручную и в таком случае изменения в ваших загруженных ранее файлах сохраняться на сервер уже не будут.
После того как вы выбрали то что нужно, нажимаем «Далее»:
Ну и в последнем окне нажимаем кнопку «Установить»:
Установка, как правило, проходит в течении нескольких секунд.
На последнем завершающем этапе нажимаем «Готово», оставив галочку «Запустить Cloud Mail.ru», для того чтобы приложение сразу запустилось:
Всё! Приложение теперь установлено на ваш компьютер. Приступим к работе с ним.
Работа с Облаком Mail через установленное на компьютер приложение:
Первым делом необходимо войти в аккаунт. Окно авторизации будет отображено сразу после того, как вы установите приложение.
Вводим логин и пароль от аккаунта в Mail (он должен указываться в формате вашей электронной почты на Mail), оставляем галочку «Я согласен с условиями лицензионного соглашения» и нажимаем «Войти»:
После этого приложение будет запущено. Оно отобразится в трее Windows и вы получите уведомление:
Доступ к папке вашего аккаунта Облако@Mail.ru .
Итак, приложение работает. Для того чтобы увидеть файлы, которые уже загружены в Облако, откройте специально созданную папку «Cloud Mail.ru». Это можно сделать с ярлыка на рабочем столе:
Также всегда открыть папку диска вы можете, щёлкнув 2 раза по значку Cloud Mail в трее.
В папке вы уже увидите все свои ранее загруженные через Веб-интерфейс файлы, например:
Загрузить файлы на Облако через приложение проще простого. Просто скопируйте в папку Cloud Mail.ru все файл и папки, которые хотели бы загрузить на ваш онлайн-диск Mail:
Обратите внимание, что теперь, пользуясь приложением для компьютера, можно загружать помимо файлов и целиком папки!
Чтобы проверить, загрузились ли файлы на ваш диск до конца, щёлкните правой кнопкой мыши по значку приложения в трее:
Если все файлы загружены, вверху будет надпись: «Синхронизировано», если же ещё идёт загрузка, то будет написано «Идёт синхронизация».
Удалить файлы с вашего хранилища также просто. Для этого нужно лишь удалить их из папки Cloud Mail.Ru, находящейся на вашем компьютере.
Рассмотрим последнюю важную функцию через приложение – доступ для скачивания к выбранному файлу другим пользователям.
Для того чтобы получить ссылку на скачивание любого файла, находящегося на вашем диске через приложение, откройте папку Cloud Mail.ru, где находятся все ваши файлы, щёлкните правой кнопкой мыши по нужному из них и выберите пункт «Облако@Mail.Ru: Скопировать публичную ссылку»:
На этом все основные функции по работе с сервисом Облако@Mail.Ru мы разобрали, и пора переходить к следующему сервису – Mega.
Рассмотрим процесс создания аккаунта в файловом хранилище Mega, который предоставляет бесплатно 50 Гб свободного дискового пространства. Как видите, по умолчанию сервис англоязычен, но поменять язык можно будет на русский сразу после создания аккаунта.
Итак, начнём регистрацию:
На этом создание вашего аккаунта закончено! Теперь перейдём к рассмотрению функционала через стандартный Веб-интерфейс (т.е. через браузер).
После того как вы зарегистрируете аккаунт, интерфейс сервиса будет выглядеть вот так:
Начнём поэтапно рассматривать все основные функции сервиса:
Теперь рассмотрим взаимодействие с онлайн-хранилищем Mega через специальное приложение для Windows.
Начнём с установки приложения:
Для начала приложение как обычно нужно скачать. Сделать это можно из аккаунта.
Переходим в раздел «Меню», выбираем подменю «Приложения» и далее пункт «Приложение синхронизации»:
На новой странице спускаемся чуть вниз и нажимаем кнопку «Загрузить бесплатно для Windows»:
Начнётся автоматическое скачивание файла. Иногда нужно указать папку для скачивания вручную. Это зависит от браузера.
После того как файл скачается, найдите его на компьютере и запустите:
Начнётся процесс установки. Подобные программы, как правило, имеют практически одинаковый процесс установки. В первом окне выбираем язык и нажимаем «ОК»:
Принимаем лицензионное соглашение кнопкой «Принять»:
На следующем этапе рекомендую переключить кнопку на пункт «Install for anyone using this computer», что означает – установить для всех пользователей данного компьютера, чтобы в дальнейшем не возникало проблем с доступом к программе:
В следующем окне можно указать другое название для папки в меню «Пуск», куда будут помещены ярлыки программы. Удобнее всего оставить имя, заданное по умолчанию. Нажимаем кнопку «Установить»:
Начнётся процесс скачивания дополнительных файлов для установки, который займёт около минуты:
В последнем окне нажимаем кнопку «Готово», оставив галочку «Запустить MEGAsync 1.0.36»:
Программа установлена к этому моменту и теперь начнётся некоторые этапы настройки. В следующем окне отмечаем пункт «У меня есть учётная запись MEGA», если вы уже проходили регистрацию, например, по инструкции из данной статьи:
Если же вы ещё не регистрировались, то выберите второй пункт и пройдите регистрацию. Рассматривать повторно я, соответственно, уже этот процесс не буду.
В новом окне вводим логин (E-Mail) и пароль, которые вы указывали при регистрации и нажимаем «Вперёд»:
Теперь из двух вариантов синхронизации выбираем «Полная синхронизация», для того чтобы все файлы и папки, которые вы уже успели загрузить в хранилище Mega, синхронизировались с вашим компьютером (т.е. вы сможете увидеть загруженные папки и файлы прямо на своём компьютере):
Нажимаем кнопку «Вперёд».
Теперь нам предоставляется возможность изменить папку для хранилища Mega на вашем компьютере. В эту папку вы будете загружать все файлы, которые хотите, чтобы те оказались на онлайн-диске. Можно оставить папку, заданную по умолчанию, а можно и поменять, нажав «Изменить». Я, как правило, оставляю пути прежними, потому что так удобнее и, в принципе, изменять путь не имеет смысла.
После этого нажимаем «Вперёд»:
В последнем окне жмём единственную кнопку «Готово»:
На этом установка приложения завершена. Сразу после установки вы получите уведомление, а в трее Windows будет значок приложения – Mega:
Переходим к принципу работы с сервисом Mega через установленное приложение.
Управление онлайн хранилищем Mega через приложение
Приложение Mega для компьютера не имеет никаких настроек и управление им проще простого. Справится совершенно любой пользователь компьютера:)
Разберём всё что нам доступно через приложение:
С хранилищем Mega тоже разобрались. И теперь рассмотрим последний сервис, о котором я обещал поговорить в данной статье – Microsoft OneDrive.
Хранилище OneDrive от корпорации Microsoft предоставит вам 15 Гб свободного места бесплатно, что соизмеримо с бесплатным объёмом, предоставляемым Google.
Начнём процесс регистрации:
Сразу после выполнения последнего шага будет открыта страница с вашим онлайн хранилищем на OneDrive.
Рассмотрим как с ним работать через браузер.
Интерфейс сервиса OneDrive выглядит вот таким образом:
Как видите, он в принципе аналогичен всем подобным сервисам, которые мы рассматривали ранее. Принцип взаимодействия тут тоже точно такой же. Разберём его:
В общем ничего сложного в данном сервисе тоже нету:)
Ну и напоследок покажу как работать с OneDrive через приложение, как я показывал ранее для всех подобных сервисов.
Приложение для работы с онлайн хранилищем OneDrive не поддерживается операционной системой Windows XP!
Установка приложения на компьютер:
Всё! Приложение OneDrive для компьютера полностью установлено и настроено. Осталось рассмотреть как с ним работать.
Управление онлайн хранилищем OneDrive через приложение для Windows
Ну а в принципе управления вашим хранилищем в OneDrive через установленное приложение нет ничего нового. Всё совершенно также, как и в рассмотренных ранее подобных сервисах. Прочтите ниже и убедитесь в этом сами:)
Ну вот собственно и всё. Больше в приложении OneDrive каких-то особенных функций нет. Всё точно также, как и в рассмотренных ранее приложениях от других разработчиков.
Сегодня я рассказал вам о работе с ещё 3-мя сервисами, предоставляющими нормальный бесплатный объём для хранения файлов и на этом, пожалуй, остановлюсь. Конечно, подобных сервисов можно перечислить ещё с десяток, но очень многие не предоставляют бесплатного больше 5 Гб свободного места. Например, известный Dropbox бесплатно предоставляет только 2 Гб места, что слишком мало, а за расширение, соответственно, нужно платить деньги.
Поэтому, я думаю, что тех сервисов, с которыми вы ознакомились в моих статьях, вам хватит выше крыши для удобной работы с вашими данными:)
Удачного Вам дня! Пока;)
Я уверен, что все активные интернет пользователи слышали про историю закрытия популярного файлообменника Megaupload и злоключениях его создателя. И уж наверняка знают о новом проекте Кима Доткома под названием Mega . Напомним вам, что этот сервис является реинкарнацией предыдущего творения Кима, но совершенно на другой платформе.
При его создании были учтены все недостатки и ошибки Megaupload и упор сделан прежде всего на устойчивость файлообменника. Причем не только к сетевым нагрузкам, но и атакам правообладателей. Для этого огромное внимание уделено конфиденциальности и безопасности ваших данных. Все загруженные вами файлы шифруются специальным алгоритмом, поэтому администрация сервиса не имеет понятия о содержимом ваших аккаунтов и, соответственно, не может нести ответственность за него. С этой же целью серверы Mega находятся в разных странах, так что при проблемах с законами в одной стране это не повлечет краха всего сервиса и ваши данные останутся в неприкосновенности.
Сегодня мы хотим познакомить вас поближе с работой этого сервиса и предлагаем вам небольшой скриншот-тур по его функциям.
Для начала работы необходимо зарегистрироваться. Для этого нужно указать свое имя, почтовый адрес и пароль. Сервис прекрасно русифицирован и отлично оформлен.
После окончания регистрации вам вышлют ссылку для входа на указанный вами адрес электронной почты. Перейдя по ссылке, придется пару минут подождать пока для вас сгенерируются специальные секретные ключи, с помощью которых будут шифроваться данные.
Попадаем в свое облачное хранилище. Здесь все понятно и просто: слева дерево папок, по центру область отображения файлов, сверху панель инструментов. Файлы можно загружать нажатием на кнопку Новая закачка или простым перетаскиванием в окно сервиса. Загрузки происходят исключительно быстро.
Файлы можно организовать в папки. Перемещение файлов между папками производится перетаскиванием или с помощью контекстного меню (см. ниже). Уровень вложенности каталогов не ограничен.
В появившемся всплывающем окне генерируется ссылка для скачивания файла.
Обратите внимание на опции в верхней части этого окна. Если включено только Ссылка на файл
, то ваш адресат не сможет скачать файл без ввода специального пароля, который вы можете выслать ему отдельно по электронной почте. Таким образом можно публиковать ссылки на скачивание в общедоступных местах, например в блоге или форуме, но разрешать скачивать только определенным лицам.
Если же дополнительно отмечен Ключ файла
, то по созданной ссылке файл сможет скачать любой желающий. Чекбоксы Имя
и Размер файла
добавляют соответствующие характеристики файла.
Контекстное меню папок немного отличается. Здесь имеется пункт Совместный доступ . С его помощью вы можете пригласить к совместному использованию своих сотрудников, друзей или семью. Приглашения рассылаются по электронной почте, а доступ может быть разного уровня. Read only — только просмотр, Read & Write — просмотр и закачка своих файлов в папку, Full access — просмотр, закачка и удаление файлов.
В разделе Аккаунт можно просмотреть заполненность своего хранилища, купить дополнительное место, изменить настройки передачи данных и некоторые другие опции.
Файлообменный сервис Mega производит мега впечатление. Отличная скорость работы, понятный и приятный интерфейс, 50 гигабайт дискового пространства, отсутствие ограничений на трафик и размер закачиваемых файлов плюс полная бесплатность и приватность ваших данных. Это просто праздник какой-то!
Возможности сервиса Mega можно использовать в самых разных целях. Прежде всего это распространение различного вида информации, что очень порадует пиратов всех континентов. Впрочем, возможности ограниченого доступа по паролям могут пригодиться и для легальной продажи своих творений, например музыкантами. Совместный доступ к папкам делают Mega интересным инструментом для организации удаленной работы. Ну и конечно банальное резервное копирование важной для вас информации.
Единственное, что не хватает Mega на данном этапе — это десктопный и мобильный клиент для разных операционных систем. Учитывая юный возраст сервиса, можно иметь надежду, что разработчики просто еще не успели и в скором времени такой клиент появится. После этого я не вижу никаких препятствий для того, чтобы Mega стал новым стандартном для облачного хранения файлов.
После запуска в какой-то мере скандального сервиса MEGA разговоры о его защищенности немного побурлили и затихли. На сегодняшний день сервис живет своей жизнью и его никто даже не поломал. Из всех разговоров почему-то был упущен термин «User Controlled Encryption» (UCE, или Контролируемая пользователем криптография), которой кичится MEGA. Под словом «упущен» я подразумеваю тот факт, что мы не рассмотрели все возможности, которые дает нам криптографический движок, выполняющийся в JavaScript на стороне клиента.
Конечно, сам сервис MEGA под этим подразумевает всего лишь то, что ключи шифрования не хранятся на сервере, а вся их криптография выполняется в контексте браузера. При этом после запуска сервиса было много разговоров о том, что в нем используются нестойкие криптографические алгоритмы и что вообще все плохо и мы все умрем, а наши файлы прочитает ФСБ. Это подтолкнуло меня на мысль расширить понятие «UCE» и действительно взять криптографию под свой контроль, а именно - заменить или дополнить некоторые механизмы обеспечения безопасности сервиса.
В этой статье я частично разложу по полочкам магию, которая происходит в двух мегабайтах JavaScript-кода MEGA и покажу, как можно переопределить некоторые методы, чтобы перестать волноваться и полюбить криптографию. В результате мы получим сервис облачного хранения файлов с двухфакторной аутентификацией и аппаратным шифрованием критически важной информации.
В процессе изучения исходного кода сайта я также заметил, что он довольно активно обновляется, разработчики исправляют мелкие ошибки и оптимизируют уже написанный код, что не может не радовать. Сам код написан весьма прямолинейно и без излишней накрутки в виде прототипов: сайт обходится тремя сотнями глобальных переменных и более чем 8000 функций. Разбираться в архитектуре сайта и менять его код было весьма просто.
Из сторонних фреймворков MEGA использует jQuery (без него сейчас никуда), Ext JS и SJCL . Последний как раз реализует криптографическое ядро с AES-шифрованием. SJCL также обуславливает интересный формат хранения ключей и прочих байт-массивов: вместо того, чтобы просто гонять байты в обычном массиве, они «сжимаются» в формат, который именуется a32. Его суть в том, что содержимое любого массива байт пакуется в 32-битные числа и записывается в массив меньшей длины. То есть, каждые 4 байта массива преобразуются в один банальный int. В коде сайта есть функции, которые выполняют всевозможные преобразования над импровизированным множеством {a32 array, string, base64 string}.
// создание нового пользователя и его мастер-ключа
function api_createuser(ctx, invitecode, invitename, uh) {
var i;
var ssc = Array(4); // session self challenge, will be used to verify password
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(); // генерирование случайного мастер-ключа u_k
for (i = 4; i--;) ssc[i] = rand(0x100000000); // генерирование случайной аутентификационной последовательности
if (d) console.log("api_createuser - masterkey: " + u_k + " passwordkey: " + ctx.passwordkey);
// зашифрование мастер-ключа на текущем пароле и отправка его на сервер (поле k)
// поле ts представляет собой конкатенацию ssc с ее зашифрованным значением
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 = uh;
req.ic = invitecode;
req.name = invitename;
}
if (d) console.log("Storing key: " + req.k);
api_req(, ctx);
}
В этой функции нас интересуют следующие вещи:
// расшифрование мастер-ключа после входа пользователя в систему
function api_getsid2(res, ctx) {
var t, k;
var r = false;
if (typeof res == "object") {
// инициализируем sjcl-aes текущим паролем учетки
var aes = new sjcl.cipher.aes(ctx.passwordkey);
// если нам в ответе сервера пришел мастер-ключ...
if (typeof res.k == "string") {
k = base64_to_a32(res.k);
if (k.length == 4) {
// ... то расшифровываем его
k = decrypt_key(aes, k);
// и пере-инициализируем sjcl-aes, используя мастер-ключ
aes = new sjcl.cipher.aes(k);
// если нам пришла ssc из процесса регистрации
if (typeof res.tsid == "string") {
t = base64urldecode(res.tsid);
// зашифровываем первую половину строки и сравниваем со значением с сервера
// если они совпали - значит, все явки и пароли сошлись и можно впустить юзера
if (a32_to_str(encrypt_key(aes, str_to_a32(t.substr(0, 16)))) == t.substr(-16)) r = ;
}
// ниже разбирается закрытый ключ RSA-пары, нам это пока не интересно
else 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 = Array(4);
// decompose private key
for (var i = 0; i < 4; i++) {
var l = ((privk.charCodeAt(0) * 256 + privk.charCodeAt(1) + 7) >> 3) + 2;
rsa_privk[i] = mpi2b(privk.substr(0, l));
if (typeof rsa_privk[i] == "number") break;
privk = privk.substr(l);
}
// check format
if (i == 4 && privk.length < 16) {
// TODO: check remaining padding for added early wrong password detection likelihood
r = ;
}
}
}
}
}
ctx.result(ctx, r);
}
Как бонус к регистрации/аутентификации можно взглянуть на процесс смены пароля.
// смена пароля пользователя
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);
}
Код этой функции говорит сам за себя: мы зашифровываем мастер-ключ на двух ключах, полученных из старого и нового паролей, а затем отправляем эти значения на сервер. Если текущий пароль подошел, то он заменяется на новый. Тут я больше хотел обратить внимание на функцию prepare_key_pw , которая неявно присутствовала во всех предыдущих операциях. Ее задача - преобразовать строковый пароль в a32-массив, а потом выполнить операцию деривации ключа следующим образом:
// convert user-supplied password array
function 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;
}
Эта функция вызвала много нареканий, поскольку основана на доморощенном алгоритме. За время написания статьи создатели сервиса успели немного поменять ее код, но существенных изменений я тут не заметил. Ее суть состоит в том, что переданный пароль зашифровывается 65536 раз на константном ключе для того, чтобы получить неотличимый от случайного ключ. Почему создатели сервиса не воспользовались существующими алгоритмами (например, PBKDF2), остается загадкой.
Предупреждаю, долгое вникание в эту картинку опасно для мозга, поэтому ниже я расскажу, как же все это происходит.
Как я уже говорил, при загрузке для каждого файла создается свой случайный ключ-массив из 6ти 32-битных чисел. Первые четыре элемента этого массива используются для зашифрования содержимого файла, а два последних - как начальные значения счетчика, с помощью которого вычисляется контрольная сумма файла. Этот массив хранится в глобальной переменной ul_key . Его же содержимое заносится в JSON-сериализированную строку ul_KeyNonce .
Само за(рас)шифрование происходит с помощью Web Worker (если браузер поддерживает эту технологию) или просто внутри основного кода страницы. Когда файл становится готов к отправке, для зашифрования его атрибутов (на данный момент под атрибутами подразумевается только имя файла) создается новый ключ filekey , основанный на ul_key и контрольной сумме файла. Этот ключ затем зашифровывается на мастер-ключе и отправляется на сервер вместе с атрибутами файла. За все эти действия отвечают функции initupload3 и api_completeupload2 . Создание ключа filekey происходит в функции ul_chunkcomplete , ниже я приведу ее часть.
// начало загрузки файла: создание его индивидуального ключа и инициализация механизма шифрования function initupload3() { // ... вырезано =) // создание случайного индивидуального ключа файла // ul_key используется в коде страницы, // ul_keyNonce передавается в Web Worker и используется там // для зашифрования файла и вычисления его контрольной суммы ul_key = Array(6); for (i = 6; i--;) ul_key[i] = rand(0x100000000); ul_keyNonce = JSON.stringify(ul_key); ul_macs = ; // ... дальше идет обработка очереди загрузки, она не несет интереса... // инициализация sjcl-aes для файла на основе ul_key ul_aes = new sjcl.cipher.aes(); // ... // запуск процесса загрузки файла: // чтение его с диска, зашифрование и отправка onUploadStart(ul_queue_num); ul_dispatch_chain(); } // создание ключа для зашифрования атрибутов файла function ul_chunkcomplete(slot,pos,response) { // ... var t = ; // ul_macs - массив с контрольной суммой файла, полученной внутри worker"а for (p in ul_macs) t.push(p); // заполнение и сортировка временного массива, если кто знает зачем это - объясните пожалуйста t.sort(function(a,b) { return parseInt(a)-parseInt(b) }); for (var i = 0; i < t.length; i++) t[i] = ul_macs]; // внутри condenseMacs производится зашифрование // и "уплотнение" контрольной суммы файла в массив из 4х элементов var mac = condenseMacs(t,ul_key); ul_settimeout(-1); // на основе контрольной суммы и ключа файла создается ключ для шифрования атрибутов // он же в зашифрованном виде позже будет отправлен на сервер var filekey = ; // ... } // завершение загрузки файла: зашифрование атрибутов и ключа файла и отправка их на сервер function api_completeupload2(ctx, ut) { var p; if (ctx.path && ctx.path != ctx.n && (p = ctx.path.indexOf("/")) > 0) { var pc = ctx.path.substr(0, p); ctx.path = ctx.path.substr(p + 1); fm_requestfolderid(ut, pc, ctx); } else { // зашифрование имени файла на ключе, выведенном из ul_key и контрольной суммы // 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); // передача атрибутов и зашифрованного на мастер-ключе ключа файла var req = { a: "p", t: ut, n: [{ h: ctx.t, t: 0, a: ab_to_base64(ea), // атрибуты k: a32_to_base64(encrypt_key(u_k_aes, ctx.k)), // == AES_encrypt(u_k, filekey) fa: ctx.fa }] }; if (ut) { // a target has been supplied: encrypt to all relevant shares var sn = fm_getsharenodes(ut); if (sn.length) { req.cr = crypto_makecr(, sn, false); req.cr = ctx.t; } } api_req(, ctx.ctx); } }
На момент скачивания файла в контексте браузера уже содержится объект, хранящий расшифрованные ключи файлов. Поэтому сначала имеет смысл рассмотреть процесс, который происходит сразу после аутентификации пользователя, а именно - загрузку файл-менеджера. После того как пользователя пустили на сервис, ему естественно хочется получить доступ к своим файлам (предположим, что они у него уже там были). Для этого нам нужно расшифровать сначала ключи файлов, а затем - их атрибуты. Этим делом занимается очередная пачка функций, из которых нас интересуют loadfm_callback и process_f_f .
Вкратце процесс получения атрибутов файлов можно описать следующим алгоритмом:
// callback загрузки файл-менеджера
function loadfm_callback(json, res) {
// ...
// обработка JSON с информацией о файлах
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,
userid: json.s[i].u,
folderid: json.s[i].h,
rights: json.s[i].r,
date: json.s[i].ts
});
sharednodes.h] = true;
}
}
}
// ... дальше ничего особого...
// занесение информации о файлах в еще один глобальный массив
farray = new Object;
farray.f = json.f;
// запуск его обработки, callback был объявлен выше
// в этой функции и просто модифицирует верстку
process_f(fi, false, callback);
fi++;
}
// рекурсивная функция, в которой происходит расшифрование ключей и атрибутов файлов
// вызывается из process_f
function process_f_f(fid) {
// условие окончания рекурсии - мы обработали все файлы в массиве farray
if (!farray.f.i]) {
if (farray.ap) FileStore.suspendEvents();
// запись данных в 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);
return false;
}
var f = farray.f.i];
f.attrs = f.a;
if (f.sk) u_sharekeys = crypto_process_sharekey(f.h, f.sk);
// если файл подходит по типу и имеет ключ, то обработаем его
if ((f.t !== 2) && (f.t !== 3) && (f.t !== 4) && (f.k)) {
crypto_processkey(u_handle, u_k_aes, f); // описание этой функции ниже
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;
else if (f.t == 3) InboxID = f.h;
else if (f.t == 4) TrashbinID = f.h;
else if ((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)
// ключ записан в виде "
После этого мы можем получить значение исходного ключа ul_key из контекста браузера следующим образом: dl_keyNonce = JSON.stringify();
Это преобразование происходит в функции startdownload . Если учесть, что значение dl_key == filekey из функции ul_chunkcomplete и выполнить нехитрые операции сложения по модулю, то мы заметим, что в переменной dl_keyNonce будет хранится значение ul_key , сгенерированное при загрузке файла. Иллюстрацию этому можно наблюдать в нижнем левом углу доски на фотографии в начале раздела про загрузку файлов.
Хочу отметить, что здесь я применил весьма хитрый метод. В данном случае нам важно, чтобы злоумышленник не мог расшифровать файл, даже если он перехватит пришедший с сервера ключ файла и будет знать мастер-ключ пользователя. Поэтому тут можно сыграть на особенностях архитектуры сервиса и использовать для за(рас)шифрования файлов значение ключа ul_keyNonce (оно же dl_keyNonce), полученное в результате зашифрования на токене значения ключа ul_key (или dl_key).
С момента написания этих статей в наш продукт добавилась возможность аппаратного шифрования по алгоритму ГОСТ 28147-89. Beta-версию плагина с функциональностью аппаратного шифрования по алгоритму ГОСТ 28147-89 можно скачать . Эта версия плагина еще не прошла полное тестирование, поэтому предупреждаю о том, что в ней могут быть ошибки, о нахождении которых прошу сообщать в личку.
В интерфейсе плагина симметричное зашифрование реализуется функцией encrypt , которая имеет следующий синтаксис:
encrypt(deviceId, keyLabel, data, resultCallback, errorCallback) → {string}
В качестве входных данных функция принимает:
Готовое расширение можно скачать . Разработано оно с помощью сервиса Crossrider , что дает расширения для трех браузеров (Chrome, Firefox и IE), но проверять его работу лучше в Chrome или Firefox, причем в первом оно работает гораздо стабильнее.
Код расширения до банального прост: он проверяет, находимся ли мы на странице сервиса и если это так, то просто подгружает дополнительные скрипты. Эти скрипты модифицируют код страницы, добавляя пару диалогов, и переопределяют следующие функции сервиса:
Затем можно выйти из сервиса и попробовать снова зайти, используя двухфакторную аутентификацию:
Аутентификация при этом происходит по следующей схеме:
И Microsoft SkyDrive.
А вот облачное хранилище MEGA не так известно, хотя предлагает в бессрочное бесплатное пользование целых 50Gb, доступных сразу после регистрации!
Поскольку Вы собираетесь доверить сервису какие-то свои личные данные, то не лишним будет узнать откуда он собственно взялся, и кто за ним стоит…
Наверняка Вы слышали про такое хранилище как Megaupload. Оно было закрыто в 2012 году по решению властей США – причастные к созданию сервиса, в том числе его основатель Ким Дотком, были обвинены ФБР в нарушении авторских прав (хранение и распространение лицензионного контента). Спустя ровно год Ким Дотком запустил новый сервис на домене mega.co.nz.
В настоящее время вход в облако доступен по адресу mega.nz , поэтому если встретите аналогичные обзоры данного хранилища, где в качестве адреса будет указан mega co или mega co nz, знайте, что они безнадежно устарели:)
На главной страничке хранилища Вы увидите большую красную кнопку с призывом перетащить на неё файлы и начать пользоваться сервисом.
Складывается ощущение, что регистрация для работы вообще не нужна. В принципе это так – Вы можете сразу же загрузить в облако какие-то свои файлы и даже увидите их в хранилище. Однако без регистрации Ваши загруженные данные будут удалены из хранилища после закрытия странички или браузера:
Поэтому пройдите стандартный процесс регистрации, после чего Вы сразу получаете 50 гигабайт места в облаке совершенно бесплатно!
Mega nz огромное внимание уделят безопасности хранения данных и конфиденциальности. Подробно об этом поговорим чуть позже, а пока укажу на то, что надо обязательно сделать сразу после регистрации.
Это необходимая мера предосторожности, которой не стоит пренебрегать! Согласитесь, будет обидно потерять все свои файлы в облаке лишь потому, что Вы забыли пароль.
В левой части окна в меню нажмите на иконку облака:
Вы окажетесь в своем облачном диске. При помощи инструментов в верхней части окна Вы можете создавать новые папки, заливать туда файлы и даже загружать с компьютера готовые папки с файлами.
Работать с интерфейсом хранилища не сложнее чем с проводником в Windows. Клик правой клавишей мыши на папке или файле вызывает контекстное меню с целым набором возможностей.
С его помощью можно:
Разработчики конечно же учли свой опыт негативный опыт с Megaupload, поэтому при создании публичной ссылки будет показано такое окошко, с условиями которого Вам остается только согласиться:
Сервис не накладывает никаких ограничений на размер загружаемых файлов! В пределах своей квоты в 50 GB Вы можете загрузить тысячи небольших файлов, либо, к примеру, два файла по 25 гигабайт каждый. Однако следует помнить, что сами браузеры имеют функциональные ограничения на размер файлов, которые они могут скачать. Наиболее «уязвимы» в этом плане браузеры Internet Explorer, Firefox и Safari, которые еще полностью не поддерживают HTML5.
К любой папке в своем онлайн хранилище, Вы можете организовать общий доступ (расшарить её). Для этого проделайте следующие манипуляции:
После этого указанному пользователю на email придет письмо с ссылкой для доступа к расшаренной папке.
Помимо доступа к папкам, Вы можете разрешать любым пользователям скачивать из Вашего хранилища какие-то отдельные файлы.
Также в этом окошке можно отдельно скопировать сам ключ дешифрования. В чем же отличие между этими типами ссылок? А оно очень важное!
В первом случае пользователь, перейдя по ссылке, для скачивания файла должен будет ввести в специальное окошко ключ дешифрования, который Вы ему сообщите. А во втором случае, пользователь переходит по ссылке с уже «вшитым» ключом безопасности и может сразу же скачать файл.
Обзор функционала и настроек хранилища, не вошедших в обзор, смотрите в данном видео:
Здравствуйте.
Данную статью меня вынудили своим нытьем написать некоторые пользователи. На сайте стало появляться все больше и больше крутых материалов, которые доступны для скачивания с помощью облачного хранилища Mega. Как показало время, многие пользователи не в состоянии скачать курс. Сразу возникает вопрос «а зачем вам курс, если вы даже не можете сделать самое простое действие, как скачать материал?!». Если раньше данные комментарии вызывали улыбку и смех, то сейчас это стало немного напрягать и те, кто пишет такие комментарии, напоминают первобытную губку, как на превью к данной статье. В будущем (уже в самое ближайшее время) ожидаются объемные крутые материалы, которые будут доступны для скачивания через Mega. Если у вас проблемы со скачиванием — читайте эту статью, так как этот вопрос больше подниматься не будет и никто не будет ради некоторых пользователей разбивать материалы на сотни кусков и перезаливать на другие хранилища. Пользователи, которые продолжат ныть — будут отправлены учиться навыкам работы с ПК и будут временно изолированы от общества.
И так, давайте разберем, почему именно Mega? Все очень просто. Для нас это удобное хранилище, где нет ограничений на объем заливаемого материала, где большой объем диска и где лояльно относятся к жалобам. Материалы для пользователей доступны бесплатно, поэтому или учитесь скачивать или не качайте вообще. Предположим, что вы нашли нужный курс и он залит на Mega. Первым делом убедитесь, что само хранилище у вас открывается. Если Mega у вас в стране недоступна (некоторые провайдеры хранилище блокируют) — воспользуйтесь прокси или впн для обходом блокировки. Теперь осталось самое просто — это скачать материал. Существует 2 самых простых способа скачивания:
1 способ. Данный способ подойдет для скачивания небольших файлов. Для скачивания больших файлов используйте 2 способ. Первый способ — это воспользоваться скачиванием через обычный браузер. Как показала практика, лучше всех с Mega работает браузер Google Chrome. Поэтому, мы советуем использовать именно его. Как происходит скачивание через браузер: Сначала материал загружается в кеш, затем после полной загрузки вы можете сохранить его в любую папку (если не настроен выбор папки — материал сохраняется в папку с загрузками).
Нажимаем кнопку «Загрузить в браузере» и ждем завершения загрузки. Вкладку закрывать нельзя!
Вы также можете воспользоваться софтом от Mega — MegaSync и синхронизировать файлы, но данным способом скачивать мы не пробовали, хотя некоторые пользователи хвалят именно этот способ. Также по словам некоторых пользователей, для успешной закачки файлы нужно импортировать на свой облачный диск, но, в основном, это делать не обязательно. После скачивания большого файла через браузер, рекомендуем очистить кеш браузера, например, с помощью утилиты CCleaner.
2 способ. Скачивание с помощью программы Mipony. Программу Mipony можно скачать с официального сайта . Мы советуем использовать именно этот способ, так как программа очень удобная и имеет множество плюсов, например, софт поддерживает докачку файлов (как торрент) и не создает временных файлов в отличие от скачивания через браузер. Некоторые антивирусы могут ругаться на программу, но ничего страшного в этом нет. Программа ничего не ворует и не является вредоносной. Параноики могут пользоваться программой на виртуальной машине. Устанавливаем программу (все очень просто) и запускаем. Первым делом откройте вкладку «Опции» и убедитесь, что там не стоит ограничение скорости.