<< Предыдущая

стр. 15
(из 39 стр.)

ОГЛАВЛЕНИЕ

Следующая >>

серьезных криптологов назвали самым надежным (или самым консерватив-
ным) из всех предстааченных на конкурс.
В качестве хэш-функции Шнайер и Фергюсон рекомендуют выбирать мо-
дификацию одного из алгоритмов семейства SHA (Secure Hash Algorithm).
В настоящий момент существуют спецификации алгоритмов SHA-1, SHA-256,
SHA-384 и SHA-512, вычисляющих хэш размером 160, 256, 384 и 512 бит
соответственно: Модификация заключается в том, что хэш-функция от со-
общения m вычисляется как SHA-x (SHA-x (/и)), что позволяет исключить
атаку расширения длины сообщения (Length Extension), которой подверже-
ны все хэш-функции семейства SHA и MD (MD2, MD4 и MD5).
Для асимметричного шифрования многие рекомендуют применять алгоритм
RSA как, безусловно, самый распространенный асимметричный алгоритм.
RSA часто используется и для цифровой подписи, но кроме него существует
множество других алгоритмов и схем, из которых наиболее широко распро-
Глава 8. Рекомендации по выбору алгоритмов 95

странен стандартизованный в США алгоритм DSA (Digital Signature
Algorithm). Чуть меньшую популярность имеет реализация DSA на эллипти-
ческих кривых, носящая название ECDSA (Elliptic Curves DSA).


8.3. Патенты на алгоритмы и протоколы
В России не действуют патенты на криптографические алгоритмы и прото-
колы. Но во многих странах такие патенты допускаются законодательством.
Если разрабатываемая программа будет использоваться не только на терри-
тории России, при выборе используемых в ней криптографических алгорит-
мов стоит оценить их применимость с точки зрения патентной чистоты.
Доступность открытого описания алгоритма еще не означает, что никто не
станет предъявлять претензий, если этот алгоритм будет использоваться
в коммерческом приложении. Как уже говорилось ранее, только экспертная
оценка, выполненная силами криптографического сообщества, может дать
некоторую уверенность в том, что алгоритм не содержит серьезных недос-
татков. А для того чтобы криптографы смогли изучать алгоритм, его необхо-
димо открыто опубликовать.
Более того, даже если в Интернете присутствует бесплатная криптографиче-
ская библиотека, содержащая реализацию определенного алгоритма в ис-
ходных кодах, это еще не означает полной свободы в использовании алго-
ритма.

Патент на алгоритм RSA
Алгоритм RSA получил свое название по первым буквам фамилий авторов. Ро-
нальд Ривест (Ronald Rivest), Ади Шамир (Adi Shamir) и Леонард Аделман
(Leonard Adelman) впервые опубликовали описание алгоритма в апреле
1977 года. Алгоритм RSA составляет существенную часть патента США
№ 4405829, выданного Ривесту, Шамиру и Аделману сроком до 20 сентября
2000 года. Но уже через 9 дней после получения патента эксклюзивная лицен-
зия была предоставлена компании RSA Data Security, Inc., которая и выступала
много лет как владелец прав на одноименный криптографический алгоритм.

Все желающие использовать алгоритм RSA в коммерческих приложениях
должны были приобрести у RSA Data Security лицензию на криптографическую
библиотеку BSAFE. Кроме BSAFE в RSA Data Security была разработана и бес-
платная библиотека RSAREF, предназначенная для некоммерческого исполь-
зования. Другим производителям не разрешалось распространять на террито-
рии США свои библиотеки, поддерживающие алгоритм RSA.
96 Часть II. Несколько слов о криптологии

Однако с практической точки зрения к патентам можно относиться очень
по-разному. Так, например, Шнайер и Фергюсон рекомендуют в своей
книге не читать патенты и аргументируют это следующим образом.
Если вы не читали патент, а значит, не знали его содержимого, то в случае
установления факта нарушения вам предстоит компенсировать нанесенный
ущерб владельцу патента. Если же будет доказано, что вы предварительно
ознакомились с патентом, то нарушение становится преднамеренным и мо-
жет караться компенсацией в трехкратном размере. Таким образом, чтение
патентов приводит к повышению степени ответственности в 3 раза.
Если вы после прочтения патента уверены, что ваши действия не нарушают
патент, это еще не значит, что судья, рассматривающий иск о нарушении,
придет к такому же заключению. Даже эксперт в некоторой технической
области, к которой относится патент, не в состоянии судить, что покрывает-
ся патентом, а что нет. Это может сделать только патентный юрист, кото-
рый берет за такую работу вознаграждение. Таким образом, чтобы не пла-
тить тройную компенсацию, придется платить юристу. Но патентов,
которые могут случайно быть нарушены, очень много, и оплачивать услуги
юриста для анализа каждого из них кажется не самым разумным решением.
В результате получается, что для минимизации расходов на решение про-
блем с патентами самое разумное — это не читать патенты вообще, как ни
парадоксально это звучит.
Часть lit


КАК НЕ НАДО ЗАЩИЩАТЬ
ПРОГРАММЫ

Глава 9. Актуальные задачи защиты программ

Глава 10. Регистрационные коды для программ

Глава 11. Привязка к носителям информации

Глава 12. Аппаратные ключи защиты

Глава 13. Использование навесных защит

Глава 14. Приемы, облегчающие работу противника
98 Часть III. Как не надо защищать программы

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


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


9.1. Модели распространения
программного обеспечения
Существует довольно много различных моделей распространения программ-
ного обеспечения. Рассмотрим характерные особенности некоторых их них.

9.1.1. Бесплатные программы (Freeware)
Эта модель распространения программного обеспечения подразумевает от-
сутствие оплаты за использование программ. Очень часто по такому прин-
ципу распространяются небольшие утилиты, которые, по мнению авторов,
могут оказаться полезными широкому кругу пользователей, но не будут
иметь спроса, если назначить плату за их использование.
Разумеется, существуют программисты, создающие бесплатные приложения
из любви к искусству или нелюбви к излишней коммерциализации совре-
менных информационных технологий. Часто несколько добровольцев орга-
низуют команду, разрабатывающую и поддерживающую достаточно слож-
ную программную систему.
Многие бесплатные программы распространяются в исходных текстах.
Но надо отдавать себе отчет в том, что программы в исходных текстах и
бесплатные программы — это совсем не одно и то же. Коммерческие про-
дукты тоже могут поставляться в исходных текстах.
100 Часть III. Как не надо защищать программы

Довольно часто встречается ситуация, когда программа или библиотека бес-
платна для личного использования, но требует лицензии (иногда весьма не
дешевой) для коммерческого применения.
Не редки случаи, когда бесплатное программное обеспечение разрабатыва-
ется крупными коммерческими компаниями для упрочнения положения на
рынке. Так, например, документы в формате PDF вряд ли имели бы сегодня
такую популярность, если бы никогда не существовала бесплатная програм-
ма для их просмотра — Adobe Acrobat Reader, дополняющая линейку плат-
ных продуктов для создания PDF-документов (Acrobat Exchange, Distiller,
Business Tools, Approval и т. д.). Аналогично, для документов, созданных
в коммерческой программе Microsoft Word, существовала бесплатная про-
грамма просмотра Microsoft Word Viewer, также разработанная корпорацией
Microsoft.
Иногда автор бесплатного проекта продает кому-нибудь все права на свое
детище, а новый владелец начинает распространять ту же самую программу
за деньги, иногда нанимая бывшего автора для продолжения разработки.
Не удивительно, что такая судьба, в подавляющем большинстве случаев, по-
стигает именно удачные и полезные бесплатные программы.


9.1.2. Почти бесплатные программы
Иногда авторы программ по каким-то соображениям не хотят распростра-
нять их как коммерческие продукты, но и не возражают против получения
какой-нибудь отдачи, не считая морального удовлетворения. Чаще всего вы-
бирается один из следующих методов распространения".
• Cardware — каждый пользователь программы, желающий зарегистриро-
ваться, должен послать автору программы почтовую открытку с видом
местности, где он проживает;
П Mailware — более современный вариант Cardware, подразумевающий от-
сылку автору электронного письма. Как правило, в ответ автор присылает
регистрационный код, дающий возможность работать с программой;
О Donationware — это когда автор не требует никакой оплаты, но предлагает
всем, кому понравилась программа, пожертвовать произвольную сумму,
чтобы поддержать разработку;
• Gifrware — почти то же самое, что и Donationware, но автор готов прини-
мать не только денежные пожертвования, но и другие подарки;
• Beerware — благодарность за программу принимается в виде пива;
• Vegeware — автор собирает с пользователей плату за программу в форме
рецептов вегетарианских блюд;
Глава 9. Актуальные задачи защиты программ 101

П Memorialware — человек по имени Гари Крэмблитт (Gary Cramblitt) по-
святил свою программу памяти отца и распространяет ее как
Memorialware. Для пользователей программа бесплатна, но всем желаю-
щим предлагается помочь мемориальному фонду Крэмблитта-отца.


9.1.3. Программы,
показывающие рекламу (Adware)
В последние годы XX века, когда бурный рост интернет-технологий еще не
успел перейти в глубокий кризис, была популярна модель распространения
программного обеспечения, демонстрирующего рекламу. "Ad" яачяется со-
кращением от английского слова Advertisement — реклама.
Основная идея заключалась в том, что разработчик получал плату за исполь-
зование программы не от конечного потребителя, которому программа дос-
тавалась бесплатно, а от рекламодателей. А пользователь был вынужден
смотреть на доставляемые программой через Интернет рекламные картинки.
Разумеется, этот подход годился преимущественно для программ, работа
которых прямо связана с доступом в Интернет.
Однако со временем эффективность рекламы такого рода значительно сни-
зилась, и найти желающих платить за нее настоящими деньгами стало до-
вольно трудно. Но продолжают существовать спонсируемые программные
продукты (как правило, информационной направленности), разработка ко-
торых ведется на деньги рекламодателей в обмен на размещение их инфор-
мации в программе.


9.1.4. Коммерческие программы (Commercial)
Коммерческое программное обеспечение, очевидно, создается с целью из-
влечения прибыли и распространяется за материальное вознаграждение. На-
верное, коммерческие программы больше всего похожи на обычные товары,
которые люди привыкли покупать в магазинах.
Прежде всего, для программного обеспечения, распространяемого как чисто
коммерческое, применяется принцип "деньги — вперед", т. е. пользователь
получает программу только после полного внесения оплаты.
Очень многие программы, распространяемые таким способом, являются
"коробочными" — при покупке пользователь получает коробку, в которой
уложены носители информации (например DVD или компакт-диски), доку-
ментация, регистрационная карточка и еще все что угодно, на усмотрение
продавца.
102 Часть III. Как не надо защищать программы

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

9.1.5. Почти работоспособные программы
Разработчики коммерческих программ в рекламных целях выпускают огра-
ниченные ознакомительные версии своих продуктов. Такие версии обычно
не позволяют плодотворно работать, но создают правдивое впечатление
о функциональности программы. Можно выделить несколько основных ти-
пов ограниченных программных продуктов:
• Demoware — это когда в программе присутствуют функциональные огра-
ничения. Например, можно обрабатывать файлы не более определенного
размера, нельзя выполнять сохранение и т. д. Такие программы иногда
называют Crippleware — "урезанное" программное обеспечение;
• Trialware — подразумевается наличие ограничений по времени использо-
вания. Ограничения могут выражаться в виде длительности периода вре-
мени, на протяжении которого можно пользоваться программой (напри-
мер 30 дней с момента инсталляции) или в виде фиксированной даты
истечения тестового периода. Может ограничиваться число запусков
программы или число процессов обработки;
• Nagware — пользователь регулярно извещается о том, что данная версия
программы не является полноценной коммерческой версией. Такое из-
вещение может выглядеть как диалоговое окно, появляющееся при за-
пуске программы и с некоторой периодичностью во время работы, до-
полнительные надписи, выводимые на принтер или экран, и т. д.
Разумеется, возможны различные комбинации описанных ограничений.
И далеко не каждый коммерческий продукт имеет ознакомительную версию —
такой подход скорее исключение.
Глава 9, Актуальные задачи защиты программ 103

9.1.6. Условно бесплатные продукты (Shareware)
Наличие возможности оценить программу до покупки ("try before you buy")
является отличительной чертой условно бесплатных продуктов. Share пере-
водится с английского языка как разделять, совместно использовать. Подра-
зумевается, что незарегистрированную версию условно бесплатной про-
граммы можно свободно распространять в неизмененной форме.
Условно бесплатное программное обеспечение так же, как и коммерческое,
разрабатывается с целью извлечения прибыли. Но потенциальному пользо-
вателю до того, как он заплатит деньги, обязательно предоставляется воз-
можность попробовать программный продукт в действии в течение некото-

<< Предыдущая

стр. 15
(из 39 стр.)

ОГЛАВЛЕНИЕ

Следующая >>