Могу ли я зашифровать данные так, чтобы их можно было нормально читать, но нельзя копировать или редактировать? [закрыто]


41

Я хочу поделиться своим жестким диском на 500 ГБ с другом, но хочу зашифровать его так, чтобы все данные можно было нормально читать, но не могли ни копировать, ни редактировать.

Это возможно?


112
Голливуд убил бы за такую ​​особенность - и нет, несмотря на миллионы инвестиций, они также не нашли решения.
MSalters

10
Многие, если не большинство, ответы здесь задают неявный или даже явный вопрос «Что вы на самом деле имеете в виду?». Возможно, вы захотите уточнить свой вопрос, особенно то, что вы подразумеваете под «можно читать нормально» и «нельзя скопировать».
Зано

111
Хорошая попытка, RIAA / MPAA!
Нараян

7
Мы часто обсуждаем это на бирже стеков безопасности. Читайте этот вопрос и отвечайте: существуют ли методы DRM для эффективного предотвращения пиратства? для некоторой полезной информации. Лучший ответ - один из модов на Crypto Stack Exchange - но у нас есть точки зрения от криптографического до чисто практического.
Рори Олсоп

7
@JarrodRoberson: Надеюсь, вы не серьезно. К ОП: вы не можете просто контролировать его / ее? Почему так важно, чтобы они могли читать столько данных, а не копировать их? Что они смогут сделать с копией данных, что было бы невозможно с оригиналом?
Джеймс

Ответы:


201

Если вы можете прочитать его, вы можете скопировать его. Концепция RIAA или MPAA еще предстоит понять.

Примечание. Этот ответ не считается хорошим ответом в соответствии с рекомендациями Stack Exchange . Тем не менее, он сохраняется из-за его популярности и эффективности в контексте вопроса.


5
@ Michael В этом отношении нет ничего особенного в специальных устройствах, то же самое относится. Если вы можете прочитать его, вы можете скопировать его.
Конрад Рудольф

10
@ Майкл Это зависит от того, что вы подразумеваете под «копировать». Вы , конечно , можно скопировать с /dev/zero обычным способом (нормальный путь = dd, catили что - то щекочет ваши фантазии). Вы также можете копировать /dev/null, но он скопирует ноль байтов просто потому, что он пустой: копировать нечего. Вы, вероятно, пытаетесь (и не можете) скопировать устройство в виде файла . Это конечно терпит неудачу, потому что это не файл. То же самое должно было случиться, если вы попытаетесь скопировать любое другое устройство, рассматривая его как файл.
Конрад Рудольф

15
Думаю, было бы неплохо немного расширить этот ответ . Он составляет 136 голосов и по сути не длиннее предложения, что на самом деле не является примером «хорошего» ответа - по крайней мере, в терминах Stack Exchange.
Slhck

9
Я подумал об этом, но на самом деле я не мог придумать ничего больше, что нужно было бы сказать. Это действительно фундаментальная проблема, которая, на мой взгляд, требует краткого описания.
Sirex

6
@slhck: Это довольно простой ответ на довольно простой вопрос: В: «Могу ли я зашифровать (или преобразовать каким-либо образом) часть данных, чтобы ее нельзя было скопировать?» Ответ: Нет. Если вы можете прочитать это, тогда то, что вы читаете, может быть написано где-то еще.
KeithS

76

«Копия» определяется как чтение данных, а затем запись тех же данных в другое место. Поскольку он считал ваши данные на своем компьютере, данные будут находиться под его контролем в то время. Затем он может делать с ним все, что ему нравится.

Единственное, что едва ли возможно - защитить ваши данные от несанкционированного изменения. Вам понадобится NTFS или аналогичная файловая система. Но даже в этом случае он сможет прочитать все данные, отформатировать ваш диск, очистить все разрешения и записать все файлы обратно - возможно, с изменениями.

[править] 500 ГБ - это просто миллиарды цифр. Позвольте мне кипеть его вниз к простому примеру: 5. Это один номер. Вы можете прочитать его, и ничто из того, что я могу сделать, не помешает вам записать этот номер. Также я не могу помешать вам написать номер 6.


18
+1 за объяснение копирования. Кроме того, ваше второе замечание иллюстрирует еще один известный принцип в области компьютерной безопасности: физический доступ означает «игра окончена». Если кто-то имеет физический контроль над вашим приводом, он может делать с ним все, что пожелает. Единственное, что вы можете сделать, - это запретить им читать его содержимое с помощью надежного шифрования.
Натан Лонг

17
Что вы можете сделать, это криптографически подписать исходные данные, а затем проверить, соответствуют ли данные этой подписи. Если это так, вы знаете, что это не было изменено. Это математически надежная защита. Но математика не может предотвратить создание другого набора данных, основанного на оригинале (и, возможно, слегка измененном).

2
500 ГБ - это тоже действительно очень большое число
Anne Nonimus

11

Нет, это определенно невозможно.


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

3
Barfieldmv: Ваш друг мог заранее настроить компьютер, чтобы автоматически копировать всю информацию, когда она была прочитана.
Пропустить голову

9
@Barfieldmv: xkcd.com/538
orlp

4
@SkipHead Он, возможно, даже уже скопировал данные, когда тебя не было рядом. Вы должны просто застрелить его и покончить с этим: D
Barfieldmv

11

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

Другим способом является аппаратный блокировщик записи, вы можете посмотреть здесь: http://www.forensicswiki.org/wiki/Write_Blockers


3
Я всегда задавался вопросом, если резать палец п ° 23 на PATA кабель будет делать трюк, если так вы только что получил ~ $ 800 Boxcutter ^^
Shadok

@Shadok: ценник не отражает техническую часть - блокировка записи для большинства современных накопителей действительно технически проста (блокировка изменений, например, атрибутов SMART, теперь это другая история). Это «сертификационный» бизнес - видите, что реклама «NIST Ver. 2 принята»? В этом весь смысл: вам не нужно доказывать в суде, что устройство фактически и надежно блокирует записи (что может стоить несколько дороже, даже на несколько порядков выше 800 долларов).
Писквор

7

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

  • Вы можете использовать математику для проверки того, что сообщение является правильным и правильно скопировано, без двойного копирования всего сообщения (простые контрольные суммы , вы иногда будете сталкиваться с ними при загрузке программного обеспечения).
  • Вы можете использовать математику, чтобы убедиться, что кто-то, кто знает магический номер, одобрил сообщение. ( криптографические подписи ).
  • Вы можете использовать математику для шифрования сообщения, пока кто-то с нужными номерами не придет, чтобы расшифровать сообщение ( шифрование ).

Но вы не можете использовать математику, чтобы не дать людям скопировать сообщение. Это просто не то, что математика может сделать . (Копирование данных - это не просто математика, а физика. :)

Самое близкое, что вы можете получить - это использовать математические методы для шифрования некоторых данных, использовать математические методы для проверки того, что на компьютере запущено только то программное обеспечение, для которого вы хотите его запускать, и только после этого дать компьютеру магический номер для расшифровки данных. сделав дополнительную дополнительную уверенность, что программное обеспечение не в конечном итоге не выпустит магическое число и не позволит кому-либо скопировать данные. Это доверенные вычисления, и это более или менее то, что пытаются делать DVD-плееры и игровые приставки. Это менее чем практично для большинства установок и имеет тенденцию заканчиваться тем, что его так или иначе сломали (например, 09 f9 ).


6

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

  • Защита от записи с помощью перемычки на жестком диске; перемычка может быть удалена или заменена (даже если вы впаяете перемычку, припой можно удалить)
  • Защита от записи с помощью отсечения или замены внутренних компонентов жесткого диска; внутренности могут быть исправлены, или сами диски, вероятно, могут быть перемещены в чистый жесткий диск (возможно, требующий больших усилий ...)
  • Защита от записи с помощью программного обеспечения; данные на диске равны 1 с и 0 в конце дня - любой блок может быть изменен. Если ваш друг не беспокоится о сохранении данных, он может просто расплавить накопитель в печи. Это определенно изменило бы данные ...

Как уже говорили другие, невозможно предотвратить копирование, потому что если его можно прочитать, его можно скопировать.

Вы можете попросить своего друга ничего не копировать и не изменять. Предположительно, если они ваши друзья, они будут рады подчиниться ...


5

Предотвратить изменения путем копирования

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

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

Это сразу же побеждает ваш запрос «невозможно скопировать», но в любом случае это невозможно удовлетворить.


Потокового содержимого всего диска в безопасное приложение, которое позволяет только просматривать данные должно быть достаточно. Удаленный рабочий стол на защищенной машине может просматривать все, но ничего не делать, что вам запрещено.
Barfieldmv

@Barfieldmv - возможно, это правда, но 1) потоковая передача в приложение для просмотра - это форма копирования, 2) решение для удаленного рабочего стола предполагает, что в нем нет дыр в безопасности, 3) оба они сложнее и более открыты для ошибок, чем создание простая копия. Если мой жесткий диск физически недоступен для вас, я могу гарантировать, что вы не сможете его изменить. Если у вас есть какой-то доступ к сети, всегда есть шанс, что вы знаете о хаке, от которого я не защищался.
Натан Лонг

Потоковая передача 100 гигабайт фильмов в низком качестве может сделать очень непрактичным «копирование» фактических данных, но этого может быть достаточно для оригинального плаката. Достойная защита сети Offcourse основного запрошенной безопасности и должна быть данностью.
Barfieldmv

5

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

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


3
Тем не менее, это данные, которые вы не можете прочитать . Вы можете только деструктивно использовать такие данные. Вопрос предполагал данные, которые были читабельны.
MSalters

4

Как отмечали многие другие, при нормальных обстоятельствах «обычно делиться и читать» подразумевает «можно скопировать», и ответ на ваш вопрос «нет».

Единственный способ получить «да» - переопределить «читать нормально», изменив обстоятельства:

Зафиксируйте своего друга в комнате, передайте устройство, на котором вы ввели ключ, убедитесь, что на устройстве нет ввода-вывода или сети, которая может позволить копирование, убедитесь, что у вашего друга нет камеры или фотографической памяти (с которой для копирования дисплея), извлеките устройство и верните его в нечитаемое состояние, извлеките устройство и освободите друга из комнаты. (Обратите внимание, что если они могут подробно изучить устройство, они все равно могут найти закрытые или временные ключи, поэтому «нет ввода-вывода» означает отсутствие физического доступа к внутренним устройствам.)

Это звучит как "читать нормально" для вас? Если так, то все готово. Я не рассчитывал сделать это привычкой или строить бизнес-план вокруг процесса.


1
Это происходит с новыми альбомами некоторых более крупных групп - iPod, запертые в шкафах с охранниками там. Идея состоит в том, что рецензенты могут услышать альбом до его официального выпуска без риска утечки. Это определенно произошло с альбомом Coldplay.
Богатый

@Rich: Что мешает им вживить магнитофон в зуб? Вы можете усложнить копирование, когда предоставляете права на чтение, но никогда не можете сделать это невозможным.
Эмилио М Бумачар

@EmilioMBumachar очень верно, но достаточно ли безумен кто-либо, чтобы пойти так далеко, как для следующего альбома Coldplay, за рамками этого обсуждения :)
Rich

4

Чтение IS копирования.

Любые данные, к которым вы получаете доступ на любом компьютере, являются копией данных на жестком диске, которые были скопированы в оперативную память (память) компьютера, а не фактическими данными на самом жестком диске. Если вы действительно хотите углубиться, есть больше промежуточных копий на контроллере жесткого диска и различных подмножеств компьютерной памяти, но это просто интересно для техногеков. Когда вы посещаете веб-сайт, информация о жестком диске сервера этого веб-сайта копируется на жесткий диск вашего компьютера, а затем в его память, так что это еще один шаг вперед. И я даже не включил память сервера или пакеты данных, отправляемые через Интернет, среди многих других шагов копирования.

Вы просите, чтобы что-то произошло, а затем не позволяете. Это возможно, возможно, в крайнем случае драконовского общества, где все подчиняются правительственному решению против «копирования». Прочитайте о попытке Sony сделать это здесь и о том, как это может быть ужасно: http://en.wikipedia.org/wiki/Sony_BMG_copy_protection_rootkit_scandal


3

Что ты можешь сделать:

  1. Цифровая подпись каждого файла (или, альтернативно, файловой системы), так что любые изменения не смогут подписи и будут недействительными.
  2. Зашифруйте файловую систему, чтобы никто кроме вас и вашего друга не мог ее просмотреть.
  3. Предоставьте своему другу компьютер, которым вы полностью управляете, чтобы ему / ей было намного сложнее копировать данные.

Что вы не можете сделать:

  1. Предотвратите вашего друга, если он / она может прочитать файл на своем собственном компьютере, от копирования этого файла.
  2. Не допускайте, чтобы ваш друг подписывал цифровую подпись на своей собственной файловой системе, если только вы не используете доверенную третью сторону для управления своими сертификатами аутентификации.

Что вы не должны делать:

  1. Дайте конфиденциальную информацию тому, кому вы не доверяете.

1

Я бы сказал нет, как и все выше, но я могу дать краткое представление о том, как это можно сделать.

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

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

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


1

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

Если есть только один (или несколько) типов файлов, которыми вы хотите поделиться (например, текст, видео, ppts и т. Д.), Выполните следующие действия (необходимы возможности программирования):

  1. Добавьте немного мусорных данных в начало каждого файла (используйте программу). Данные должны быть легко удалены предсказуемым образом и, если хотите, сделать их выводимыми из имени файла. Например, вы можете добавить к файлу md5-хэш имени файла. Чтобы удалить его, вам просто нужно удалить хеш. Этот шаг сделает все файлы бесполезными для копирования вашим другом, так как они не будут работать нормально.
  2. Используйте API для написания простого (video | image | text | независимо от того, какой другой тип файла вам нужен) средства просмотра. Java была бы хороша (достаточно API там).
  3. Запрограммируйте средство просмотра файлов для удаления данных мусора из каждого файла перед открытием (обратите внимание, что он не должен удалять его из файла навсегда, просто удалите его из копии, которую он загружает в ОЗУ)
  4. Запрограммируйте вашу программу просмотра файлов для работы только на внешнем жестком диске. Вы можете сделать это, добавив системные файлы на жесткий диск (используйте attrib + s + h в командной строке Windows), и потребуйте их при запуске программы. Вы также можете сделать так, чтобы он не работал, если он находится на диске C: (посмотрите текущий путь к диску с помощью File.getCanonicalNamespace)

    5. Там вы идете! Ваш друг может просматривать все файлы с помощью средства просмотра, но сами файлы практически бесполезны.

Этот метод не будет работать для текстовых документов, но ваш алгоритм создания мусора можно сделать более изощренным, чтобы искажать весь файл обратимым образом (простой пример - rot13).

Также не рекомендуется этот метод, если у вас есть только одна копия материала. Полоскание должно быть обратимым, но все может пойти не так.

Немного надоело делать все это, но только так я могу думать. Это именно то, как Netflix и все они делают свои онлайн фильмы непостижимыми. Они используют свои собственные форматы (возможно, намного более сложные, чем эта), и у них есть собственный зритель.

Защита от записи может быть сделана, но ее легко взломать (у любого, у кого есть физическое устройство, есть все).

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

Если у вас нет отдельной копии, то в файловых системах NTFS есть опция только для чтения; но это легко обойти.


1
Обратите внимание, что эта программа все равно будет взломана. Java.lang.reflect позволяет широко раскрыть программу. Надеюсь, ваш друг не пойдет до такой степени.
Manishearth

1

Все ... терпите меня , это упражнение в наивности.

Я думаю, что ОП просил что-то простое . Я также считаю, что если вы предложите такой глубокий вопрос группе людей, многие об этом задумаются.

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

Таким образом, реальный вопрос заключается в следующем: « Как мне усложнить задачу для моего друга, если он попытается скопировать эти файлы ».

Если мы предполагаем, что ваш друг - обычный человек и не способен читать по памяти, и мы предполагаем, что они не будут читать этот пост ... :-)

Как предложено выше, API может работать.
Помните, что все, что записано в память, «доступно».
То же самое можно сказать и о файловой системе, очевидно.

С моей головы можно было бы создать переводчика.
Это свободная концепция, но я думаю, что она будет работать нормально.

Если вы не хотите сами что-то писать, не двигайтесь дальше.


Nerd Stuff

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

Вы можете использовать ключи здесь. Если вы написали бинарный файл, который содержал закрытый ключ + солевой ключ, который был уникальным (или действительно близким к уникальному) для оборудования, которым вы делились - например, серийный номер устройства. Двоичный файл расшифровывает файлы и читает их в обертке.

Так что, если файлы и двоичный файл были перемещены на другое устройство ... он просто потерпит неудачу. Потому что ключи не совпадают, как ожидалось.

Теперь - при условии, что действительно квалифицированный специалист, вероятно, все еще сможет обойти это несколькими способами.

НО - ваш обычный человек, вероятно, не захочет тратить время / усилия / деньги.

Немного легкого чтения:
http://en.wikipedia.org/wiki/Disk_encryption

Некоторое программное обеспечение (так что вы можете поиграться с шифрованием):
http://www.truecrypt.org/

Самый простой вид «обертки», который вы можете создать, - это приложение Adobe Air ...
http://www.adobe.com/products/air.html

Это будет работать на разных платформах (теоретически).
Барьер для входа в этот вид программирования относительно невелик.
http://www.liquidsilver.org/2010/02/write-your-own-adobe-air-application/


Я надеюсь, что это помогло немного.


Реальный вопрос: «Как мне усложнить задачу для моего друга, если он попытается скопировать эти файлы?» Ответ, который может найти ОП, - это, например, преобразование всех ваших текстовых документов в PDF-файлы (или переход в средневековье на его ** и преобразование их в JPEG или TIFF). Хотя эти файлы можно копировать, восстановление исходного текста в удобной форме требует немного усилий.
Скотт

1

Нетривиально с цифровыми данными, благодаря великолепным инструментам с открытым исходным кодом. Тем не менее, вы можете создать свой собственный зашифрованный формат, который hardнужно разбить для копирования. Подумайте, DRM защищенный контент.


0

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


0

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

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

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

Короче говоря: не тратьте время, пытаясь защитить читаемые данные от копирования, и вкладывайте их во что-то полезное. Ходить в кино, например.


-2

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

Вы можете настроить SSH. Google о том, как настроить SSH на вашей платформе. Существует множество пакетов программного обеспечения для обмена данными между компьютерами.


1
Ну и что? Он может просто войти в сетевой поток для воспроизведения данных
Тобиас Кинцлер,
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.