2013-08-20 2 views
5

У меня есть некоторые проблемы, связанные с поиском способа достижения шифрования произвольных данных, которые могут использоваться несколькими получателями. Мега, похоже, делает именно это. Насколько я читаю, он шифрует данные перед их загрузкой на веб-сервер. Тем не менее можно поделиться этим файлом с другими. Как это делается с помощью шифрования?Как шифрование Mega работает для совместного использования?

Представьте себе следующий сценарий:

Алиса
  1. Пользователь загружает файл на сервер, он шифруется
  2. Алиса хочет разделить этот файл с Бобом и Дэйвом. Как Боб и Дэйв могут получить доступ к файлу и посмотреть его исходное содержимое (расшифрованное)?
+0

[public key crypto] (http://en.wikipedia.org/wiki/Public_key) –

ответ

2

В Mega каждый пользователь имеет master key. У каждого пользователя также есть пара открытого/закрытого ключа. И каждый файл зашифровывается под другим ключом сеанса. Ключи сеанса шифруются под ключом пользователя.

Если Алиса хочет поделиться своим файлом с Бобем, сначала она расшифровывает ключ сеанса файла, используя свой главный ключ, а затем шифрует ключ сеанса под открытым ключом Боба.

Теперь Боб может использовать свой секретный ключ для дешифрования файла Алисы.

Вышеуказанное просто интуитивное объяснение. Вы найдете дополнительную информацию от api Mega (и исходного кода).

8

Как это делается с помощью шифрования?

Ответ symmetric-key algorithm. Mega использует в браузере симметричное ключевое шифрование, предоставляемое HTML5. См. Вопрос «Какие алгоритмы шифрования используют MEGA внутри?» ниже.

Как указано в onemouth, ваши данные glob зашифрованы с помощью главного ключа.

У каждого пользователя также есть пара открытого и закрытого ключей. И каждый файл зашифрован под другим ключом сеанса. Клавиши сеанса шифруются под ключом пользователя.

Чтобы понять, как все это работает, нужно смотреть на все компоненты и видеть, как они взаимодействуют. Mega объясняет процесс шифрования симметричных/общих ключей на их сайте:

(встроенные ссылки и выделенный текст в кавычках текст добавлен мной)

What encryption algorithms does MEGA use internally?

Для передачи больших объемов данных, AES- 128 (мы полагаем, что использование более высокой частоты использования AES-192 и AES-256 превышает теоретический уровень безопасности, по крайней мере до появления квантовых компьютеров). Проверка целостности после загрузки осуществляется с помощью измененного варианта CCM, который менее эффективен, чем OCB, но не обременен патентами.

Для , устанавливающий общие секреты между пользователями и сбросив файлов в ваш почтовый ящик, RSA-2048 (длина ключа была выбрана в качестве средних оснований между «слишком небезопасным» и «слишком медленно»). Все шифрование, дешифрование и генерация ключей реализовано в JavaScript, которое ограничивает пропускную способность до нескольких МБ/с и вызывает значительную загрузку ЦП. Мы с нетерпением ждем реализации предложенного HTML5 WebCrypto API во всех основных браузерах, который устранит это узкое место . встроенный генератор случайных чисел в JavaScript усиливается через мыши/клавиатуры timing-driven RC4 entropy pool, а также крипто * хаотичность где available (Chrome и Firefox только на момент. - ключей, генерируемых Internet Explorer и Safari менее безопасными, чем они могли бы быть).

How does folder sharing work?

Вы можете поделиться любой поддерево вашего облака ездить с друзьями, семьей или коллегами . Приглашение - по электронной почте. Приглашающим, у которых нет , еще будет получать уведомление по электронной почте со ссылкой для регистрации. Кроме того, вы можете создать общедоступную ссылку на любую из ваших папок, а экспортировать ключ шифрования, зависящий от папки, делая его доступным без учетной записи MEGA . Тогда вы несете ответственность за безопасную передачу ключа папки получателям.

Чтобы установить, изменить или удалить общий доступ, просто щелкните правой кнопкой мыши по папке в вашем файловом менеджере и выберите «Общий доступ». Есть три уровня доступа: : Только чтение, чтение/запись (файлы могут быть добавлены, но не удалены), и полностью (файлы могут быть добавлены и удалены). Если вы добавили адрес электронной почты , у которого еще нет учетной записи, вы должны быть в сети по адресу не позднее одного раза после того, как получатель завершит процесс регистрации, так что вы можете зашифровать секретный ресурс своего вновь созданного открытого ключа.

Is data that I put in shared folders as secure my other data? общих папок, по своей природе, только безопасным, как их наименее защищенной члена.

Вместо одного основного ключа у вас есть еще один ключ, которым вы доверяли Х количество людей. Ваша безопасность так же хороша, как и ваше доверие к этим людям.

Каждый файл на Mega имеет уникальный идентификатор. Так, если учетные данные являются:

fileId=Abc123Ab 
shareKey=abcdefghijklmnopqrstuvwxyzZYXWVUT 
https://mega.co.nz/#!fileId!shareKey 

Попытка загрузить

https://mega.co.nz/#!fileId 

приведет к загрузке зашифрованного файла. Файл не может быть расшифрован, если у пользователя нет общего ключа дешифрования. Как вы получаете «shareKey» кому-то, зависит от вас. Но любой, кто имеет доступ к этому shareKey, может дешифровать загруженный файл, поэтому отправка полного URL-адреса по электронной почте или другим незашифрованным средам - ​​плохая идея. Когда генерируется shareKey («Get Link» в webapi), его нельзя изменить.

И кроме того,

Однако компромисс нашей инфраструктуры основного сервера представляет дополнительный риск: Открытые ключи можно манипулировать, и ключевые запросы могут быть подделаны.

Что они говорят, это проблемы безопасности, возникающие без совместного использования, что увеличилось, поскольку индивидуальные угрозы отдельного частного ключа компрометируются.

Is my stored data absolutely secure? Все безопасности относительна. Существуют следующие векторы атак - они не являются специфическими для MEGA, но мы хотим, чтобы вы знали о рисках: Отдельные счета под угрозой по:

  • Spyware на вашем компьютере. Простого кейлоггера достаточно, но учетные данные и ключи сеанса также могут быть извлечены из памяти или файловой системы .
  • Плечо серфинга. Не вводите свой пароль, пока кто-то может следить за вашими нажатиями клавиш.
  • Пароль грубого форсирования. Используйте надежные пароли.
  • Фишинг. Всегда проверяйте статус безопасности вашего соединения (https: //) и правильное имя домена (mega.co.nz) перед вводом вашего пароля. Крупномасштабные атаки могут быть установлены через:
  • Атака «человек в середине». Требуется выдача действительного дублирующего сертификата SSL в сочетании с подделкой и/или атаками DNS на наших маршрутах BGP (сценарий в стиле DigiNotar).
  • Получение доступа к веб-серверам, размещающим https://mega.co.nz/index.html, и замена этого файла на поддельную версию (это не повлияет на доступ через установленную базу приложений). Обратите внимание, что манипулирование содержимым на нашем распределенном статическом содержимом CDN не представляет угрозы безопасности, так как все активное содержимое, загруженное с index.html, подлежит проверке криптографическим хэшем (считают его как своего рода «безопасной загрузкой», для веб-сайтов). Этот тип атаки требует отправки вредоносного кода клиенту и, следовательно, обнаруживается.
  • Получение доступа к нашей основной серверной инфраструктуре и создание поддельных запросов ключей для существующих акций. Этот тип атаки влияет только на данные в учетных записях с общими папками и обнаруживается на стороне клиента .

Кроме того, не все данные являются частным, и большинство пользователей идентифицирующей информации хранятся в незашифрованном виде.

Is all of my personal information subject to encryption? No. только файл данные и имена файлов/папок шифруется. Информация, которая нам нужна , операционный доступ к, например, ваш адрес электронной почты , IP-адрес, папка Структура, учетные записи и учетные данные для файлов хранятся и обрабатывается незашифрованным. Пожалуйста, ознакомьтесь с нашей политикой конфиденциальности.

Более подробно можно было в их документации API на https://mega.co.nz/#doc

12.2 Cryptography

Все симметричные криптографические операции на основе AES-128. Он работает в режиме блокировки блока шифрования для файла и блоков атрибутов папок и в режиме счетчика для фактических данных файла. Каждый файл и каждый узел папок использует свой собственный случайный код 128 бит . Файловые узлы используют один и тот же ключ для блока атрибутов и файл , а также 64-битное начальное значение случайного счетчика и 64-битный meta MAC для проверки целостности файла. Каждая учетная запись пользователя использует симметричный главный ключ для ECB-шифрования всех ключей узлов, которые он хранит в своих собственных деревьях . Этот мастер-ключ хранится на серверах MEGA, зашифрованных с помощью хеша , полученного из пароля пользователя. Целостность файла проверена с использованием Chunked CBC-MAC. Размер блоков начинается с 128 КБ и увеличивается до 1 МБ, что является разумным балансом между требуемым пространством для хранения MAC-блоков и средних накладных расходов для проверки целостности. В дополнение к симметричному ключу, , каждая учетная запись пользователя имеет пару ключей RSA 2048 бит для безопасного приема данных , таких как общие ключи или ключи файлов/папок. Его частный компонент - , зашифрованный с помощью симметричного главного ключа пользователя.

12.3 Общие папки

Владелец папки несет полную ответственность за управление доступом; акции являются нетранзитивными (акции не могут быть созданы в папках входящих акций). Все участники в общей папке усиления криптографического доступ через обыкновенной акции специального ключ, который передается от владельца (теоретически, от любого лица, участвующего в долю, но это создало бы значительную угрозу безопасности в случае компромисса основной инфраструктуры) новым участникам через RSA. Все ключи узлов в общей папке, включая корневой узел , зашифровываются этим ключом общего доступа. Сторона, добавляющая новый узел в общую папку, отвечает за предоставление соответствующего ключа узла/общего доступа . Недопустимые ключи для узла/общего доступа могут быть только , предоставленные владельцем акций.

12,4 Unauthenticated доставка

MEGA поддерживает безопасную неаутентифицированную доставку данных. Любой зарегистрированный пользователь может получать файлы или папки в своем почтовом ящике через их открытый ключ RSA.

В конечном счете вы доверяете своему javascript-код, который аутентичен HTTPS. Затем вы доверяете своему механизму javascript (веб-браузеру), чтобы правильно обрабатывать транзакцию. И, наконец, вы доверяете своей операционной системе, чтобы другие запущенные процессы не могли вынюхивать незашифрованный закрытый ключ в ОЗУ (см. https://nzkoz.github.io/MegaPWN/).

Есть определенные меры предосторожности, которые необходимо предпринять, но это один из лучших вариантов, доступных в настоящее время.Вы всегда можете зашифровать свои файлы перед загрузкой в ​​Mega с помощью GPG, чтобы устранить некоторые из проблем, описанных выше.

+0

Да, но где хранится закрытый ключ пользователя? Не шифруется на серверах MEGA? Почему бы мне не вводить его каждый раз при загрузке файла через браузер, например? И что такое главный ключ? Закрытый ключ пользователя или еще один? –

+0

Он находится в локальном браузере вашего браузера, который похож на файлы cookie, но не может автоматически отправляться на сервер, а сервер может получать только его содержимое с использованием JS-кода. – Annarfych

Смежные вопросы