Защита программного обеспечения

Поделись знанием:
Перейти к: навигация, поиск

Защита программного обеспечения — комплекс мер, направленных на защиту программного обеспечения от несанкционированного приобретения, использования, распространения, модифицирования, изучения и воссоздания аналогов.

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

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





Технические средства защиты

Методы можно классифицировать по способу распространения защищаемого программного обеспечения и типу носителя лицензии.

Локальная программная защита

Требование ввода серийного номера (ключа) при установке/запуске. История этого метода началась тогда, когда приложения распространялись только на физических носителях (к примеру, компакт-дисках). На коробке с диском был напечатан серийный номер, подходящий только к данной копии программы.

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

Сетевая программная защита

  • локальная

Сканирование сети исключает одновременный запуск двух программ с одним регистрационным ключом на двух компьютерах в пределах одной локальной сети.

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

  • глобальная

Если программа работает с каким-то централизованным сервером и без него бесполезна (например, сервера онлайн-игр, серверы обновлений антивирусов). Она может передавать серверу свой серийный номер; если номер неправильный, сервер отказывает в услуге. Недостаток в том, что, существует возможность создать сервер, который не делает такой проверки. Например, существовал сервер battle.da, который по функциям был аналогичен Battle.net, но пускал пользователей неавторизованных копий игр. Сейчас этот сервер закрыт, но существует немалое количество 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).

Защита программ от копирования путём переноса их в онлайн

Другим направлением защиты программ является использование подхода 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-программа исчезнет после перепрошивки телефона, и нет возможности сделать её резервную копию.

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

См. также

Напишите отзыв о статье "Защита программного обеспечения"

Примечания

  1. [www.ixbt.com/soft/alcohol-120.shtml Обзор Alcohol 120 % — эмулятор CD/DVD-дисков, создание их образов]
  2. [protect.htmlweb.ru/cd_copy.htm Новичков А. Анализ рынка средств защиты программного обеспечения от несанкционированного копирования]

Ссылки

  • Середа С.А. "[consumer.stormway.ru/sps_eval.htm Оценка эффективности систем защиты программного обеспечения]"
  • Середа С.А. "[consumer.stormway.ru/prottech.htm Процедура разработки систем программно-технической защиты программного обеспечения]"
  • [citforum.ru/security/articles/analis/ Citforum. Анализ рынка средств защиты от копирования и взлома программных средств]
  • [web.archive.org/web/20120929081626/www.wasm.ru/article.php?article=petri Wasm. Защита программ при помощи сетей Петри и взлом]
  • [www.z-oleg.com/secur/articles/progprotect.php Зайцев О. В. Реализация простого механизма активации в приложении]
  • [www.star-force.ru/files/pdf/StarForce_FrontLine_Disc_presentation_rus.pdf Starforce. Презентация защиты с привязкой к оптическому диску]
  • [www.gracelogic.com/dl/ASPA-presentation-ru.ppt ASPA. Презентация защиты для мобильных устройств]

Отрывок, характеризующий Защита программного обеспечения

– Вот прекрасно! – вскрикнул Петя, – отчего же мне не ехать?..
– Да оттого, что незачем.
– Ну, уж вы меня извините, потому что… потому что… я поеду, вот и все. Вы возьмете меня? – обратился он к Долохову.
– Отчего ж… – рассеянно отвечал Долохов, вглядываясь в лицо французского барабанщика.
– Давно у тебя молодчик этот? – спросил он у Денисова.
– Нынче взяли, да ничего не знает. Я оставил его пг'и себе.
– Ну, а остальных ты куда деваешь? – сказал Долохов.
– Как куда? Отсылаю под г'асписки! – вдруг покраснев, вскрикнул Денисов. – И смело скажу, что на моей совести нет ни одного человека. Разве тебе тг'удно отослать тг'идцать ли, тг'иста ли человек под конвоем в гог'од, чем маг'ать, я пг'ямо скажу, честь солдата.
– Вот молоденькому графчику в шестнадцать лет говорить эти любезности прилично, – с холодной усмешкой сказал Долохов, – а тебе то уж это оставить пора.
– Что ж, я ничего не говорю, я только говорю, что я непременно поеду с вами, – робко сказал Петя.
– А нам с тобой пора, брат, бросить эти любезности, – продолжал Долохов, как будто он находил особенное удовольствие говорить об этом предмете, раздражавшем Денисова. – Ну этого ты зачем взял к себе? – сказал он, покачивая головой. – Затем, что тебе его жалко? Ведь мы знаем эти твои расписки. Ты пошлешь их сто человек, а придут тридцать. Помрут с голоду или побьют. Так не все ли равно их и не брать?
Эсаул, щуря светлые глаза, одобрительно кивал головой.
– Это все г'авно, тут Рассуждать нечего. Я на свою душу взять не хочу. Ты говог'ишь – помг'ут. Ну, хог'ошо. Только бы не от меня.
Долохов засмеялся.
– Кто же им не велел меня двадцать раз поймать? А ведь поймают – меня и тебя, с твоим рыцарством, все равно на осинку. – Он помолчал. – Однако надо дело делать. Послать моего казака с вьюком! У меня два французских мундира. Что ж, едем со мной? – спросил он у Пети.
– Я? Да, да, непременно, – покраснев почти до слез, вскрикнул Петя, взглядывая на Денисова.
Опять в то время, как Долохов заспорил с Денисовым о том, что надо делать с пленными, Петя почувствовал неловкость и торопливость; но опять не успел понять хорошенько того, о чем они говорили. «Ежели так думают большие, известные, стало быть, так надо, стало быть, это хорошо, – думал он. – А главное, надо, чтобы Денисов не смел думать, что я послушаюсь его, что он может мной командовать. Непременно поеду с Долоховым во французский лагерь. Он может, и я могу».
На все убеждения Денисова не ездить Петя отвечал, что он тоже привык все делать аккуратно, а не наобум Лазаря, и что он об опасности себе никогда не думает.
– Потому что, – согласитесь сами, – если не знать верно, сколько там, от этого зависит жизнь, может быть, сотен, а тут мы одни, и потом мне очень этого хочется, и непременно, непременно поеду, вы уж меня не удержите, – говорил он, – только хуже будет…


Одевшись в французские шинели и кивера, Петя с Долоховым поехали на ту просеку, с которой Денисов смотрел на лагерь, и, выехав из леса в совершенной темноте, спустились в лощину. Съехав вниз, Долохов велел сопровождавшим его казакам дожидаться тут и поехал крупной рысью по дороге к мосту. Петя, замирая от волнения, ехал с ним рядом.
– Если попадемся, я живым не отдамся, у меня пистолет, – прошептал Петя.
– Не говори по русски, – быстрым шепотом сказал Долохов, и в ту же минуту в темноте послышался оклик: «Qui vive?» [Кто идет?] и звон ружья.
Кровь бросилась в лицо Пети, и он схватился за пистолет.
– Lanciers du sixieme, [Уланы шестого полка.] – проговорил Долохов, не укорачивая и не прибавляя хода лошади. Черная фигура часового стояла на мосту.
– Mot d'ordre? [Отзыв?] – Долохов придержал лошадь и поехал шагом.
– Dites donc, le colonel Gerard est ici? [Скажи, здесь ли полковник Жерар?] – сказал он.
– Mot d'ordre! – не отвечая, сказал часовой, загораживая дорогу.
– Quand un officier fait sa ronde, les sentinelles ne demandent pas le mot d'ordre… – крикнул Долохов, вдруг вспыхнув, наезжая лошадью на часового. – Je vous demande si le colonel est ici? [Когда офицер объезжает цепь, часовые не спрашивают отзыва… Я спрашиваю, тут ли полковник?]
И, не дожидаясь ответа от посторонившегося часового, Долохов шагом поехал в гору.
Заметив черную тень человека, переходящего через дорогу, Долохов остановил этого человека и спросил, где командир и офицеры? Человек этот, с мешком на плече, солдат, остановился, близко подошел к лошади Долохова, дотрогиваясь до нее рукою, и просто и дружелюбно рассказал, что командир и офицеры были выше на горе, с правой стороны, на дворе фермы (так он называл господскую усадьбу).
Проехав по дороге, с обеих сторон которой звучал от костров французский говор, Долохов повернул во двор господского дома. Проехав в ворота, он слез с лошади и подошел к большому пылавшему костру, вокруг которого, громко разговаривая, сидело несколько человек. В котелке с краю варилось что то, и солдат в колпаке и синей шинели, стоя на коленях, ярко освещенный огнем, мешал в нем шомполом.
– Oh, c'est un dur a cuire, [С этим чертом не сладишь.] – говорил один из офицеров, сидевших в тени с противоположной стороны костра.
– Il les fera marcher les lapins… [Он их проберет…] – со смехом сказал другой. Оба замолкли, вглядываясь в темноту на звук шагов Долохова и Пети, подходивших к костру с своими лошадьми.
– Bonjour, messieurs! [Здравствуйте, господа!] – громко, отчетливо выговорил Долохов.
Офицеры зашевелились в тени костра, и один, высокий офицер с длинной шеей, обойдя огонь, подошел к Долохову.
– C'est vous, Clement? – сказал он. – D'ou, diable… [Это вы, Клеман? Откуда, черт…] – но он не докончил, узнав свою ошибку, и, слегка нахмурившись, как с незнакомым, поздоровался с Долоховым, спрашивая его, чем он может служить. Долохов рассказал, что он с товарищем догонял свой полк, и спросил, обращаясь ко всем вообще, не знали ли офицеры чего нибудь о шестом полку. Никто ничего не знал; и Пете показалось, что офицеры враждебно и подозрительно стали осматривать его и Долохова. Несколько секунд все молчали.
– Si vous comptez sur la soupe du soir, vous venez trop tard, [Если вы рассчитываете на ужин, то вы опоздали.] – сказал с сдержанным смехом голос из за костра.
Долохов отвечал, что они сыты и что им надо в ночь же ехать дальше.
Он отдал лошадей солдату, мешавшему в котелке, и на корточках присел у костра рядом с офицером с длинной шеей. Офицер этот, не спуская глаз, смотрел на Долохова и переспросил его еще раз: какого он был полка? Долохов не отвечал, как будто не слыхал вопроса, и, закуривая коротенькую французскую трубку, которую он достал из кармана, спрашивал офицеров о том, в какой степени безопасна дорога от казаков впереди их.
– Les brigands sont partout, [Эти разбойники везде.] – отвечал офицер из за костра.
Долохов сказал, что казаки страшны только для таких отсталых, как он с товарищем, но что на большие отряды казаки, вероятно, не смеют нападать, прибавил он вопросительно. Никто ничего не ответил.
«Ну, теперь он уедет», – всякую минуту думал Петя, стоя перед костром и слушая его разговор.
Но Долохов начал опять прекратившийся разговор и прямо стал расспрашивать, сколько у них людей в батальоне, сколько батальонов, сколько пленных. Спрашивая про пленных русских, которые были при их отряде, Долохов сказал:
– La vilaine affaire de trainer ces cadavres apres soi. Vaudrait mieux fusiller cette canaille, [Скверное дело таскать за собой эти трупы. Лучше бы расстрелять эту сволочь.] – и громко засмеялся таким странным смехом, что Пете показалось, французы сейчас узнают обман, и он невольно отступил на шаг от костра. Никто не ответил на слова и смех Долохова, и французский офицер, которого не видно было (он лежал, укутавшись шинелью), приподнялся и прошептал что то товарищу. Долохов встал и кликнул солдата с лошадьми.
«Подадут или нет лошадей?» – думал Петя, невольно приближаясь к Долохову.
Лошадей подали.
– Bonjour, messieurs, [Здесь: прощайте, господа.] – сказал Долохов.
Петя хотел сказать bonsoir [добрый вечер] и не мог договорить слова. Офицеры что то шепотом говорили между собою. Долохов долго садился на лошадь, которая не стояла; потом шагом поехал из ворот. Петя ехал подле него, желая и не смея оглянуться, чтоб увидать, бегут или не бегут за ними французы.
Выехав на дорогу, Долохов поехал не назад в поле, а вдоль по деревне. В одном месте он остановился, прислушиваясь.
– Слышишь? – сказал он.
Петя узнал звуки русских голосов, увидал у костров темные фигуры русских пленных. Спустившись вниз к мосту, Петя с Долоховым проехали часового, который, ни слова не сказав, мрачно ходил по мосту, и выехали в лощину, где дожидались казаки.
– Ну, теперь прощай. Скажи Денисову, что на заре, по первому выстрелу, – сказал Долохов и хотел ехать, но Петя схватился за него рукою.
– Нет! – вскрикнул он, – вы такой герой. Ах, как хорошо! Как отлично! Как я вас люблю.
– Хорошо, хорошо, – сказал Долохов, но Петя не отпускал его, и в темноте Долохов рассмотрел, что Петя нагибался к нему. Он хотел поцеловаться. Долохов поцеловал его, засмеялся и, повернув лошадь, скрылся в темноте.

Х
Вернувшись к караулке, Петя застал Денисова в сенях. Денисов в волнении, беспокойстве и досаде на себя, что отпустил Петю, ожидал его.
– Слава богу! – крикнул он. – Ну, слава богу! – повторял он, слушая восторженный рассказ Пети. – И чег'т тебя возьми, из за тебя не спал! – проговорил Денисов. – Ну, слава богу, тепег'ь ложись спать. Еще вздг'емнем до утг'а.
– Да… Нет, – сказал Петя. – Мне еще не хочется спать. Да я и себя знаю, ежели засну, так уж кончено. И потом я привык не спать перед сражением.
Петя посидел несколько времени в избе, радостно вспоминая подробности своей поездки и живо представляя себе то, что будет завтра. Потом, заметив, что Денисов заснул, он встал и пошел на двор.
На дворе еще было совсем темно. Дождик прошел, но капли еще падали с деревьев. Вблизи от караулки виднелись черные фигуры казачьих шалашей и связанных вместе лошадей. За избушкой чернелись две фуры, у которых стояли лошади, и в овраге краснелся догоравший огонь. Казаки и гусары не все спали: кое где слышались, вместе с звуком падающих капель и близкого звука жевания лошадей, негромкие, как бы шепчущиеся голоса.
Петя вышел из сеней, огляделся в темноте и подошел к фурам. Под фурами храпел кто то, и вокруг них стояли, жуя овес, оседланные лошади. В темноте Петя узнал свою лошадь, которую он называл Карабахом, хотя она была малороссийская лошадь, и подошел к ней.
– Ну, Карабах, завтра послужим, – сказал он, нюхая ее ноздри и целуя ее.
– Что, барин, не спите? – сказал казак, сидевший под фурой.
– Нет; а… Лихачев, кажется, тебя звать? Ведь я сейчас только приехал. Мы ездили к французам. – И Петя подробно рассказал казаку не только свою поездку, но и то, почему он ездил и почему он считает, что лучше рисковать своей жизнью, чем делать наобум Лазаря.
– Что же, соснули бы, – сказал казак.
– Нет, я привык, – отвечал Петя. – А что, у вас кремни в пистолетах не обились? Я привез с собою. Не нужно ли? Ты возьми.
Казак высунулся из под фуры, чтобы поближе рассмотреть Петю.
– Оттого, что я привык все делать аккуратно, – сказал Петя. – Иные так, кое как, не приготовятся, потом и жалеют. Я так не люблю.
– Это точно, – сказал казак.
– Да еще вот что, пожалуйста, голубчик, наточи мне саблю; затупи… (но Петя боялся солгать) она никогда отточена не была. Можно это сделать?
– Отчего ж, можно.
Лихачев встал, порылся в вьюках, и Петя скоро услыхал воинственный звук стали о брусок. Он влез на фуру и сел на край ее. Казак под фурой точил саблю.
– А что же, спят молодцы? – сказал Петя.
– Кто спит, а кто так вот.
– Ну, а мальчик что?
– Весенний то? Он там, в сенцах, завалился. Со страху спится. Уж рад то был.
Долго после этого Петя молчал, прислушиваясь к звукам. В темноте послышались шаги и показалась черная фигура.
– Что точишь? – спросил человек, подходя к фуре.
– А вот барину наточить саблю.
– Хорошее дело, – сказал человек, который показался Пете гусаром. – У вас, что ли, чашка осталась?
– А вон у колеса.
Гусар взял чашку.
– Небось скоро свет, – проговорил он, зевая, и прошел куда то.
Петя должен бы был знать, что он в лесу, в партии Денисова, в версте от дороги, что он сидит на фуре, отбитой у французов, около которой привязаны лошади, что под ним сидит казак Лихачев и натачивает ему саблю, что большое черное пятно направо – караулка, и красное яркое пятно внизу налево – догоравший костер, что человек, приходивший за чашкой, – гусар, который хотел пить; но он ничего не знал и не хотел знать этого. Он был в волшебном царстве, в котором ничего не было похожего на действительность. Большое черное пятно, может быть, точно была караулка, а может быть, была пещера, которая вела в самую глубь земли. Красное пятно, может быть, был огонь, а может быть – глаз огромного чудовища. Может быть, он точно сидит теперь на фуре, а очень может быть, что он сидит не на фуре, а на страшно высокой башне, с которой ежели упасть, то лететь бы до земли целый день, целый месяц – все лететь и никогда не долетишь. Может быть, что под фурой сидит просто казак Лихачев, а очень может быть, что это – самый добрый, храбрый, самый чудесный, самый превосходный человек на свете, которого никто не знает. Может быть, это точно проходил гусар за водой и пошел в лощину, а может быть, он только что исчез из виду и совсем исчез, и его не было.
Что бы ни увидал теперь Петя, ничто бы не удивило его. Он был в волшебном царстве, в котором все было возможно.
Он поглядел на небо. И небо было такое же волшебное, как и земля. На небе расчищало, и над вершинами дерев быстро бежали облака, как будто открывая звезды. Иногда казалось, что на небе расчищало и показывалось черное, чистое небо. Иногда казалось, что эти черные пятна были тучки. Иногда казалось, что небо высоко, высоко поднимается над головой; иногда небо спускалось совсем, так что рукой можно было достать его.
Петя стал закрывать глаза и покачиваться.
Капли капали. Шел тихий говор. Лошади заржали и подрались. Храпел кто то.
– Ожиг, жиг, ожиг, жиг… – свистела натачиваемая сабля. И вдруг Петя услыхал стройный хор музыки, игравшей какой то неизвестный, торжественно сладкий гимн. Петя был музыкален, так же как Наташа, и больше Николая, но он никогда не учился музыке, не думал о музыке, и потому мотивы, неожиданно приходившие ему в голову, были для него особенно новы и привлекательны. Музыка играла все слышнее и слышнее. Напев разрастался, переходил из одного инструмента в другой. Происходило то, что называется фугой, хотя Петя не имел ни малейшего понятия о том, что такое фуга. Каждый инструмент, то похожий на скрипку, то на трубы – но лучше и чище, чем скрипки и трубы, – каждый инструмент играл свое и, не доиграв еще мотива, сливался с другим, начинавшим почти то же, и с третьим, и с четвертым, и все они сливались в одно и опять разбегались, и опять сливались то в торжественно церковное, то в ярко блестящее и победное.
«Ах, да, ведь это я во сне, – качнувшись наперед, сказал себе Петя. – Это у меня в ушах. А может быть, это моя музыка. Ну, опять. Валяй моя музыка! Ну!..»
Он закрыл глаза. И с разных сторон, как будто издалека, затрепетали звуки, стали слаживаться, разбегаться, сливаться, и опять все соединилось в тот же сладкий и торжественный гимн. «Ах, это прелесть что такое! Сколько хочу и как хочу», – сказал себе Петя. Он попробовал руководить этим огромным хором инструментов.
«Ну, тише, тише, замирайте теперь. – И звуки слушались его. – Ну, теперь полнее, веселее. Еще, еще радостнее. – И из неизвестной глубины поднимались усиливающиеся, торжественные звуки. – Ну, голоса, приставайте!» – приказал Петя. И сначала издалека послышались голоса мужские, потом женские. Голоса росли, росли в равномерном торжественном усилии. Пете страшно и радостно было внимать их необычайной красоте.
С торжественным победным маршем сливалась песня, и капли капали, и вжиг, жиг, жиг… свистела сабля, и опять подрались и заржали лошади, не нарушая хора, а входя в него.
Петя не знал, как долго это продолжалось: он наслаждался, все время удивлялся своему наслаждению и жалел, что некому сообщить его. Его разбудил ласковый голос Лихачева.
– Готово, ваше благородие, надвое хранцуза распластаете.
Петя очнулся.
– Уж светает, право, светает! – вскрикнул он.
Невидные прежде лошади стали видны до хвостов, и сквозь оголенные ветки виднелся водянистый свет. Петя встряхнулся, вскочил, достал из кармана целковый и дал Лихачеву, махнув, попробовал шашку и положил ее в ножны. Казаки отвязывали лошадей и подтягивали подпруги.
– Вот и командир, – сказал Лихачев. Из караулки вышел Денисов и, окликнув Петю, приказал собираться.


Быстро в полутьме разобрали лошадей, подтянули подпруги и разобрались по командам. Денисов стоял у караулки, отдавая последние приказания. Пехота партии, шлепая сотней ног, прошла вперед по дороге и быстро скрылась между деревьев в предрассветном тумане. Эсаул что то приказывал казакам. Петя держал свою лошадь в поводу, с нетерпением ожидая приказания садиться. Обмытое холодной водой, лицо его, в особенности глаза горели огнем, озноб пробегал по спине, и во всем теле что то быстро и равномерно дрожало.
– Ну, готово у вас все? – сказал Денисов. – Давай лошадей.
Лошадей подали. Денисов рассердился на казака за то, что подпруги были слабы, и, разбранив его, сел. Петя взялся за стремя. Лошадь, по привычке, хотела куснуть его за ногу, но Петя, не чувствуя своей тяжести, быстро вскочил в седло и, оглядываясь на тронувшихся сзади в темноте гусар, подъехал к Денисову.
– Василий Федорович, вы мне поручите что нибудь? Пожалуйста… ради бога… – сказал он. Денисов, казалось, забыл про существование Пети. Он оглянулся на него.
– Об одном тебя пг'ошу, – сказал он строго, – слушаться меня и никуда не соваться.
Во все время переезда Денисов ни слова не говорил больше с Петей и ехал молча. Когда подъехали к опушке леса, в поле заметно уже стало светлеть. Денисов поговорил что то шепотом с эсаулом, и казаки стали проезжать мимо Пети и Денисова. Когда они все проехали, Денисов тронул свою лошадь и поехал под гору. Садясь на зады и скользя, лошади спускались с своими седоками в лощину. Петя ехал рядом с Денисовым. Дрожь во всем его теле все усиливалась. Становилось все светлее и светлее, только туман скрывал отдаленные предметы. Съехав вниз и оглянувшись назад, Денисов кивнул головой казаку, стоявшему подле него.
– Сигнал! – проговорил он.
Казак поднял руку, раздался выстрел. И в то же мгновение послышался топот впереди поскакавших лошадей, крики с разных сторон и еще выстрелы.
В то же мгновение, как раздались первые звуки топота и крика, Петя, ударив свою лошадь и выпустив поводья, не слушая Денисова, кричавшего на него, поскакал вперед. Пете показалось, что вдруг совершенно, как середь дня, ярко рассвело в ту минуту, как послышался выстрел. Он подскакал к мосту. Впереди по дороге скакали казаки. На мосту он столкнулся с отставшим казаком и поскакал дальше. Впереди какие то люди, – должно быть, это были французы, – бежали с правой стороны дороги на левую. Один упал в грязь под ногами Петиной лошади.
У одной избы столпились казаки, что то делая. Из середины толпы послышался страшный крик. Петя подскакал к этой толпе, и первое, что он увидал, было бледное, с трясущейся нижней челюстью лицо француза, державшегося за древко направленной на него пики.
– Ура!.. Ребята… наши… – прокричал Петя и, дав поводья разгорячившейся лошади, поскакал вперед по улице.
Впереди слышны были выстрелы. Казаки, гусары и русские оборванные пленные, бежавшие с обеих сторон дороги, все громко и нескладно кричали что то. Молодцеватый, без шапки, с красным нахмуренным лицом, француз в синей шинели отбивался штыком от гусаров. Когда Петя подскакал, француз уже упал. Опять опоздал, мелькнуло в голове Пети, и он поскакал туда, откуда слышались частые выстрелы. Выстрелы раздавались на дворе того барского дома, на котором он был вчера ночью с Долоховым. Французы засели там за плетнем в густом, заросшем кустами саду и стреляли по казакам, столпившимся у ворот. Подъезжая к воротам, Петя в пороховом дыму увидал Долохова с бледным, зеленоватым лицом, кричавшего что то людям. «В объезд! Пехоту подождать!» – кричал он, в то время как Петя подъехал к нему.