Защита программного обеспечения — комплекс мер, направленных на защиту программного обеспечения от несанкционированного приобретения, использования, распространения, модифицирования, изучения и воссоздания аналогов.
Защита от несанкционированного использования программ — система мер, направленных на противодействие нелегальному использованию программного обеспечения. При защите могут применяться организационные, юридические, программные и программно-аппаратные средства.
Защита от копирования к программному обеспечению применяется редко, в связи с необходимостью его распространения и установки на компьютеры пользователей. Однако, от копирования может защищаться лицензия на приложение (при распространении на физическом носителе) или его отдельные алгоритмы.
Методы можно классифицировать по способу распространения защищаемого программного обеспечения и типу носителя лицензии.
Локальная программная защита
Требование ввода серийного номера (ключа) при установке/запуске. История этого метода началась тогда, когда приложения распространялись только на физических носителях (к примеру, компакт-дисках). На коробке с диском был напечатан серийный номер, подходящий только к данной копии программы.
С распространением сетей очевидным недостатком стала проблема распространения образов дисков и серийных номеров по сети. Поэтому в настоящий момент метод используется только в совокупности одним или более других методов (к примеру, организационных).
Сетевая программная защита
локальная
Сканирование сети исключает одновременный запуск двух программ с одним регистрационным ключом на двух компьютерах в пределах одной локальной сети.
Недостаток в том, что брандмауэр можно настроить так, чтобы он не пропускал пакеты, принадлежащие защищённой программе. Правда, настройка брандмауэра требует некоторых пользовательских навыков. Кроме того, приложения могут взаимодействовать по сети (к примеру, при организации сетевой игры). В этом случае брандмауэр должен пропускать такой трафик.
глобальная
Если программа работает с каким-то централизованным сервером и без него бесполезна (например, сервера онлайн-игр, серверы обновлений антивирусов). Она может передавать серверу свой серийный номер; если номер неправильный, сервер отказывает в услуге. Недостаток в том, что, существует возможность создать сервер, который не делает такой проверки. Например, существовал сервер battle.da, который по функциям был аналогичен Battle.net (от компании Blizzard Entertainment), но пускал пользователей неавторизованных копий игр. Сейчас этот сервер закрыт, но существует немалое количество PvPGN-серверов, которые также не проверяют регистрационные номера.
Защита при помощи компакт-дисков
Программа может требовать оригинальный компакт-диск. В частности, такой способ применяется в играх. Стойкость таких защит невелика, ввиду широкого набора инструментов снятия образов компакт-дисков.[1]
Как правило, этот способ защиты применяется для защиты программ, записанных на этом же компакт-диске, являющимся одновременно ключевым.
Для защиты от копирования используется:
запись информации в неиспользуемых секторах;
проверка расположения и содержимого «сбойных» секторов;
проверка скорости чтения отдельных секторов.
Первые два метода практически бесполезны из-за возможности снятия полного образа с диска с использованием соответствующего прикладного ПО. Третий метод считается более надёжным (используется, в частности, в защите StarForce). Но существуют программы, которые могут эмулировать диски с учётом геометрии расположения данных, тем самым обходя и эту защиту. В StarForce, в числе прочих проверок, также выполняется проверка возможности записи на вставленный диск. Если она возможна, то диск считается не лицензионным. Однако, если образ будет записан на диск CD-R, то указанная проверка пройдет. Существует возможность скрыть тип диска, чтобы CD-R или CD-RW был виден как обычный CD-ROM. Однако, в драйвер защиты может быть встроена проверка на наличие эмуляции.
В настоящее время наибольшую известность в мире имеют системы защиты от копирования SecuROM, StarForce, SafeDisc, CD-RX и Tages.[2]
Для многих программ указанный метод защиты недоступен ввиду отличного способа распространения (например, shareware-программы).
Защита при помощи электронных ключей
Электронный ключ (донгл), вставленный в один из портов компьютера (с интерфейсом USB, LPT или COM) содержит ключевые данные, называемые также лицензией, записанные в него разработчиком
информация для чтения/записи (в настоящий момент практически не применяется, так как после считывания ключ может быть сэмулирован)
ключи аппаратных криптографических алгоритмов (используется наиболее часто)
алгоритмы, созданные разработчиком программы (ставший доступным сравнительно недавно метод, в связи с появлением электронных ключей с микропроцессором, способным исполнять произвольный код; в настоящее время используется все чаще)
Достоинства защиты с использованием электронных ключей:
Ключ можно вставлять в любой компьютер, на котором необходимо запустить программу
Ключ не занимает/не требует наличия дисковода
Электронный ключ умеет выполнять криптографические преобразования
Современные ключи могут исполнять произвольный код, помещаемый в них разработчиком защиты (пример — Guardant Code, Senselock)
Стойкость защиты основывается на том, что ключевая информация защиты (криптографические ключи, загружаемый код) не покидает ключа в процессе работы с ним.
Основные недостатки:
Цена (15—30 долларов за штуку)
Необходимость доставки ключа конечному пользователю
Ранее к недостаткам можно было также отнести невысокое быстродействие ключа (в сравнении с CPU компьютера). Однако современные ключи достигают производительности в 1.25 DMIPS (пример — HASP, Guardant), а техника защиты с их помощью не предполагает постоянного обмена с ключом.
Существовавшие также ранее проблемы с установкой ключа на определённые аппаратные платформы в настоящий момент решены при помощи сетевых ключей (которые способны работать с одной или более копиями защищённого приложения, просто находясь с ним в одной локальной сети) и с помощью программных или аппаратных средств «проброса» USB-устройств по сети.
Привязка к параметрам компьютера и активация
Привязка к информации о пользователе / серийным номерам компонентов его компьютера и последующая активация программного обеспечения в настоящий момент используется достаточно широко (пример: ОС Windows).
В процессе установки программа подсчитывает код активации — контрольное значение, однозначно соответствующее установленным комплектующим компьютера и параметрам установленной ОС. Это значение передаётся разработчику программы. На его основе разработчик генерирует ключ активации, подходящий для активации приложения только на указанной машине (копирование установленных исполняемых файлов на другой компьютер приведёт к неработоспособности программы).
Основной недостаток: если пользователь производит модернизацию компьютера (в случае привязки к железу), защита отказывает. Авторы многих программ в подобных случаях готовы дать новый регистрационный код. Например, Microsoft в Windows XP разрешает раз в 120 дней генерировать новый регистрационный код (но в исключительных случаях, позвонив в службу активации, можно получить новый код и после окончания этого срока).
В качестве привязки используются, в основном, серийный номер BIOS материнской платы, серийный номер винчестера. В целях сокрытия от пользователя данные о защите могут располагаться в неразмеченной области жёсткого диска.
До недавнего времени такие защиты разрабатывались и внедрялись разработчиками самого программного продукта. Однако сейчас существуют SDK для работы с программными ключами, например HASP SL от компании Aладдин Р. Д. Также все большее распространение получают сервисы, предлагающие одновременно функцию «навесной» защиты и сервера активации/лицензирования (пример — Guardant Online, Protect online)[источник не указан 1877 дней].
Защита программ от копирования путём переноса их в онлайн
Другим направлением защиты программ является использование подхода SaaS, то есть предоставление функций этих программ (всех или части), как сервиса. При этом код программы расположен и исполняется на сервере, доступном в глобальной сети. Доступ к нему осуществляется по принципу тонкого клиента. Это один из немногих случаев, когда реализуется защита от копирования.
Код исполняется на «доверенной» стороне, откуда не может быть скопирован.
Однако, и здесь возникает ряд проблем, связанных с безопасностью:
стойкость такой защиты зависит, прежде всего, от защищённости серверов, на которых он исполняется (речь идёт о Интернет-безопасности)
важно обеспечение конфиденциальности запросов, аутентификации пользователей, целостности ресурса (возможности «горячего» резервирования), и доступности решения в целом
Возникают также вопросы доверия сервису (в том числе правовые), так как ему фактически «в открытом виде» передаются как само ПО, так и данные, которые оно обрабатывает (к примеру, персональные данные пользователей).
Защита кода от анализа
Можно выделить здесь отдельно средства защиты непосредственно кода приложения от анализа и использования в других программах. В частности, применяются обфускаторы — программы нужны для запутывания кода с целью защиты от его анализа, модификации и несанкционированного использования.
Защита программного обеспечения на мобильных платформах
Способы защиты программного обеспечения для мобильных платформ от копирования обычно основываются на невозможности рядового пользователя считывать/изменять хранящиеся в ППЗУ аппарата данные. Может также использоваться активация программного обеспечения.
Устаревшие технические средства защиты
В прошлом применялись и другие методы защиты ПО от нелегального использования.
Ключевая дискета
Метод был распространён во времена MS-DOS, сейчас, в силу устаревания технологии FDD, практически не применяется. Есть четыре основных способа создания некопируемых меток на дискетах:
Считывание конкретного сектора дискеты (возможно, пустого или сбойного). Это самый простой способ защиты, и при копировании «дорожка в дорожку» дискета копируется.
Запоминание сбойных секторов дискеты. Перед тем, как записать на дискету информацию, её царапают (или прожигают лазером), после этого записывают номера сбойных секторов. Для проверки подлинности дискеты программа пытается записать в эти сектора информацию, затем считать её.
Нестандартное форматирование дискеты. Известна программа FDA (Floppy Disk Analyzer), которая могла проводить исследование и копирование таких дискет.
«Плавающий бит». Один бит записывается так, что в некоторых случаях он читается как «0», в некоторых как «1». Проводится многократное считывание дискеты; среди результатов считывания должны быть и нули, и единицы.
Запись некопируемых меток на жёсткий диск
Некоторые старые программы для DOS создавали некопируемые метки на жёстком диске. Например, файл длиной 1 байт занимает на диске один кластер (не менее 512 байт), и в оставшиеся 511 байт можно записать некоторую информацию. Эта практика практически не используется, так как велик риск потери данных.
Привязка к некоторому физическому объекту
Лицензия программы может привязываться к некоторому физическому объекту, к примеру:
к руководству пользователя. Например, программа выводит: «Введите 5-е слово на 12-й сверху строке 26-й страницы». Более изощрённый способ защиты — в руководстве находится важная информация, без которой невозможно пройти игру, этим известна серия Space Quest. Распространение сканеров и многозадачныхоперационных систем положило конец этой практике.
к некоторому механическому устройству. Игра Another World поставлялась с «кодовым колесом». В системе защиты от копирования Lenslok, применявшейся в играх для ZX Spectrum, надо было, посмотрев на картинку через систему призм, увидеть двухбуквенный код.
Юридические средства защиты
Согласно законодательству, программный код приравнивается к литературным произведениям, и к нему применяются все соответствующие нормативные акты. В контексте защиты ПО используется следующая терминология:
Предусмотрена ответственность, в соответствии с действующим законодательством, как за использование контрафактных экземпляров программ для ЭВМ и баз данных, так и за преодоление применяемых технических средств защиты.
Организационные средства защиты
Основной принцип организационных мер защиты ПО заключается в невозможности полноценного использования программного продукта без соответствующей поддержки со стороны разработчика: подробной пользовательской документации, «горячей линии» технической поддержки, системы обучения пользователей, обновления версий и БД и т. п.
Иногда защита дорогостоящих программных комплексов от копирования производится организационными мерами (к примеру, предоставление пробной копии ПО только по запросу, либо установка полнофункциональной версии программного комплекса на пробный период при заключении соответствующего соглашения).
Организационные меры защиты применяются, как правило, крупными разработчиками к достаточно большим и сложным программным продуктам.
Уязвимости современных методов защиты можно достаточно строго классифицировать в зависимости от использованного метода защиты.
Проверка оригинального носителя. Можно обойти при помощи копирования / эмуляции диска (специальная программа полностью копирует диск, затем создаётся драйвер виртуального дисковода, в который помещается образ, который программа принимает за лицензионный диск. Во многих играх применяется вариант этого метода под названием «Mini Image», когда подставной диск имеет маленький размер (несколько мегабайт, содержащие только лицензионную информацию), программа признаёт его лицензионным
Ввод серийного номера. Основной уязвимостью является возможность беспрепятственного копирования и распространения дистрибутива вместе с серийным номером. Поэтому в настоящее время практически не используется (либо используется в совокупности с другими методами).
Активация программного обеспечения. В отличие от предыдущего метода, активационный код генерируется с использованием уникальной информации (S/N оборудования, информации о пользователе) и является уникальным. В этом случае, в момент генерации кода активации в процессе установки программы есть риск эмуляции «универсального» аппаратного окружения (как то перехват обращений программы при считывании соответствующей информации, либо запуск программы изначально в виртуальной среде). Также, при неиспользовании запутывания кода защищённого приложения (или использовании слабых методов), злоумышленник может найти код генерации кода активации и вынести его в отдельную утилиту (т. н. «генератор ключей aka keygen»), ровно как и вырезать всю процедуру активации (что, однако, сложнее, так как он может вызываться в разных частях приложения)
Использование электронных ключей. Часто встречается мнение о возможности эмуляции электронного ключа или библиотек интерфейса API, используемого при обращении к электронному ключу. Это действительно можно сделать при неграмотной реализации защиты на электронном ключе (к примеру, программа только проверяет наличие ключа и читает/пишет в него что-либо). Однако встроенные в программу защитные механизмы собственной разработки, основанные на вызове симметричных и асимметричных алгоритмов электронного ключа практически исключают возможность его эмуляции, так как обращения к ключу происходят каждый раз разные и накопить достаточное количество статистики для создания полного статистического аналога невозможно. Таким образом, стойкость защиты сильно зависит от реализации (в том числе от наличия уникальных защитных механизмов, реализованных разработчиком защиты). Тем не менее потенциально стойкость такой защиты может быть очень высока.
«Отключение» защиты путём модификации программного кода (к примеру, удаления проверок лицензии). Может быть реализовано при неиспользовании (или использовании слабых) инструментов запутывания кода. В результате программа дизассемблируется (или даже декомпилируется, в худшем случае), код исследуется на наличие защитных механизмов, найденные проверки удаляются.
Многие защиты предоставляют инструменты противодействия взлому: дестабилизация отладчика; шифрование кода, исключающее изучение кода в статике при помощи дизассемблера; запутывание кода, «ложные ветви», сбивающие хакера с толку; проверка целостности файла, не дающая накладывать патчи; виртуализация кода с собственной системой команд. Все эти методы препятствуют изучению и анализу логики защиты, повышают её стойкость.
Использование автоматических средств защиты
Существует проблема, связанная с недостатком ресурсов (в том числе временных) у разработчиков ПО. Им может не хватать времени, финансов или квалификации на реализацию собственной стойкой защиты. Они вынуждены пользоваться сторонними автоматическими средствами защиты ПО. Эти средства пристыковывают к скомпилированной программе защитный модуль. Преимущество такой защиты в том, что её можно установить на любую программу (даже без доступа к исходному коду программы). Недостаток в самом подходе — «шаблонности» метода. Стандартные защиты имеют большую вероятность быть взломанными, так как устанавливаются на несколько программ и тем самым обеспечивают спрос на рынке взлома.
Тем не менее, автоматические средства затрудняют взлом программы. Их иногда целесообразно использовать либо когда защиты нет вообще, либо в совокупности с реализацией собственной уникальной защиты.
Это одна из фундаментальных проблем технических средств защиты. Заключается она в том, что система защиты неизбежно создаёт пользователю неудобства, и потому, с точки зрения пользователя, взломанная программа в каком-то смысле лучше, чем оригинальная. Например:
Незащищенная программа работает, в общем случае, быстрее, чем защищённая
Для работы «взломанной» программы не нужен оригинальный носитель. Если не использовать компакт-дисков, время работы ноутбука существенно увеличивается. Кроме того на некоторых моделях ноутбуков устройство чтения компакт-дисков может отсутствовать вовсе
При использовании USB-ключа может не хватить портов на всё нужное оборудование или не быть таковых вовсе (к примеру при использовании виртуализации)
Электронный ключ может создавать физические неудобства при работе с защищённой программой на ноутбуке
J2ME-программа исчезнет после перепрошивки телефона, и нет возможности сделать её резервную копию.
По этой причине даже владельцы лицензионных копий иногда устанавливают взломанное программное обеспечение наравне с лицензионным.
Orang GuyanaBendera GuyanaJumlah populasic. 1.250.000Daerah dengan populasi signifikan Guyana 771.000 Amerika Serikat323.052[1] Kanada84.275[2] Inggris40.872[1] Belanda14.560[1] Suriname11.530[1] Venezuela7.401[1] Antigua dan Barbuda6.038[3] Barbados6.657[1] Trinidad dan Tobago4.647[1] Spanyol5.197[1] Brasil2.549[1]&...
Leuktra (bahasa Yunani: Λεῦκτρα) adalah sebuah desa pada zaman Yunani Kuno, di Boiotia, 7 mil baratdaya dari Thiva. Desa ini terutama dikenal pada hari ini sebagai situs penting Pertempuran Leuktra pada 371 SM yang mana Theban, di bawah Epaminondas, mengalahkan Sparta. Hegemoni Sparta itu jatuh setelah pertempuran itu, dan Theba menjadi kekuatan baru dalam dunia Hellenik, sampai kemunculan Makedonia. Sebuah desa Yunani masa kini (yang namanya sering ditulis Lefktra sesuai dengan p...
Museum 4 Juni六四紀念館Galeri sejarahDidirikan26 April 2014 (2014-04-26)LokasiNo. 10, Ngai Wong Commercial Building, 11–13 Mong Kok Rd, Mong Kok, Kowloon, Hong KongJenisPrivatePendiriAliansi Hong Kong dalam Mendukung Gerakan Demokrat Patriotik Tiongkok Museum 4 Juni Hanzi tradisional: 六四紀念館 Hanzi sederhana: 六四纪念馆 Alih aksara Mandarin - Hanyu Pinyin: Liù Sì Jìniànguǎn Yue (Kantonis) - Romanisasi Yale: Luhk sei géi nihm gún - Jyutping: Luk6 sei3 gei2 nim6 ...
Bangsal 13SutradaraOdy C. HarahapProduserDimas DjayadiningratSkenarioGunnar NimpunoOdy C. HarahapPemeranEndhitaLuna MayaLia CandrasariPenata musikDavid PoernomoSinematograferYunus PasolangPenyuntingWawan I. WibowoPerusahaanproduksiRexinemaDistributorRexinemaTanggal rilis18 Desember 2004Durasi94 menitNegaraIndonesiaBahasaBahasa Indonesia Bangsal 13 adalah film horor Indonesia yang dirilis pada tahun 2004. Film yang disutradarai oleh Ody C. Harahap ini dibintangi oleh Endhita, Luna Maya d...
Pour les articles homonymes, voir Nay, Ney et Naï. Le ney (persan), nay, naï ou nâi (tel que translittéré du persan ou de l'arabe) est une flûte à embouchure terminale en roseau, souvent jouée en position oblique d'où l'appellation de flûte oblique qui ne devrait pas être employée (voir les illustrations dans cet article) dont les plus anciennes formes datent de Sumer (2800 av. J.-C.) et de l'âge des pyramides (représentation sur des peintures tombales égyptiennes vers 3000-25...
This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: Apple speakers – news · newspapers · books · scholar · JSTOR (May 2023) (Learn how and when to remove this template message) Music and multimedia speakers by Apple Apple Inc. has produced and sold numerous music and multimedia speakers, available for standalone purchase and bundled with Macintosh products....
List of events ← 1805 1804 1803 1806 in the United States → 1807 1808 1809 Decades: 1780s 1790s 1800s 1810s 1820s See also: History of the United States (1789–1849) Timeline of United States history (1790–1819) List of years in the United States 1806 in the United States1806 in U.S. states States Connecticut Delaware Georgia Kentucky Maryland Massachusetts New Hampshire New Jersey New York North Carolina Ohio Pennsylvania Rhode Island South Carolina Tennessee Vermont Virginia ...
Adoniram JudsonAdoniram Judson oleh George Peter Alexander Healy, 1846LahirTanggal tidak terbaca. Angka tahun harus memiliki 4 digit (gunakan awalan nol untuk tahun < 1000).Malden, MassachusettsMeninggal12 April 1850(1850-04-12) (umur 61)Teluk BengalKebangsaanAmerika SerikatAlmamaterBrown University dan Andover Theological SeminaryPekerjaanMisionaris di BurmaSuami/istriAnn Hasseltine, 1812–26 (kematiannya)Sarah Hall Boardman, 1834–45 (kematiannya)Emily Chubbuck, 1846–50 (kemati...
Universitas Nottingham Universitas Nottingham adalah sebuah universitas negeri di Nottingham, Inggris. Universitas ini didirikan tahun 1798 menjadi university college 1881. Terbagi kepada 10 fakultas. Pada tahun ajaran 2005, universitas ini mempunyai 32.000 mahasiswa terdaftar. 4.000 mahasiswa internasional lebih dari 100 negara. Cabang Universitas Nottingham Ningbo, Republik Rakyat Tiongkok Pranala luar Situs resmi lbs Daftar perguruan tinggi di Britania RayaInggrisEast Anglia Anglia Ruskin ...
Serbian-American inventor (1856–1943) For other uses, see Nikola Tesla (disambiguation). Nikola TeslaНикола ТеслаTesla, c. 1890Born(1856-07-10)10 July 1856Smiljan, Austrian Empire (now Croatia)Died7 January 1943(1943-01-07) (aged 86)New York City, U.S.Resting placeNikola Tesla Museum, Belgrade, Serbia44°48′18″N 20°28′15″E / 44.8051°N 20.4707°E / 44.8051; 20.4707Citizenship Austria (1856–1891) United States (1891–1943) Alma...
High-speed intercity rail service of China For high-speed rail transport in China generally, see High-speed rail in China. This article needs to be updated. Please help update this article to reflect recent events or newly available information. (December 2013) China Railway High-speedOverviewParent companyChina RailwayHeadquartersBeijing, ChinaLocalePeople's Republic of ChinaDates of operation2007–presentTechnicalTrack gauge1,435 mm (4 ft 8+1⁄2 in) Standard ga...
This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (November 2021) (Learn how and when to remove this message)Aggregator of scientific data on biodiversity; data portal Global Biodiversity Information FacilityType of siteBiodiversity, natural historyArea servedWorldwideURLwww.gbif.orgCommercialNoLaunched2001; 23 years ago (2001)Current ...
Loretta Young لوريتا يونغ (بالإنجليزية: Loretta Young) معلومات شخصية اسم الولادة غريتشن ميكايلا يونغ الميلاد 6 يناير 1913(1913-01-06)سالت ليك سيتي، يوتا، الولايات المتحدة الوفاة 12 أغسطس 2000 (87 سنة)لوس أنجلوس، كاليفورنيا، الولايات المتحدة سبب الوفاة سرطان المبيض مواطنة الولايات المتحد...
Stephanie Houghton Informações pessoais Nome completo Stephanie Jayne Houghton Data de nascimento 23 de abril de 1988 (36 anos) Local de nascimento Durham, Reino Unido Informações profissionais Posição Defensora Clubes profissionais Anos Clubes Jogos e gol(o)s Manchester City Seleção nacional Grã-Bretanha 5 (3) Stephanie Jayne Houghton (Durham, 23 de abril de 1988) é uma futebolista britânica que atua como defensora. Carreira Stephanie Houghton integrou o elenco da...