Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Практическая криптография

..pdf
Скачиваний:
6
Добавлен:
12.11.2023
Размер:
16.23 Mб
Скачать

384

Глава 22. Хранение секретов

22.9Совместное владение секретом

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

Существует одно криптографическое решение, которое может применять­ ся для хранения секретных ключей. Оно называется совместным владением секретом (secret sharing), что не совсем корректно, поскольку означает, что ваш секрет известен еще нескольким людям. Это не тан. Идея состоит в том, чтобы разбить секрет на несколько различных частей. Это можно сделать та­ ким образом, чтобы для восстановления секрета требовалось собрать вместе, скажем, три из пяти частей. Затем каждая часть секрета передается одному из руководителей компании. Вся хитрость такого приема заключается в том, что любые вместе взятые два человека не знают о секретном ключе абсолют­ но ничего.

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

спомощью описанных ранее методов. Правило “А: из п” сочетает в себе высо­ кую безопасность (для восстановления ключа нужны, как минимум, к людей)

свысокой надежностью (п - к частей секрета могут быть утеряны без какихлибо негативных последствий). Существуют и более изощренные схемы сов­ местного владения секретом, которые подчиняются более сложным правилам доступа, например: “пользователь А и пользователь Б или пользователь А, и пользователь В, и пользователь Г”.

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

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

22.10 Уничтожение секретов

385

Директор компании также не слишком подходит для хранения части клю­ ча, поскольку, как правило, постоянно находится в отъезде. Когда вы это, наконец, осознайте, круг подходящих лиц сузится до двух-трех старших ITменеджеров. Они могли бы использовать схему совместного владения секре­ том, но высокая стоимость и сложность этого решения делает его малопри­ влекательным.

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

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

22.10Уничтожение секретов

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

Схемы хранения долгосрочных секретов, рассмотренные в этой главе, ис­ пользуют целый ряд технологий хранения данных: жесткие диски, бумагу, дискеты, пластиковые карты с магнитной полосой, память EPROM, ЕЕРROM, флэш-память или память RAM, работающую от батарейки. Ни одна из этих технологий не обладает задокументированной функциональностью удаления данных, которая бы гарантировала, что их восстановление невоз­ можно.

22.10.1Бумага

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

386

Глава 22. Хранение секретов

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

22 .10.2 Магнитное хранилище

Магнитные носители с большим трудом поддаются очистке. Между тем посвященная этому вопросу литература удивительно малочисленна. Лучшая работа, которая нам известна, — это статья Питера Гутманна [38], хотя ее технические аспекты, вероятно, уже устарели.

Магнитные носители хранят свои данные в маленьких магнитных доме­ нах. Направление намагниченности домена указывает на то, какие данные в нем закодированы. Когда данные подвергаются перезаписи, направление намагниченности домена изменяется в соответствии с новыми данными. Су­ ществует, однако, несколько механизмов, которые препятствуют полной по­ тере старых данных. Головка чтения/записи, которая пытается перезаписать данные, никогда не выравнивается в точности по старым данным, поэтому некоторые части старых данных остаются нетронутыми. Таким образом, пе­ резапись носителя не приводит к полному уничтожению старых данных. Для большей наглядности это можно сравнить с перекрашиванием стены. Если мы покроем ее одним слоем краски, через него кое-где будет просвечивать старая краска. Вдобавок ко всему магнитные домены способны “убегать” от головки чтения/записи к краю дорожки или, наоборот, вглубь магнитного ве­ щества, где могут задержаться на длительное время. В большинстве случаев перезаписанные данные нельзя восстановить с помощью обычной головки чтения/записи, но злоумышленник может украсть диск и воспользоваться специальным оборудованием, которое позволит ему частично или даже пол­ ностью восстановить старую информацию.

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

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

22.10 Уничтожение секретов

387

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

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

Очистке должны подвергнуться и те области носителя, которые нахо­ дятся непосредственно перед секретными данными, а также непосред­ ственно после них. Поскольку скорость вращения диска никогда не бы­ вает абсолютно постоянной, место расположения новых данных не будет в точности совпадать с местом расположения старых.

Нам не известны надежные оценки того, сколько операций перезаписи требуется для полного уничтожения старых данных, однако мы не видим при­ чин ограничиваться небольшим количеством подобных операций. Все, что от нас требуется, — это уничтожить один-единственный ключ. (Если у вас есть большое количество секретных данных, храните их зашифрованными с по­ мощью некоторого ключа и уничтожайте только этот ключ.) На наш взгляд, вполне разумно выполнить 50 или 100 операций перезаписи с использованием случайных данных.

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

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

388

Глава 22. Хранение секретов

22.10.3 Полупроводниковые записывающие устройства

Аналогичные проблемы возникают и при очистке энергонезависимой па­ мяти, такой, как EPROM, EEPROM и флэш-память. Перезаписывание ста­ рых данных не удаляет все их следы. Определенную роль в этом играют и механизмы удерживания данных (см. раздел 9.3.4). Единственным практи­ ческим решением данной проблемы является многократное перезаписывание секретной информации с помощью случайных данных, но оно ни в коей мере не обеспечивает идеальной защиты. Когда полупроводниковое записывающее устройство становится ненужным, оно должно быть уничтожено.

Глава 23

Стандарты

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

23.1 Процесс стандартизации

Для тех, кто еще не принимал участия в процессе стандартизации, опи­ шем, как создаются стандарты. Все начинается с какой-нибудь организации, занимающейся стандартизацией, например Проблемной группы проектиро­ вания Internet (Internet Engineering Task Force — IETF), Института инжене­ ров по электротехнике и электронике (Institute of Electrical and Electronics Engineers — IEEE), Международной организации по стандартизации (Inter­ national Organization for Standardization — ISO) или Европейского комитета по стандартизации (European Committee for Standardization — CEN). Осознав необходимость принятия нового или улучшенного стандарта, данная органи­ зация назначает комитет. Этот комитет может называться по-разному: ра­ бочая группа, проблемная группа или как-нибудь иначе. Иногда для приня­ тия стандартов создаются иерархические структуры комитетов, но основная идея остается той же. Членство в комитете, как правило, основано на добро­ вольных началах. Люди обращаются с просьбой присоединиться к комитету, и принимают практически каждого. Иногда, чтобы попасть в комитет, жела­ ющему приходится проходить несколько обязательных процедур, но какоголибо видимого критерия отбора членов комитета не существует. Размер коми­ тета может доходить до нескольких сотен человек, однако большие комитеты разбиваются на несколько подкомитетов меньшего размера (они называются

23.1 Процесс стандартизации

391

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

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

Так кто же входит в состав комитета? Вообще говоря, быть членом ко­ митета по стандартизации — дело весьма дорогостоящее. Помимо неизбеж­ ной траты времени, члену комитета приходится оплачивать поездки и про­ живание в гостиницах. Поэтому каждый член комитета выдвигается туда своей компанией. У компаний есть несколько мотивов быть представленны­ ми в комитете. Иногда компания хочет продавать продукт, который должен обладать совместимостью с продуктами других компаний. Для этого требу­ ются стандарты, а лучший способ следить за процессом стандартизации — это самому принимать в нем участие. Кроме того, компании хотят контро­ лировать действия своих конкурентов. Если позволить конкуренту самому написать стандарт, он обязательно поставит вас в невыгодное положение, например приспособит стандарт к собственным требованиям или включит в него собственноручно запатентованные технологии. Иногда компаниям, на­ против, невыгодна разработка стандарта. Представители подобных компаний появляются на собраниях комитета только затем, чтобы как можно более затянуть процесс стандартизации и дать время захватить рынок своему соб­ ственному решению. В реальной жизни все эти и еще некоторые мотивы соче­ таются в разнообразных пропорциях, образуя весьма сложное политическое окружение.

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

После принятия стандарта начинается его реализация разработчиками. Это приводит к появлению массы несовместимых систем, а значит, к необхо­ димости запуска вторичного процесса стандартизации, в ходе которого про­ водится тестирование на совместимость. Затем разные разработчики начина­

392

Глава 23. Стандарты

ют адаптировать свои реализации, чтобы они могли взаимодействовать друг с другом.

Описанный процесс обычно изобилует проблемами. Фракции комитета практически не уделяют внимания разработке хорошего технического стан­ дарта. Самое главное для комитета — достичь согласия. Окончательный ва­ риант стандарта принимается тогда, когда каждый член комитета недоволен результатом. Чтобы удовлетворить интересы различных фракций, стандарты наделяются массой возможностей, расширенной функциональностью, беспо­ лезными вариантами и т.п. А поскольку каждая фракция имеет собственные идеи, собственное мнение и собственный взгляд на проблему, наилучший ком­ промисс зачастую оказывается противоречивым. Многие стандарты содержат внутренние нестыковки или даже противоречат сами себе.

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

23.1.1 Стандарт

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

23.1.2 Функциональность

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

23.1 Процесс стандартизации

393

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

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

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

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

23.1.3 Безопасность

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

Мы уже неоднократно подчеркивали, насколько важной является про­ стота. Стандарты же обладают чем угодно, только не простотой. Процесс разработки стандарта договорным путем исключает простоту и неизбежно приводит к появлению чего-то настолько сложного, что будут не в состоянии понять сами члены комитета. Уже одного этого вполне достаточно, чтобы стандарт нельзя было считать безопасным.