На прошедших выходных в интернете поднялся шум из-за того, что пользователь платной подписки на облачный сервис Dropbox не смог передать друзьям ссылку на фильм, охраняемый законом об авторском праве (DMCA). Как же Dropbox определяет легальность контента, если в соглашении указывается, что содержимое пользовательских папок не анализируется?
Мы уже привыкли к тому, что традиционные файловые хранилища в Сети могут в любой момент прикрыть за нарушение какого-то закона — например, по требованию правообладателей. Иногда закрывают доступ ко всему ресурсу из-за одного файла, и практически всегда предписание сначала выполнят, а потом начнут разбираться.
В отличие от FTP-серверов и файлообменников, облачные хранилища многие считают настолько же приватными, как собственный жёсткий диск. Люди доверяют им сканы документов, автоматически загружают фотографии со смартфонов и хранят «в облаке» другую важную информацию, которую боятся потерять.
Разработчик каждого облачного сервиса убеждает своих клиентов в высокой степени защиты, упоминает в соглашении стойкие криптографические алгоритмы и уверяет в уважительном отношении к приватности. Между тем хотя бы поверхностный анализ загружаемых данных всё же выполняется. Изначально такие косвенные методы были нужны для оптимизации работы самого хранилища, но затем им стали находит и другие применения.
Проблема существовала давно, однако широкую огласку получила лишь в конце марта, когда дизайнер из Нью-Йорка Даррелл Уайтло (Darrell Whitelaw) попытался прислать друзьям через Dropbox ссылку на загруженный в облако фильм, но получил автоматическое предупреждение: «Некоторые файлы в этой папке не могут быть расшарены, согласно требованиям DMCA». Об этом он написал в Twitter, что породило волну возмущения со стороны других пользователей.
Комментируя ситуацию изданию Ars Technica, Уайтло сказал, что полностью разочаровался в облачных хранилищах: «Вы не можете считать Dropbox ни своим, ни персональным, даже если заплатили за него». Давайте разберёмся, что с ним не так.
Со стороны пользователя никакого шифрования файлов средствами Dropbox не ведётся, однако во время синхронизации всё же выполняется их криптографическая обработка по алгоритму AES-256, ключи для которой генерируются автоматически.
Помимо уникального контента вроде личных фотографий, пользователи часто хранят в облаке общедоступные вещи — дистрибутивы программ, образы дисков, фильмы, музыку и книги. Поэтому во избежание лишней траты дискового пространства и для экономии трафика перед загрузкой каждого файла определяется, нет ли его уже в облаке. Если точно такой же файл уже загружен другим пользователем, то Dropbox просто создаёт ссылку, избегая повторной загрузки.
Такая схема становится возможной благодаря тому, что клиент облачного сервиса вычисляет перед загрузкой каждого файла его хеш-функцию. При достаточной длине она служит как уникальная цифровая подпись файла. Теоретически на большой выборке возможна ситуация, когда у двух разных файлов хеши совпадают. Однако вероятность этого предельно мала. Например, наиболее популярный алгоритм хеширования MD5 даёт 2128 вариантов (для пользователя они выглядят как 1632), а SHA-512 — 2512.
База данных хешей загруженных файлов используется Dropbox с разными целями. Во-первых, как уже отмечалось, во избежание повторной загрузки имеющихся данных. Во-вторых — для отслеживания изменений и создания истории версий одного файла (редактируемого документа). В-третьих — для сравнения с другой базой, содержащей хеши файлов, распространение которых охраняется авторским правом.
В текущей реализации Dropbox последнее сравнение происходит только при создании публичной ссылки на файл. Просто хранить можно что угодно, и сервис не будет «знать» содержимое ваших папок до тех пор, пока вами персонально не заинтересуются.
Из свойств хеш-функции становится очевиден и метод обхода имеющегося ограничения. Достаточно изменить любой бит файла, и его «цифровой отпечаток» станет совершенно другим. Он также перестанет совпадать с имеющимся в базе DMCA.
Мультимедийные файлы остаются внешне неотличимыми после легкой модификации (например, перекодирования другим кодеком или удаления метаданных). Другой вариант — просто изменить любой бит файла (кроме заголовка), открыв его в HEX-редакторе. На воспроизведение фильма или музыкального файла это никак не повлияет. Если алгоритмы сравнения файлов по содержимому будут совершенствоваться (например, распаковывая содержимое архивов и образов или анализируя отдельные части файла), то всегда остаётся универсальный вариант — поместить что угодно в архив с парольной защитой. В архиваторе WinRAR есть даже возможность скрывать сами имена файлов.
Dropbox физически работает на платформе Amazon S3. Как сервис он не уникален, поэтому написанное здесь будет актуально и для большинства других облаков.