воскресенье, 20 декабря 2020 г.

Microsoft и PDP-10

DEC PDP-6

Первым компьютером, который можно отнести к описываемому семейству, можно считать компьютер PDP-6, выпущенный в 1964 году. Его машинное слово имело ширину в 36 бит. Всего было продано 23 экземпляра этого компьютера - наименьший показатель за всю историю Digital Equipment Corporation.

DEC PDP-10 или DECsystem-10

Как и свой предшественник, компьютер PDP-10 имел длину машинного слова 36 бит. Позже компьютер был переименован в DECsystem-10.

Операционные системы

Для компьютеров этой архитектуры существовало несколько операционных систем:
  • TOPS-10 - операционная система, поставлявшаяся DEC в комплекте с компьютером. Первоначально называлась "Монитор", была основана на системе WAITS (West-coast Alternative to ITS - альтернатива ITS с западного побережья) Стэндфордского университета и системе CompuServe с разделением времени. Заказчикам компьютеров были доступны исходные тексты системы, поэтому некоторые заказчики заменяли в ней отдельные компоненты, например, планировщик задач или дисковую подсистему, на свои собственные.
  • TENEX - операционная система, разработанная компанией BBN (Bolt Beranek and Newman, в последующем - BBN Technologies). Главным разработчиком этой системы стал Дэниел Боброу. Кен Томпсон, автор операционной системы Unix, как-то заметил, что если бы Боброу разрабатывал операционную систему для PDP-11, а сам Томпсон для PDP-10, то повсеместное распространение получила бы именно система Боброу, а не Томпсона.
  • ITS (Incompatible Timesharing System - несовместимая система разделения времени) - операционная система, разработанная в Массачусетском технологическом институте (MIT - Massachusetts Institute Of Technology). Названа в противоположность CTSS (Compatible Time-Sharing System - совместимая система разделения времени) для компьютеров IBM 7094. CTSS тоже была разработана в Массачусетском технологическом институте, стала идейным вдохновителем многих других операционных систем с разделением времени, среди которых можно назвать не только ITS, но и MULTICS, а также потомка MULTICS - UNIX.
  • TOPS-20 - значительно улучшенная DEC операционная система TENEX. Поставлялась вместе с компьютерами серии DECSYSTEM-20, совместимых с серией DECSYSTEM-10.
Операционная система TOPS-10 поддерживала разделяемую память. Это позволило реализовать первую многопользовательскую компьютерную игру DECWAR и программу для общения между пользователями FORUM, на основе которой был создан CompuServe. В комплекте с операционной системой поставлялся ассемблер MACRO-10, а также компиляторы и интерпретаторы нескольких языков программирования: Алгол, APL, Бейсик, Кобол, Фортран.

Хронология выпусков TOPS-10:
  • 1964 - первый выпуск программы "Монитор" для PDP-6.
  • 1967 - выпуск 2.18, в котором была добавлена поддержка процессора KA10 для PDP-10.
  • 1970 - выпуск 5.01, впервые было использовано название TOPS-10.
  • Май 1974 - выпуск 6.01, впервые реализована виртуальная память, что позволило загружать программы, размер которых был больше размера физической памяти.
  • 1988 - выпуск 7.04, ставший последним. В версии 7.00, выпущенной до этого была добавлена поддержка симметричной многопроцессорности.
Операционная система TOPS-20 выпускалась с 1976 года по июнь 1988 года. Последний выпуск этой операционной системы имел номер 7.1.

CompuServe и Microsoft

Компания CompuServe была основана в 1967 году. Первоначально зарабатывала на предоставлении доступа по телефонной сети к своим компьютерам для организаций. В дальнейшем стала продавать доступ к своим компьютерам частным лицам. Видимо, в начале 1970-х годов компании, подобные AOL и CompuServe, предоставляющие платный доступ к большому компьютеру по телефонной сети, были распространены. В одной из таких компаний, называвшейся Computer Center Corporation, Билл Гейтс и Пол Аллен и познакомились с этим компьютером.

Первым персональным компьютером считается компьютер Altair-8800, разработанный инженером Эдом Робертсом. Этот компьютер имел модульную архитектуру: на материнской плате компьютера имелась шина S-100, к шине подключался процессорный модуль. В остальные разъёмы можно было вставлять платы сторонних производителей: терминальный модуль для подключения монитора и клавиатуры, платы дополнительной оперативной памяти, адаптеры портов ввода-вывода и т.п.

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

Интерпретатор языка программирования Basic для компьютера Altair-8800 был разработан в Microsoft именно на компьютере PDP-10. Пол Аллен написал кросс-ассемблер и эмулятор процессора Intel 8080 для PDP-10, благодаря чему Билл Гейтс смог написать и отладить свой интерпретатор для компьютера Altair-8800, который они видели лишь на обложках журналов. Впервые воочию Altair-8800 увидел Пол Ален, когда привёз префоленту с готовым интерпретатором Basic Эду Робертсу.
До 1994 Microsoft общалась с пользователями через форумы CompuServe. С появлением компьютера Tandy Model 100 со встроенным модемом сервис CompuServe приобрёл популярность.

В конечном итоге CompuServe не выдержала конкуренции с America Online, поскольку её сервисы были текстовыми, а оплата - повременной. AOL же предоставляла доступ к графическим сервисам за фиксированную абонентскую плату.

DEC DECsystem-20

В 1977 году серию DECsystem-10 продолжила серия компьютеров DECsystem-20. Как уже было написано выше, эти компьютеры поставлялись с операционной системой TOPS-20 - наследнице системы TENEX Дэниэла Боброу. Одну из моделей линейного ряда этих компьютеров, DECSYSTEM-2020, можно увидеть на фотографиях в офисе Microsoft:

Тут можно увидеть внутренности этого компьютера:

XKL TOAD-1 и TOAD-2

В 1993 году фирмой XKL был выпущен компьютер TOAD-1, совместимый с компьютерами серий DECsystem-10 и DECsystem-20. Название системы является акронимом от Ten On A Desk, что можно перевести на русский язык как "настольная десятка". На фотографии ниже это синий ящик размерами со стол:

На фотографии справа от TOAD-1 можно увидеть компьютер TOAD-2 на подставке - это новая модель компьютера TOAD-1, реализованная в виде одной микросхемы. Насколько я понял, этот компьютер используется в качестве сетевого оборудования.

воскресенье, 13 декабря 2020 г.

Брайан Керниган. Время Unix. A History and a Memoir

Недавно в издательстве "Питер" вышел перевод книги "Время Unix" Брайана Кернигана, не нуждающегося в представлении. Керниган работал в исследовательских лабораториях Белла компании American Telephone & Telegraph - американского монополиста в области телефонной и телеграфной связи. При участии Брайана Кернигана было написано несколько книг, которые без преувеличения стали культовыми для программистов и поклонников операционной системы Unix.

Например, в моей домашней библиотеке есть такие книги, написанные специалистами Bell Labs, большинство из которых написано в соавторстве с Брайаном Керниганом:
Историю Unix в общих чертах и имена ключевых участников я знал и до этой книги. В основном мои знания были почерпнуты из книги "Unix: Программное окружение". Эту книгу я прочитал ещё в советском издании, взяв её в университетской библиотеке. Тот её перевод назывался "Unix: Универсальная среда программирования". В частности, я знал, что язык Си придумал Денис Ритчи, язык этот развивал идеи языка Би Кена Томпсона, а язык Би в свою очередь был основан на языке BCPL, автора которого я не знал. Кен Томпсон является автором операционной системы Unix. Автором идеи конвейеров был Дуг МакИлрой. Первая буква фамилии Брайана Кернигана фигурирует в названии языка AWK, наряду с Ахо и Вайнбергером.

Операционная система Unix была создана в качестве ответа на более раннюю и более сложную систему Multics, разработкой которой руководил Виктор Высоцкий. Система Multics разрабатывалась совместно в Bell Labs и General Electrics, писалась система на языке PL/1. AT & T решили выйти из проекта, т.к. разработка системы Multics затягивалась и перспективы её становились всё менее понятными.

Первые версии Unix были написаны на ассемблере для компьютера PDP-7 и использовались в Bell Labs для подготовки к печати патентных заявок. Под эти нужды руководство согласилось приобрести новый, более мощный компьютер PDP-11. Четвёртая редакция Unix была переписана для новых компьютеров уже на языке Си. Первой редакцией, вышедшей за пределы Bell Labs, стала шестая редакция. Официально AT & T не занималась разработкой программного обеспечения, поэтому исходные тексты передавались университетам за символическую плату, а индивидуальным покупателям - по договорной цене 20000 долларов.

В книге рассказано об истории возникновения многих известных инструментов: diff, grep, sed, awk, make, yacc, lex. Рассказано об одном из первых портирумых компиляторов Си - pcc, об инструменте проверки программ lint, о языках разметки roff, troff, nroff, eqn, pic, рассказано об истории появления в интерпретаторе shell условного оператора if, операторов цикла for и while, оператора выбора case.

Когда Unix приобрела популярность в университетах, недавние выпускники устраивались на работу и хотели продолжать пользоваться привычной системой. Так появился коммерческий спрос на Unix. После этого AT & T передала разработку Unix в отдельное подразделение и некоторое время в компании велась разработка сразу двух версий операционной системы. Одна из них разрабатывалась в Bell Labs и более известна как исследовательская Unix, вторая была коммерческой и разрабатывалась в специально созданном подразделении Unix System Laboratories. Последней редакцией исследовательской Unix стала 10.5, вышедшая в конце 80-х годов. После этого авторы Unix переключились на разработку новой операционной системы Plan 9, развивавшей идеи Unix.

Об этом не написано в книге, но мне кажется, что инициатива разработки Unix была перехвачена у их авторов задолго до коммерциализации Unix. Основные новации в Unix стали вноситься разработчиками из Калифорнийского Университета в Беркли, самым известным из которых был Билл Джой. В системе 3BSD появилась поддержка виртуальной памяти на компьютерах VAX. В 4.2BSD появилась поддержка сети TCP/IP, которую и сейчас часто называют сокетами BSD. Реализация сокетов BSD распространялась в исходных текстах отдельно от самой системы под названием Net/1, т.к. для использования всей операционной системы BSD по-прежнему требовалась лицензия от AT & T. Кейт Бостик организовал переписывание компонентов всей операционной системы, чтобы избежать необходимости приобретать лицензию у AT & T. Получившаяся система была выпущена под названием Net/2. Вильям Джолиц перенёс Net/2 на компьютеры с процессором Intel 386 и выпустил операционную систему 386BSD, внеся в неё ряд собственных доработок. На основе этой системы двумя независимыми группами была начата разработка систем NetBSD и FreeBSD. Последней системой, выпущенной в Беркли в 1994 году, стала 4.4BSD-Lite Release 2. От систем NetBSD и FreeBSD отделились проекты OpenBSD и DragonFly BSD соответственно.

воскресенье, 8 ноября 2020 г.

Питер Уоттс. Ложная слепота

Друг дал почитать пару книг Питера Уоттса. Первая называется "Ложная слепота", содержит одноимённый роман и два рассказа. Начну с романа.

Роман "Ложная слепота"

В этом романе перед читателем открывается мир, каким его предсказывает Рей Курцвейл. Мир, находящийся в районе сингулярности, в котором:
  • искусственный интеллект превзошёл интеллект самых интеллектуально одарённых представителей человечества,
  • медицина способна лечить психические заболевания и протезировать части мозга, в том числе увеличивая возможности человека при помощи кибернетических протезов,
  • автомобили управляются компьютерами,
  • существуют фабрикаторы, позволяющие изготовить любой предмет из материального «субстрата» в соответствии с описанием технологии его изготовления,
  • существуют космические корабли для межзвёздных путешествий на основе прямоточных двигателей Бассарда, использующих в качестве рабочего тела собираемое при полёте межзвёздное вещество,
  • существует симулятор реальности «небеса», позволяющий людям продолжить свою жизнь в полутелесной форме (тело находится в аппарате для симуляции, а разум оказывается в симулируемой реальности).
Наверное в дань моде автор добавил в свой роман вампиров, существование которых, однако, обосновано на твёрдой научной основе. Вампиры в этом романе — это вид человека разумного, который в ходе эволюции приспособился к питанию человеческой кровью, обладает способностью к замедлению метаболизма. Глазное дно вампиров выстлано тапетумом — отражающей сетью сосудов, которая увеличивает в несколько раз их зоркость при плохом освещении. Кроме того, глаза вампира содержат четыре вида светочувствительных колбочек. Дополнительные колбочки чувствительны к инфракрасному свету, что тоже увеличивает зоркость. Страх вампиров к крестам объясняется мутацией, случайно закрепившейся у вида в тот период, когда человечество ещё не начало преобразовывать материальную природу. Когда же люди стали массово изготавливать предметы, изобилующие прямыми углами, вампиры были вынуждены держаться в стороне от массовых скоплений людей и в конечном итоге вымерли из-за ограничения доступа к кормовой базе.

Главный герой родился с заболеванием мозга, а после операции по удалению одного из полушарий потерял способность к эмпатии. Необходимость понимать чувства людей, пользуясь только логическими построениями, делает из главного героя мастера, который умеет хорошо разбираться в чувствах людей, не испытвая их. Профессия главного героя называется «синтет» и заключается она в упрощённом толковании сложной информации, не подвластной для понимания даже самому главному герою, для других таких же обычных людей. Чем-то похожим занимаются публицисты, занимающиеся научным популяризаторством. Не будучи экспертами в освещаемой теме, они наводят мосты между узкими специалистами и широкой аудиторией. Только главному герою приходится толковать построения не высоколобых учёных, а научно-технические плоды искусственного интеллекта.

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

Продолжающиеся поиски приводят к обнаружению ещё одной аномалии: кратковременному всплеску излучения от невидимого массивного объекта в несколько масс Юпитера в нескольких астрономических единицах от Земли. К объекту отправляется несколько миссий. Первой отправляются автоматические аппараты, которые должны собрать предварительную информацию об объекте. Следом отправляется вторая волна — уже с людьми. Главный герой отправляется уже с третьей миссией, руководителем которой является вампир.

Должен признаться, книга читается тяжеловато. С одной стороны, некоторое количество прочитанной мной до этого научно-популярной литературы значительно облегчило понимание множества деталей, на которых автор останавливается лишь вскользь. «Слепой часовщик» Ричарда Докинза, «Сумма технологии» Станислава Лема, «Защита от тёмных искусств» Александра Панчина, «Может ли машина мыслить» Алана Тьюринга, «Общая и логическая теория автоматов» Джона фон Неймана, знакомство с концепцией сингулярности, знакомство с раличными концепциями космических кораблей для межзвёздных путешествий — именно эти книги и концепции дали мне твёрдую базу, благодаря которой мне не приходилось постоянно отвлекаться от книги для того, чтобы узнать подробности мимолётом упомянутых отсылок. Совсем малоизвестные рядовому читателю факты в достаточном для понимания объёме объяснены в примечаниях переводчика. Однако, оставался небольшой слой непонятных вещей, с которыми я не знаком и которые никак не объяснялись переводчиком.

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

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

И в то же время, превосходство в способности убивать и сопротивляться агрессии не обязательно приводит к агрессивности и стремлению убивать. Стремимся ли мы уничтожить всех тараканов? Нет, они нам безразличны до тех пор, пока держатся от нас подальше. Почему мы безразличны по отношению к ним? Потому что не считаем их опасными. При необходимости мы можем придавить тараканов каблуком, прихлопнуть тапком, вытравить при помощи ядов. Мы можем их уничтожить полностью на всей планете, если они будут угрожать нашему существованию, но не делаем этого, потому что не считаем, что выгода от уничтожения всех тараканов окупит потраченные на это усилия.

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

Когда экипаж космического корабля выходит на контакт с Роршахом, мне показалось, что сомнений в разумности инопланетян быть попросту не может. Разве могут неразумные создания разговаривать с людьми при помощи человеческой речи? Роршах человеческим языком предупредил людей о том, что не стоит к нему приближаться. Приближение к Роршаху является однозначным актом проявления агрессии.

Тем не менее, экипаж Тезея считает иначе. Для него важно, является ли Роршах автоматом инопланетян, действующим автономно и исполняющим волю хозяина, находящегося где-то в другом месте, или голосом Роршаха говорят сами инопланетяне лично. Если это автомат, значит нужно изучить его, чтобы найти хозяев. Лингвист продолжает общение с Роршахом и выясняет, что тот ведёт себя как "китайская комната".

Почему «китайскую комнату» нельзя считать разумной? Отличие довольно простое: реакция «китайской комнаты» на одно и то же воздействие должна повторяться, т.к. правила её функционирования не меняются в процессе общения. Подлинный разум же может менять реакцию на одни и те же воздействия, т.к. обладает способностью к самообучению: он обладает памятью и меняет собственную реакцию в зависимости от приобретённого опыта. В то же время «китайская комната» может обладать исключительной эффективностью, если необходимо иметь дело с чётко очерченным кругом задач. Более того, правила работы "китайской комнаты" могут быть зафиксированными результатами процесса обучения, произошедшего в прошлом. Например, современные нейросети после первоначального обучения, когда оказывается достигнут приемлемый уровень способности к решению типовых задач, как правило фиксируют, т.к. при дальнейшем обучении может наступить эффект перетренерованности, сопровождающийся снижением результативности. Система видела так много, что для любого усвоенного ей правила находятся исключения, которые не позволяют уверенно принимать верные решения и её эффективность снижается.

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

Ложная слепота - одно из нейрофизиологических расстройств, при котором сознание человека уверено в слепоте, хотя физиологически зрение исправно. Множество подобных расстройств описаны в книге "Защита от тёмных искусств" Александра Панчина. Человек может воспринимать части своего тела как чужие, может считать себя ходячим трупом, может чувствовать деперсонализацию - считать, что всё происходящее с ним, происходит с каким-то другим человеоком, за которым он наблюдает, может узнавать знакомых ему людей или обстановку, но считать их очень точными копиями, может не узнавать людей только по голосу или только по лицу и т.д.

При ложной слепоте человек считает себя слепым из-за сбоя в одном условном нейроне, который отвечает за понимание возможности видеть. Человек продолжает прекрасно видеть и реагировать на обстановку, но считает, что ничего не видит. Сознание в этом случае является скорее обузой, которая вносит неразбериху в работу организма. Без сознания организм функционировал бы как обычно, не осознавая факта, видит он сейчас или нет. Ему осознавания этого факта для успешного функционирования совершенно не нужно. Точно так же сознание приводит человека прямой дорогой ко множеству самых разных психических болезней, проистекающих из борьбы сознательного и бессознательного. Человек часто думает, что хочет чего-то одного, в то время как бессознательное стремится к совершенно другому. Человек сознательно приходит к тому, что желает сознательно, но не обретает удовлетворения, т.к. получает в итоге не то, что ему нужно на самом деле.

Люди, не располагающие к рефлексии, как правило оказываются в жизни более успешными. Так, обычный человек, заблудившийся в глухой тайге, скорее всего погибнет в ней из-за сомнений в возможности выбраться, даже найдя тропинку. Он будет сомневаться, что пошёл в верном направлении и переживать из-за того, что может не дойти из-за голода или холода. Душевнобольной же может без сомнений идти по тропинке много дней подряд, пока не выйдет к людям. Так из-за эффекта Даннинга-Крюгера невежественные люди обычно не сомневаются в своих способностях и без сомнений берутся за ту работу, к которой по-сути не имеют никаких способностей, но достигают успехов, освоив несколько самых простых навыков, применяя их без сомнений в их соответствии с ситуацией. Эксперты же часто сомневаются — на них давит груз их обширных знаний, они боятся ошибки и эти знания не дают принять решение, ведущее к успеху с наибольшей вероятностью. Сознание часто пытается рационализировать страхи и объяснить причину, почему то или иное начинание не увенчается успехом, чем ищет выходы.

Мы привыкли считать сознание обязательным атрибутом разума, однако в ходе экспериментов по электромагнитной стимуляции мозга было обнаружено, что сознание является лишь надстройкой, которая озвучивает процессы, происходящие в подсознании. В частности, сознание создаёт иллюзию свободы воли. В ходе одного из подобных экспериментов испытумемым предлагали сделать выбор одного из двух предложенных вариантов. Несмотря на то, что путём магнитной стимуляции мозга можно безусловно управлять выбором того или иного варианта, сознательно человек уверен в самостоятельности своего выбора и каждый раз готов объяснить причины своего выбора.

Галлюцинации и нейрофизиологические расстройства экипажа на Роршахе не оказывают влияния на бессознательные процессы: сердце продолжает биться, лёгкие - обогащать кровь кислородом и т.д. В то же время многие сознательные проявления нервной деятельности оказываются нарушенными. Сознание на Роршахе также является скорее обузой, а не помощником. Само наличие сознания даёт возможность инопланетянам захватить Тезей и вывести его из строя. Инопланетяне достигают этого, подселив в голову Банды Четырёх ещё одну личность.

Ещё в самом начале романа, когда стало понятно, что его мир находится в районе сингулярности, я заподозрил, что искусственный интеллект уже настолько превзошёл человеческий, что скорее управляет человечеством, чем служит ему. Когда же я узнал о профессии главного героя, то мои подозрения только укрепились. Если существует профессия толкователя плодов научно-технического прогресса, созданного искусственным интеллектом, это значит, что люди уже сами не понимают что происходит, а значит жизнь общества управляется и регулируется искусственным интеллектом. Главный герой на корабле наблюдал за происходящим с официальной целью докладывать о происходящем на Землю. На самом же деле его наблюдениями пользовался бортовой компьютера корабля, который отдавал свои распоряжения от лица руководителя миссии - вампира Сарасти. Проблема была в том, что главный герой, обладая сознанием, пытался интерпретировать свои догадки и постоянно приходил к ошибочным выводам. К концу романа станет понятным, что в противостоянии сошлись представители двух разумов, лишённых самосознания: инопланетного разума Роршаха и искусственного интеллекта «Тезея».

Вспоминается название известной книги Ричарда Брэнсона: «К чёрту всё! Берись и делай». Возможно, эффективнее оказывается действовать не прибегая к рефлексии и сознание - это лишь промежуточный этап эволюции разума.

Рассказ "Боги насекомых"

Этот рассказ был написан специально для русского издания романа и описанные в нём события происходят спустя 10 лет после отлёта "Тезея".

Человечество изобрело виртуальную реальность и нейроинтерфейсы. «Небеса» были первым применением новой технологии для удовлетворения прежних эгоистических потребностей отдельных индивидов и превой попыткой использовать часть «вычислительной мощности» мозга для внутренних нужд всей системы.

«Небеса» были уничтожены террористами, но технологии никуда не делись и со временем ушли «в народ». Несмотря на официально существующий во многих странах запрет на создание роевых структур, объединяющих сознания людей в единое целое, роевые структуры не только существуют, но и растут угрожающими темпами. Те же, кто пока не подсоединился к роевым структурам и пока не готов пожертвовать своим индивидуальным сознанием во имя коллективного, забавляются либо усилением собственного сознательного начала в процессе добровольного и сознательного удушения, либо объединением собственного сознания с сознаниями других биологических видов для расширения психологического опыта.

Те же немногие, кто пока не охвачен всеобщим помешательством, испытывают нарастающую необъяснимую тревогу. Человечество уже встало на путь трансформации, научившись заменять части своих тел кибернетическими протезами и усилителями, корректировать психологические особенности на твёрдой научной и технологической основе. Лишь немногие остались обычными «исходниками». Что же будет дальше?

Предчувствовали ли эти тенденции инопланетяне, отправив свои космические аппараты сделать предсмертный снимок цивилизации индивидуальных сознаний на пороге их растворения в коллективном бессознательном, или сами повлияли на сознания миллиардов людей, облучив их электромагнитным излучением, имеющим силу ментального вируса? Ответов на эти вопросы пока нет ни у кого. Есть лишь одна надежда — на улетевший в дальний космос на встречу с инопланетянами «Тезей». Какие ответы он принесёт, когда мы получим эти ответы и получим ли их вообще?

Рассказ "Полковник"

В теории эволюции существуют так называемые «ловушки локальных максимумов». Суть в том, что природа не строит планов, она лишь сеет зерно случайности, а потом отбирает пригодные решения. И так много раз. В результате, например, глаз человека оказывается вывернут светочувствительной поверхностью наружу, а нерву, для того чтобы выбраться из внутренней поверхности глаза на внешнюю, приходится проделать в этой поверхности дыру — слепое пятно. Глаз осьминога лишён таких недостатков. Разница лишь в начальной точке эволюции. Светочувствительные клетки образовались и у предков человека и у предков осьминога, потом их стало много и они выстлали собой небольшую поверхность. Потом эта поверхность стала смыкаться, образуя камеру-обскура. Но поверхность эта у одних смыкалась светочувствительными клетками внутрь, а у других — наружу. На начальных этапах эволюции положительный эффект от образования камеры-обскура был значительно выше недостатков от неправильной ориентации клеток, поэтому эволюция продолжалась. Но в итоге глаз человека никогда не сравняется по чёткости восприятия с глазом осьминога и никогда не избавится от слепого пятна. Эволюция глаза человека попала в ловушку локального максимума. Подобным же образом возвратный гортанный нерв жирафов образует длинную петлю, растянувшуюся на всю шею жирафа.

Человеческий научно-технический прогресс тоже развивался эволюционно. Люди пробовали разные инструменты познания природы, выбирали из опробованных те, которые лучше всего работают и в итоге остановились на научной методологии и использовании разного рода приборов для усиления своих когнитивных способностей. Но откуда известно, что это единственный и наиболее эффективный метод познания? Может быть когнитивные способности человечества взобрались на вершину локального максимума, но существуют более эффективные методы познания, которые либо не были опробованы, либо показали свою низкую эффективность на начальном этапе?

Лиана Латтеродт является своего-рода пресс-секретарём ордена двухпалатников, исповедующих именно такую точку зрения. Название «двухпалатники» прилипло к ним после забытого эксперимента по слиянию двух полушарий мозга в единое целое. Судя по количеству технических патентов, которым обладают двухпалатники, они действительно открыли какой-то секрет. Удивительно то, что таких результатов они достигли без постановки экспериментов и использования сложного оборудования. Но по их уверениям — это лишь побочные плоды их настоящей деятельности.

Для полковника Джима Мура двухпалатники представляют собой ещё одного спящего великана. Пока они никому не причинили вреда, но их сила растёт день ото дня. Остаётся только догадываться о том, что может произойти, когда великан решит проснуться. Лиана Латтеродт передаёт Джиму Муру информацию, после получения которой полковник решает полностью отказаться от привычного образа жизни и уйти в добровольное одиночество в пустыню.

Рассказ является своего рода мостиком, соединяющим романы «Ложная слепота» и «Эхопраксия».

воскресенье, 5 апреля 2020 г.

Сергей Тарасов. СУБД для программиста. Базы данных изнутри


После книги прочтения книги Дефрагментация мозга. Софтостроение изнутри этого же автора решил ознакомиться с этой книгой, которая логически продолжает прошлую. И если в прошлой автор писал о проблемах отрасли разработки программного обеспечения, то в этой книге автор даёт обзорные сведения по теории баз данных, приводит типовые решения по проектированию структуры баз данных, делится опытом эксплуатации СУБД Firebird и Microsoft SQL Server.

Автор использует СУБД Firebird для небольших проектов, где требуется локальная база данных, работающая непосредственно на том же компьютере, где работает приложение. Перимущество этой СУБД в том, что при необходимости перехода от локальной базы данных к сетевой, используемой с нескольких компьютеров по сети, можно использовать вариант соответствующей Firebrid, который по большинству функций совместим с локальной версий Firebird. Если же с самого начала предполагается, что к базе данных будут обращаться множество сетевых клиентов, то в таких случаях автор сразу использует Microsoft SQL Server. В конце книги автор приводит сравнение NoSQL СУБД MongoDB с Microsoft SQL Server как по производительности, так и по наглядности запросов. По обеим сравниваемым параметрам результаты оказываются не в пользу MongoDB.

Если у кого-то имеются старые программы, написанные на платформе Clipper, то можно воспользоваться современным вариантом этой платформы. Платформа Harbour полностью совместима с Clipper, её исходные тексты открыты (выпускаются под собственной лицензией), работает на большом количестве различных операционных систем, как настольных, так и мобильных. Неплохой вариант для того, чтобы перенести старые программы для MS-DOS на более современные операционные системы, избавившись от необходимости использовать эмуляторы.

Особенно интересными мне показались сведения о сетевой модели данных, которая нашла практическое воплощение в виде американской СУБД Raima (бывшее название - dbVista) и в виде отечественной СУБД КроносПро.

Очень порадовала глава про относительность понятия высокой нагрузки. В интернете все носятся с высоконагруженными системам, зачастую не понимая, что высокая нагрузка на аппаратное обеспечение - это не всегда признак высоконагруженной системы. Нагрузить аппаратное обеспечение - не проблема, особенно если подключить к делу нерадивых программистов, использующих новомодные фреймворки, ORM, модные СУБД NoSQL, которые не вникают в то, что происходит под капотам, и не умеют сравнивать реальную производительность различных подходов к решению задачи. Проблема - создать такую систему, которая будет справляться с той же поступающей извне нагрузкой, используя минимум аппаратных ресурсов. Даже микроконтроллер может быть высоконагруженным, поэтому использование nginx, каких-то фреймворков, ORM, NoSQL или других модных слов не является признаком наличия высокой нагрузки.

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

По поводу разработки через тестирование автор приводит эмпирические наблюдения: на одну строку тестируемого кода приходится 1-2 строки тестирующего кода, из-за чего длительность разработки по этой методике может увеличиваться в 2-3 раза. В книге автор делится своими наработками по модульному тестированию SQL-запросов. Хотя об этом не часто можно прочитать на просторах интернета, но оказывается, SQL-запросы тоже можно тестировать.

воскресенье, 12 января 2020 г.

Кевин Митник. Искусство быть невидимым. Как сохранить приватность в эпоху Big Data


Заметил в книжном магазине новую книгу Кевина Митника - широко известного телефонного хакера или, если говорить точнее, фрикера. Решил приобрести и ознакомиться.

В этой книге вперемежку изложены вопросы защиты информации от посторонних, которых можно условно поделить на три уровня компетентности:
  1. Защита личных данных от неквалифицированных взломщиков (родственников, друзей, соседей, коллег).
  2. Защита от слежки и перехвата данных интернет-сервисами.
  3. Защита от слежки со стороны спецслужб.
Для защиты информации от посторонних, обладающих более высоким уровнем квалификации, требуется использовать более технически сложные средства, а риск утечки информации с каждым уровнем возрастает в геометрической прогрессии.

Большинству людей для того, чтобы защитить свою личную жизнь от любопытных глаз, достаточно простейших мер защиты первого уровня. Условно можно считать, что второй уровень защиты стоит соблюдать бизнесменам, чей бизнес может стать объектом промышленного шпионажа. Крупным государственным деятелям, которые должны обеспечивать секретность информации государственного значения, и преступникам, которые вынуждены скрываться от спецслужб, не обойтись без средств третьего уровня защиты.

1. Защита от неквалифицированных взломщиков

Тут можно обозначить несколько аспектов, на которых стоит обратить внимание.

1.1. Пароль

Автор рекомендует использовать пароли длиной 20-25 символов, разные для разных сайтов и использовать для их хранения менеджер паролей, такой как Password Safe или KeePass. Следует отдавать предпочтение программам с открытым исходным кодом, т.к. в них труднее скрыть троянские функции, ошибки проектирования и слабые криптографические алгоритмы.

1.2. Восстановление забытого пароля

Устанавливая секретные вопросы для восстановления забытого пароля, следует избегать наиболее очевидных вариантов из раскрывающегося списка. Так же не стоит отвечать на секретные вопросы честно, т.к. в таком случае злоумышленнику вместо знания пароля будет достаточно разузнать несколько различных фактов о вас. Например, для ответа на вопрос о любимом блюде злоумышленник может заглянуть в ваш профиль в соцсети или ненавязчиво задать нужный вопрос во время дружеской беседы, интервью и т.п. Кроме того интернет-сервисы используют эти вопросы для сбора информации о владельце учётной записи. Стоит выбирать неочевидные варианты ответов и где-нибудь записывать не сами ответы, а подсказки, которые помогут вспомнить эти ответы.

Также, если сервис позволяет привязать учётную запись к номеру телефона, автор рекомендует это сделать. Злоумышленник, который сможет подобрать или украсть пароль, не сможет поменять пароль, т.к. при попытке поменять пароль сервис отправит на телефон SMS-сообщение с кодом подтверждения операции. Не стоит, однако, забывать, что номер телефона - это тоже личная информация, которая станет известна интернет-сервису. Вдвойне хуже то, что номер телефона позволяет достоверно идентифицировать личность владельца этой учётной записи.

1.3. Блокировка устройства

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

Заблокировать доступ к мобильному устройству можно при помощи различных средств: PIN-кода, рисунка по 9 точкам, распознавания лица владельца или распознавания отпечатка пальца. У всех этих средств есть слабые стороны.

В Android Block Patterns используется блокировка рисунком по 9 точкам. Всего существует 140704 варианта рисунков, но люди чаще всего используют рисунок, напоминающий первую букву их имени и редко используют угловые точки. Стоит учитывать это при выборе рисунка для блокировки устройства. Кроме того, существуют приложения, которые позволяют увеличить количество точек, используемых для блокировки.

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

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

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

1.4. Изоляция устройств друг от друга

Автор рекомендует обзавестись отдельным устройство для банковских операций и решения медицинских вопросов, учётные записи на котором стоит привязать к номеру телефона, не использовать больше ни для каких иных целей. Таким образом можно обезопасить информацию на этом устройстве от сторонних приложений, которые могут иметь встроенные закладки и от вирусов.

1.5. Использование чужих устройств

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

Если вы всё-же решили воспользоваться чужим устройством для доступа к своей учётной записи, стоит проявить максимальную осторожность. Во-первых, стоит воспользоваться режимом инкогнито в браузере, чтобы браузер не сохранял историю посещённых страниц. Во-вторых, после работы с учётной записью следует выйти из сервиса. В-третьих, не стоит разрешать программе сохранить пароль или отмечать галочку "запомнить меня". Наконец, после использования чужого устройства, когда вы доберётесь до своего устройства, следует поменять пароли на всех сервисах, которыми вы пользовались с чужого устройства.

Не стоит забывать, что использованный вами сервис может использоваться в качестве средства восстановления доступа к другим учётным записям. Например, если вы решили проверить почту на чужом устройстве, то следует поменять пароль не только от почтового ящика, но и от всех сайтов, на которых этот почтовый ящик указан в качестве средства восстановления доступа.

1.6. Использование публичных сетей доступа

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

Чтобы немного снизить риск, стоит установить HTTPS Everywhere - плагин для браузера, который позволяет использовать HTTPS с наилучшими доступными настройками приватности, даже если браузер согласовал бы с сайтом менее безопасный режим.

Стоит однако помнить, что одной лишь установки плагина HTTPS Everywhere недостаточно для полной защиты. Адекватную защиту при использовании публичных сетей доступа может дать использование доверенного (предоставленного работодателем или своего собственного) VPN-сервера. Во всех остальных случаях после использования публичной сети доступа стоит сменить пароли всех учётных записей, которыми вы пользовались и проверить устройство антивирусом.

2. Защита от слежки со стороны интернет-сервисов

2.1. Выход из сервисов

Интернет-сервисы вроде Google кроме почты предоставляют сторонним сайтам разнообразные виджеты вроде кнопок +1 или виджетов для отслеживания статистики посещаемости сайта. Эти виджеты собирают информацию не только о сайтах, на которых они помещены, но и о пользователях интернет-сервисов. Например, если вы используете почту Google, а затем заходите на какой-то другой сайт, где используется виджет Google, то Google узнает не только о том, что вы заходили на этот сайт, но и какие страницы этого сайта вы посещали.

Поэтому следует всегда выходить из учётных записей интернет-сервисов и сайтов после их использования.

2.2. Средства блокировки "жучков"

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

Чтобы заблокировать известные "жучки", отслеживающие активность, существует специальное дополнение для браузера, которое называется Ghostery.

Однако, разработчики дополнения Ghostery не могут знать обо всех существующих "жучках", используемых всеми сайтами в интернете. Для слежки могут использоваться JavaScript'ы, объекты Flash, скрытые картинки и даже Canvas - средство рисования в HTML5.

Дополнения NoScript и ScriptBlcok позволяют заблокировать JavaScript и Flash с возможностью выборочного разблокирования.

Canvas Blocker - расширение для Firefox, позволяющее заблокировать отслеживание активности при помощи Canvas. Аналогичное расширение для Chrome называется Canvas FingerprintBlock.

Второе место после "жучков" в качестве средства отслеживания активности занимает реклама. При размещении рекламы в Google Ads или Яндекс.Директ, заказчик рекламы получает возможность разместить свою рекламу в результатах поиска. Но кроме таких рекламных интернет-сервисов существуют интернет-сервисы, занимающиеся распространением рекламы на сторонних сайтах. Заказчики оплачивают размещение рекламы в этой сети, а различные сайты устанавливают себе рекламные виджеты, которые показывают рекламу. Часть денег, оплаченных заказчиком рекламы, идёт сервису-организатору распространения рекламы, а часть денег идёт сайтам, на которых реклама была показана. Для того, чтобы справедливо распределять деньги рекламодателя, рекламные виджеты должны вести учёт статистики - на каком сайте (и на какой странице сайта) какой рекламный блок был показан и сколько раз. Поскольку рекламные виджеты могут устанавливать самые разные сайты, у организатора распространения рекламы появляется прекрасная возможность следить за посетителями всех этих сайтов при помощи рекламных виджетов. Рекламный виджет может устанавливать в браузере Cookie, и опознавать одного и того же посетителя.

Таким образом дополнения для браузеров, позволяющие блокировать рекламу, кроме своей основной функции - блокировка показа рекламы, позволяют также предотвратить слежку за пользователем. Среди подобных дополнений можно назвать, например, AdBlock Plus или uBlock Origin.

Даже если в браузере отключено сохранение Cookie, отключены JavaScript, Flash и Canvas, для отслеживания активности пользователя всё ещё можно использовать информацию о характерных свойствах браузера. Браузеры могут сообщать сайтам и виджетам информацию о своём названии и версии, о поддерживаемых им языках, часовом поясе, форматах сжатия страниц, установленных дополнениях и т.п. Если ваш браузер обладает редким сочетанием свойств, то вашу активность в интернете по-прежнему можно идентифицировать с достаточно высокой степенью достоверности.

Проверить типичность/уникальность своего браузера можно на сайте panopticlick.com. Снизить вероятность отслеживания вашей активности по уникальной информации о браузере можно воспользовавшись самой популярной платформой и браузером. Например, это могут быть Windows 7 или Windows 10 и браузер Chrome. Стоит установить дополнения для блокировки рекламных жучков, JavaScript, Flash, Canvas, но не устанавливать больше никаких других дополнений. Каждое последующее установленное дополнение, особенно редкое, увеличивает уникальность вашего браузера и увеличивает вероятность вашей идентификации.

2.3. Приватные поисковые системы

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

DuckDuckGo - поисковая система без учётных записей, не отслеживает запросы пользователей, не сохраняет историю поиска. Для поиска использует несколько других поисковых систем, отдаёт предпочтение тем результатам, которые были возвращены большим количеством поисковых систем.

startpage.com - поисковая система фирмы ixquick, выполняющая анонимный поиск в Google. В Google передаётся обезличенный поисковый запрос, так что Google не имеет возможности отслеживать историю поисковых запросов конкретных пользователей и не может подстраивать результаты поиска индивидуально под каждого пользователя.

2.4. Использование множества учётных записей

Если вам часто приходится пользоваться учётными записями популярных интернет-сервисов, можно завести раздельные учётные записи для разных целей. Например, один почтовый ящик можно использовать только для социальных сетей, другой - только для совершения онлайн-покупок, третий - для банковских операций или пользования госуслугами, четвёртый - для переписки и т.д. Чем больше почтовых ящиков и связанных с ними учётных записей вы используете, тем менее полной становится информация о вас. Информация о вас как бы размывается, размазывается по разным учётным записям, не связанным между собой явным образом.

2.5. Сквозное шифрование PGP и OTR

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

Трафик между пользователем и сервисом обычно шифруется, но доступ к содержимому переписки имеют владельцы сервисов обоих абонентов. Если трафик между сервисами не шифруется, то доступ к содержимому трафика имеют владельцы всех транзитных маршрутизаторов. Чтобы скрыть содержимое переписки от владельцев сервисов и транзитных маршрутизаторов, лучше всего использовать так называемое сквозное шифрование, когда абоненты обмениваются через интернет уже зашифрованными сообщениями.

Для сквозного шифрования писем можно воспользоваться одной из программ шифрования:
  1. PGP (Pretty Good Privacy) - платная программа, которая продаётся компанией Symantec Corporation.
  2. OpenPGP - бесплатная версия PGP, которую разработал Фил Циммерман - автор первых версий PGP.
  3. GnuPG (GNU Privacy Guard) - бесплатная программа, разработанная Вернером Кохом.
Все три программы взаимозаменяемы и обладают одинаковыми основными функциям. Программа генерирует пару связанных друг с другом ключей - открытый и закрытый, которые используются алгоритмом асимметричного шифрования. Открытый ключ можно выложить в открытый доступ. Если кто-то захочет написать владельцу этого открытого ключа приватное сообщение, он шифрует своё письмо при помощи открытого ключа и при необходимости подписывает своё письмо при помощи своего приватного ключа. Адресат может прочитать зашифрованное письмо, расшифровав его при помощи своего закрытого ключа, а подпись проверить при помощи открытого ключа отправителя.

Открытый ключ, взятый из публичного источника, может оказаться подменённым. Если вы не доверяете источнику, из которого взяли открытый ключ, то можно попросить владельца выслать открытый ключ по доверенному каналу. Например, если вы точно знаете номер телефона интересующего вас собеседника или его учётную запись в Twitter, то могли бы попросить выслать открытый ключ в SMS или опубликовать его в Twitter'е. Однако открытый ключ слишком большой, чтобы он уместился в одном SMS-сообщений или в одной записи на Twitter. Для выхода из этой ситуации предусмотрен отпечаток открытого ключа, состоящий всего из 40 символов. Получив отпечаток открытого ключа, можно убедиться в достоверности самого открытого ключа, который был взят из неподтверждённого источника.

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

Для ведения переписки, защищённой при помощи PGP, с использованием почтовых сервисов прямо из браузера, существует плагин Mailvelope для Chrome и Firefox. Плагин позволяет шифровать сообщения прямо в браузере, отправляя через почтовый веб-сервис уже зашифрованное сообщение.

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

Существует несколько сервисов обмена мгновенными сообщениями, которые позиционируют себя как безопасные. Специалисты по безопасности считают, что наиболее защищённым сервисом является мессенджер Signal, также сочетающий в себе функции голосовой связи. За ним по степени безопасности следуют CryptoCat, у которого, к сожалению, нет приложений для Android, и ChatSecure. Приложение ChatSecure при первом запуске генерирует сертификат, который сохраняется на устройстве локально и в дальнейшем используется для аутентификации на сервере. Также ChatSecure осуществляет шифрование журналов и неактивных данных на устройстве.

В общем случае при выборе мессенджера следует обращать внимание на поддержку технологий OTR и PFS, и на то, какая информация хранится на устройстве и на серверах и в каком виде. Предпочтение следует отдавать тем мессенджерам, которые либо не хранят критически важной информации на устройствах или на серверах, либо хотя бы осуществляют их шифрование.

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

3. Защита информации от спецслужб

3.1. Сокрытие своего местоположения

При всех достоинствах PGP, у него имеется один недостаток: с его помощью можно зашифровать лишь тело письма, но не конверт. В конверте остаётся незашифрованной информация об отправителе и получателе, тема письма, времени отправки и маршруте письма. Этой информации тоже может оказаться достаточно для того, чтобы злоумышленники могли воспользоваться ей в корыстных целях. Из маршрута письма можно узнать IP-адреса всех компьютеров, через которые прошло письмо, включая IP-адрес компьютера отправителя. Блоки IP-адресов поделены между регионами, а внутри регионов распределяются между интернет-провайдерами разных стран. Без особых проблем возможно установить страну и провайдера, которым принадлежит IP-адрес отправителя. Сам провайдер по запросу спецслужб может выдать паспортные данные клиента, т.к. каждый клиент заключает с ним договор на предоставление услуг, и адрес предоставления услуги, если услуга предоставляется по проводу.

Что касается мобильной связи, то тут вариантов слежки даже больше. На SIM-карте имеется идентификационный номер IMSI, который состоит из двух частей: идентификатора мобильного оператора и идентификатора абонента. Мобильный телефон постоянно посылает маячковый сигнал, содержащий IMSI, чтобы определить ближайшую станцию сотовой связи и иметь возможность принять входящий звонок. У спецслужб имеются поддельные станции сотовой связи, которые умеют определять все IMSI, находящиеся поблизости, а также перехватывать разговоры. Список IMSI помогает, например, определить всех присутствующих на митинге, а скорость перемещения IMSI от одной базовой станции к другой позволяет определить интенсивность дорожного движения. Чтобы иметь возможность в любой момент переключиться с одной станции сотовой связи на другую, телефон постоянно поддерживает связь с несколькими станциями, что позволяет оператору сотовой связи измерить интенсивность сигнала на каждой из базовых станций и методом триангуляции установить точное местоположение абонента.

Итак, для сокрытия адреса отправителя письма, зашифрованного средствами PGP, можно воспользоваться сервисами-ремейлерами, которые меняют адрес отправителя перед отправкой письма. Чтобы скрыть IP-адрес, отправитель может воспользоваться "луковичной маршрутизацией".

Одной из практических реализаций луковичной маршрутизации является сеть Tor. Tor пересылает трафик к адресату через цепочку анонимных посредников, которая меняется каждые 30 секунд. Для использования Tor нужно установить специально доработанный браузер Firefox, скачав его с сайта Tor - torproject.org. Для Android в Google Play доступно приложение Orbot. Для iOS в iTunes App Stoer есть приложение Onion Browser. Домены, оканчивающиеся .onion, существуют только в сети Tor.

Недостаток Tor заключается в том, что выходной узел может принадлежать злоумышленнику или спецслужбам, которые могут перехватывать трафик, следить за вами или даже установить вашу личность. (Стоит также учитывать, что протокол HTTPS скрывает лишь содержимое запросов, но не скрывает адрес сайта с которым устанавливается связь.) Поэтому для использования Tor тоже лучше завести отдельное устройство. Перед каждым использованием устройства лучше сменить MAC-адрес. Если нужно скрываться от спец-служб, это устройство должно быть куплено не по вашей платёжной карте, ваше лицо не должно попасть на камеры видеонаблюдения магазина, где устройство было куплено, а номер автомобиля не должен быть зафиксирован на стоянке возле магазина. Лучше чтобы устройство было куплено человеком, не знакомым с вами. Момент передачи устройства не должен быть зафиксирован камерами видеонаблюдения. Лучше, если место передачи устройства будет находиться на значительном расстоянии от места покупки.

В Интернет с такого устройства стоит выходить либо через публичные WiFi-сети (которые в России запрещены), либо через анонимную SIM-карту (которые в России запрещены). Пользуясь публичными WiFi-сетями, лучше выбирать место, не попадающее под обзор камеры. Можно пользоваться WiFi-сетью из соседнего заведения. Лучше всего пользоваться каждый раз разными публичными WiFi-сетями. Перед использованием анонимной SIM-карты нужно заблаговременно и на достаточно большом расстоянии отключить все другие сотовые устройства, чтобы затруднить спецслужбам установить связь между двумя SIM-картами по признаку их одновременной регистрации на близких базовых станциях.

Для сохранения полной анонимности на этом устройстве нельзя использовать ни свои почтовые ящики, ни учётные записи Google или других сайтов. Не стоит даже заходить на сайты с прогнозами погоды: скорее всего вас будет интересовать погода в том городе, где вы находитесь, что даст спецслужбам информацию о вашем примерном местонахождении. Сайт о погоде, как правило, будет пытаться определить ваше местоположение, чтобы показать прогноз погоды того города, где вы находитесь. Подобным же образом ваше местонахождение могут пытаться определить и другие сайты. Для сокрытия реального местоположения можно установить дополнение для браузера Change Geolocation, которое позволяет указать произвольные координаты GPS. На стр. 133 даются рекомендации по отключению геолокации в браузере.

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

Для сбора метаданных из документов можно воспользоваться программой для Linux Metagoofil, которая позволяет извлекать информацию не только из EXIF-тегов фотографий, но и из PDF-файлов, doc-файлов, в том числе имена пользователей, имена компьютеров, имена файлов и каталогов на компьютерах, где эти документы были изготовлены и прочую информацию.

3.2. Использование децентрализованных сервисов

Большинство защищённых мессенджеров, о которых шла речь, обычно привязывают учётную запись к номеру телефона или требуют указать номер телефона при регистрации. Многие из них привязываются к телефону настолько, что для использования онлайн-клиента или клиента для настольной операционной системы требуют постоянно держать запущенным приложение на телефоне. Лично я с подозрением отношусь ко всем подобным сервисам, потому что такой сводит на нет все преимущества анонимности. Если информацию удастся расшифровать, то авторство можно считать уже доказанным. При соблюдении анонимности одной расшифрованной информации может быть уже не достаточно для того, чтобы воспользоваться ею. Нужно ещё установить её авторов и доказать, что эта информация принадлежит именно им.

Так же не стоит полагаться на закрытые коммерческие сервисы, у которых есть какой-то определённый владелец. Спецслужбы или представители власти могут на законных основаниях потребовать с владельца сервиса предоставить любую информацию о пользователях сервиса или содержимом переписки.

Лучше, если необходимый сервис можно настроить самостоятельно на анонимно арендованном виртуальном сервере. Ещё лучше, если доступны исходные тексты всех программ, составляющих сервис. Наконец, при использовании такого сервиса нужно использовать сквозное шифрование, так чтобы владельцы виртуального сервера не смогли получить доступ к содержимому переписки.

Например, хорошей альтернативой популярным защищённым мессенджерам может быть приложение Tor Messenger, развиваемое в рамках проекта Tor. Также неплохой альтернативой может быть Jabber-сервер и Jabber-клиенты со встроенной поддержкой сквозного шифрования. Например, кроме уже озвученного OTR, стандартизованного в рамках расширения XEP-0364 протокола XMPP, можно обратить внимание на более современный OMEMO, разработанный на основе алгоритмов из мессенджера Signal. OMEMO тоже уже стандартизован в рамках расширения протокола XMPP - XEP-0384 и поддерживается мобильным Jabber-клиентом Conversations и сервером ejabberd.

3.3. Шифрование данных на устройстве

Промышленные шпионы, иностранные шпионы, спецслужбы или госорганы могут получить доступ к вашему устройству. По мнению Кевина Митника, стоит шифровать данные даже в том случае, если вы полагаете, что вам нечего скрывать. В различных штатах США имеется очень изощрённое законодательство, разнящееся от штата к штату. То, что в одном штате может быть законным, в другом штате может оказаться незаконным. Заранее бывает трудно определить, какая именно информация на ваших устройства может оказать вам медвежью услугу. Кроме того, даже если сама по себе эта информация вполне законна, она может послужить веским доводом в решении спорных вопросов. Поэтому стоит шифровать всю информацию.

3.4. Выключение устройства

Пока устройство остаётся включенным, в его оперативной памяти хранятся ключи, используемые для шифрования и расшифровки информации. Спецслужбы могут воспользоваться уязвимостями в реализации различных аппаратных протоколов для того, чтобы считать содержимое памяти и найти там ключи. Например, это может быть уязвимость в подсистеме USB, благодаря которой можно скопировать содержимое оперативной памяти устройства, просто вставив в него специально разработанное USB-устройство. Чтобы избежать этой опасности, лучше выключать устройство, если вы не собираетесь в ближайшее время пользоваться им.

3.5. Держите устройство при себе

Даже выключенное устройство может представлять опасность. Например, спецслужбы могут изменить загрузчик операционной системы так, что при включении он, например, начнёт записывать нажатия клавиш. Можно снять копию жёстких дисков в надежде, что она окажется не зашифрованной, или с расчётом в дальнейшем расшифровать её. Не стоит доверять устройству, которое побывало в чужих руках. Стоит носить устройство с собой. Если вам всё-же придётся на некоторое время расстаться с устройством, например, в аэропорту, лучше заранее скопировать всю важную информацию в зашифрованном виде на удалённый сервис и очистить устройство от неё.

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

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

Также уделяется внимание и вопросам социальной инженерии. Часто для подрыва безопасности сложной системы бывает достаточно убедить человека в чём-то. Не стоит, однако, недооценивать методы социальной инженерии, думая что вы на это точно не попадётесь. Иногда это бывают довольно сложные цепочки манипуляции, в которых объектами атаки могут оказаться сразу несколько людей, доверяющих друг другу. Каждый объект манипуляции может вести себя достаточно осторожно и разумно, но в итоге манипулятор может добиться своей цели так, что все объекты манипуляции об этом даже не догадаются.

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