city_rat: (Default)
(предыдущая глава).

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

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

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

1. Высокая стоимость таких систем. Тут уже против нас начинает работать другое соотношение: "стоимость средств защиты/стоимость защищаемого объекта". Стремление сделать систему приемлемой по стоимости приводит к следующим уязвимостям:
1.1. Сознательное занижение уровня защиты.
1.2. Проектные ошибки, ведущие к снижению уровня защиты. Источник оных - применение "хаотических" методов разработки, использование менее квалифицированных проектантов, меньшего - все, что позволяет экономить.
1.3. Ошибки стадии реализации - безошибочное программирование требует бесконечного тестирования.

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

Отдельно здесь стоит упомянуть сознательное занижение уровня защиты со злым умыслом - проделывание разработчиками системы разных лючков, потайных ходов и т.п. На этом я особо задерживаться не буду - ситуация тривиальна и понятна, к тому же использование таких лючков вообще нельзя считать взломом: ведь соответствующая возможность в системе заранее предусмотрена. Лечится теми же методами, что и ошибки 1.2 и 1.3. (если, конечно, это не замысел самого владельца процесса разработки).

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

Есть и еще один забавный эффект на стыке человека и машины: повышение уровня защищенности сверх разумно-удобного или хотя бы просто возможного для человека часто приводит к проковыриванию дыр самими пользователями. Ежедневно меняющиеся пароли вида p234@2Iv8*oiRmn со 100% гарантией будут записываться на бумажке и приклеиваться к монитору. Тут мы плавно переходим к п. 3 - видимо, самому главному.

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

Как видите, все вышеперечисленные проблемы у нас исключительно от человеков.
Итого. Близкая к идеальной невзламываемая система выглядит у нас так:

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

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

Ровно такая система блестяще использована в качестве фант-образующей у Шумила в рассказе "Мастер-ломастер". Идеальный баланс осмысленности, эффектности, понятности и достоверности (литературные достоинства, естественно, не обсуждаем).

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

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

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

ВАЖНО! Все вышесказанное (и все, что я буду писать по теме далее) отражает не просто ситуацию "здесь и сейчас", т.е. работает отнюдь не только в фантастике ближнего прицела. Это некие объективные законы и правила, которые будут работать во всех компьютерных системах, построенных в рамках известных нам физических и математических принципов, причем открытие новых принципов старых отнюдь не отменяет. Аналогично - никакая химическая ракета не может нарушить некие базовые законы реактивного движения, даже если изобрести суперпупертопливо, нанонасосы для него и сталинит-аквалитовый сплав для сопел.

Естественно, у фантаста всегда остается возможность "перпендикулярного" решения задачи, выхода за плоскость допустимых решений. Например, придумать джамп-двигатель. Для нашей темы мне приходят в голову два варианта такого развития:

- Переход на принципиально не-неймановские компьютерные системы. Не просто "систем с элементами fuzzy-logic", а принципиально основанных на недетерминированных процессах - т.е. систем, близких по поведению к человеческому. Однако для этого необходима некая внешняя причина, т.к. иначе совершенно непонятно, зачем надежную систему заменять на ненадежную. Такой причиной, например, может быть неработоспособность обычных систем в подпространстве. Мне, правда, кажется это ооочень большой натяжкой, да и вообще довольно бессмысленным ходом. Ну, получим мы еще один сериал "Я, Робот" с железными дровосеками человеками - и что? Ради решения каких литературных задач?

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

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

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

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

1. Высокая стоимость таких систем. Тут уже против нас начинает работать другое соотношение: "стоимость средств защиты/стоимость защищаемого объекта". Стремление сделать систему приемлемой по стоимости приводит к следующим уязвимостям:
1.1. Сознательное занижение уровня защиты.
1.2. Проектные ошибки, ведущие к снижению уровня защиты. Источник оных - применение "хаотических" методов разработки, использование менее квалифицированных проектантов, меньшего - все, что позволяет экономить.
1.3. Ошибки стадии реализации - безошибочное программирование требует бесконечного тестирования.

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

Отдельно здесь стоит упомянуть сознательное занижение уровня защиты со злым умыслом - проделывание разработчиками системы разных лючков, потайных ходов и т.п. На этом я особо задерживаться не буду - ситуация тривиальна и понятна, к тому же использование таких лючков вообще нельзя считать взломом: ведь соответствующая возможность в системе заранее предусмотрена. Лечится теми же методами, что и ошибки 1.2 и 1.3. (если, конечно, это не замысел самого владельца процесса разработки).

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

Есть и еще один забавный эффект на стыке человека и машины: повышение уровня защищенности сверх разумно-удобного или хотя бы просто возможного для человека часто приводит к проковыриванию дыр самими пользователями. Ежедневно меняющиеся пароли вида p234@2Iv8*oiRmn со 100% гарантией будут записываться на бумажке и приклеиваться к монитору. Тут мы плавно переходим к п. 3 - видимо, самому главному.

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

Как видите, все вышеперечисленные проблемы у нас исключительно от человеков.
Итого. Близкая к идеальной невзламываемая система выглядит у нас так:

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

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

Ровно такая система блестяще использована в качестве фант-образующей у Шумила в рассказе "Мастер-ломастер". Идеальный баланс осмысленности, эффектности, понятности и достоверности (литературные достоинства, естественно, не обсуждаем).

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

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

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

ВАЖНО! Все вышесказанное (и все, что я буду писать по теме далее) отражает не просто ситуацию "здесь и сейчас", т.е. работает отнюдь не только в фантастике ближнего прицела. Это некие объективные законы и правила, которые будут работать во всех компьютерных системах, построенных в рамках известных нам физических и математических принципов, причем открытие новых принципов старых отнюдь не отменяет. Аналогично - никакая химическая ракета не может нарушить некие базовые законы реактивного движения, даже если изобрести суперпупертопливо, нанонасосы для него и сталинит-аквалитовый сплав для сопел.

Естественно, у фантаста всегда остается возможность "перпендикулярного" решения задачи, выхода за плоскость допустимых решений. Например, придумать джамп-двигатель. Для нашей темы мне приходят в голову два варианта такого развития:

- Переход на принципиально не-неймановские компьютерные системы. Не просто "систем с элементами fuzzy-logic", а принципиально основанных на недетерминированных процессах - т.е. систем, близких по поведению к человеческому. Однако для этого необходима некая внешняя причина, т.к. иначе совершенно непонятно, зачем надежную систему заменять на ненадежную. Такой причиной, например, может быть неработоспособность обычных систем в подпространстве. Мне, правда, кажется это ооочень большой натяжкой, да и вообще довольно бессмысленным ходом. Ну, получим мы еще один сериал "Я, Робот" с железными дровосеками человеками - и что? Ради решения каких литературных задач?

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

Profile

city_rat: (Default)
city_rat

July 2016

S M T W T F S
     12
345 6789
10111213141516
17181920212223
24252627282930
31      

Style Credit

Syndicate

RSS Atom
Page generated Jul. 25th, 2017 02:51 pm
Powered by Dreamwidth Studios

Expand Cut Tags

No cut tags