В. Р. Гинзбург Перевод с английского



Pdf көрінісі
бет81/203
Дата26.09.2024
өлшемі2,74 Mb.
#145829
1   ...   77   78   79   80   81   82   83   84   ...   203
Байланысты:
практическая криптография


Глава 9. Проблемы реализации. Часть I
использование общей памяти должно подтверждаться обеими программами,
что несколько снижает риск. Но иногда общая память может быть предо-
ставлена автоматически как результат загрузки общей библиотеки.
Огромную опасность в этом отношении представляют программы-отлад-
чики. Современные операционные системы часто содержат средства, предна-
значенные для использования отладчиками. Различные версии Windows поз-
воляют подключить отладчик к уже запущенному процессу. Отладчику раз-
решено делать многое, в том числе и читать память. Кроме того, в UNIX ино-
гда возможно создать дамп оперативной памяти для конкретной программы.
Дамп оперативной памяти (core dump) — это файл, содержащий образ памя-
ти, в которой хранятся данные программы, включая и все секретные данные.
Еще одна угроза исходит от особо могущественных пользователей. Такие
люди, называемые
суперпользователями (superusers)
или
администратора-
ми (administrators)
, могут осуществлять доступ к содержимому компьютера,
недоступному для обычных пользователей. Например, в операционной систе-
ме UNIX суперпользователь может читать любую часть памяти.
В общем случае ваша система не сможет эффективно защитить себя от
подобных типов атак. Если вы достаточно осторожны, то, вероятно, сможете
избежать некоторых из перечисленных проблем, но обычно добиться удается
немногого. Тем не менее все эти вопросы следует тщательно рассмотреть для
конкретной платформы, с которой вы работаете.
9.3.6
Целостность данных
Помимо сохранения секретов, мы должны защищать и целостность дан-
ных. Для защиты целостности данных в процессе их передачи по каналу
общения используется код аутентичности сообщения (MAC), но как же быть,
если данные будут изменены в памяти компьютера?
В этой главе мы предполагаем, что аппаратное обеспечение является на-
дежным. Если оно ненадежно, вам вряд ли удастся сделать что-нибудь сто-
ящее. Если вы не уверены в надежности своего оборудования, потратьте
немного времени и памяти на то, чтобы это проверить, хотя в действитель-
ности такой работой должна заниматься операционная система. Лично мы
всегда стараемся гарантировать, что главная память компьютера поддержи-
вает технологию кода коррекции ошибок (error correcting code — ECC)
4
. Если
в каком-нибудь одном разряде памяти произойдет ошибка, ECC обнаружит
и исправит ее. При отсутствии ECC ошибка в любом разряде приведет к тому,
что процессор считает неправильные данные.
4
Убедитесь, что все компоненты компьютера поддерживают ECC. Остерегайтесь более
дешевых модулей памяти, которые не сохраняют дополнительную информацию, а пере-
считывают ее “на лету”. Это сводит на нет само назначение ECC.


9.3. Как сохранить секреты
167
Почему это так важно? Память современных компьютеров содержит ги-
гантское количество разрядов. Предположим, что модули памяти облада-
ют высоким качеством сборки, а значит, вероятность сбоя каждого разряда
в конкретную секунду времени составляет только
10

15
. Если в компьютере
установлены 128 Мбайт памяти, у нас есть около
10
9
разрядов, а следователь-
но, сбоя одного разряда можно ожидать каждые 11 дней, что, разумеется, не
слишком хорошо для наших систем. Частота ошибок возрастает с увеличени-
ем объема памяти, поэтому в компьютере с 1 Гбайт памяти появления ошибки
можно ожидать каждые 32 часа. Серверы обычно используют память с под-
держкой ECC, поскольку обладают б´ольшим количеством памяти и вынуж-
дены беспрерывно работать на протяжении длительных периодов времени.
Хотелось бы, чтобы подобной стабильностью обладали и все другие машины.
Разумеется, данная проблема касается исключительно аппаратного обес-
печения. В большинстве случаев вы не сможете проконтролировать тип па-
мяти компьютера, на котором будет запущена готовая система.
Некоторые угрозы, касающиеся нарушения конфиденциальности данных,
могут привести и к нарушению их целостности. Отладчики иногда способны
изменить содержимое памяти, используемой программой. Ничем не лучше
суперпользователи, которые могут изменить содержимое памяти напрямую.
И хотя от вас в этой ситуации ничего не зависит, знать о потенциальной
опасности все же необходимо.
9.3.7
Что делать
Сохранить в секрете данные на современном компьютере отнюдь не так
просто, как кажется. Существует множество путей утечки информации. Для
получения действительно эффективной системы безопасности их нужно пе-
рекрыть. К сожалению, современные операционные системы и языки про-
граммирования не обеспечивают поддержки, необходимой для полного пре-
кращения утечки. Вам придется сделать все, что в ваших силах. Это потребу-
ет выполнения большого объема работы, специфической для используемого
окружения.
Помимо всего прочего, описанные проблемы значительно затрудняют со-
здание библиотеки криптографических функций. Сохранение данных в сек-
рете часто требует внесения изменений в главную программу. И разумеется,
главная программа также работает с данными, которые должны быть сохра-
нены в секрете; в противном случае ей бы вообще не понадобилась криптогра-
фическая библиотека. Это одна из распространенных проблем безопасности,
которая влияет на все части системы.


168

Достарыңызбен бөлісу:
1   ...   77   78   79   80   81   82   83   84   ...   203




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет