Брюс Шнайер - Секреты и ложь. Безопасность данных в цифровом мире
К сожалению, многие системы ненадежны так же, как и самые слабые пароли. Когда нападающий хочет получить вход в систему, его не волнует, чей он получает доступ. Согласно рабочим тестам, L0phtcrack восстанавливает около 90% всех паролей менее чем за день и 20% всех паролей в течение нескольких минут. Если на 1000 входов 999 пользователей выберут исключительно сложные пароли, такие что L0phtcrack не сможет установить их, программа взломает систему, подобрав единственный слабый пароль.
С другой стороны, с точки зрения пользователя это может быть примером того, что «нет необходимости бегать быстрее медведя – достаточно опережать тех, кто рядом с вами». Любое словарное нападение будет успешным против тех многих входов, чей пароль «Сюзанна» – они-то в первую очередь и станут жертвой атаки. Если же ваш пароль «молот-бабочка», то, хотя он тоже достаточно уязвим для словарных нападений, вероятно, не он станет жертвой.
Принимая в расчет вероятный тип нападающего, вы можете сделать систему с длинными и сильными паролями надежной. Но все постоянно меняется: закон Мура гласит, что сегодняшние сильные пароли – это завтрашние слабые пароли. В общем, если система основана на паролях, нападающий может организовывать словарное нападение в ожидании времени, когда система станет уязвимой. Периодически.
Подведем итоги. Все основывалось на нападающем, захватившем файл хэшированных паролей. Стоит предотвратить словарные нападения, и пароли снова станут пригодными. Это возможно, хотя и нелегко для компьютеров с общим доступом. Парольный файл UNIX, например, может читать кто угодно. В наши дни в UNIX есть теневой парольный файл; в нем находятся действительные хэшированные пароли, а в общедоступном парольном файле не содержится ничего полезного. Файл хэшированных паролей в NT хорошо защищен, и его трудно украсть; для этого вам нужен или доступ администратора, чтобы разыскать хэшированные пароли через сеть (хотя поздние версии NT и Windows 2000 предотвращают и это), или же вам нужно отлавливать пароли, когда они используются для других сетевых приложений.
Система также может «захлопываться» после нескольких попыток неудачного ввода пароля, например десяти. Таким образом, если кто-то пытается войти под именем Алисы и начать угадывать пароли, он введет только 10 вариантов. Конечно, это будет надоедать Алисе, но это лучше, чем подвергать риску ее имя пользователя. И точное определение времени «замораживания» может зависеть от обстоятельств. Может быть, ее вход будет закрыт на 5 минут или на 24 часа. Может быть, до тех пор пока она не поговорит с каким-нибудь администратором. Высоконадежные механизмы после определенного числа попыток неудачного ввода пароля или его неправильного набора могут замораживаться надолго, с уничтожением информации внутри.
Другое решение состоит в том, чтобы использовать интерфейс, несовместимый с компьютером. Ваша магнитная карта, по которой вы вправе получить наличные деньги, защищена четырехзначным идентификационным номером. Что может быть более незначительным для компьютерного взлома? Требуется несколько миллисекунд, чтобы перебрать все возможные 10 000 идентификационных номеров, но в данном случае компьютер сложно присоединить к интерфейсу пользователя. Человек может стоять у банкомата и перебирать все эти номера один за другим. И для того, чтобы проверить все 10 000 идентификационных номеров, может потребоваться вместо 10 секунд – 28 часов безостановочной работы.
Так же как люди способны быть достаточно отчаянными, чтобы постараться осуществить такое нападение, так и банкомат будет «глотать» карточки, если вы вводите слишком много неверных паролей. До сих пор эта мера безопасности все еще применяется во многих системах: кодах дезактивации сигнализации (конечно, вы можете попытаться перебрать 10 000 возможных кодов, но на это у вас есть всего лишь 30 секунд), электронных дверных замках, телефонных карточках и т. п. Эти системы работают потому, что здесь нападение не может быть автоматизировано; но если вы сумеете использовать компьютер для перебора всех идентификационных номеров (или паролей) данных систем, вы взломаете эти системы.
Большинство системных проектировщиков не осознают разницы между системой с ручным интерфейсом, которая может быть надежна с четырехзначным личным идентификационным кодом, и системами, имеющими компьютерный интерфейс. Это та причина, по которой мы видим слабые, подобные идентификационному коду, пароли в очень многих веб-системах (включая некоторые брокерские сайты).
Что все-таки делать, если вы не можете предотвратить словарные нападения? Один из приемов – найти более объемный словарь. Другой – прибавить случайные числа к паролям (как говорят, «посолить»). В работе должно быть несколько различных типов визуальных и графических паролей; идея состоит в том, что чем больше возможных паролей, тем, следовательно, сложнее устроить словарное нападение. Однако все это ограничено памятью пользователя.
Пароли – это то, что знает пользователь. Другие техники проверки подлинности базируются на том, кем является пользователь, – на биометрических данных, и на том, что пользователь имеет, – на опознавательных знаках доступа.
Биометрические данныеИдея проста: вы сами подтверждаете свою подлинность. Ваш «отпечаток голоса» отопрет дверь в вашем доме. Сканирование сетчатки глаза пустит вас в офис. Отпечаток большого пальца зарегистрирует вас в вашем компьютере. Это использовалось даже в фильме «Звездный путь»: капитан Пикард «подписывает» электронный бортовой журнал отпечатком своего большого пальца.
Биометрические данные – самые старая из форм опознавания. Физическое узнавание является биометрикой; наши предки использовали его задолго до того, как они эволюционировали в людей. Коты метят свою территорию. Дельфины издают индивидуальные, как подпись человека, звуки.
Биометрические данные также используются для опознавания в системах связи. Если вы разговариваете по телефону, человек на другом конце провода идентифицирует вас по голосу. Ваша подпись в контракте идентифицирует вас как лицо, подписавшее его. Ваша фотография идентифицирует вас как лицо, на имя которого выдан именно этот паспорт.
Для большинства методов биометрические данные нужно сохранять в базе данных, как и пароли. Голос Алисы будет служить биометрическим опознавательным знаком в разговоре по телефону, если вы Алису уже знаете. Если она незнакомка, то вам это не поможет. Точно так же и с почерком Алисы – вы можете узнать его, только если уже видели. Для разрешения этой проблемы карточки с подписями хранятся в банках в картотеке. Алиса пишет свое имя на карточке, когда открывает свой счет; эта карточка хранится в банке. Когда Алиса подписывает чек, банк сопоставляет ее подпись с той, что хранится в картотеке, для того чтобы убедиться, что чек имеет силу. (На практике это случается редко. Проверить письменную подпись так долго, что банк не побеспокоится сделать это за сумму, меньшую 1000 долларов. Он предполагает, что если возникнут проблемы, то кто-нибудь пожалуется. И разобраться с редкой проблемой дешевле, чем платить кому-либо за постоянную проверку.) Вы можете точно так же поступить и с Алисиным голосом – сравнив его с аналогичным образцом, хранящимся в центральной базе данных.
Исключения составляют ситуации, где биометрические данные подтверждаются как часть запутанного и необычного протокола. Когда Алиса подписывает контракт, например, у Боба еще нет копии ее подписи. Однако протокол работает – так как Боб знает, что он сможет проверить подпись впоследствии, если возникнет такая необходимость.
Существует много различных типов биометрических данных. Я уже упомянул почерк, звучание голоса, узнавание лица, отпечатки пальцев. К биометрикам также относятся линии на руке, сканирование сетчатки, сканирование радужной оболочки глаза, динамические характеристики подписи (не только то, как она выглядит, но и с каким нажимом, с какой скоростью она была начертана и т. д.) и другие. Одни технологии надежнее других – отпечатки пальцев намного надежней распознавания лица – но ситуация может измениться, поскольку технологии совершенствуются. Некоторые навязчивы – одна несостоявшаяся технология базировалась на образце отпечатка губ и требовала от пользователя поцеловать компьютер. В целом, биометрические данные будут считываться все лучше и лучше.
«Лучше и лучше» имеет два разных смысла. Во-первых, это значит, что самозванец не будет неправильно опознаваться в качестве Алисы. В целом, роль биометрических данных заключается в том, чтобы доказать, что Алиса-претендент и есть настоящая Алиса. Таким образом, если самозванец может успешно одурачить систему, то она работает не очень хорошо. Это называется ложной уверенностью. Во-вторых, это значит, что система не будет пытаться представить Алису как самозванца. Вернемся к началу: если роль биометрических данных – доказать, что Алиса – это Алиса, и если она не может убедить систему, что она – это она «не поддельная», тогда система также работает плохо. Это называется ложным отрицанием.