Брюс Шнайер - Секреты и ложь. Безопасность данных в цифровом мире
Считается, что работает следующий механизм: если вы подозреваете, что ваш ключ ненадежен, вы «отправляете» его в CRL. Все, что подписано этим ключом в дальнейшем, автоматически считается недействительным. Это кажется невероятным, но такая система изначально порочна. Боб хочет знать, что ключ Алисы вне подозрений, прежде чем примет ее подпись. Злоумышленник не собирается объявлять о том, что он взломал Алисин ключ. Таким образом, Алиса может понять, что ее ключ взломан, только когда она получит от Боба сообщение, демонстрирующее доказательства подделки ее подписи. В большинстве случаев это может произойти, только если Боб примет ее подпись.
Контраст с этим являет собой практика защиты кредитных карт. Согласно правилам, регулирующим заказы по почте и по телефону, если вы возражаете против какого-либо пункта в счете вашей кредитной карты, вы имеете право отвергнуть его – сказать, что вы не покупали этого, – и продавец должен доказать, что вы на самом деле это купили.
В компьютере существуют различные уязвимые места, которые должны проверяться. Проверка сертификата не имеет отношения к секретному ключу, он подтверждает только открытый ключ. Но чтобы проверить сертификат, нам необходим один или несколько «корневых» открытых ключей: открытые ключи сертифицирующих органов. Если злоумышленник сумеет прибавить свой открытый ключ к этому списку, он может выпустить затем свои собственные сертификаты, и обращаться с ними будут точно так же, как и с законными. Они могут быть даже более чем законными в любом другом отношении, за исключением того, что они содержат открытый ключ злоумышленника вместо корректного открытого ключа.
Некоторые продавцы PKI объявляют, что их ключи находятся в корневых сертификатах и вполне безопасны. Такие сертификаты подписаны ими самими и не предполагают следующего уровня безопасности. Единственным решением будет проведение всех сертификационных проверок на компьютерной системе, защищенной как от вторжения враждебного кода, так и от физического вмешательства.
И наконец, как бюро сертификации идентифицируют владельца сертификата? Будет ли сертификат использоваться только как идентификатор или для другой специфической авторизации, но СА должен идентифицировать претендента перед вручением ему сертификата.
Некоторые кредитные организации подумывают о том, чтобы заняться сертификационным бизнесом. Помимо всего прочего они имеют обширную базу, содержащую данные о множестве людей, так что логично предположить, что они способны с легкостью установить подлинность личности. Если они хотят подтверждать подлинность по сети, они в состоянии сделать это, обеспечив совместный с субъектом доступ к секретной информации и безопасный канал, по которому конфиденциальную информацию можно передавать. SSL обеспечивает безопасный канал.
Помешать подобным кредитным организациям выполнить свою роль может то, что у них не получится сделать совместный доступ секретным. Другими словами, не существует безопасного идентификатора, который мог бы использоваться для запуска всего процесса, потому что такие организации участвуют в продаже имеющейся у них информации другим людям. Хуже того, поскольку кредитные бюро делают такое «доброе» дело, как сбор и продажа информации о людях, другие, кто предположительно имеет информацию о субъекте, возможно, подвергаются сильному давлению, чтобы они помогли найти те секретные данные о субъекте, которые еще не известны этому кредитному бюро.
Между тем, каким-либо образом идентифицировав претендента, как СА проверит, что претендент действительно контролировал закрытый ключ, соответствующий открытому ключу, подтвержденному сертификатом? Некоторые сертифицирующие органы даже не рассматривают эту часть процесса. Другие могут требовать, чтобы претендент подписал некоторый документ тут же на месте, в присутствии СА.
Сертификаты не напоминают некий магический эликсир безопасности, капля которого, добавленная к вашей системе, сделает ее безопасной. Сертификаты должны использоваться правильно, если вы хотите безопасности. Осуществляется ли эта практика с соблюдением твердых гарантий безвредности или это только ритуалы или имитация поведения кого-то еще? Многие случаи из подобной практики и даже некоторые стандарты при ближайшем рассмотрении оказывались скопированными с таких образцов, которые с самого начала не содержали реального ответа.
Как вычисляется время жизни ключа? Почему продавцы используют один год – потому, что это общепринято? Ключ имеет криптографическое время жизни. Он также имеет время жизни до воровства, являющееся функцией от уязвимости подсистемы, в которой он хранится, состояния ее физического и сетевого окружения, привлекательности ключа для взломщика и т. д. Исходя из этого можно вычислить вероятность потери ключа как функцию времени и эксплуатации. Делают ли продавцы эти вычисления? Какой порог вероятности выбирается, чтобы считать ключ недействительным?
Поддерживает ли продавец аннулирование ключа и сертификата? Списки отозванных сертификатов встроены в некоторые сертификационные стандарты, но многие реализации избежали этого. Но если CRL не используются, то как осуществляется упразднение? Если отмена действия поддерживается, как предотвратить использование ключа, когда стало известно, что он отозван? Может ли случиться так, что он будет отозван задним числом? Причем так, что владелец сертификата может отрицать, что именно он сделал эту подпись некоторое время назад? Если так, датируются ли подписи таким образом, чтобы каждый мог отличить действительные подписи от недействительных? Осуществляется ли контроль даты службами безопасности?
Какую длину имеют сгенерированные открытые ключи и почему выбрана эта длина? Поддерживает ли продавец более короткие и слабые ключи RSA только потому, что они быстрее, или более длинные ключи, поскольку кто-то где-то ему сказал, что они безопасны?
Требует ли правильное использование сертификатов некоторых действий от пользователя? Выполняет ли он эти действия? Например, когда вы устанавливаете соединение SSL с помощью своего браузера, присутствует видимая индикация, что работает протокол SSL и связь зашифрована. Но с кем вы говорите по безопасному каналу? До тех пор пока вы не прочтете сертификат, полученный вами, вы не знаете.
PKI в ИнтернетеБольшинство людей взаимодействуют с PKI единственно по поводу использования SSL. Технология SSL обеспечивает безопасность транзакций во Всемирной паутине, и некоторые продавцы PKI указывают на это, рекомендуя эту технологию для электронной коммерции. Это фальшивый аргумент; хотя никто не призывает людей, торгующих через Интернет, не использовать SSL.
SSL позволяет зашифровать операции с кредитными картами в Интернете, но не является источником безопасности для участников транзакции. Безопасность основывается на процедурах, выполняемых компанией кредитных карт; потребителю должно быть предоставлено право отвергнуть любой пункт, вызывающий сомнение, прежде чем он оплатит счет. SSL защищает пользователя от прослушивания, но не может защитить его ни от взломщика, если тот проникнет на веб-сайт и украдет файл, содержащий номера кредитных карт, ни от жуликоватого сотрудника, если тот следит за номерами кредитных карт в компании.
Предполагалось, что PKI будут обеспечивать идентификацию, но они не делают даже этого.
Пример первый: компания F-Secure (более формальное название Data Fellows) продает программное обеспечение через свой веб-сайт, находящийся по адресу www datafellows com. Если, намереваясь купить какой-либо продукт, вы щелкните в соответствующем месте, то будете перенаправлены на www netsales net, с которым устанавливается соединение по протоколу SSL. Владельцем сертификата SSL является «NetSales, Inc., Software Review LLC» в Канзасе. Главные представительства F-Secure расположены в Хельсинки и в Сан-Хосе. Согласно любым правилам PKI, никто не имеет права делать бизнес через этот сайт. Полученный сертификат принадлежит не той компании, которая на самом деле торгует программным обеспечением. Это в точности то, что мы называли атакой посредника, и это именно то, что PKI должны предотвращать.
Пример второй: я посетил www palm com, чтобы купить кое-что для моего Palm-Pilot. Когда я собирался проверить соединение, то был перенаправлен на https://palmorder modusmedia com/asp/store asp. Сертификат зарегистрирован на имя Modus Media International; налицо скандальная попытка обмануть пользователей, которую я обнаружил, поскольку внимательно проверяю сертификаты SSL. Ну уж нет!
Кто-нибудь еще поднимет тревогу в таких случаях? Кто-нибудь не станет покупать продукт через Интернет только потому, что имя на сертификате не совпадает с именем на сайте? Кто-то, кроме меня, хоть что-нибудь заметит?
Сомневаюсь. Правда заключается в том, что сертификат, выданный VerySign, дает возможность осуществить атаку посредника, но никому нет до этого дела. Так или иначе я сделал покупку, поскольку безопасность обеспечивается правилами использования кредитных карт, а не протоколом SSL. Моя максимальная ответственность за украденную кредитную карту измеряется суммой 50 долларов, и я могу отвергнуть любую сделку, в которой нечестный торговец попытается обмануть меня. Так как все это используется, вместе с тем, что средний пользователь не беспокоится о проверке подлинности сертификатов, и не существует механизма аннулирования, то SSL – это просто (очень медленный) метод Диффи-Хеллмана обмена ключами. Цифровые сертификаты не обеспечивают реальной безопасности электронной коммерции; это полный обман.