Чи можу я зашифрувати дані таким чином, що вони можуть читатися нормально, але не можуть бути скопійовані чи відредаговані? [зачинено]


41

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

Це можливо?


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

10
Багато відповідей, якщо не більшість, тут задають неявне або навіть явне запитання "Що ти насправді маєш на увазі?" Ви можете уточнити своє запитання, особливо те, що ви маєте на увазі під "поняттям, яке можна читати нормально" та "не можна скопіювати".
Зано

111
Приємна спроба, RIAA / MPAA!
Нараян

7
Про це ми часто спілкуємося на біржі стека безпеки. Прочитайте це питання та відповіді: Чи існують методи DRM для ефективного запобігання піратству? за деякою корисною інформацією. Найвища відповідь за оцінкою - один із мод на Crypto Stack Exchange - але ми маємо точки зору від криптографічних до суто практичних.
Rory Alsop

7
@JarrodRoberson: Сподіваюся, ти несерйозний. До ОП: ви не можете просто контролювати його / її? Чому так важливо, щоб вони мали можливість читати стільки даних, а не копіювати їх? Що б вони могли зробити з копією даних, яка не була б можливою з оригіналом?
Джеймс

Відповіді:


201

Якщо ви можете прочитати, ви можете скопіювати. Концепція, яку RIAA або MPAA ще не може осягнути.

Примітка. Ця відповідь не вважається хорошою відповіддю відповідно до вказівок Stack Exchange . Однак він зберігається завдяки своїй популярності та ефективності в контексті питання.


5
@Michael У цьому плані немає нічого особливого щодо спеціальних пристроїв, те саме стосується. Якщо ви можете прочитати, ви можете скопіювати.
Конрад Рудольф

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

15
Я думаю, було б добре цю відповідь трохи розширити . Він коштує 136 оновлених результатів і по суті не довший, ніж вирок, що насправді не є прикладом "хорошої" відповіді - принаймні, з точки зору Stack Exchange.
slhck

9
Я думав зробити це, але насправді я не міг придумати нічого іншого, що потрібно було б сказати. Це дійсно фундаментальна проблема, яка вимагає стислого опису, як на мене, так чи інакше.
Сірекс

6
@slhck: Це досить проста відповідь на досить просте запитання: Питання: "Чи можу я зашифрувати (або перетворити будь-яким способом) частину даних, щоб її неможливо скопіювати?" відповідь: Ні. Якщо ви вмієте читати, то те, що ви читаєте, може бути написане десь в іншому місці.
KeithS

76

"Копія" визначається як читання даних, а потім записування тих же даних в інше місце. Оскільки він зачитав ваші дані на своєму комп’ютері, дані будуть на той час під його контролем. Потім він може робити все, що завгодно.

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

[ред.] 500 ГБ - це лише мільярди цифр. Дозвольте мені кипіти його вниз до простого прикладу: 5. Це одне число. Ви можете його прочитати, і нічого, що я не можу зробити, не завадить вам записати це число. Я також не можу завадити вам написати номер 6.


18
+1 для пояснення копіювання. Також ваш другий пункт ілюструє ще один відомий принцип в комп'ютерній безпеці: фізичний доступ означає «гра закінчена». Якщо хтось має фізичний контроль над вашим приводом, він може робити з ним все, що завгодно. Єдине, що ви могли б зробити, це не допустити, щоб вони читали його вміст, використовуючи сильне шифрування.
Натан Лонг

17
Що ви можете зробити, це криптографічно підписати вихідні дані, а потім перевірити, чи дані все ще відповідають цій підписі. Якщо це так, ви знаєте, що це не було змінено. Це математично надійний захист. Але математика не може перешкоджати створенню в першу чергу іншого набору даних на основі оригіналу (і, можливо, тонко зміненого).

2
500 ГБ - це також одна дійсно дуже велика кількість
Енн Нонімус,

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 доларів ^^
Шадок

@Shadok: Ціна не відображає технічну частину - блокування записів для більшості сучасних дисків справді технічно просте (блокування змін, наприклад, атрибутів SMART, тепер це вже інша історія). Це "сертифікаційний" бізнес - бачите, що "NIST Версія 2 прийняла" розмиття? У цьому і вся суть: вам не потрібно доводити суду, що пристрій фактично і надійно блокує запис (що може отримати дещо дороге, навіть на кілька порядків понад 800 доларів).
Пісквор

7

Шифрування - це лише математика . Подумайте про це трохи, і ви краще зрозумієте його можливості та обмеження:

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

Але ви не можете використовувати математику, щоб не дозволяти людям копіювати повідомлення. Це просто не те, що математика може зробити . (Копіювання даних менше "математики" і більше "фізики". :)

Найближче, до якого ви можете підійти, - це використовувати математику для шифрування деяких даних, використовуйте математику для того, щоб переконатися, що на комп’ютері працює лише програмне забезпечення, яке ви хочете, щоб воно працювало, і лише тоді дайте комп'ютеру магічне число для розшифрування даних, тим часом. завдяки чому додатково переконайтеся, що програмне забезпечення не випускає магічне число або не дозволяє копіювати дані. Це надійні обчислення і є більш-менш те, що намагаються робити DVD-програвачі та консолі відеоігор. Він є менш практичним для більшості налаштувань і, як правило, так чи інакше порушується (наприклад, 09 f9 ).


6

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

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

Як уже говорили інші, неможливо запобігти копіюванню, оскільки якщо його можна прочитати, воно може бути скопійовано.

Ви можете спробувати попросити свого друга нічого не копіювати і не змінювати. Імовірно, якщо вони є вашим другом, вони будуть раді їх виконати ...


5

Запобігати редагуванню шляхом копіювання

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

Якщо ви копіюєте свої дані на окремий жорсткий диск і зберігаєте оригінал, очевидно, одержувач копії не може змінити ваш оригінал.

Це негайно перемагає ваш запит "не може скопіювати", але це все одно неможливо задовольнити.


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

@Barfieldmv - можливо, правда, але 1) потокове передавання в програму перегляду - це форма копіювання, 2) рішення на віддаленому робочому столі передбачає, що там немає жодних дірок у безпеці; проста копія. Якщо мій жорсткий диск фізично недоступний для вас, я можу гарантувати, що ви не можете його змінити. Якщо у вас є якийсь доступ до мережі, завжди є шанс, що ви знаєте про хак, від якого я не захищався.
Натан Лонг

Передача 100-кілограмових фільмів із зниженою якістю може зробити дуже недоцільним "копіювати" фактичні дані, але може бути достатньо для оригінального плаката. Пристойний захист мережі є базовим для запитуваної безпеки і повинен бути даним.
Barfieldmv

5

No-клонування теорема може допомогти вам, якщо у вас є квантовий комп'ютер. Однак недосконале клонування все-таки було б можливим:

Теорема про не клонування є результатом квантової механіки, яка забороняє створювати однакові копії довільного невідомого квантового стану. [...] Клонування - це процес, кінцевим результатом якого є роздільний стан з однаковими факторами.


3
Однак це дані, які ви також не можете прочитати . Використовувати такі дані можна лише руйнівно . Питання передбачало, що дані читаються.
MSalters

4

Як зазначають багато інших, за звичайних обставин "ділитися і читати нормально" мається на увазі, "можна скопіювати", а відповідь на ваше запитання - "ні".

Єдиний спосіб дістатися до "так" - це переосмислити "читати нормально", змінивши обставини:

Замкніть свого друга в кімнаті, передайте пристрій, на якому ви ввели ключ, переконайтесь, що на пристрої немає вводу-виводу або мережі, яка могла б перешкодити копіюванню, переконайтеся, що ваш друг не має фотоапарата чи фотографічної пам'яті (з якою скопіювати дисплей), вийміть пристрій і поверніть його до нечитабельного стану, вийміть пристрій та звільніть свого друга з кімнати. (Зверніть увагу, якщо вони можуть глибоко перевірити пристрій, вони все ще можуть знайти приватні або ефемерні ключі, тому "відсутність вводу / виводу" означає відсутність фізичного доступу до внутрішніх пристроїв.)

Це звучить як "читати нормально" для вас? Якщо так, то все налаштовано. Я б не розраховував на те, щоб зробити це звичкою або будувати бізнес-план навколо процесу.


1
Це трапляється з новими альбомами більшої групи - iPod, які зачинені у шафах із охоронцями. Ідея полягає в тому, що рецензенти можуть почути альбом до його офіційного випуску без ризику витоку. Це, безумовно, відбувається з альбомом Coldplay.
Багатий

@Rich: Що заважає їм імплантувати рекордер у зуб? Ви можете зробити копіювання складніше, коли ви надаєте доступ для читання, але ніколи не можете зробити це неможливим.
Еміліо М Бумачар

@EmilioMBumachar дуже правда, але чи хтось злий, щоб піти так далеко, що для наступного альбому Coldplay виходить за рамки цієї дискусії :)
Багатий

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, щоб написати простий (відео | зображення | текст | текст | будь-який інший тип файлу). Java буде непоганий (там достатньо API).
  3. Програмуйте свій переглядач файлів, щоб видалити дані сміття з кожного файлу перед відкриттям (зверніть увагу, що він не повинен видаляти його з файлу назавжди, просто видаліть його з копії, яку він завантажує в оперативну пам’ять)
  4. Програмуйте переглядач файлів працювати лише на зовнішньому жорсткому диску. Це можна зробити, перекресливши системні файли на жорсткому диску (використовуйте attrib + s + h у командному рядку Windows), і вимагати їх при запуску програми. Ви також можете змусити його не працювати, якщо він знаходиться на C: Drive (подивіться на поточний шлях із файлом File.getCanonicalNamespace)

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

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

Цей метод також не радиться, якщо у вас є лише одна копія цього матеріалу. Одяг повинен бути оборотним, але все може піти не так.

Трохи клопочусь робити все це, але єдиний спосіб я можу придумати. Саме так Netflix та всі роблять свої онлайн-фільми непереборними. Вони використовують власні формати (напевно, набагато досконаліші, ніж цей), і у них є власний переглядач.

Захист запису можна зробити, але його легко скласти (у кого є фізичний пристрій, є все).

Якщо у вас є окрема копія цих файлів, то використання вищевказаного методу захисту від копіювання автоматично захистить файли від захисту, оскільки користувач не зможе тонко редагувати файли. Він може їх видалити.

Якщо у вас немає окремої копії, у файлових системах NTFS є опція лише для читання; але це легко обійти.


1
Зауважте, що ця програма все-таки буде зламана. Java.lang.reflect дозволяє відкрити програму широко відкритою. Сподіваємось, ваш друг не піде до такої міри.
Manishearth

1

Всі ... майте мене , це вправа бути наївним.

Я думаю, що ОП просила щось просте . Я також річ, що якщо ви запропонуєте такому глибокому запитанню до групи людей, багато хто над цим подумає.

Мета тут - не перешкоджати чи гарантувати їм щось робити. Насправді зробити так багато роботи, щоб обійти те, що вони хочуть зробити - щоб вони краще відмовилися або придбали це «простішим способом» покупки чи будь-чого іншого.

Тож справжнє запитання: " Як зробити справи важким для мого друга, якщо він спробує скопіювати ці файли ".

ЯКЩО ми вважаємо, що ваш друг звичайна людина і не здатний читати пам'ять, і ми припускаємо, що не збираються читати цю публікацію ... :-)

Як було запропоновано вище, API може працювати.
Пам’ятайте, що все, що читається в пам'яті, можна «отримати».
Очевидно, те саме можна сказати і для файлової системи.

У верхній частині моєї голови можна було б створити перекладача.
Це вільна концепція, але я думаю, що це спрацювало б добре.

Якщо ви не хочете писати речі самостійно, не продовжуйте далі.


Nerd речі

Тож зашифруйте жорсткий диск.
Є багато інших тем, як це зробити, щоб я не висвітлював це тут.
Коли ви шифруєте його, має сенс лише розшифрувати його.

Тут ви можете використовувати ключі. Якщо ви написали двійковий файл, який містив приватний ключ + сольовий ключ, який був унікальним (або насправді близьким до унікального) для обладнання, яким ви ділилися, як-от серійний номер пристрою. Двійковий файл розшифровує файли та читає їх у обгортці.

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

Тепер - зрозуміло, що справді кваліфікована людина, ймовірно, все-таки зможе обійти це кількома способами.

АЛЕ - ваш пересічний чоловік, напевно, не захоче вкладати час / зусилля / гроші.

Деякі легкі читання:
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.