Портал Web Brothers & Company
Портал Web Brothers & Company

Защита от копирования часть 1


ИНФОРМАЦИЯ
Rated 2.56/5 (51.15%) (262 Votes)
]]> ]]>

Автор: Неизвестен
E-mail: нету :(
Источник: тут :)
Добавлено: 24.03.09, 02:06
Изменено: 24.03.09, 02:56
Прочитано раз: 3489

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

 В  России и республиках бывшего  СССР, в  силу несовершенства действующего законодательства  о  правовой  охране программных  средств,  а  также его фактической   неработоспособности, проблема предотвращения несанкционированного копирования дистрибутивных дискет особенно актуальна. Суть данной  проблемы заключается  в том,  чтобы  записать  информацию на стандартную дискету таким образом, чтобы  ее можно было считать с дискеты, используя  только средства  операционной  системы  (DOS),  но  нельзя было скопировать никакими стандартными средствами. Для этой цели дистрибутивные дискеты снабжают особым признаком, называемым ключевой меткой, которая при стандартном копировании не переносится на дискету - копию. Ключевая метка является наиболее  важным элементом  защиты дискет, она практически полностью определяет основные характеристики защищенной дискеты, такие, как совместимость  с различными  стандартными аппаратными средствами считывания, устойчивость против копирования, надежная воспроизводимость, стабильность параметров во  времени.  Устойчивость ключевой  метки против неблагоприятных  внешних  воздействий,  таких, как перепады температуры и влажности, магнитные поля, деформация, механическое истирание при многократном  считывании,  естественное  старение материала дискеты, не должна быть ниже таковой  для информации, записанной на эту же дискету стандартным путем. Существует (и практически  применяется) множество различных способов создания ключевых меток на дискетах, однако, далеко не все из них удовлетворяют перечисленным  требованиям. Это относится, главным образом, к дистрибутивным дискетам,  защищенным отечественными программными средствами. Формирование ключевой метки может производиться либо только стандартными аппаратными средствами, входящими в состав компьютера (программная защита), либо с использованием дополнительной аппаратуры (аппаратная защита). В качестве такой аппаратуры чаще всего используется лазер, излучающий элемент которого жестко связан головкой дисковода, на котором производится запись. Лазер точно дозированным импульсом излучения выжигает (испаряет) в заданных местах на поверхности дискеты ничтожно малые углубления (holes), которые и являются ключевой меткой. Это наилучший из известных способов создания ключевой метки, он широко используется крупными зарубежными фирмами, однако требует наличия весьма дорогостоящей аппаратуры. Здесь необходимо отметить, что создание ключевой метки путем повреждения дискеты острым предметом (накола), абсолютно не допустимо, поскольку, в отличие от испарения лазером, удаления материала дискеты при наколах не происходит, поэтому на дискете образуется ямка с выступающими краями, оставляющими царапины на головке дисковода. Для отечественных производителей программных средств более приемлемы программные способы создания ключевой метки.

 

 

 1.Форматирование диска.

  

Методы защиты дисков другого типа связаны с технически ми особенностями дисководов и самих дисков. Для описания этих механизмов обратимся к структуре отформатированного гибкого диска . В качестве модели рассмотрим диск размером 3,5 дюйм, отформатированный в операционной системе PC DOS.

На поверхность диска нанесено магнитное покрытие, аналогичное покрытию магнитной ленты. Информация записывается на диск как невидимый магнитный рисунок в виде последовательности концентрических окружностей, называемых дорожками. При вращении диска текущая выбранная дорожка неоднократно проходит под головкой, обеспечивающей как запись, так и считывание. Механизм, перемещая головку радиально, позволяя выбрать различные дорожки. Дорожки нумеруются от 0 (самая внешняя дорожка) до 79 (самая внутренняя). Каждая дорожка разделена на 18 секторов, пронумерованных от 0 до 17. Каждый сектор состоит из поля адресных меток, которое включает метку начала дорожки, метку идентификации, метку данных, и поля данных, которое содержит информацию. Каждое поле содержит пролог, данные, контрольную сумму и эпилог. Форматы дисков других компьютеров используют те же концепции, различия имеются только в деталях (число дорожек, односторонняя или двусторонняя запись).

1.1 Организация начальной загрузки

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

1.2. Разбиение на секторы и форматирование

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

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

 2. Улучшенные механизмы защиты.

 

Элементарные методы защиты пригодны для небольших фирм и отдельных изготовителей, производящих недорогие программы для ограниченного применения, например на языке BASIC. По отношению к пользователям-непрофессионалам такой защиты достаточно, чего нельзя сказать относительно опытных профессионалов. По мере становления производства программного обеспечения и роста финансовых вложений, усиливались требования к системе защиты. В связи с широким распространением пакета электронных таблиц Viskalc внимание привлекла проблема защиты от копирования всего диска. Visicalc и другие популярные коммерческие программы были написаны на машинном языке, а не на языкеBASIC. Некоторые пользователи обладали квалификацией, терпением или желанием вникнуть в программу и узнать, как она работает и внести какие-то изменения. Чтобы воспрепятствовать этому, совершенно недостаточно описанных выше элементарных методов, Многие пользователи хотели скопировать полный диск, чтобы распространить его па другие компьютеры или передать копию своим друзьям.

Простейший метод защиты от копирования всего диска сводится к защите диска от копирования утилитом копирования, поставляемым производителями компьютеров или операционной системы В основе такого утилита лежит простой алгоритм:

Отформатировать диск:

FOR T=0 ТО 79 DO

BEGIN

Найти дорожку Т на диске назначения;

Найти дорожку Т на исходном диске;

IF дорожка Т не найдена THEN печать сообщения об ошибке и выход из программы;

FOR S=0 TO 17 DO

BEGIN

Найти сектор S на исходном диске;

IF сектор S не найден THEN печать сообщения об ошибке и выход из программы;

Считать содержимое сектора S в буфер ОЗУ;

IF сектор S нельзя считать THEN печать сообщения об ошибке и выход из программы;

Найти сектор S на диске назначения;

Записать буфер ОЗУ в сектор S диска назначения;

END DO;

END DO;

END PROGRAM

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

2.1. Неформатированные дорожки.

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

2.2. Изменение числа дорожек и секторов.

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

2.3. Изменение размера сектора.

Обычно сектор на диске для компьютера IBM PC имеет объем 512 байт, на диске компьютера Apple It - 256 байт. Довольно легко изменить DOS, чтобы получить различное число байтов па сектор. В некоторых случаях использовались большие секторы, которые заполняли всю дорожку. На компьютерах фирмы IBM программе особенно просто запросить ту часть программы B10S (Basic Input Output System), которая знает, как читать и писать секторы дисков, чтобы было использовано 256 байт на сектор, а не 512. Это одна из первых схем защиты от копирования, использованная на компьютерах фирмы IBM.

2.4. Изменение нумерации дорожек секторов.

Каждый сектор на диске имеет адресное поле, содержащее номер дорожки и номер сектора. DOS проверяет это поле до считывания дорожки. Вместо нумерации секторов на дорожке от 0 до 17 можно было бы пронумеровать их от 70 до 87. Аналогично 80 дорожек могли бы иметь необычную нумерацию: например, пронумерованы первыми 80-ю простыми числами.

2.5. Изменение контрольной суммы.

Каждый сектор имеет байт  который является контрольной суммой данных, содержащихся в этом секторе, Сумма рассчитывается путем выполнения строгой дизъюнкции по всем байтам в секторе, DOS заново рассчитывает контрольную сумму всякий раз, когда считывается сектор, и сравнивает ее значение с тем, что хранится в этом секторе. Если они различаются, то считается, что неверно считан какой-либо байт в секторе. Можно защитить диск, используя различные алгоритмы для расчета контрольных сумм в разных секторах. Собственная DOS на диске использует этот алгоритм, и поэтому сумма автоматически совпадает с контрольной, но стандартная DOS считает дискету нечитаемой.

2.6. Изменение пролога и эпилога.

При считывании дорожки DOS просматривает поток битов, проходящих под головкой диска, и ожидает встречи с началом сектора, которые распознаются по уникальной последовательности байтов (например, D5 АА 96) в прологе поля адреса сектора, которой нигде в секторе не разрешено появляться. Затем DOS начинает считывание и расшифровку остальной части сектора. Довольно просто создать диск, в котором секторы начинаются со слегка измененной последовательности байтов в прологе, например: 96 АА D5. Аналогичное изменение может быть сделано с байтами, которые идентифицируют эпилог поля адреса, а также пролог и эпилог поля данных.

2.7. Побитовые копировщики.

В противовес изложенным выше методам защиты компьютерные фанаты -любители начали писать и тиражировать специальные копирующие программы, известные как «побитовые копировщики» (в Великобритании - bitcopier, в США - nibble copier). Они распространялись бесплатно между фанатами-.любителями. Авторы оставались анонимными, возможно, из-за боязни наказания. Первым коммерчески рекламируемым побитовым копировщиком была программа Locksmith, сделанная фирмой Omega Microwaveв Чикаго в середине 80-х гг. (Имя автора фирма хранила в тайне). Первая версия Locksmith была медленной, но надежной и могла легко преодолеть описанные выше методы защиты от копирования. В течение года появились другие конкурирующие программы, в том числе Nibble AwayCopyrightCopy 11Plus и Essential Data Duplication (E.D.D), но программа Locksmith оставалась наиболее распространенной до тех пор, пока фирма Omega Microwave не прекратила свое существование в 1984 г.

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

 

2.8. Спиральная разметка треков.

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

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

2.9. Медленные накопители

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

 3. Сложные механизмы зашиты.

3.1. Использование сигнатур.

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

3.2. Сигнатура внутренней дорожки.

Вероятно, самым первым методом сигнатурной зашиты было использование дополнительной дорожки. Обычный диск фирмы IBM использует дорожки, пронумерованные от 0 до 79. На самом деле дисковод способен подвести головку к дополнительной, самой внутренней дорожке 80-й (иногда 81-й). Аналогично стандартный накопитель компьютера фирмы Apple имеет только 35 дорожек, самая внутренняя обычно не используется по соображениям надежности. Если в защищенной программе предусмотреть форматирование данной дорожки, это и будет означать, что она отформатирована как сигнатура, подтверждающая оригинальность диска. На самой внутренней дорожке может размещаться некоторая часть собственной информации (например, каталог диска). Обычная копирующая программа не увидит этой дорожки, а побитовый копировщик скопирует ее, если получит соответствующие инструкции.

3.3. Сигнатура промежуточных дорожек

Особенность некоторых дисководов заключается в том, что они могут устанавливать головки. В промежуточное положение между стандартными дорожками. Эти промежуточные положения обычно не годятся для записи данных, так как они настолько близки к стандартным дорожкам, что вызвали бы наложение сигналов, сигналы бы сбрасывались с обычных дорожек на промежуточные и наоборот. С другой стороны, можно использовать промежуточные дорожки, не используя стандартные (например, использовать только дорожки 0, 1.5; 2.5; 3.5; 5; 6; 7), тогда стандартная копирующая программа пропустит промежуточные дорожки 1.5; 2.5; 3.5 .

3.4. Синхронизация дорожек.

На стандартном гибком диске каждая из дорожек содержит нулевой сектор, причем нулевые секторы разных дисков не связаны друг с другом. Когда программа форматирует дискету, она размечает нулевой сектор на дорожке в произвольном месте, как только головка подведена к дорожке (См. Приложение «Синхронизация дорожек, а»). На диске с синхронизированными дорожками нулевые секторы расположены регулярно, например по прямой линии (См. Приложение «Синхронизация дорожек, б»). Такая синхронизация должна быть поддержана программой форматирования.

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

 

3.5. Проверка на блокирование записи.

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

3.6. Преимущество сигнатурных методов.

Основная цель сигнатурных методов—создать дополнительные трудности для пользователя при копировании дисков путем учета разнообразных особенностей диска. Хотя пользователь может легко скопировать диск с помощью стандартной копирующей программы, это копирование будет неадекватным. Если используется побитовый копировщик, вероятнее всего в него не будут включены проверки на синхронизацию, наличие промежуточных дорожек или использование самой внутренней дорожки. Когда пользователь попытается загрузиться с диска-дубликата, это ему не удастся. Поскольку копирующая программа указала, что диск скопирован правильно, то пользователь попытается найти причину в другом: плохие носители, разрегулированные дисководы и т. п. Если пользователю не удаются и повторные, попытки, он отказывается использовать копию диска, и этим достигается цель защиты.

3.7. Сигнатуры уникальных дисков.

В рассмотренных выше методах предполагается, что распространяемые дискеты идентичны. И в этом случае программа загрузки должна отличать диски-оригиналы от дисков-дубликатов. Другой подход к защите состоит в том, чтобы сделать каждый диск-оригинал уникальным. В этом случае каждый диск содержит сигнатуру, которая уникально идентифицирует его. Такая уникальная сигнатура иногда называется «отпечатком пальца», или отличительной меткой. Задача такой сигнатуры — усложнить копирование. Дискета содержит дескриптор своей сигнатуры; если дескриптор и сигнатура не совпадают, то делается вывод, что дискета является незаконной копией. Ниже описаны сигнатурные методы защиты, в которых используется этот подход, хотя они могут быть использованы и для создания партий защищенных дисков.

3.8. Подсчет битов.

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

Для побитового копировщика это весьма сложный метод защиты. Некоторые версии копировщика Locksmith включали утилит, подсказывающий пользователю, что надо отрегулировать скорость накопителя (повернув верньер с помощью отвертки), пока она не придет в соответствие со скоростью накопителя, на котором был записан оригинал. Более поздние копировщики, такие, как Е. DD., используют различные синхронизирующие циклы для изменения скорости, с которой записываются биты на диск назначения, чтобы скомпенсировав скорость дисковода назначения. Эти методы требуют большого числа попыток, чтобы получить удовлетворительные диски-дубликаты.

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

3.9. Использование случайных сигнатур.

Итак, каждая записанная дискета имеет некоторые уникальные свойства, например различие в числе бит в неиспользованных областях между секторами. Обычно эти различия игнорируются. Однако они могут быть использованы как уникальные сигнатуры диска, например при подсчете битов. Другой разумный и простой метод—патентование диска (Baldahin, 1981). По этому методу диск вначале записывается обычным способом. Затем специальная программа (субъект патентования) проверяет предварительно выбранную область диска и точно дублирует ее где-либо на диске, включая все случайные изменения. Когда происходит загрузка с диска, программа сравнивает две области на идентичность. Побитовый копировщик, пытаясь скопировать диск, защищенный с помощью этого метода, не сможет узнать, где располагаются эти области. Он должен копировать полный диск с очень высокой точностью, чтобы обмануть программу загрузки.

3.10. Нарушение синхронизации.

Более тонкие особенности дисковода могут быть использованы путем намеренной десинхронизации записанных данных, Для объяснения этого нужно помнить способ хранения данных на диске. Любые данные, подлежащие запоминанию, состоят из восьмибитовых байтов, каждый из которых может хранить любую комбинацию бит от 00000000 до 11111111, т. е. от 0 до 29—1. При хранении данных на диске они сначала преобразутся в формат, который допускает только ограниченный диапазон значений. В частности, каждый байт должен начинаться с единичного бита. Это обусловлено тем, что аппаратура накопителя не может надежно хранить или распознавать байт, начинающийся с нулевого бита. Затем закодированные байты посылаются по одному в аппаратуру накопителя. Данные хранятся на диске в виде непрерывного потока битов.

Для считывания данных с диска формируется команда — считать биты с дорожки. Аппаратура накопителя собирает биты один за другим по мере движения дорожки под головкой считывания. Аппаратура накопителя не имеет понятия о байтах; она просто хранит копию последних 8 бит в области памяти длиной 8 бит, которая называется сдвиговым регистром. Всякий раз. когда накопитель считывает другой бит с дорожки. Накопитель копирует бит в правый конец сдвигового регистра. На рисунке «Нарушение синхронизации»-в (См. Приложение) показаны четыре последовательных бита, которые считываются с диска в сдвиговый регистр. Каждый раз, когда бит заносится в сдвиговый регистр, все другие биты, находящиеся в сдвиговом регистре, перемещаются на одну позицию влево. Самый левый (старший) бит отбрасывается не теряется.

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

Теперь предположим, что защищенный от копирования диск был записан со специально введенным посторонним нулевым битом, помещенным между первым  и вторым  байтами  (См. Приложение «Нарушение синхронизации» - г). Этот посторонний бит и есть сигнатура. Копирующая программа считывает эти байты. Она считывает правильно первый байт из сдвигового регистра (См. Приложение «Нарушение синхронизации», д) и ожидает, пока механизм накопителя занесет еще 8 бит в сдвиговый регистр, затем просматривает сдвиговый регистр (См. Приложение «Нарушение синхронизации», е). Регистр содержит дополнительный 0 плюс первые семь битов старого байта. Копирующая программа знает, что байт не должен начинаться с 0, поэтому она полагает, что аппаратура не завершила считывание байта и ожидает. Аппаратура считывает другой бит из потока битов (т, е. последний бит старого байта) добавляет его в конец регистра и сбрасывает начальный 0 (См. Приложение «Нарушение синхронизации», ж). Теперь сдвиговый регистр содержит весь второй байт, который воспринимается программным обеспечением. Дополнительный 0 прошел незамеченным и будет дублирован на диске назначения копирующей программой. Когда пользователь  пытается загрузить диск-дубликат, программа загрузки считывает данную дорожку и находит два байта, которые должны содержать сигнатуры. Она последовательно считывает их с диска и измеряет задержку во времени между двумя считываниями. Задержка слишком мала, так как сигнатурный нулевой бит отсутствует, поэтому программа отменяет загрузку. Это, конечно, простой пример. На диске можно разместить большое число таких сигнатур, причем некоторые можно поместить на не отформатированные дорожки. Их выделение и дублирование - трудноразрешимая проблема для любого копировщика.

3.13. Зашифрованные дескрипторы.

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

3.14. Маскировка дорожек.

Дальнейшее развитие побитовых копировщиков существенно зависит от способов проверки защищенных дисков. Если программист может идентифицировать и интерпретировать информацию, которая связана с форматом конкретного диска, или проверить сигнатуру, то можно относительно просто создать побитовый копировщик, который сможет скопировать диск. Это побудило разработать еще более сложные способы маскирования этой информации. Код может быть зашифрован и расшифрован только в тот момент, когда это требуется, или удален из ОЗУ, когда он больше не нужен. Можно использовать вложенное шифрование, когда каждый новый уровень расшифровывает предшествующий. Компиляция с языка высокого уровня также делает программу трудной для интерпретации. Теоретически профессиональный программист может проследить весь процесс загрузки вручную, эмулируя его на бумаге, начав с одного из секторов (обычно нулевая дорожка нулевого сектора), который не должен быть защищен, поскольку в него считывается содержимое ПЗУ компьютера в начале процесса загрузки. На практике тщательное кодирование может сделать Данную задачу настолько трудоемкой, утомительной и чреватой ошибками, что это может воодушевить лишь немногих энтузиастов-программистов.

3.15. Защита от копирования и копирующие программы.

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

Так как появлялись многочисленные методы сигнатурной защиты и использовались их комбинации, то трудность копирования диска возрастала геометрически, Побитовые копировщики предлагали список параметров с возможным диапазоном значений для каждого из них. Однако это еще отсутствовало в побитовых копировщиках для компьютеров фирмы IBM. Типичными параметрами для пакета Locksmith версии 4.1 (октябрь 1982 г.) служили значение числа подсчитываемых битов, значение времени поиска синхронизированного полубайта и число полубайтов, которое нужно проверить в течение интервала обратного чтения. Естественно и не ожидалось, что обычный средний пользователь понимает эти термины, не говоря о выборе соответствующих значений. Вместо этого пользователю был предложен список защищенных программ со значениями параметров для каждой программы. Эти списки должны были регулярно обновляться, когда новые программы попадали на рынок, поэтому производители побитовых копировщиков должны были вкладывать деньги для регулярного получения этих обновленных списков. Фирма Omega Microwave (изготовитель пакетаLocksmith) также поддерживала обновленный список параметров для программы Source и национальной службы электронной почты. Так как изготовители программного обеспечения все чаще изменяли свои сигнатуры, то для обеспечения параметрами владельцев фирма Locksmith открыла ряд беспошлинных телефонных линий- Финансовый крах фирмы, произошедший спустя несколько месяцев, был напрямую обусловлен разорительными расходами на приобретение защищенных программ, выявление способов копирования и (распространения этой информации (частное сообщение Директора фирмы Omega Microwave Алперта в 1985 г.).

С аналогичными проблемами, хотя и менее серьезными, столкнулись другие изготовители побитовых копировщиков. Фирма Central Point Softwareраспространила программу Copy II Plus Software со списком параметров, который хранился на диске, чтобы не заставлять пользователей применять шестнадцатеричный код напечатанного списка. Этот список часто обновляли, используя последовательные версии программ, и пользователи могли подписаться на эту услугу по обновлению. Долгосрочная прибыльность программы Copy II Plus обусловлена, вероятно, тем, что она дублирует великолепный, универсальный утилит для работы с незащищенными дисками и, кроме того, фирма не пыталась вступить в гонку, как это случилось с фирмойOmega Microwave.

Текущее положение дел можно суммировать так: любой изготовитель программных средств может сделать их очень сложными для несанкционированного копирования. Используя многочисленные сигнатуры и изменение формата, меняя их достаточно часто, он может всегда опережать список параметров, учтенных в реализации побитового копировщика. Уже это не позволит 99% пользователям делать копии. Однако нельзя быть уверенным в том, что можно остановить небольшую часть квалифицированных пользователей-профессионалов, вооруженных мощными программными копировщиками, особым образом модифицированными компьютерами и неистощимым терпением. Они преуспевают в таких перспективных, сложных делах и, вероятно, обойдут защиту от копирования в любой довольно популярной программе независимо от того, насколько хорошо она защищена. Самое большее, что изготовитель может сделать—истязать хакеров длительными по времени и утомительными процедурами.

 


Спонсоры:

Наверх


← Ctrl Защита от копирования 1 |  Защита от копирования 2 Ctrl →

Также советуем почитать

67
 Защита от копирования часть 2 Просмотров (2633)
 Защита от копирования часть 3 Просмотров (1584)
Тема страницы:

Защита от копирования 1 27-08-2022 16:16:11
Портал Web Brothers & Company

Поиск
НОВЫЕ СТАТЬИ
КАТЕГОРИИ СТАТЕЙ
ПОГОДА И КУРСЫ ВАЛЮТ
Яндекс.Погода Доллар: 0.0000 руб
Евро: 0.0000 руб
СТАТИСТИКА
Анализ сайта
ПОМОЩЬ ПРОЕКТУ
Наши реквизиты:
WMID
943844116894

E378102076437
R355562538951
U673016299420
Z277510245927

Яndex Money:
41001153971781
При цитировании материалов ссылка на Web Brothers & Company обязательна.
© 2004—2017 WB - Portal protected by NetworK-vs-Goodman
Site & moded by Web Brothers & Company