Monthly Archives: February 2010

Защита от взлома и копирования

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

С программами это давно уже известно. Если программа в принципе может быть выполнена, её можно сломать. Причина этого фундаментальна: чтобы программа была выполнимой, процессор (или интерпретатор) должен иметь доступ к её коду. И хоть ты тресни с алгоритмами проверки ключей, паролей или чего бы то ни было: любой алгоритм можно откопать и банальным образом отключить. Можно приложить больше усилий – воткнуть в произвольных местах программы проверки, чтобы криво взломанная программа валилась спустя какое-то время после запуска. Но сколько ни старайся – эти все проверки у опытного взломщика на виду и их тоже можно отключить. Смысл тут лишь в том, что чем больше намудришь – тем больше копаться. Но с другой стороны и желания покопаться больше будет. А мир большой, желающих много – кто-нибудь да сломает. Единственный реальный способ защитить программу от взлома – DRM на аппаратном уровне. Но с современными компьютерами это, к счастью, пока не работает.

Теперь появилась мода защищать информацию от копирования. И тот же самый принцип, из-за которого это невозможно: любая информация, в принципе доступная, должна как-то попасть в память, а значит может быть сохранена на диск. Будь это потоковое видео, интернет-радио или текст в онлайн-библиотеке – если оно может попасть на устройства вывода, то это можно и сохранить. Как-то попался мне в лапы защищённый от копирования файл в формате PDF. Оттуда надо было скопировать пару страничек. На крайний случай – и FineReader бы справился. Но поступил иначе – взял исходный код программы xpdf, закомментировал в нём проверку прав на копирование, перекомпилировал и получил программу просмотра PDF, плюющую на все разрешения. Скопировалось всё за милую душу.

Или вот электронные библиотеки. Может у меня Интернет на одном компьютере, а книги я хочу почитать на другом – да может вообще на ноутбуке в глухом лесу. И что? Какой дурак придумал, что текст, отображаемый браузером на экране, можно защитить от копирования? Да, можно взять кучу путаных скриптов, динамически собрать текст из фиг знает чего, разбавив его произвольными невидимыми буквами. И в результате лишь дело за тем, чтобы сохранить не исходный код страницы, а результирующий DOM – легко делается, например, с помощью DOM Inspector в Firefox. А уж невидимые буквы убрать – дело одного стиля.

Вот уж воистину, защита от дурака.