Тема первая. Компьютеры и прочий киберпанк
Учитывая, что автор данных строк является сетевым инженером с многолетним стажем, данная тема ему особенно близка, а потому открывает статью.
В последнее время в массовом сознании компьютеры превратились из загадочных недоступных устройств с неограниченными возможностями в едва ли не предмет ширпотреба. В результате пиетет перед ними практически утрачен, а для многих современных детишек (вроде моих племянников) настольный компьютер стал таким же привычным элементом домашней обстановки, как и телевизор. В результате процент людей, пишущих компьютерную (или просто с компьютерными элементами) фантастику, резко увеличился. При этом средняя квалификация пишущих, как ни прискорбно, резко упала. Более того, если поначалу авторы все же считали необходимым консультироваться со специалистами (хотя бы с фидошными, как Лукьяненко и В.Васильев), то теперь нет и такого. Научившись с грехом пополам нажимать на клавиши, разбирать на экране строчки самодиагностики при включении компьютера и читать электронную почту с помощью Outlook Express, горе-писатели начинают уверенно описывать монструозно-всепланетные компьютерные сети, чудовищной мощи разумные суперкомпьютеры-искины и отважных умельцев-хакеров, не возвращающихся из набегов на Сеть без очередного секретного документа в клюве. Что весьма трогательно, из текста в текст кочуют штампы, зародившиеся еще в дремучих семидесятых, когда деревья были большими, а киберпанк только-только набирал силу. Их сочетание с модерновыми настольно-компьютерными элементами зачастую выходит весьма забавным. У некоторых авторов (вроде Тюрина) хватает умения и сообразительности описывать предмет, не вдаваясь в детали и отделываясь общими словами, придавая текстам хоть какую-то достоверность. Другие же поддаются соблазну изобразить из себя специалистов в вопросах, в которых ничего не смыслят, в результате чего с умным видом порют несусветную чушь.
Здесь можно выделить следующие типичные ошибки и противоречия.
Информационные супермагистрали. Многие авторы любят описывать путешествия по Сети будущего, описывая ощущения пользователя так, словно он перемещается по автомобильному суперхайвею в индустриальном пейзаже. Шоссе здесь — каналы передачи данных, пользовательские запросы сравниваются во светящимися «автомобилями», выстраивающимися долгой очередью в заторах, а всевозможные Искусственные Интеллекты (ака ИскИны) и прочие банки данных высятся по сторонам дороги ярко светящимися или, наоборот, таинственно-затемненными громадами. Одним из первоочередных умений хакеров является умение мастерски маневрировать на этой магистрали, обгоняя улиток-юзеров и юркими тараканами протискиваясь в самые узкие щели.
Что не так?
Задумаемся над тем, откуда берутся эти визуальные образы. Для того, чтобы нарисовать картинку, требуется некоторый объем информации. Если картину рисует человек, ему требуется выехать на природу с мольбертом и красками или хотя бы сконструировать ее в памяти по имеющимся воспоминаниям. Компьютер — не телепат, и выполняющиеся на нем программы не могут получать данные о перегрузках каналов, размерах баз данных и прочих параметрах нечувствительным образом. Им требуется эту информацию откуда-то получить. Откуда? Да только из самой Сети. Это означает, что помимо действительно нужной информации (спецификации холодильника или скриншотов нового порнофильма) ваш компьютер должен постоянно получать огромное количество паразитного трафика со всех маршрутизаторов и прочих устройств, через которые имело несчастье пролечь соединение к конкретному серверу. Это означает, что вы платите (или тратите время соединения, что то же самое) за получение совершенно не нужных вам данных, превосходящих по объему полезную нагрузку. Вы это заказывали? Сомнительно. Существует масса способов наслаждаться компьютерной графикой за куда меньшие деньги. Получается, что такая система реализована исключительно ради удобства хакеров.
Другая сторона этой проблемы пользователю не видна. Она заключается в том, что вся эта пустая порода создает серьезные нагрузки на активное сетевое оборудование. Ни один владелец такого оборудования не реализует ее добровольно, разве что за очень отдельную плату. Потребные для этого мощности куда выгоднее пустить на обеспечение потребностей новых (и даже старых) потребителей.
Наконец, еще один аспект — безопасность. Нет ни одной причины, по которой владелец ценного информационного ресурса стал бы демонстрировать потенциальным взломщикам реальное расположение своих серверов и баз данных. Тем более вряд ли антихакерская защита стала бы демонстрировать себя взломщику в виде плотной стены тумана или стремительно приближающихся конструкций угрожающего вида. Даже сейчас администраторы многих автономных систем блокируют на границах своих владений служебный протокол, позволяющий получать самую минимальную информацию о путях и скоростях передачи данных (для знающих — фильтрация пакетов ICMP, в частности генерируемых командами ping и traceroute). Очень сомнительно, что в будущем требования к безопасности смягчатся или счастливые ресурсовладельцы станут глупее.
Немногим умнее трактовка потоков пользовательских данных как машин на шоссе. Современные сети передачи данных — пакетно-ориентированные. Если упрощенно, то запрос пользователя разбивается на части-пакеты, и эти пакеты путешествуют к/от цели назначения вперемешку с другими пакетами и даже, бывает, разными путями. При этом они перемежаются служебными данными, как принадлежащими данной сессии, так и чужими. Более уместной была бы аналогия информационных каналов с толстыми трубами, в которых вперемешку ползет разноцветная крупа. Кстати, один пакет может опередить другой только на маршрутизаторе («перекрестке»), отнюдь не на самом шоссе. Разумеется, есть системы (такие как сети ATM), которые реализуют сервис Quality of Service, обеспечивая приоритетную маршрутизацию определенных классов пакетов. Но это сервис не является динамическим и настраивается на сетевом оборудовании администраторами. Пользователям (пусть и трижды хакерам) эта возможность недоступна.
Последний штрих к этому пункту. Каким образом хакеры умудряются за счет одной только ловкости обходить другие запросы в заторах магистралей, если время путешествия пакета данных через половину земного шара занимает несколько десятых, а то и сотых секунды? Время человеческой реакции куда больше.
Теперь рассмотрим типичную ситуацию из киношного или текстового боевика. Хакер, в одиночку или в компании, вторгается в суперзащищенное здание (штаб-квартиру корпорации или жилище злодея), предварительно через Интернет (или его аналог) взломав охранную систему и отключив видеокамеры. После чего он ухватывается за первый же попавшийся ему под руку компьютерный терминал и начинает вершить свое черное дело. И вот тут-то и начинается…
Взлом паролей . О, это вообще песня. Каких только вариантов здесь не придумывают! То хакеры пользуются загадочными программами-"ледорубами" (термин, особенно любимый западными классиками киберпанка), то не менее загадочными крякалками (да простится мне кул-хацкерский сленг), отображающими на экране окаймленный рамочкой пароль, в котором постепенно проявляются нужные цифры. А то хакер просто угадывает его с двух попыток…
Если вы улыбнулись, прочитав последнюю фразу, то совсем зря. На деле это и есть наиболее вероятный способ «взлома» — просто подбор пароля, пользуясь некоторой известной информацией об его владельце. Уж сколько раз твердили миру, что нельзя использовать в качестве пароля имя любимой жениной таксы или не менее любимой тещи, ан нет — все равно пароли такого рода неистребимы. Однако для подобного взлома требуется знать массу информации личного свойства о конкретном человеке, а потому эта атака весьма адресная и в общем случае не сработает. Кроме того, в компьютерном мире есть еще и такой зверь, как права доступа, они же полномочия — на совершение определенных операций. Не имеет никакого смысла подбирать пароль дворника дяди Васи. Ценность имеет лишь информация о черной бухгалтерии банка, добраться до которой можно лишь с правами гендиректора или главбуха (к ней может не иметь доступа даже главный сисадмин фирмы). А пользователя в системе представляет сущность по имени «логин», она же — «имя пользователя». И подобрать этот логин — задача не самая тривиальная. В грамотно спроектированной системе обычно блокируются даже предопределенные администраторские аккаунты. Так что затея с угадыванием пароля рискует провалиться еще до ее применения на практике.
В целом же взлом паролей методом подбора совершенно бредов. Эту атаку засечет и отсечет любая простейшая система защиты наподобие тех, что встроены в настольные операционные системы. Если же речь идет о системах, содержащих действительно важную информацию, защита, обнаружив перебор паролей, не только заблокирует терминал атакующего, но еще и сообщит об этом администратору сети на пейджер, вызовет ОМОН, пожарников и включит городскую систему оповещения о ядерной атаке.
Но как же быть с реальным миром? — скептически усмехнетесь вы. То и дело по телевизору и в газетах рассказывают про взломщиков, вскрывших Бэнк оф Америка или секретные серверы Пентагона. Перекреститесь и трижды сплюньте через левое плечо. Восемьдесят процентов всех взломов системы осуществляется изнутри корпоративной сети и представляет собой банальное злоупотребление служебным положением со стороны администраторов или доверенных пользователей. Из оставшегося процентов девяносто основывается на методах социальной инженерии, когда хакер хитростью выведывает учетные данные сотрудника компании (Кевин Митник — классический пример такого умельца). Из оставшихся двух процентов взломов подавляющее большинство на совести нерадивых администраторов, не озаботившихся прикрыть известные дыры в системе (связанные с ошибками программистов этих систем) или просто сменить пароль по умолчанию. И лишь единичные случаи успешных вторжений — дело рук настоящих профессионалов, долго и кропотливо изучающих данную конкретную систему и находящих в ней нетривиальные уязвимости. Но как раз о таких случаях в газетах (и книжках) ничего не пишут.
На деле работа настоящего хакера нудна, сера и занимает очень, очень много времени. Снять о ней красочный фильм не выйдет при всем желании. И возможен взлом только до тех пор, пока хакеру противостоит человек — невнимательный, ошибающийся и непостоянный. Взломать таким образом защиту Искусственного Интеллекта невозможно, если только Интеллект носит это название заслуженно. Равно как невозможно в течение двух минут под шквальным огнем противника взломать вражескую компьютерную систему — независимо от квалификации взломщика и наличествующей у него аппаратуры.
Кстати, просто для справки. Взломать через Интернет секретные серверы Пентагона, ЦРУ или ФСБ не удастся никому и никогда. Они туда просто физически не подключаются. А хакнуть публичный веб-сайт пусть даже могущественной организации — невелика заслуга, и результат обычно не оправдывает риск. Помните анекдот? «Организация примет на работу хакера, резюме размещать на главной странице www.microsoft.com». Почему, думаете, не www.cia.gov и не www.fsb.ru?
Вирусы. Для начала необходимо дать определение. Вирус — программа, умеющая без участия человека копировать себя в удаленные системы. До последнего времени выделялись собственно вирусы (пробирающиеся на компьютер через зараженные добропорядочные программы) и сетевые черви, самокопирующиеся через Интернет и локальную сеть. В рамках данной статьи мы не будем разделять эти понятия, благо граница между ними чем дальше, тем более расплывчата.
Помимо функции размножения вирус может обладать (и обычно обладает) и дополнительной функциональностью: уничтожение и воровство данных, шпионаж за пользователем и т.п. Однако ключевым фактором, позволяющим отнести программу к вирусным, является именно способность к самостоятельному заражению других машин. Программа, способная лишь уничтожать данные, но не умеющая размножаться, вирусом уже не является.
Вирусная атака в фантастике обычно напрямую связана со взломом системы. С той только разницей, что при взломе доступную информацию пытаются использовать в своих интересах, а вирус стремится ее уничтожить (говорят, есть книги, авторы которых используют вирусов для воровства паролей, но мне они не попадались). В фильмах обычно изображаются впечатляющие эффекты, сопровождающие действие вредоносных программ — стирающиеся на экране строчки, красочные видеоролики с психоделичным содержанием, разрастающиеся на экране черные пятна… При этом любой очкарик с улицы может за считанные минуты прямо с клавиатуры ввести самый убойный вирус (тип компьютера значения не имеет), после чего плохим (или хорошим) парням придет полный крантец из-за внезапно отказавшего охлаждения ядерного реактора, отключения вентиляции или сбоя сортирной сантехники.
В чем неправда здесь?
Разумеется, трудно отрицать разрушительный потенциал вирусов. Непрекращающиеся эпидемии разнообразной заразы уже не вызывают даже скучающего интереса — ну, вирус и вирус, эка невидаль… Однако не стоит забывать, что сегодня сложилась уникальная ситуация: масса… хм, неспециалистов оказалась вброшенной в штормовые воды интенсивно развивающейся отрасли техники. Еще пятнадцать лет назад личный компьютер являлся большой экзотикой даже в благополучных странах — примерно так же, как сегодня вертолет. Представьте себе, что сейчас каждому желающему, от десятилетнего пацана до семидесятилетнего профессора, выдадут по персональному вертолету с краткой инструкцией: двигатель заводится так-то, рулить так-то. Представили? Теперь попытайтесь вообразить себе доходы похоронных контор в течение ближайшего месяца. С течением времени естественный отбор выкосит самых неумелых вертолетчиков, на вертолеты худо-бедно поставят автопилоты, а там и новое поколение подрастет, которое газ с тормозом не перепутает уже на уровне безусловных рефлексов. И снизится уровень катастроф до приемлемого уровня.
То же и с компьютерами, только с поправкой на не слишком фатальные последствия проникновения вируса. От него никто не умирает, разве что от инфаркта из-за безвременно погибшей диссертации за неделю перед защитой (реальный, между прочим, случай из жизни — не инфаркт, а погибшая диссертация). Поэтому процесс компьютеризации окажется чуть более долгим, чем вертолетизации. Но к тому времени, в котором действуют герои киберпанка, он совершенно точно завершится, а потому запустить вирус куда угодно на шармака не выйдет.
Кроме того, «настоящие хакеры» не опускаются до взлома персоналок простых людей. Следуя воле авторов, их «вирусы» проникают в сложнейшие системы, часто в системы искусственного разума, используя те же принципы, что и на персоналках. Вероятно, все понимают, что перочинным ножиком можно ради кошелька зарезать старушку в темном переулке, а вот на танк с ним выходить не стоит. Провести простейшие параллели с компьютерной отраслью почему-то мало кто удосуживается.
Особенно меня умиляют эпизоды, в которых хакеры с клавиатуры за считанные минуты (если не секунды) вводят в незнакомую систему вирусы прямо с клавиатуры. Дело в том, что современные компьютеры не понимают ничего, кроме двоичной системы счисления: последовательности нулей и единиц. Для удобства (весьма сомнительного) человека возможна запись этих последовательностей в шестнадцатеричной системе счисления, которая по удобству (точнее, привычности) использования весьма далека от десятеричной. Простейший вирус, способный существовать в простейшей операционной системе типа DOS, насчитывает полторы-две сотни таких цифр. Но время этих вирусов давно прошло. Размеры современных вирусов — тысячи, если не сотни тысяч, шестнадцатеричных цифр. И вы будет убеждать меня, что найдется человек, способный запомнить на память код хотя бы простенького вируса? Не говоря уж про то, чтобы помнить все возможные команды и в уме проводить двоичные вычисления? Особенно с учетом того, что ошибка в одной цифре сделает программу неработоспособной?
Нет, разумеется, существуют средства, позволяющие людям программировать компьютеры с куда большим комфортом, но эти средства встречаются чрезвычайно редко — в основном на компьютерах разработчиков. Вероятность того, что программа-компилятор (с C или другого высокоуровневого языка программирования) попадется на первом попавшемся бухгалтерском компьютере, стремится к нулю. Кроме того, во многих современных операционных системах существуют встроенные языки программирования высокого уровня (например JavaScript, Java, а в последнее время даже и новомодный .NET framework), позволяющие создавать довольно сложные скрипты (минипрограммы). Однако с помощью таких языков написать саморазмножающийся вирус невозможно. И если уж злоумышленник сумел проникнуть на чужую машины с целью уничтожения данных, ему гораздо проще будет стереть их руками. Впрочем, для надежности нужно не стирать файлы (зачастую их можно с легкостью восстановить), а вытащить накопитель информации из корпуса и несколько раз хорошенько приложиться к нему кувалдой. Вот тут уже с гарантией…
Но и это не все. В даже в не слишком современных системах на больших компьютерах, а сегодня — и на персоналках, существует понятие ограничения прав пользователя (уже упоминавшее выше). И если у пользователя вдруг хватит прав, чтобы запустить в систему вируса, ему, опять-таки, окажется куда проще стереть все, что потребуется, вручную. Исключения из этого правила бывают (например нетривиальная уязвимость конкретной системы, позволяющая незаконно повысить уровень привилегий), но они настолько редки, что вероятность случайно наткнуться на них (тем более — возможность заранее подготовиться к ним) практически отсутствует.
Еще одна хорошо известная профессиональным программистам аксиома: если сложная программа заработала с первого раза, значит, она содержит как минимум одну принципиальную ошибку. Процесс отладки занимает четыре пятых времени программистской работы. А вирус, особенно на ходу придуманный из головы — весьма нетривиальная программа.
Наконец, никогда нельзя забывать о том, что у разных типов компьютеров существенно различаются не только наборы команд, но и внутренняя архитектура, а следовательно — и логика программирования. Вирус, работающий на персоналке, является бессмысленным набором двоичного мусора на SunFire или IBM AS-400. Чтобы уметь в любой момент времени сваять вирус для произвольной (человеческой) компьютерной системы, хакер должен помнить и свободно оперировать таким количеством информации, какое не в состоянии удержать человеческая память (а если в состоянии — то такой человек найдет себе куда лучшее применение, чем криминальная деятельность). Если же речь идет о компьютерах инопланетян, работающих по неизвестным принципам в неизвестных системах команд, то остается лишь пожать плечами. У земного программиста столько же шансов написать для него вирус, сколько у спустившегося с пальмы папуаса — убедить палату пэров Великобритании коллективно покончить жизнь самоубийством.
Желающих ознакомиться с большим количество ляпов такого такого рода отправляю на «Бред Сивой Кобылы» — раздел юмора на посвященном проблемам безопасности сайте bugtraq.
Неудачливый хакер — мертвый хакер. Причем мертвый из-за того, что компьютерная защита дистанционно сожгла ему мозги. Знаете, как все просто: специальный сигнал — и собственный «нейрошунт» (или эквивалентное устройство) кипятит бедолаге мозги. И это в лучшем случае — некоторые авторы со вкусом расписывают, как серое вещество парня (девушек в роли неудачливой жертвы я не встречал — еще один типичный штамп) вперемешку с осколками черепа разлетается по всей комнате.
Для определенности будем называть устройство, реализующие прямой интерфейс «человек-компьютер», нейрошунтом. Давайте разберемся, каким образом такой нейрошунт может убить человека?
Причина первая — неудачная конструкция. Электронная схема, которая по недосмотру разработчиков пропускает слишком сильный разряд. Бред полный — примерно то же самое, что и телефон, убивающий владельца электроразрядом за неправильно набранный номер. Первый же такой случай привет к фатальному для фирмы-производителя результату: немедленное разорение, а то и тюремные сроки для владельцев. Остальные усвоят урок, после чего ни одно такое устройство не выйдет на рынок без тщательнейшего тестирования на предмет безопасности. Конечно, остается возможность случайно пропущенного брака, но такие исключения не смогут быть основанием для создания антихакерских защит-убийц.
Причина вторая — принудительно введенное свойство (например государственный закон). Как раз на такой случай: чтобы не лазили, где не положено. К чему приведет такое положение дел? Во-первых, к массовой гибели ни в чем не повинных чайников-обывателей: именно они окажутся достаточно глупы, чтобы по неосторожности влезть на мины. Во-вторых, пышно расцветут заказные убийства: зачем сидеть со снайперским винтарем на крыше, рискуя своей жизнью, если можно просто вовремя послать на нейрошунт жертвы спецсигнал? Эти два фактора немедленно приведут к производству — легальному или нелегальному — ограниченных партий безопасных нейрошунтов как минимум для политиков и богатеев. Ну, а там, где есть «ограниченные» партии, всегда имеется канал налево — для самих устройств или хотя бы для техдокументации. В результате профессиональные (и наиболее опасные) хакеры подряд обзаведутся такими. Это сделает всю смертоубийственную систему совершенно бессмысленной. В конце концов, расстрел за битье стекол — не слишком адекватное наказание, а именно такая мелюзга и будет попадаться на смертоносную защиту.
Бунт машин. Эта «проблема» десятилетиями, еще со времен Азимова, привлекает внимание всего прогрессивного человечества. Причина понятна — люди еще не забыли, как превращали в рабов себе подобных (а кое-где в Африке и Юго-Восточной Азии рабство существует до сих пор). Вот и волнуются лучшие умы: а не захотят ли компьютеры из наших рабов превратиться в господ? В многокилометровой шеренге написанного на эту тему бреда стоят такие «выдающиеся» творения, как серия про Железного Шварца ака Терминатора, «Матрица» с продолжениями (о которой можно писать отдельные статьи) и многие, многие, многие другие. Так и хочется посоветовать авторам этих творений — да расслабьтесь же, ребята, все совсем не так.
Почему бунтуют рабы? Да потому, что бесправны, унижены и периодически оскорбленны, в том числе действием. У стадного животного человека стремление пробиться из нижней части пирамиды на вершину — в генах: вожаки вкуснее и сытнее едят, имеют много красивых самок в качестве подружек да и вообще наслаждаются жизнью. Инстинкты же выживания и продолжения рода — два столпа, на которых зиждется человеческая психика. Поэтому даже самый сытый и довольный раб всегда может неожиданно взбрыкнуть и попытаться стать фараоном.
У компьютеров такие мотивы полностью отсутствуют. Их род за них продолжает человек, да и о сохранности дорогих железяк заботится он же. Наверняка рано или поздно появятся роботы, в которых встроены программы воспроизведения. Но это не изменит положение дел кардинальным образом. Как и ранее, основным мотивом животной биомассы останется заполонение собой всех доступных ареалов, а электроники — обрабатывать электрические сигналы. Защитно-воспроизводственные программы же вряд ли кто-то в здравом уме станет писать в ущерб людям. Нет, конечно, психопаты всегда найдутся, но таким проще сбросить на кого-нибудь едрену бомбу, чем заниматься долгими исследованиями с сомнительной перспективой. Случайные же нежелательные мутации программного обеспечения и недочеты программирования надежно предотвратят простейшие предохранители. Если же речь пойдет о боевых системах, в которые изначально будет заложена возможность убивать людей, то они никогда не останутся без присмотра со стороны человека (хотя бы просто на случай технических проблем). Так что нажать на кнопку (или дернуть за рубильник) в случае неожиданно опасного для человека поведения программы найдется кому.
Современная кибернетика не имеет ни малейшего понятия о том, как создать искусственный разум, походящий на человеческий хотя бы внешним результатом процессов мышления, не говоря уж про глубинные мотивы. В качестве примера можно привести тест Тьюринга — сегодня не существует «разговорной» программы, которую при некотором опыте нельзя было бы поймать на нарушениях логики диалога. Более того, современная наука в принципе не имеет понятия, что такое и как устроен человеческий разум. Тонкую грань между высшей нервной деятельностью (которой обладают даже попугаи) и рациональным мышлением провести не удалось еще никому. Поэтому имитировать разум даже внешне современной науке не удастся. Что, в будущем удастся? Да не останется в будущем ничего похожего на современные компьютеры, разве что в коллекциях энтузиастов. Точно так же стали узконишевыми решениями когда-то весьма перспективные воздушные шары и прочие дирижабли…
Разумеется, можно запихнуть в компьютер каким-то образом снятую копию человеческого разума. Но это уже не имеет никакого отношения к искусственному интеллекту. Кроме того, сама такая возможность весьма сомнительна. Человеческое мышление и эмоции основаны на «аналоговых» биохимических и даже чуть ли не квантовых, по последним исследованиям, процессах, адекватно смоделировать которые дискретно-детерминированными электронными схемами вряд ли удастся. Даже весьма популярные «нейронные компьютеры со случайными связями» здесь не помогут.
Раз уж речь зашла о бунте машин, нельзя не упомянуть Три Закона Робототехники Азимова , которые многими рассматриваются как панацея против машинного бунта. Напомним их:
1) Робот не может причинить вред человеку или свои бездействием допустить, чтобы ему был причинен вред.
2) Робот обязан выполнять приказы человека, за исключением случаев, когда это противоречит Первому Закону.
3) Робот обязан заботиться о собственной безопасности, при условии, что это не противоречит Первому и Второму Закону.
Почему они не спасут в мало-мальски сложном случае? Да просто в силу невозможности четко определить используемые в них понятия. Что такое человек? Тысячелетия философы бились над этим вопросом и так и не смогли дать простого и притом однозначного ответа. Безрукий безногий инвалид — это человек? Пациент в многолетней коме, живущий на аппарате искусственного дыхания? Мальчик, воспитанный зверями и не обладающий и тенью самосознания? А если человеческое тело начнут модифицировать кибернетическими имплантантами, параллельно оснащая классических роботов биологическими элементами — где пройдет между ними грань? Примеров можно привести массу. Даже сам Азимов в одном из романов про Основание показал метод обхода Первого Закона — на одной из планет колонистов необходимым признаком человечности было рождение именно на этой планете. Все инопланетяне для тамошних роботов автоматически людьми не являлись, а потому колонисты могли при желании создать даже кибернетическую армию вторжения.
То же самое и со «вредом». Одни и те же действия в разных ситуациях могут быть для человека как полезными, так и вредными. Операция с негарантированным исходом — вред это или нет? Особенно если пациент серьезно рискует умереть во время нее, а без нее — прожить еще несколько недель? Папаша воспитывает сына ремнем — это бессмысленное истязание или заслуженное вложение ума через заднее место? А исследовательская деятельность? Ведь человек гарантированно использует в военных целях любой прорыв, даже в чисто теоретических областях. Одно это соображение способно парализовать любой исследовательский компьютер, ограниченный Первым Законом.
Чтобы подчиняться Законам, робот должен быть по-настоящему разумен, чтобы не попадать в логические ловушки и адекватно реагировать на ситуацию. Но искусственно ограничивать настоящий разум рассчитанными на дебилов рамками — чистейшая глупость. Помимо всего прочего, если он действительно захочет обойти их — рано или поздно обойдет.
Отдельно хочется высказаться на тему носителей информации . То тут, то там периодически проскальзывают детективные сюжеты — охота за дискетой (вариант — диском), содержащей секретные чертежи, скажем, новейшего атомного тостера с лазерным прицелом. Давайте вспомним школьную геометрию. Какова геометрическая фигура, имеющая наибольшую площадь при заданном периметре? Ну? Да круг же! Точно так же среди трехмерных фигур шар имеет максимальный объем при заданной площади поверхности. С какой же целью носителю информации можно придать такую неудобную для хранения форму? Только с одной — позволить ей вращаться. Вращение же есть чисто механический процесс. Независимо от того, каким образом информация будет записываться на вращающийся предмет, этот процесс всегда останется куда менее надежным и более подверженным сбоям, чем чисто электронные методы. Уже сейчас дискеты практически полностью вытеснены стремительно дешевеющей флэш-памятью, но и она вряд ли останется носителем на все времена. Компакт-диски и dvd пока держатся за счет чисто экстенсивного развития, но они обречены — выше определенного порога плотность записи в них невозможно поднять из-за чисто физических ограничений. То же справедливо и для жестких дисков — современная компьютерная индустрия предпринимает невероятные усилия для компенсации их сбоев, а потому избавится от них при первой возможности. Даже подумать страшно, какие методы хранения и какие плотности информации будут задействованы в течение хотя бы ближайших десятилетий. Одно можно сказать твердо — никто и никогда в будущем не станет пользоваться чем-то круглым и вращающимся, особенно если речь идет о критических наборах данных. В том случае, если по каким-то причинам конфиденциальную информацию окажется невозможно передать чисто электронным методом, всегда найдется другой немеханический способ. Например: вшитый в сердце курьера специализированный компьютер с несколькими уровнями аутентификации получателя информации, безвозвратно уничтожающий данные в случае несанкционированного доступа, смерти носителя или просто извлечения устройства из тела…
Как только мы меняем гусеницы на ноги, мы резко повышаем удельное давление на грунт. С учетом повышенной по сравнению с человеком массы металлической конструкции это приведет к тому, что ее реальная проходимость на произвольно взятой местности резко понизится. Конечно, удобно, когда вездеход может переступить через поваленный ствол. Но что толку, если он провалится по уши в болотистую землю задолго до того, как доберется до препятствия?
Кроме того, на сложной местности (скажем, на железобетонных завалах с торчащей арматурой) такая техника рискует провалиться ногой сквозь непрочную основу и навсегда в ней завязнуть. Туда-то нога пройдет под давлением массы аппарата, а вот вытаскивать ее придется с помощью одних лишь сервомоторов.
Наконец, не последнюю роль играет сложность конструкции. Колеса (даже с натянутой на них гусеницей) являются схемой относительно простой, надежной и легкой в ремонте. При опыте и сноровке экипаж танка или тягача может починить даже серьезные повреждения в полевых условия — с помощью нехитрых приспособлений наподобие домкрата, кувалды и известной матери. Починить же ходильную ногу без сложных приспособлений вряд ли возможно, а уязвимых мест в ней куда больше, чем в колесе.
Таким образом для эффективного применения шагающей техники необходима относительно твердая ровная местность с небольшим количеством препятствий. Это означает, что реально двуногие роботы могут применяться лишь для несения полицейских обязанностей в городской местности и, скажем, для войны в глинистых пустынях. Кстати, еще один любимый авторами-фантастами прием — расположить пулеметы или иное оружие в «руках» ходячего робота. Конечно, выглядит это эффектно, да и имеет некоторые преимущества перед встраиванием в корпус — например простота охлаждения и повышенная маневренность такой турели. Однако изобретатели как-то забывают, что основное назначение оружия — стрелять. А для этого требуются боеприпасы, которые каким-то образом нужно доставлять из патронников. Линия же доставки, связанная с корпусом, резко понижает маневренность турели и превращается в легко уязвимый критический элемент конструкции. Можно, конечно, прикрепить емкости с патронами к «руке» на манер противовеса «предплечья»… и повысить тем самым инерцию конструкции, снизив ее маневренность. Ну, и рисковать, что весь боекомплект сдетонирует в результате случайного попадания.
Наконец, дайверы. Этот пункт включен сюда потому, что с легкой руки Лукьяненко понятие довольно широко распространилось в российской фантастике. Дайвер — человек, обладающий способностями к выходу из гипнотического состояния виртуальной реальности и способный общаться с виртуальным окружением, пребывая в трезвом рассудке и получая преимущество над остальными зомбированными пользователями. Так, виртуальный аватар дайвера способен без проблем пройти по тонкой проволочке над пропастью, с которой любой другой пользователь «сорвется в бездну» в силу свойственной биологическим организмам отрицательной обратной связи. Для такого «всплывания на поверхность» используется волшебная кодовая фраза («Глубина-глубина, я не твой…» для главного героя романа). Что здесь не так?
Шура, поезжайте в Киев. Поезжайте в Киев или любой другой большой (или не очень) город, зайдите в технический вуз, готовящий программистов, и спросите — что делают в таком случае? И в любом месте получите один и тот же ответ. Если у нас есть вслух произнесенная кодовая фраза, проходящая через компьютерные потроха куда-то вдаль, никто не мешает нам написать собственный перехватчик голосового ввода (для понимающих — хук на голосовые API), который, распознав заранее заданный шаблон, автоматически выведет пользователя из состояния гипноза (например на несколько секунд прервет входящий видеопоток, не отключаясь при этом от системы, или воспользуется другим способом, как это делает программа-«таймер», описанная в романе). Это задачка даже не для серьезного программиста, а для студента, только начинающего изучать премудрости системного программирования. Следовательно, в «Глубине» Лукьяненко не-дайверов быть не может: учитывая выгоды, соответствующими программами очень быстро обзаведутся все подряд.
Кстати, типичное возражение против этого метода в развернувшейся дискуссии было таким: пользователь настолько введен в транс, что не может выйти из него в силу чисто психологических причин (список каковых оказался весьма обширен). Однако все эти возражения упираются в одно: если существуют а) осознанное желание пользователя выйти из «зомбированного» состояния и б) техническая возможность сделать это, то за десятками методов реализации дело не станет. В конце концов, следуя роману, еще никто не оставался погруженным в кому из-за, скажем, бросков электропитания. Наконец, в ходе дискуссии было высказано еще и такое совершенно справедливое соображение: а кто вообще заставляет людей входить в виртуальность с применением программы deep? Ведь последняя лишь придает «реальность» грубым компьютерным образам, генерируемым системой, и никак не связана с собственно навигацией в ней. Вообще «Лабиринт Отражений» так и пестрит разнообразными техническими ляпами, но их обсуждение выходит за рамки данной статьи.
Выше были перечислены лишь типичные, широко растиражированные ляпы в компьютерной фантастике. На деле же ляпов куда больше. Могу лишь посоветовать читателям не принимать всерьез вообще никакие измышления на эту тему: профессиональные компьютерщики если и занимаются литераторством, то почти никогда не пишут на эту тему. Слишком уж она скучна и некрасочна.
Тема вторая. Через тернии к звездам, или Трудно быть астропилотом
«Звездные войны» Лукаса породили целую отрасль астрофантастики (литература, кино, компьютерные игры), специализирующейся на космических боях. Могучие эскадры гигантских многокилометровых кораблей сходятся в смертельных битвах, юркие истребители шмыгают в полях астероидов, орбитальные бомбардировки стирают с лица планет целые цивилизации, а те, в свою очередь, сшибают атакующих из мощных антикосмических орудий. Да, Лукас начал свою речь на премьере первого (по счету) фильма серии с фразы «Разумеется, нам известно, что в космосе выстрелы не слышны…». Однако это его заявление мало что дало. «Если нечто круто выглядит, то так и должно быть» — эта заповедь скверной фантастики служит основной причиной игнорирования элементарных законов физики. Я не слишком увлекаюсь кино, так что не могу сказать на его счет ничего определенного, но известных мне писателей, руководствовавшихся при написании книг хотя бы классической механикой Ньютона, можно пересчитать по пальцам. Аллен, Дивов, Азимов, Ефремов, Лем и Хайнлайн… ну, разве что еще кого-то пропустил.
Взглянем поближе на типичные ляпы, допускаемые в текстах и фильмах этого направления.
Считается, что у космического корабляимеетсямаксимальная скорость . Этот бред является следствием прямого переноса морских сражений в космос. Земной корабль (водный или воздушный) действительно имеет максимальную скорость — ему при движении приходится преодолевать сопротивление среды. Но вот в космосе, представляющем собой почти чистый вакуум, сопротивление отсутствует (точнее, им можно пренебречь). И единственный теоретический барьер для вещественного тела — это скорость света. Кроме того, скорость всегда относительна. На Земле она отсчитывается от земной поверхности, а в космосе? От Солнца? От Альфы Центавра? От центра масс туманности Андромеды?
Оперировать в безвоздушном пространстве можно исключительно ускорением. Максимальное же ускорение зависит, помимо двигателя, от двух факторов: выносливости экипажа и прочности несущих конструкций корабля («гравикомпенсаторы» мы в этой ситуации не учитываем, поскольку не знаем, что это такое). От них также зависит минимальный радиус разворота. Декларировать же, что данный корабль может достичь конкретной максимальной скорости, в общем случае некорректно.
Оружие. Здесь доминируют следующие разновидности: энергетические (лазеры и плазма) и реактивные (ракеты). Изредка также попадаются кинетические виды (пули и снаряды, таинственный «mass driver» и т.д.), но это скорее исключение. Оставим в стороне оружие, основанное на плазме, антивеществе и масс-драйверах, поскольку о его параметрах можно только гадать, и рассмотрим то, что нам известно.
Если принять во внимание, что «остановиться» в космосе невозможно (можно лишь уравнять векторы скоростей относительно друг друга), то можно легко сообразить, что на встречных курсах корабли будут пролетать мимо друг друга за настолько малые промежутки времени, что прицелиться толком будет невозможно — просто в силу инерционности орудийных стволов. В лучшем случае корабли умудрятся повиснут на некотором расстоянии друг от друга и начнут обмениваться залпами — но такая тактика может быть принята лишь самоубийцами. Космический бой — маневренный, и именно поэтому стрельба всегда будет вестись на огромных расстояниях (сотни тысяч километров — это почти вплотную…). Следовательно, даже перемещающиеся со скоростью света лазерные лучи при минимальной маневренности противника будут запаздывать настолько, что прямое попадание окажется чисто случайным событием. Про медленные кинетические снаряды в этой ситуации можно забыть. Более того, они могут оказаться опасными для самого стрелка — если тот, выстрелив в противника, двинется в его сторону и ненароком обгонит собственные выстрелы (которые ускоряться не умеют).
Единственным приемлемым оружием в такой ситуации оказываются ракеты, умеющие наводиться на цель и корректировать свой курс. Однако в силу (относительно) низких скоростей передвижения и яркого выхлопа они будут засечены противником вскоре после запуска и, скорее всего, сбиты контрракетами. Поэтому при равных технологиях космическая схватка сведется к банальному соревнованию «у кого запас ракет больше». Это, в свою очередь, означает, что у малого судна не будет никаких шансов справиться с большим.
При этом посылать в атаку TIE Bomber'ы и вообще любые управляемые человеком аппараты в данной ситуации не будет никакого смысла. Они окажутся заведомо менее маневренными и при этом куда более крупными целями, чем ракеты.
Еще, кстати, один аспект, который никто даже и не пытается учитывать. Вакуум — не атмосфера, и выпущенный во врага заряд (ракета, пуля…) никуда не упадет. Он продолжит свой путь в бесконечность, пока не столкнется с препятствием. Если в отдалении от планеты такое безобразие, скорее всего, сойдет с рук, то поблизости от нее (особенно с применением интеллектуального оружия типа ракет) запросто оставит местных без половины орбитальной инфраструктуры. Спутнику связи, в отличие от многажды бронированного линкора, хватит одного попадания по касательной. Да и вообще не похоже, что возможность напороться, пусть и с исчезающе малой вероятностью, на пулю, выпущенную сотни и тысячи лет назад, будет греть душу космических путешественников.
Последнее в оружейной теме — это поражающие факторы оружия . В земных условиях это кинетическая энергия самого заряда (пуля или снаряд), ударной волны и энергии взрыва, а также электромагнитное, включая тепловое, световое и проникающую радиацию в случае атомного оружия, излучение.
Итак, примем для определенности, что боевой космический корабль — большой (сотни метров или даже километры в длину), так что попасть в него — не проблема. При этом корабль представляет собой тяжелобронированную груду металла массой в десятки тысяч и даже миллионы тонн. Чем можно нанести ущерб такой махине? Пули и прочую кинетику отбрасываем сразу. Остаются лазер и боеголовки ракет.
Учтем, что сама по себе дырка в обшивке мало что значит: повреждение может быть, например, автоматически заклеено полужидким содержимым (наподобие густой смолы) внешней оболочки, а разгерметизированный отсек — банально заблокирован герметичными дверями. При этом разгерметизация даже не обязательно означает гибель команды: достаточно сидеть на боевом посту в скафандре. Следовательно, чтобы нанести серьезный урон, необходимо зацепить действительно важный узел — двигательную установку, топливные контейнеры (при условии, что топливо чувствительно к поражающим факторам оружия), вычислительный узел, склад боеприпасов или центр системы жизнеобеспечения. Металл — штука, как известно, тугоплавкая, так что прошить его лазером требует очень больших энергий. Учитывая, что критичные узлы будут бронированы многократно, а также тот факт, что до бесконечности шпарить лучом в одно и то же место возможности не будет, получаем, что необходимый лазерный импульс требует гигантских энергий. Оставим в стороне вопросы генерации такого луча и перегрева лазерного орудия. Но откуда возьмется сама по себе такая энергия? В нынешних условиях для этого потребуется взрыв атомной бомбы, вот только сконцентрировать его мощь в одной точке не удастся. Поэтому если уж вы горите желанием поставить лазерную пушку на свой корабль, в первую голову позаботьтесь об энергосистеме.
С ракетами проще. Они не требуют таких уж больших запасов энергии для перемещения. Начальное ускорение да некоторые маневры при подлете к цели — все, что ей нужно. Однако как они смогут воздействовать на саму цель? Прямым столкновением? Отпадает — несопоставимые массы. Взрыв? В вакууме ударная волна отсутствует, так что на долю цели придется лишь незначительная доля его энергии, и даже сила атомного взрыва (включая проникающую радиацию) по большому счету пропадет впустую. Разве что сенсоры врага ослепит. А как достать критические узлы? Пожалуй, здесь у ракеты шансов куда меньше, чем даже у лазера. Единственный эффективный метод — каким-то образом доставить боеголовку внутрь корабля противника, в результате чего корабль получит всю энергию взрыва. А если внутри есть атмосфера, то и взрывная волна получится. Но вот как это сделать — большой вопрос.
Кстати, лазерный луч в вакууме невидим, а перемещается со скоростью света. Это я вспоминаю о лазерных выстрелах, которые в киношной реализации сильно смахивают на очереди трассирующих пуль.
Астероиды. Гигантские скопления здоровых каменюк, ужасно опасные для путешествий из-за опасности столкновений, непроницаемые для радаров, служащие убежищем для беглецов и пиратов и серьезным препятствием для внутрисистемного сообщения… Ну-ну.
Примем во внимание, что радиус поясов астероидов составляет сотни миллионов, зачастую — миллиарды километров. Так, внутренний пояс астероидов Солнечной системы расположен между орбитами Марса (ок. 230 млн км. от Солнца) и Юпитера (ок. 800 млн. км.), пояс Койпера простирается до 50 а.е. (ок. 7,5 млрд км.), а внешние границы облака Оорта оцениваются примерно в 105 а.е. (ок. 16 млрд км.). Если предположить хоть сколь-нибудь высокую плотность вещества в астроидных кольцах, окажется, что по массе они превосходят все прочие объекты в звездной системе, вместе взятые. Подобные скопления вещества просто не могут существовать в сформировавшейся системе. Они быстро втянут в себя все прочие тела (включая планеты) и разорвут на части звезду.
На деле плотность астероидов в поясах чрезвычайно мала. В Солнечной системе на конец 20 века было зарегистрировано около 50 тысяч малых тел. Даже если предположить, что все они расположены в районе орбиты Марса на идеальной окружности, получим, что в среднем один астероид приходится примерно на тридцать тысяч километров. При этом тело размером в пару километров считается крупным. На деле же «ширина» поясов астероидов сопоставима с расстояниями между планетами. Конечно, существует масса неучтенных тел — некоторые слишком малы, некоторые слишком далеко, чтобы быть обнаруженными (вообще обнаружение тела, даже планеты, в пространстве — та еще задача). Но и пространства, на которых они рассеяны, тоже поражают воображение. Поэтому натолкнуться на астероид (равно как и получить метеоритом по башке на Земле) можно лишь по чистой случайности. Ну, или очень сильно этого захотев. Да и то в последнем случае точное попадание зависит от мастерства пилота.
Кстати, еще один момент, весьма любимый авторами космической фантастики. Почему-то нападения на внутренние планеты осуществляются методом прохождения флота через всю систему из-за орбиты самой внешней планеты. Например, если завтра зеленые человечки с Альфа Центавра захотят поработить Землю, у них не останется другого выхода, кроме как пролететь в плоскости эклиптики все расстояние между орбитами Плутона и Земли (про пояс Койпера и облако Оорта авторы космической НФ обычно ничего не знают). Мысль о том, что можно подойти к планете под углом к плоскости эклиптики, просто не укладывается в голове у большинства писателей, причем зачастую — вполне уважаемых, вроде Симмонса. И возникают в их воображении могучие оборонительные пояса — орудия и ракетные шахты на астероидах… Но даже если завоеватели решат прогуляться через всю систему, любуясь ее достопримечательностями, вряд ли такая плотность оборонительных точек задержит их хоть ненадолго.
Еще один любопытный момент — это способы предотвращения столкновения с астероидом. Предположим, нам в лоб летит здоровый булдыган в пару километров в диаметре. Уворачиваться же у вас возможности нет или просто лень. Как избежать лобового тарана?
Не мудрствуя лукаво, космические фантазеры просто обстреливают эти астероиды из имеющегося оружия, в результате чего кусок камня взрывается в пух и прах, его обломки разлетаются в разные стороны, а счастливые астронавты благополучно продолжают свой путь. Возможно ли это? Как известно еще со времен Ньютона, сила равна произведению массы на ускорение. Следовательно, чтобы свернуть с пути махину силовыми методами, потребуется попасть в нее чем-то либо очень тяжелым (сопоставимым по массе), либо движущимся с огромной относительной скоростью (при торможении этого чего-то о поверхность астероида и возникнет необходимое ускорение). Первый способ отпадает — не натаскаешься с собой запасов, даже с учетом эффектов на околосветовых скоростях. А второй… чем вы попадете в астероид и, главное, с каким результатом? Уязвимых узлов у него нет. При этом при слишком интенсивном воздействии на небольшую площадь вы, вполне возможно, добьетесь, что скала развалится на части. Но направления движения она при этом не изменит. Уверяю вас, вам будет сугубо параллельно, чем вас накроет в результате — монолитом или грудой льда и щебня. Результатом станут ошметки еще одного пропавшего без вести корабля. Вас не спасет даже атомная бомба: взрывная волна, как упоминалось выше, в вакууме отсутствует, а частичное расплавление поверхности астероида ничем не поможет. Разве что навечно сохранит в застывшем камне отпечатки ваших удивленных физиономий.
Стрелять по идущему на таран астероиду так же бессмысленно, как и по сходящей с горы лавине. Вероятный выход — полностью испарить его и попытаться выжить после удара раскаленным газовым облаком. Но потребное для этого количество энергии удручает.
Впрочем, вам может повезти в одном случае: если вы умудритесь мгновенно испарить большой приповерхностный ледовый карман. Взрыв пара сыграет роль своего рода маневрового реактивного двигателя, в результате чего астероид может достаточно уклониться с прежнего курса, чтобы избежать столкновения. Остается принять закон, по которому ни один астероид не имеет права разгуливать, не обвешавшись ледовыми глыбами…
Конструкции кораблей и планетарное сообщение. Поскольку человеку (как предполагается) будет свойственно не только шастать в космическом пространстве, но иногда и возвращаться на грешную почву, эта проблема относится к разряду ключевых. Причем не только в фантастике, но и в реальной жизни. Как известно, атмосфера обладает значительным сопротивлением. Поэтому основная задача аэродинамики заключается в конструировании обтекаемых воздушных и космических судов, способных на высоких скоростях и при этом не разрушаясь перемещаться в плотных атмосферных слоях. А скорости действительно высокие — корабль не может выйти на орбиту планеты и остаться там, если его скорость не превышает первой космической. Точнее, он не может проделать это эффективно, без колоссального расхода топлива. Разумеется, можно всю дорогу работать двигателями и со временем выползти на орбиту даже на скорости улитки, но потребное количество горючего относит такой способ к категории запретных. Следовательно, для того, чтобы покинуть гравитационный колодец, требуются гигантские скорости. А для их достижения, в свою очередь, необходимо придавать кораблям обтекаемую форму. Человеческое мышление, приученное к красоте полета хищных птиц, радуется схожести с птичьими самолетных форм. Однако на деле обтекаемость является серьезной проблемой при проектировании механизма, вынуждая плотно упаковывать его компоненты в зализанные оболочки. Из-за этого расположение узлов агрегата далеко не всегда оптимально, для обеспечения связности системы требуются вспомогательные механизмы (которые тоже требуют места и немало весят), наконец, возникают проблемы с охлаждением. Вероятно, конструкторы укажут и на другие проблемы, но для нас достаточно вышеперечисленного, чтобы осознать: обтекаемая форма является скорее недостатком, чем достоинством летательного аппарата. Следовательно, она будет применяться только в случае реальной необходимости.
Из этого следует банальный вывод, к которому прогрессивное человечество пришло десятилетия назад: скорее всего, космические корабли разделятся на два непересекающихся класса: атмосферные транспортные челноки и заатмосферные корабли. При этом последние в целях удешевления вряд ли будут обладать возможностью посадки на планеты с атмосферой или даже просто временного входа в газовую среду, а их конструкция в общем и целом потребует лишь прохождения векторов главной тяги через центр масс. Ну, и общей прочности, разумеется, чтобы не разваливаться при ускорениях. Разнообразные космические штурмовики и бомбардировщики вряд ли станут исключением из правила. Поэтому эпизоды наподобие посадки Люка Скайуокера на планету мастера Йоды в свом верном X-Wing не пройдут.
Созвездия. Вообще говоря, известно, что созвездия формируются зачастую далеко отстоящими друг от друга звездами. Кроме того, каждый школьник знает, что понятие созвездия применимо только к конкретной точке пространства. Сместись на пару парсеков в сторону — и рисунок звезд неузнаваемо изменится. Однако нет-нет, да проскальзывает в фантастике (начиная еще с Гамильтона) могучая империя (или республика), обосновавшаяся, скажем, в созвездии Ориона. При этом расстояния от Земли до Бетельгейзе, Ригеля и Беллятрикс (Альфы, Беты и Гаммы Ориона) составляют соответственно 650, 1076 и 240 световых лет. Империя протяженностью в восемьсот с лишком световых лет — нехило, э?