Опубликовано 14 февраля 2014
Системы DRM — современный вариант классической защиты от копирования, не позволяющей делать точные копии контента, защищённого авторскими правами. Однако ещё задолго до появления «цифрового управления правами» существовали довольно странные, но вполне эффективные способы противодействия несанкционированному копированию.
В музыкальной и киноиндустрии тогда господствовали аналоговые форматы, которые было невозможно скопировать без ухудшения качества, а эпоха CD, VideoCD и DVD, а тем более дешёвых компьютерных рекордеров ещё не настала. Не удивительно, что все эти остроумные способы появились именно в индустрии видеоигр, которые представляли собой программы, то есть цифровой код, который можно полностью воспроизвести без какого-либо ущерба для его качества.
В отличие от компьютеров с унифицированными интерфейсами и сменными накопителями, игровые приставки сами по себе представляли собой готовую систему защиты от копирования. Как правило, в них использовались картриджи оригинального дизайна, которые невозможно было скопировать не только из-за отсутствия совместимых накопителей, но и из-за самой формы их корпуса. Разумеется, это не могло остановить настоящих пиратов, располагающих необходимым инженерным и производственным оборудованием, но для обычных пользователей такие ограничения были непреодолимы.
Способ защиты считался настолько удачным, что после выпуска специального дисковода Family Computer Disk System для приставки Nintendo Family Computer (в России она известна по пиратскому клону под названием Dendy) она была реализована и в использовавшихся в нём дискетах. 2,8-дюймовые дискеты для FDS отличались от стандартных 3,5-дюймовых по габаритам, но дело в том, что подобные диски Quick Disk, разработанные фирмой Mitsumi, широко применялись и в другой бытовой электронике — от электронных пишущих машинок до музыкальных синтезаторов. Поэтому дополнительным средством защиты стал огромный логотип Nintendo, отштампованный в нижней части дискеты. Дискеты без этого логотипа не распознавались в системе, даже если на них были записаны те же самые данные, что и на фирменных дисках.
Оригинальные картриджи, конечно, вполне эффективный способ защиты от копирования, если только за дело не принимаются профессиональные пираты, способные изготовить подделки, отличающиеся от оригинала лишь в незначительных деталях. Однако к началу девяностых стали получать распространение всевозможные устройства для «резервного копирования» игровых картриджей, в которых, в частности, использовались самые обычные компьютерные дискеты.
Легальность таких устройств была весьма сомнительна, и та же Nintendo отчаянно судилась с их производителями, но вместе с тем копирование оригинальных картриджей стало доступно даже простым пользователям. Поэтому разработчики игр стали применять более высокотехнологичный способ, внося в программный код функцию проверки спецификаций «железа», на котором запускается их приложение. Если обнаруживался, к примеру, какой-то нестандартный накопитель, игра либо могла вовсе не запускаться, либо в её ходе возникали какие-то неприятные сбои вроде отказа «сохраняться».
Компания EarthBound, один из крупнейших производителей игр для приставки Super Nintendo (SNES), реализовала ещё более коварный способ защиты. Первоначально при запуске пиратская копия должна была работать как обычно, но количество врагов, с которыми надо было сразиться, при этом стремительно увеличивалось, делая игру практически непроходимой. Однако если игрок всё-таки умудрялся дойти почти до самого конца, то перед схваткой с главным «боссом» игра «зависала», а все данные сохранений удалялись.
http://www.youtube.com/watch?v=BmyoV1bkXNI
Если у видеоприставок существовал хотя бы какой-то базовый способ защиты от пиратства в виде проприетарных картриджей, то у игр для ПК такового не было никогда. В результате в ход шли всевозможных ухищрения вроде дискет со сбойными секторами, которые было невозможно скопировать «в лоб». Но это одновременно значило, что пользователь лишался возможности сохранить резервную копию игры, а учитывая уровень надёжности дискет, на которых они поставлялись, это было более чем актуально. Необходимый компромисс был найден в виде специальных кодов и паролей, которые прилагались к лицензионной копии игры.
Абсолютно книжный «аналоговый» способ защиты от копирования использовала в игре The Secret of Monkey Island компания Lucasfilm Games. В комплект поставки входит вращающийся диск Dial-A-Pirate с изображением пиратов и прорезанными окошечками, в которых можно было увидеть разные числовые коды. В процессе игры на экране появлялось лицо пирата и место, где он был повешен, а игрок должен был найти это лицо, вращая диск. После этого в соответствующем окошечке был виден код, который требовалось ввести для продолжения.
В других играх часто использовались всевозможные физические головоломки и прочие занятные мелочи, которые можно было взять в руки. Впрочем, такие ухищрения довольно быстро стали бессмысленными, поскольку игроки стали выкладывать коды и способы решения задач в форумы и на специализированные сайты в интернете. В дальнейшем они были полностью вытеснены привычным CD-кодом, который вводится при установке игры.
Одним из вариантов физической защиты незащищённого цифрового носителя служили длинные списки многочисленных кодов, прилагаемые к лицензионной версии игры. Этот способ защиты применялся в чрезвычайно популярных играх вроде SimCity или Teenage Mutant Ninja Turtles во времена компьютеров Commodore 64 и Amiga.
Такие списки обычно печатались на бумаге тёмного цвета почти таким же тёмным шрифтом. Эти листы было невозможно скопировать на чёрно-белом ксероксе, который просто не «видел» различий в оттенках, зато любой пользователь их мог без проблем прочитать. Коды надо было вводить довольно часто, что заставляло всегда держать список под рукой и, естественно, немало раздражало пользователей.
Распространение интернета означало, что любой секрет, заложенный разработчиками в игре, решение любой головоломки и любой код немедленно становились известны всем желающим. Поэтому требовался какой-то новый способ физической защиты от копирования.
Самым странным из них, без сомнения, стала линза Lenslok. Как можно догадаться по названию, это такая линза, которая служит своеобразным «замком» для игры. Чтобы прочитать код, выводимый на монитор или экран телевизора, нужно было приложить эту линзу к дисплею. При этом следовало поднести Lenslok к правильному месту, а на слишком маленьких или слишком больших экранах она и вовсе не срабатывала.
По понятным причинам, Lenslok не получила особого распространения. Самая известная игра, в которой использовалась подобная линза, — это космический файтер Elite родом из восьмидесятых. Впоследствии эта идея трансформировалась в ключ-донгл, который нужно было устанавливать в один из портов (обычно СOM или USB) компьютера или приставки. Такой способ был намного практичней, но при этом донглы регулярно терялись, и последняя игра, в которой они были замечены, — это DJMax Trilogy 2008 года. Естественно, её защита была всё равно со временем взломана.
В 1990-х уже вовсю внедрялось «цифровое управление правами», но ещё на довольно примитивном уровне. Сами CD и приводы CD-ROM были чрезвычайно дороги вплоть до конца девяностых, а когда на рубеже столетий оптические накопители стали общедоступными, в арсенале многих разработчиков имелся лишь CD-ключ, вводимый при установке программы. В приставках, помимо ключа, традиционно применялась и аппаратная защита, но её тоже не представляло сложности обойти.
Распространение широкополосного интернета заставило производителей ПО серьёзно задуматься: теперь пользователи могли с лёгкостью обмениваться не только отдельными ключами или кодами, но и целыми образами игр. Вполне адекватным ответом на это стала онлайновая проверка ключа, которая привела к созданию таких способов распространения игр, как онлайновые платформы Origin или Steam.
И если большинство современных технологий DRM препятствует даже запуску незаконно скопированной игры, некоторые производители предпочитают покуражиться над халявщиками и, следуя заветам EarthBound, расставляют им всевозможные ловушки, не позволяющие в полной мере насладиться геймплеем.
http://www.youtube.com/watch?v=gemaltF85oQ
Например, в пиратской Crysis:Warhead ваше оружие будет стрелять курами, в Serious Sam 3 игроку будет постоянно докучать невидимый скорпион, в Game Dev Tycoon игровая студия быстро разорится, а в Command and Conquer Generals ваша база вскоре просто взорвётся. Обычно такие ловушки срабатывают при отрицательном результате онлайновой проверки ключа либо при обнаружении деактивированной или удалённой системы DRM.
Опубликовано 14 февраля 2014
«Shit happens», — гласит американская поговорка. Но некоторые неприятности не просто случаются, они какое-тообязаны рано или поздно произойти просто в силу закона больших чисел. Скажем, в шести миллионах строк кода непременно скрывается количество ошибок, и дайте возможность — рано или поздно одна из них проявит себя катастрофически. Шесть миллионов строк — это длина программного обеспечения, работающего в бортовых компьютерах современного среднестатистического автомобиля. А ошибка, которую теоретики так долго и упрямо ждали, найдена и сутки назад признана компанией Toyota в системном софте знаменитого гибрида Prius.
Toyota Prius — самый востребованный представитель племени гибридных авто и вообще одна из самых популярных моделей на авторынке. Тому есть причины: машина сравнительно безопасная и недорогая, плюс экономичная и чрезвычайно надёжная, что хорошо экономию по топливу дополняет (по данным авторитетного в Штатах журнала Consumer Reports — голоса общества защиты прав потребителей — одна миля обходится в 47 центов). И вот теперь для устранения дефекта отзываются все 1,9 миллиона этих красавиц, произведённых и проданных с 2010 года: половина придётся на Японию, четверть — на Штаты и Канаду, остальное соберётся из Европы, Австралии и других стран.
Дефект, заставивший Toyota решиться на эту меру, описан, прямо скажем, мутно, но даже в таком виде понятно, что случай беспрецедентный. В программном обеспечении автомобиля, управляющем, в частности, двигателем и генератором, допущено несколько ошибок. Проявляются они чрезмерной нагрузкой на мощные транзисторы, что чревато выходом их из строя и последующим аварийным отключением бортовой электроники. Произойти это может в том числе и во время движения: двигатель без предупреждения глохнет, машина сбрасывает скорость с возможной потерей управления. Эксплуатировать Prius после этого возможно, но ехать он будет очень медленно. По сообщению самой Toyota, вызванных ошибками в софте инцидентов (тем более с человеческими жертвами) не зафиксировано, хотя американские СМИ говорят о «сотнях поломок».
Что ж, тема потенциальной небезопасности системного софта, управляющего критически важными узлами автомобиля, весьма популярна в последние годы. Периодически всплывают страшные истории о том, как очередная группа исследователей, вломившись в электронные мозги, отключает тормоза на полном ходу или заставляет машину выкинуть какой-то ещё финт. А Toyota лично перенесла жуткий скандал из-за дефектной педали газа (в том числе и на Prius). Вы должны его помнить: лет пять назад обнаружилось, что машины компании склонны к неожиданному неконтролируемому ускорению, за чем последовали судебные иски, многочисленные расследования на высшем уровне, собственно суды, штрафы и компенсации, отзывы миллионов авто и даже приостановка производства (см., в частности, «Обратная сторона педали»). Многие грешили на софтверный дефект, но Toyota отстаивала версию о чисто механической неисправности — и следователи в конце концов один за другим встали на её сторону.
Таким образом, до вчерашнего дня все разговоры о «смертельно опасных багах в автомобильном софте» ограничивались либо чистой наукой, либо подозрениями, доказать которые так и не удалось. А вчера была пройдена веха: ошибка, заставляющая «Приусы» глохнуть, уже не воображаемая, не подозреваемая — она самая что ни на есть настоящая и признана официально. И это позволяет и даже требует сделать минимум три вывода, которые понадобятся нам, чтобы идти дальше.
Итак, во-первых, необходимо признать, что степень зависимости автомобильных узлов и агрегатов от программного обеспечения перешла черту, за которой чисто программные ошибки способны привести к аппаратным поломкам (персональные компьютеры, например, её так и не перешагнули) и где ошибка действительно представляет опасность для человека.
Во-вторых, даже простое обновление программного обеспечения автомобиля (то есть без вмешательства в аппаратную часть, что, собственно, и собирается проделать Toyota в данном случае) может потребовать дорогостоящей — с точки зрения денег, времени и нервов — процедуры отзыва автомобиля или как минимум визита к официальному дилеру. Кроме того, хоть установка патча занимает лишь полчаса, его ещё требуется разработать и проверить, разослать дилерам и оповестить клиентов. В настоящий момент продавцы «Приусов» в США, например, всё ещё «заплатку» не получили.
В-третьих, даже активное добровольное участие вендора в исправлении обнаружившихся недостатков — а Toyota после многомиллиардных выплат в той истории с педалью стала сильно сговорчивей и теперь отзывает чаще, больше и охотней любого другого автопроизводителя — не решает самой проблемы софтверных дефектов. Отзыв — всего лишь реакция, следствие. Причина (баг) в следующий раз найдётся новая, ведь программ без ошибок не бывает.
Вот так мы и приходим к неприятному, но неизбежному вопросу: а можно ли вообще, путь даже теоретически, устранить опасность, представляемую ошибками в автомобильном софте? Ведь сложность его будет расти по мере роста сложности самих машин, сложность будет провоцировать новые ошибки, и, в отличие от персоналок, ошибки эти потенциально смертельно опасны. Как этому противостоять?
Имеющийся опыт, к сожалению, мало что даёт. Там, где цена программной ошибки слишком высока, — в космосе, например — проблему решают грубо: введением чрезмерно жестоких требований к разработке программного обеспечения. О российской практике ничего не скажу (может быть, поделятся читатели? В одной из предыдущих дискуссий уже всплыла интереснейшая ссылка на отечественный язык программирования ДРАКОН, мешающий писать с ошибками), но о том, как работает НАСА, известно хорошо. Скажем, приступая к разработке софта для «Шаттлов», заказчик и исполнители (в том числе IBM) исходили из предположения, что программное обеспечение является наиболее важным элементом всего комплекса, потому что именно оно связывает воедино всю механику и электронику на борту. Отсюда и процесс: над проверкой софта трудится почти половина команды, каждое вносимое изменение проверяется несколькими независимыми группами на разных уровнях абстракции — и всё равно пилотам пришлось иметь дело с сотнями страниц исключений и особенностей работы софта!
Не стоит даже спрашивать, применимо ли это к автомобилям: слишком дорого! Однако выход есть. Помочь способно свободное ПО. Возьмись сегодня кто-нибудь разработать ядро Linux «с нуля», это обошлось бы ему в невероятную сумму. Но, понятное дело, никто «Линукс» не изобретает: желающие просто адаптируют его к своему железу и задачам. Точно так могла бы работать и воображаемая свободная ОС для автомобилей: одна на всех, адаптируемая конкретным вендором к конкретным моделям авто. Возможно даже, эту нишу Linux и займёт — если не подсуетится никто другой.
Камнем преткновения здесь остаётся тщательно охраняемая секретность электронных блоков управления автомобилем (ECU). Если прочие запчасти давно уже тяготеют к универсализации, то есть применимы на авто различных марок (и аналитики, кстати, упоминают эту тенденцию в числе причин, из-за которых отзыв становится дороже: ведь, если дефект обнаружился в универсальной запчасти, отзывать придётся не одну модель и, может быть, не одного производителя), то ECU остаются тайной за семьюдесятью замками.
Мы ничего не знаем об их устройстве, мало что — об алгоритмах работы. Спасибо Toyota, теперь по крайней мере признано, что в них случаются ошибки — и ошибки эти могут быть опасны для «железа» и человека. Но чтобы пустить туда свободную ОС — а значит, дать энтузиастам (и конкурентам!) заглянуть внутрь, — придётся попотеть. Даже производители видеокарт всё ещё — двадцать лет спустя после начала дискуссии — не отважились на гласность и скрывают схематику своих чипов. Что говорить об автомобилях!
Опубликовано 13 февраля 2014
Говорят, внешность обманчива — и в случае с американцем Артуром Чу это эмпирическое правило справедливо на все сто процентов. Добродушному увальню, взирающему на нас с фотографии ниже, 30 лет, и он добропорядочный гражданин, зарабатывающий на жизнь чуть ли не самым скучным способом, какой только можно вообразить, — анализом страховых заявок. По его собственным словам, в свободное время он играет в любительском театре, но не профессиональная карьера и не театральные подмостки сделали его знаменитым — а Артур знаменит по-настоящему, его улыбку знает сегодня в Штатах, как говорится, каждая собака!
Прославился он благодаря телеэкрану, а точнее, популярной телевикторине, на которую попал в последних числах января и уже неделей позже именовался соотечественниками не иначе как Доктор Зло. Спросите, что такого страшного он совершил? Нет, не застрелил соперника в горячке азарта, не ограбил организаторов, даже не ругался матом. Он всего лишь проанализировал игру, сформулировал стратегию, статистически кратчайшим путём ведущую к выигрышу, и действовал в соответствии с ней, презрев общественное мнение!
Телевикторина Jeopardy!, участием в которой Чу и заработал свой сомнительный титул, идёт на американском ТВ вот уже сорок лет и представляет собой классическое состязание всезнаек за кучку наличности (по её образу и подобию построены десятки клонов в других странах, включая и лицензированную российскую «Свою игру»). Схема предельно проста: три соперника, три ограниченных по времени раунда, вопросы, сгруппированные по темам и оценённые пропорционально сложности.
Текущий игрок выбирает категорию и цену, звучит вопрос — и каждый вправе попытаться ответить на него первым. Правильный ответ добавляет стоимость вопроса к счёту игрока и даёт право выбора следующего вопроса; неправильный или просрочка, естественно, ту же сумму отнимают. Вдобавок несколько вопросов в каждом раунде наделены особым свойством (Daily Doubles; в российском варианте — «вопрос-аукцион»): назначить цену и ответить на такой вопрос имеет право только выбравший его игрок. Существенная мелочь, как будет показано далее.
Короче говоря, внешне в алгоритме Jeopardy! нет ничего хитрого. И среднестатистический игрок вступает в неё соответственно, следуя, как говорил Эйнштейн, набору детских предубеждений, то бишь здравому смыслу. Как победить в игре с массой сложных вопросов? Первое — нужно знать как можно больше. Второе — начинать с самых простых задач на хорошо знакомую тему и двигаться по ней до исчерпания. Именно так играют абсолютное большинство участников Jeopardy!, так играли и многие её чемпионы. Помимо «очевидной логичности», такая стратегия хороша ещё тем, что делает просмотр игры интересным: зритель наслаждается нарастающим напряжением, имеет время собраться с мыслями и сформулировать свой ответ. И всего этого американцев лишил Артур Чу!
Получив приглашение на игру и имея на подготовку лишь около месяца, Артур — сказалась профессия, не иначе! — задумался, как поднять свои шансы. Прежде всего он трезво оценил интеллектуальные способности себя и своих предполагаемых соперников: даже будучи эрудитом, знать всего на свете нельзя. Следовательно, имеет смысл попытаться сбить с толку противников, помешать им сосредоточиться. Отсюда первый пункт его стратегии: вопросы нужно выхватывать беспорядочно, случайно, из разных категорий и цен. Пусть и всего на доли секунды, пока ошарашенные противники собираются с мыслями, Артур получает преимущество: он-то знал, в какое место игрового поля собирается ткнуть! И это — в случае правильного ответа или отсутствия ответа вовсе — позволяет надеяться, что и следующий вопрос тоже будет выбирать он.
Второй пункт стратегии относится к упомянутым выше Daily Doubles (DD). Поскольку такие вопросы способны резко увеличить счёт игрока, необходимо отыскать их все самому как можно раньше. И не так важно, знаешь ты правильный ответ или нет: не ответишь сам — так хотя бы лишишь этой возможности других! Вот почему Артур начинает с перебора самых сложных вопросов — среди которых, предположительно, и скрываются DD, и в случае, если ответ ему очевидно неизвестен, он немедленно рубит фирменное «Не знаю!». Кстати, суперкомпьютер IBM Watson, некоторое время назад посрамивший чемпионов Jeopardy! из плоти и крови, тоже охотился за DD.
Вот так Артур и пришёл к тому стилю, следуя которому выиграл несколько игр подряд и отправился на каникулы (до конца февраля) с 80 тысячами долларов в кармане. Это же принесло ему и известность. Кое-кто считает его героем. Но подавляющее большинство — откровенно ненавидят. «Отвратительный тип!», «Неспортивно!», «Испортил всю игру!», «Ненавижу!» — вот лишь часть тех (порой непечатных) отзывов, которые ниагарой льются на Чу через Facebook, Twitter и веб-форумы.
Артур встречает критиков достойно — смехом! Неспортивное поведение в его понимании — это не пожать сопернику руку после игры. А вот лишить противника возможности сделать ход — всего лишь защита. Когда есть возможность, то есть когда это не вредит его собственным интересам, он даже позволяет оппоненту покинуть поле сражения достойно. Так однажды он позволил сопернице свести игру вничью и уйти с приличной суммой на руках: рыцарство, конечно, ни при чём — всё тот же холодный расчёт. Перспектива стать самым ненавидимым человеком в соцсетях его не пугает. Ведь, в конце концов, он пришёл, чтобы выиграть, а не соблюдать навязанные кем-то нормы поведения!
Зрители негодуют: мол, ждём не дождёмся, когда кто-нибудь нагонит тень на эту самодовольную рожу! И однажды это, конечно, случится — потому что в любой игре система хороша лишь до тех пор, пока её придерживается кто-то один. Однако в истории Артура Чу намного важнее не сама стратегия, а продемонстрированный им принцип: почти всякое занятие рода человеческого можно представить как игру — и, следовательно, если выигрыш велик, стоит попытаться отыскать наилучшую стратегию. Знаете, стать на время эмоциональным сухарём, позабыть о привычках и опыте, формализовать варианты, просчитать вероятности исходов — и действовать в соответствии с намеченным планом.
Замечательные примеры того, сколько урожайным может быть такой подход, жизнь подбрасывает регулярно. Я назову только пару самых интересных из попавшихся на глаза за последние недели. Вот история человека, который подверг анализу механизм и результаты работы сайтов знакомств — и отыскал себе идеальную пару.
А вот совершенно гениальный мануал для аркады под названием «жизнь»: с маленькой буквы — потому что речь о настоящей жизни, той самой, которой и вы живёте в данный момент. Вообразив себя виртуальным персонажем, наделённым известными качествами (здоровье, энергия, сила воли и пр.) и возможностью получения разнообразного опыта, автор анализирует варианты пути и приходит в конце концов к выводу, что самым ценным ресурсом из всех является самый невесомый — отпущенное нам время...
Пусть тот, кто считает этот вывод бесполезным, первым бросит камень!