Глава 15 Сертификаты и удостоверения

Глава 15

Сертификаты и удостоверения

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

Проблема с описанной моделью заключается в следующем: предполагается, что ключ шифрования – это секрет, известный только Алисе. Путем проверки подписи мы можем действительно подтвердить только то, что сообщение подписано с помощью Алисиного ключа; мы не вправе ничего утверждать относительно того, подписала ли его сама Алиса. Мы не знаем, был ли ключ украден кем-либо еще. Мы не знаем ничего относительно намерений Алисы. Когда мы видим Алисину собственноручную подпись на бумаге, мы можем сделать некоторые утверждения относительно ее воли: она прочла и подписала документ, она поняла его содержание. Когда же документ подписан с помощью секретного ключа Алисы, мы даже не можем быть уверены, что она вообще видела его. «Цифровая подпись» – это название, которое настораживает, потому что это не есть подпись.

Это будет важно в дальнейшем изложении темы этой главы. А пока что поговорим о доверенных третьих лицах.

Доверенные третьи лица

Специалисты по криптографии определяют доверенное третье лицо как персону, которой доверяют все участники протокола, помогающую придать протоколу завершенность и безопасность. Мой друг из NSA однажды заметил (определение, отличающееся замечательной ясностью): «Каждый, кто вас знает, может нарушить вашу секретность и не быть пойманным». Вполне достаточно, эти два определения в главном совпадают.

Помните различные протоколы доверенных третьих лиц из главы 7? Любая коммерция, исключая прямой бартер, тем или иным образом использует доверенных третьих лиц. Даже сделки с оплатой наличными: продавец верит, что правительство примет деньги, которые он получил от покупателя. Когда же сделки включают в себя более интересные финансовые инструменты – чеки, кредитные карты, дебетовые карты, командировочные удостоверения, – и продавец и покупатель полагаются на то, что банк или финансовая компания будут вести себя правильно. Предприниматель и клиент не обязательно доверяют друг другу, но доверенное третье лицо должно успешно посредничать между ними. Все заканчивается очень быстро, если компания кредитных карт начинает капризно отвергать карты некоторых владельцев.

Адвокаты играют роль доверенных третьих лиц в персональных делах, выполняя волю свих клиентов. Когда некто говорит своему похитителю: «Если вы убьете меня, то мой адвокат пошлет копии доказательств в ФБР, CNN и New York Times, он использует своего поверенного в качестве доверенного третьего лица. Адвокаты не думают шутить, профессия делает их превосходными доверенными лицами.

Судебная система в целом может рассматриваться как доверенное третье лицо, гарантирующее, что контракты законны и дела ведутся правильно. Рассмотрим такой протокол честного контракта: Алиса и Боб ведут переговоры и подписывают контракт. Если один из них почувствует, что другой не соблюдает контракт со своей стороны, он или она обратятся к доверенной третьей стороне – к судье. Судья выслушает доказательства с обеих сторон и затем свершит правосудие.

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

Современная жизнь полна примеров существования доверенной третьей стороны. Магазины, торгующие по накладным, неважно, реальные или в Сети, суть доверенные третьи лица. Также и аукционы. А каждый, кто покупает что-либо через службу доставки? Служба доставки – доверенное третье лицо. То же самое – почтовые переводы. Нотариально заверенный акт подтверждает подлинность личности людей, подписавших законные документы, и обеспечивает проверку доказательств в случае спора. ООН посылает «наблюдателей» в качестве доверенных лиц в те страны мира, где противоборствующие стороны не доверяют друг другу. В Сети появляется служба условного депонирования, действующая как доверенная третья сторона между продавцами и покупателями в случае сделок с привлечением крупных денежных сумм.

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

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

Помните целую систему открытых ключей, которую мы с вами обсуждали в главе 6? Алиса хочет послать зашифрованное сообщение, используя открытый ключ Боба, и для этого просматривает базу данных открытых ключей, чтобы найти его. Она получает сертификат открытого ключа Боба. Это сообщение, подписанное кем-то еще, которое удостоверяет, что данный ключ действительно принадлежит Бобу. Персона, которая подписала его, – это доверенное третье лицо.

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

Удостоверения

Откройте ваш бумажник. Внутри вы обнаружите все виды удостоверений. У вас есть банковская карта. Это удостоверение, предоставленное вам вашим банком; оно необходимо, чтобы подтвердить подлинность вашей личности, когда автоматическая система выдает вам наличные. Вы имеете кредитную карту – удостоверение, врученное вам банком, и можете расплачиваться с ее помощью. У вас есть водительские права, выданные правительством. Они доказывают, что вы имеете все привилегии водителя.

Компании в зарубежных странах, дающие в аренду автомобили, рассматривают это удостоверение как подтверждение вашей способности управлять машиной, но полиция обычно видит в нем лишь легкий путь узнать ваше имя и адрес: они сверяют ваши права со своей базой данных. (Есть несколько историй, когда водительские права использовались в качестве удостоверения, прежде чем вам разрешали расплатиться чеком; отношения с доверенными третьими лицами базируются на предпосылке, что правильная информация об идентификации помогает судебному расследованию.) У вас также есть карта клиента авиационной компании, читательский билет, членский билет какого-нибудь спортивного клуба и бог знает что еще. Если у вас есть паспорт – это еще одно удостоверение.

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

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

Эти физические удостоверения также иллюстрируют проблему аннулирования. Что случится, если ваше удостоверение будет аннулировано? Когда управляющий банка (Master-Card) аннулирует вашу кредитную карту, он не может залезть в ваш бумажник и вытащить ее оттуда. Так что он «аннулирует» ее где-то в базе данных: он просто пометит соответствующий номер карточки как недействительный. Это работает до тех пор, пока тот, кто принимает кредитные карты, сверяется с базой данных. Если вы находитесь в какой-нибудь глубинке, где нет даже телефона, может не найтись способа подтвердить действительность вашего удостоверения.

Другой способ обходиться с аннулированными удостоверениями – это ограничить период времени, когда они могут использоваться, не будучи вновь подтвержденными. Почти все удостоверения имеют срок годности, даже такие, как читательские билеты. (Единственный контрпример, я думаю, знаки принадлежности к некоей корпорации. Это «глухой» номер. Хотя намного более вероятно, что вы смените работу, чем то, что вы разучитесь водить.) Удостоверения недействительны по истечении срока годности, что знает каждый, кто неосторожно пытался заплатить по просроченной кредитной карте или (не дай Бог) вернуться в США с просроченным паспортом. Если срок годности вашего удостоверения истек, вы должны получить новое. Иногда вы обязаны явиться за ним лично (как в случае с паспортом), иногда вам посылают его автоматически, например новую кредитную карту.

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

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

Сертификаты

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

Я думаю, нужно начать с начала.

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

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

Хорошо, но если все открытые ключи будут храниться где-то в большой базе данных, что можно сказать о безопасности этой базы данных? Злоумышленник способен натворить кучу бед, если сможет заменить один открытый ключ другим. Он может создать новый открытый ключ, подписать им пачку чеков и затем поместить его в базу данных рядом с именем Алисы. Таким образом, она подписала все эти чеки. Если Боб использует открытый ключ Алисы, чтобы зашифровать сообщение для нее, злоумышленник в силах заменить открытый ключ Алисы на свой; тогда секретное сообщение для Алисы сможет расшифровать взломщик, но не она сама.

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

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

Однако не совсем. Заметим, что в действительности мы не решили проблему. Все, что мы сделали, возвращает нас к первоначальному вопросу: «Как Боб узнает, что открытый ключ Алисы действительно принадлежит ей?» Или изменим формулировку: «Как Боб узнает, что открытый ключ Бога действительно его ключ?». Боб проверил подлинность подписи Бога на сертификате, прежде чем начал использовать Алисин ключ, так что ему необходим был открытый ключ Бога. И где он его мог получить?

Но мы все же решили кое-что. Вероятно, Боб хочет взаимодействовать со множеством людей, не только с Алисой. И если Бог подписал каждый сертификат, мы свели проблему Боба к меньшей проблеме: теперь вместо подтверждения открытого ключа каждого нужно подтвердить лишь один ключ – Божий. Но эту проблему мы обсудим позже.

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

Основная идея состоит в том, что Алиса некоторым образом получает подписанный Богом сертификат открытого ключа. Либо она создает пару открытый ключ/закрытый ключ и отправляет открытый ключ Богу, который возвращает ей сертификат открытого ключа, либо Бог сотворит пару открытый ключ/закрытый ключ для Алисы и пошлет ей закрытый ключ и сертификат открытого ключа. (Здесь мы сталкиваемся с проблемой безопасности этого обмена, но пока что не берем ее в голову.)

Это все работает великолепно до тех пор, пока Алиса не потеряет свой закрытый ключ. Может быть, кто-то украдет его. Может быть, она забудет его. (Или, что более правдоподобно, ее компьютер «полетит» и не останется резервной копии.) Боб собирается попытаться послать ей сообщение, зашифрованное этим потерянным ключом. Или, хуже того, Боб попытается проверить подлинность подписей, созданных после того, как некто украл ключ. Что мы будем делать тогда?

Мы обратимся к Богу, и он аннулирует Алисин сертификат. Он объявит старый сертификат недействительным, неправильным и непригодным. Как он это сделает? Бог не может обшарить каждый уголок в Сети и уничтожить каждую копию сертификата. (Конечно, может быть, Господь Бог и всемогущ, но это только аналогия.) Возможно, он даже не знает, что у Боба есть такая копия.

Так что Бог включает Алисин сертификат в список аннулированных сертификатов, или CRL (certificaterevocationlist). (Вспомним, как 20 лет назад торговцы публиковали списки номеров недействительных кредитных карт. Это CRL.) Бог выпускает CRL регулярно (компании кредитных карт делают это раз в неделю), и это уж дело Боба – удостовериться, что Алисин сертификат не находится в последнем списке, прежде чем он использует его. Он должен также убедиться, что сертификат не просрочен и что он в действительности принадлежит Алисе.

Каким образом Боб может осуществить последнее? Он сравнит имя Алисы с указанным на сертификате. Если они совпадают, сертификат принадлежит ей. Это звучит просто, однако ж не работает.

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

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

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

Эта система замечательно работает у военных, но гораздо хуже в гражданском обществе. В Интернете сертификаты используются для поддержки множества протоколов: IPsec (Internet Protocol security, интернет-протокол безопасности) и различные системы VPN (Virtual Private Network, виртуальная частная сеть), SSL (Security Socket Layer, протокол безопасности сокета), несколько протоколов электронной коммерции, некоторые протоколы проверки входа в систему. Соответствующие сертификаты выдаются пользователям некоторой инстанцией, называемой бюро сертификации (certificateauthority, СА). СА может быть корпоративной организацией. Правительство также способно выступать в этом качестве. Оно может быть частной компанией, которая сделала своим бизнесом изготовление сертификатов для пользователей Интернета.

Центры сертификации также нуждаются в сертификатах. (Вспомним об иерархии.) Сертификаты выдаются СА другими сертифицирующими органами (возможно, VerySign). В конечном счете мы получаем Бога в этой системе, точнее, целый пантеон Богов. Сертифицирующие органы на самом верхнем уровне имеют корневые сертификаты: они не подписаны кем-либо еще. Такие сертификаты включены в программное обеспечение, которое вы покупаете: ваш браузер, обеспечение частной виртуальной сети и т. д. Это все называется инфраструктурой открытых ключей (public-key infrastructure, PKI). Она работает, но только частично.

Вторая проблема: имя Алисы.

В стародавние времена (примерно в середине 80-х) каждый мечтал о мире, в котором каждая персона, каждый процесс, каждый компьютер, каждый механизм связи – все, что связано с цифровыми коммуникациями, – имели бы уникальное имя. Эти имена хранились бы в широко распространенной базе данных, доступной множеству людей в различных регионах. Этот проект был назван Х.500.

Вообще говоря, сертификаты связывают открытый ключ с уникальным именем (называемым отличительным именем в терминологии Х.500), но, возможно, стоит обсудить, насколько полезна такая связь. Представьте себе, что вы получили сертификат, принадлежащий Джоан Робинсон. Вы, возможно, знаете лично только одну Джоан Робинсон, но сколько людей с таким именем известны центру сертификации? Как вы удостоверитесь, что конкретный сертификат Джоан Робинсон, полученный вами, принадлежит вашей подруге? Вы можете получить ее открытый ключ лично от нее, или она лично подтвердит передачу, но более вероятно, что вы примете сертификат по электронной почте и должны просто поверить, что это «правильная» Джоан Робинсон. Обобщенное имя на сертификате, вероятно, будет дополнено некоторой другой информацией, благодаря которой станет уникальным среди имен, получивших сертификат от одного СА.

Вы знаете эту дополнительную информацию о своей подруге? Знаете ли вы, какой СА выдал ей сертификат?

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

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

Идея также предполагает, что Алиса и Боб находятся в каких-то взаимоотношениях в физическом мире и хотят перенести эти отношения в киберпространство. Помните времена, когда «киберпространство» было термином из научной фантастики, а все взаимоотношения, о которых мы говорили, – деловые, социальные, банковские, коммерческие – формировались исключительно в мире из плоти и крови? Теперь люди встречаются в Сети и формируют там свои взаимоотношения все время. Иногда им удается свидеться лично через много лет после того, как они уже стали друзьями; в некоторых случаях они так и не входят в личный контакт. В этом прекрасном новом мире система, сконструированная только для того, чтобы проецировать взаимоотношения реального мира в киберпространство, выглядит ограниченной.

Проблемы с традиционными PKI

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

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

И слово «полномочия» («authority») имеет несколько значений. СА могут обладать авторитетом для выпуска сертификатов, но обладают ли они властью в отношении их содержимого? Например, сертификат сервера SSL содержит два массива данных, представляющих потенциальный интерес для целей безопасности: имя держателя ключа (keyholder) (обычно имя корпорации) и имя сервера в системе DNS (Domain Name System, система доменных имен). Существуют органы, обладающие властью назначать имя в системе DNS, но ни один из сертифицирующих органов SSL, представленных в списках, которые можно видеть в популярных браузерах, таковым не является. Это означает, что имя DNS в сертификате не является авторитетно установленным. Есть органы, назначающие корпоративные имена. Такое имя должно регистрироваться, когда некто хочет получить лицензию на какой-либо бизнес. Однако ни один из СА SSL, опубликованных в популярных браузерах, не обладает полномочиями делать это. В добавление ко всему, если сервер получает сертификат SSL-сервера, он имеет разрешение работать по протоколу SSL. Кто дал полномочия сертификационному органу SSL контролировать подобные разрешения? И является ли контроль за этими разрешениями необходимым? Какой вред будет причинен, если несертифицированный сервер будет использовать кодирование? Никакого.

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

Модель RA+CA, безусловно, менее безопасна, чем система, при которой СА находится в составе полномочного органа (то есть RA). Модель RA+CA позволяет некоторому объекту (СА), который не является полномочным относительно содержания, подделать сертификат с соответствующим содержанием. Конечно, сертифицирующий орган подписывает контракт, в котором обещает так не делать, но это не исключает подобную возможность. Между тем, поскольку безопасность всей модели зависит от безопасности обеих ее частей и взаимодействия между ними (они должны каким-либо способом взаимодействовать), RA+CA менее безопасна, чем каждая из частей, безотносительно того, насколько силен СА и насколько хорош контракт, который с ним подписан. Конечно, модель, в которой СА находится в составе органа-распорядителя (не со стороны продавца), препятствует некоторым способам ведения бизнеса продавцами в инфраструктуре PKI.

Другую проблему представляет защита закрытого ключа. Вспомним: чтобы вся система цифровых подписей работала, вы должны быть уверены, что ваш закрытый ключ известен только вам. Отлично, но как защитить его? Можно быть почти уверенным, что у вас нет безопасной вычислительной системы, с контролем физического доступа, экранированием TEMPEST, «пространством» сетевой безопасности и другими средствами защиты; вы храните свой закрытый ключ на обычном компьютере. Таким образом, он является объектом для вирусов и иных разрушительных программ. Даже если ваш закрытый ключ в безопасности на вашем компьютере, находится ли этот компьютер в закрытой комнате, снабженной системой видеонаблюдения, уверены ли вы, что никто, кроме вас, никогда не воспользуется им? Если он защищен паролем, то насколько трудно «вычислить» этот пароль? Если ваш ключ хранится на смарт-карте, насколько она устойчива к атакам? Если он содержится на действительно устойчивом к атакам устройстве, то не может ли инфицированный компьютер найти способ «убедить» это заслуживающее доверия устройство подписать то, что вы не хотели бы подписывать?

Здесь дело преимущественно касается термина безотказность (nonrepudation). Подобно «доверенному» объекту, этот термин взят из академической литературы по криптографии. Здесь он используется в специфическом значении, описывая алгоритм создания цифровой подписи, который невозможно разрушить, так что никто не может подделать вашу подпись. Продавцы PKI замыкаются на этом термине и используют его в юридическом смысле, лоббируя законы, согласно которым, если кто-то использует свой закрытый ключ, то он в любом случае не может отказаться от своей подписи. Другими словами, в соответствии с некоторыми законами об использовании цифровой подписи (например, законами штатов Юта и Вашингтон), если ключ вашей подписи сертифицирован правомочным СА, вы отвечаете за все, что с помощью этого ключа делается. Им нет дела до того, кто сидел за клавиатурой компьютера или какой вирус создал эту подпись: вы ответственны по закону.

Считается, что работает следующий механизм: если вы подозреваете, что ваш ключ ненадежен, вы «отправляете» его в 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 – это просто (очень медленный) метод Диффи-Хеллмана обмена ключами. Цифровые сертификаты не обеспечивают реальной безопасности электронной коммерции; это полный обман.