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

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

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

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

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

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

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

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

Нет, это окончательно невозможно.

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

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

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

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

Но вы не можете использовать математику, чтобы люди не копировали сообщение. Это просто не то, что может сделать математика . (Копирование данных меньше «математики» и более «физики». 🙂

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Звучит ли это как «нормально прочитанный» для вас? Если это так, вы все настроены. Тем не менее, я бы не стал рассчитывать на то, что это привычка или построение бизнес-плана.

Чтение копирует.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Все … медведь со мной , это упражнение в наивности.

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

Цель здесь заключается не в том, чтобы предотвратить или не дать им ничего сделать. Это на самом деле сделать так много работы, чтобы обойти то, что они хотят сделать, – что они предпочли бы отказаться или получить «более легкий способ» покупки или что-то еще.

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

ЕСЛИ мы предполагаем, что ваш друг – средний человек и не способен читать память, и мы предполагаем, что они не собираются читать этот пост … 🙂

Как было сказано выше, 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/


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

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

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

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

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

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

Вкратце: не тратьте время на то, чтобы защитить прочитанные данные от копирования и вложить в них что-то полезное. Например, в кино.

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

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

Interesting Posts

Почему ковариация и контравариантность не поддерживают тип ценности

Сбросить пароль пользователя жесткого диска, если я знаю мастер-пароль жесткого диска?

Как добавить нижний колонтитул в NavigationView – библиотеку дизайна поддержки Android?

Удалите часть строки после “.”

Как объединить три клавиши в качестве горячей клавиши с Autohotkey?

Зачем использовать StringBuffer в Java вместо оператора конкатенации строк

Сохранение любого файла в базе данных, просто преобразование его в массив байтов?

Как я могу складывать / накладывать jPanels в Java?

Установите масштаб отображения при использовании удаленного рабочего стола с Surface Pro

Система, подключенная к ИБП, переходит в сон короткое время после потери питания

Доступ Windows 7 запрещен к исполняемым файлам .. чем?

Как использовать кеширование диска в Picasso?

Получить идентификатор последней вставленной записи в oracle db

Windows 7 64-разрядный пользовательский ПК, зависающий случайным образом каждые несколько дней

Как я могу выровнять текст в столбцах с помощью Console.WriteLine?

Давайте будем гением компьютера.