вторник, 22 ноября 2011 г.

Камо грядеши?

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

Я долго не мог понять, как бы получше сформулировать то, что не дает мне покоя.

Попробую своими словами.

Проблема безопасности современных информационных систем, с ростом их масштаба, это проблема аутентификации пользователей.

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

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

Сначала немного школоло.

Давайте вспомним три основных вида аутентификации, существующие в природе.

Первый - "У меня есть". Ключ, смарт-карта, кредитка, крипто-токен.
Второй - "Я знаю". Пароль, отзыв, секретное слово, фразу, ответ.
Третий - "Я являюсь". Отпечаток пальца, голоса, сетчатки глаза.

Все три не являются идеальными.

Первый - то, что у вас есть, можно (и нужно) банально украсть. Всякие замки и засовы от хороших людей, как известно. Костыли типа пин-кодов являются очевидным фейком, достаточно вспомнить, как работают кардеры. "Нельзя взломать лишь совесть, да и то лишь у некоторых". Ключ можно потерять или задействовать под принуждением.

Второй - хороший пароль большая проблема. Которая в генах его носителя. И которая называется человеческой памятью. Средний человек неспособен физически держать в голове мало-мальски сложный пароль. Недавняя серия взломов аккаунтов на мэйл.ру наглядно  продемонстрировала проблему. Отсутствие защиты от брутфорса и мощь атакующих привела к тому, что были взломаны даже цифробуквенные десятизнаки, без единого признака осмысленности. Взрывной рост мощи числогрызок и доступность этих машин простым смертным делает уязвимыми даже 14-значные генераторные пароли. На все это наложена проблема крайней тупости пользователей и непонимание ими принципов социальной инженерии (что было описано сто лет назад еще Брюсом Шнайером) - вопрос восстановления пароля - "Девичья фамилия вашей матери?" Сколько было взято аккаунтов таким способом - страшно подумать.

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

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

Инфраструктура PKI, несмотря на повсеместные дифирамбы дилетантов, как и было предсказано все тем же Брюсом, страдает целым рядом фатальных недостатков концептуального характера и за серьезную систему безопасности считаться не может вообще, до сих пор, несмотря на повсеместное распространение. В частности, именно в области аутентификации.

Но отставим пока enterprise authentification  в сторону. 

Поговорим о другой проблеме. Которую создали себе самостоятельно и собственноручно.

Я о миллионах хомячья в социальных сетях и аутентификации в веб-среде.

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

А теперь внимание. Вдумайтесь. Для целей аутентификации используется один из самых древних и незащищенных протоколов - SMTP/POP3.

Я оставляю за скобками всякие блэкберри с их черным ходом для спецслужб. Или навороты Гугла с доступом к почте под SSL. Это все паллиативы, причем дерьмовые палливативы, если хорошо подумать и поднять глазки вверх, вспомнив о пробоях SSL. Эти "решения" я даже комментировать не хочу. Любому здравомыслящему теху очевидно, что это - не решение.

Ваш пароль передается по фактически открытому протоколу, S/MIME так и не прижился в более-менее приличном исполнении.

Оставим за скобками также так называемое шифрование, применяемое в повседневной практике. Существование OpenCL и устройства с названием Tesla не оставляет камня на камне от прикладных шифров. На видеокарте класса nVidia 8800 хэш MD5 берется за минуты на писюке-локалхосте.

Вернемся к проблеме аутентификации.

То, что электронная почта не может являться основой для аутентификации, на мой взгляд, очевидно. Отправка SMTP-почты телнетом от имени ЛЮБОГО адреса в дым разбивает идею тождества личности с ее мэйлом. Спамеры это ежедневно доказывают. Всякого рода disposable-мэйлы из той же серии.

Это прекрасно поняли некоторые социалки, которые стали подпирать аутентификацию пользователей сотовыми телефонами.

Идея опять-таки бредовая с учетом существующих реалий. Сим-карты клонируют. Не во всех странах действует ублюдочное законодательство о предьявлении паспорта при покупке сим-карты. Помимо существования необходимости такой вещи, как, например, прайвиси и необходимости/обоснованного желания остаться в ряде случаев анонимным. (усмехаясь) Скажете, на кой? Я простой человек, мне скрывать нечего? Расскажете это, кстати, Евгению Касперскому. Русскому человеку прайвиси - совершенно чужеродная концепция, в большинстве случаев. 

Но я отвлекся.

Вернемся к нашим баранам. У нас есть проблема с аутентификацией в Web 2.0. 

Причем проблема практически нерешаемая. 

Скан паспорта? Фейсбук и ВКонтакт пытаются использовать этот бред. Однако хочу процитировать один абзац из вышеприведенной ссылки:

"Личность в интернетах вообще НЕ МОЖЕТ доказать факт собственного существования. Фотографии, описания жизнедеятельности, отсканированные документы — доказательством не являются.
В интернетах нет ни меня, ни вас. Вещественны только мысли, а сама личность существует в форме «ментальной субстанции», которая является креативной единицей общего информационного поля."

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

Скан паспорта? Состряпаем в шопе или откорректируем скан своего паспорта. Редактирование растровых изображений - милое дело.

Кстати, помните ту забавную историю с Фейсбуком и Ахмедом Салманом Рушди? Да-да, тем самым. Которого отказались регистрировать под авторским именем даже после предъявления скана паспорта, результатом чего была схватка Салмана с администрацией Фейсбука.

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

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

Одно время в вебе 1.0 действовала аутентификация на основе проверки существования кредитной карты путем фиктивной транзакции суммой 1 доллар. Однако и это фейк. Так как кредитка не является уникальным неподделываемем артефактом.

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

Из всего вышесказанного следует один вывод. Я в начале статьи сказал, что аутентификация и неотрекаемость не связаны между собой.

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

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

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

Контрвопрос. Допустим, вы - преступник. Как доказать вашу виновность в преступлении, совершенном, скажем, в интернете?

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

Опять-таки, возвращаясь к заголовку, существует ли в природе вообще сколько-нибудь достоверный способ убедиться, что человек именно тот, за кого себя выдает? Или что это тело именно ТОГО человека?

В общем-то, таких способов два.

Первый общеизвестен. Многоточечная проверка знания общих секретов, известных лишь очень ограниченному кругу лиц. Такая примитивная концепция, как "разделяемый общий секрет" все еще актуальна IRL. Особенно при достаточной глубине проверки и надежности проверяемых данных. "В каком баре мы с тобой надрались в Рио в 19мохнатом году и как звали проститутку, который ты набил морду?" ;)

Второй менее очевиден, и, в общем-то, менее достоверен. Молекулярный анализ ДНК, при условии, что у нас есть эталонный образец ДНК, полученный в условиях, исключающих подмену. Я не случайно выделил данную фразу. Как, например, США убедились, что перед ними Усама Бин Ладен? У них был образец ДНК маленького Усамы в роддоме? (оставим роддомы в покое. Аутентичность детей знают лишь акушерки и это отнюдь не исключает ни подмены, ни путаницы детей - намеренной или случайной).

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

Так что, "Никогда не говори, что человек мертв, пока ты не увидишь его тела. Но даже тогда ты можешь ошибиться" (С) Фрэнк Херберт, "Дюна".

Одиннадцать негритят

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

Однако, если отставить этот список пока в сторону, и посмотреть на одну близкорасположенную задачу, все окажется совершенно не таким радужным.

Проблема раз. И какая проблема!
Сюрприз! Вы не можете мигрировать посредством Live Upgrade ваши боевые сервера в датацентре, работающие 24x7. Феерический даунтайм. Предложенные выше варианты миграции я вообще всерьез не рассматриваю. Это булшит, которым Оракл может подтереться.

Проблема два. 

Походу, для индопрограммистов Оракла максима "Совместимость важнее производительности" не писана. Они просто во время ее провозглашения даже в проекте отсутствовали.

Несовместимо все. Пакетный интерфейс. Интерфейс патчей. Интерфейс миграций и апгрейдов. ABI. Вы больше не сможете исполнять ни единого 32-битного унаследованного приложения и ни единого софта с Sunfreeware

Мало того, что вам придется полностью переустанавливать систему. А перед этим тестить приложения на совместимость утилитой, которую заботливо подготовил Оракл. Нет никакой гарантии, что у вас запустится что-то из старого софта. Опенсурс тоже не забыли. Нет гарантии, что он СОБЕРЕТСЯ на 11ке.

Проблема три.

Выброшенные деньги.

Все приличные старые процессоры больше не поддерживаются. До SPARC IV+ включительно. Которые только и были нормальными процессорами у Сан. Поддерживается только фейковый UltraSPARC.

Ваше оборудование энтерпрайз-класса, для которого еще не настал EOL и которое еще не ROI - можете сдавать его в утиль на вес. Если желаете посадить туда 11ку - обломайтис. Только десятка. Которую, конечно, будут поддерживать до 2014го года. С качеством ораклового саппорта, которое хорошо известно.

Оракл изящно слил всю инсталляционную базу Сан. Ребята, вы нафиг не нужны Ораклу! Ни вы, ни ваша ОС. Которая недвусмысленно двигается в сторону Линя в оракловом исполнении - прокладка под СУБД. Солярис как система общего назначения - и великолепная в прошлом система - сливается в трэш.

Думайте о смене платформы, джентльмены.

Теперь к делу. Как все-таки осуществить миграцию с действующих систем под 10кой на 11ку? 

Чисто теоретически это возможно. С рядом оговорок.

Первое. Про LU забудьте. Он несовместим в 10ке и 11ке. Даунтайм НЕИЗБЕЖЕН, и он будет нешуточный. Будет переустановка.

Второе. Сначала надо убедиться, что 11ка вообще запустится на вашем железе. Можно это сделать при помощи LiveUSB.

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

Четвертое. Сделайте физический бэкап вашей системы. Существует риск, что придется откатиться.

Пятое. Если вы сидите на RAID под ufs - готовьтесь практиковаться в выполнении Live Upgrade на 10ке. 

В двух словах.

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

Поясню. Если вы сидите на, скажем, зеркалированном пуле ZFS под последним апдейтом десятки, то версия пула у вас такая же, как и у 11ки. 29я. Если при этом у вас почти не установлено в корневом пуле никакого софта, кроме системы (ну или его минимум), а все данные и прочие приложения умненько вынесены на некорневые пулы, то, считайте, что существует ненулевая вероятность успешной миграции.

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

Противоестественного секса много. Спасибо Индии и лично Лоуренсу Т. Эллисону за это. Но других вариантов просто не существует.

Поздравляю всех соляристов с гибелью нашей системы в том виде, в каком мы ее знали.

Покойся с миром, Solaris. R.I.P.