41

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

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

18 ответов18

203

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

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

77

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

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

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

11

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

11

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

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

7

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

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

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

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

6

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

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

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

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

5

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

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

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

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

5

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

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

4

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

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

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

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

4

Чтение переписывающей.

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

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

3

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

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

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

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

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

  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

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

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

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

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

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

Как предложено выше, 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/


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

1

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

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

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

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

1

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

0

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

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

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

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

0

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

-2

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .