Защита баз данных
Совсем другая задача возникает при использовании криптографических преобразований в базах данных, где вряд ли имеет смысл шифровать все поля. Так, шифрование всех данных в БД лечебного центра потребует много затрат и может помешать срочному получению справки о переносимости конкретным больным тех или иных лекарственных препаратов. По-видимому, достаточно хранить в шифрованном виде лишь файл соответствий фамилий больных номерам больничных электронных "карт", которые могут быть открытыми не только для лечащего персонала, но и студентов-медиков. Здесь налицо конфликт между стремлением обеспечить анонимность больных и сложностью получения лечащим врачом оперативной информации о пациенте в экстренных случаях. Сдается, что секретность в случаях, когда речь идет о жизни или смерти человека, отступает на второй план. В ряде медицинских экспертных систем США о пациенте можно получить полную информацию после того, как запрашивающий эту информацию пройдет специальную процедуру регистрации, позволяющую установить его личность. Если потом обнаружится, что необходимости в получении таких данных не было, то на получившего ее можно будет подать в суд и потребовать его возместить ущерб.
Несколько иначе дело обстоит у финансистов, где разглашение точных данных об отдельно взятом клиенте недопустимо и ведет к потере престижа фирмы. Однако жизненно необходимо знать статистические данные о клиентах и проведенных операциях. Поэтому ряд систем отказывают в выдаче сведений, если они обобщают данные меньше, чем для определенного числа клиентов, скажем, трех человек. Это очень слабая защита, легко разрушаемая хакерами логически. Например, в банке хранятся данные о профессии и состоянии счета клиентов, а нас интересует вопрос получении льготного кредита конкретным человеком, местным политиком. Задаем каверзные вопросы:
>Сколько местных политиков получило
льготные кредиты? Ответ: 5
>Сколько местных политиков пользуется
услугами банка? Ответ: 5
Отсюда несомненно следует, что интересующий нас человек пользовался льготным кредитом данного банка. Ряд систем программирования, как PROLOG, позволили бы блокировать ответ на второй вопрос, поняв, что ответ на него раскрывает не статистические, а личные данные. Однако это тема для отдельного разговора вне рамок этой книги. Таким образом, криптография сейчас охраняет или все, или ничего. Никак не получается давать лишь часть сведений, сохраняя все остальные в тайне, потому что данные обычно тесно семантически взаимосвязаны меж собой и открытие казалось бы несущественной детали порой проливает свет на целую бездну фактов. Тем не менее, во многих СУБД криптография широко используется хотя бы для того, чтобы уберечь данные или их часть от искажения. Криптографическое преобразование гарантирует их сохранность от лиц не владеющих ключом.
Чтобы предостеречь программистов от использования встроенных в базы данных средств шифрования, упомянем лишь один интересный факт. Есть компания, называемая AccessData, в штате Юта США с телефоном 1-800-658-5199. Она всего за $185 продает пакет программ для персональных ЭВМ, взламывающий встроенные схемы шифрования WordPerfect, Word, Lotus 1-2-3, Excel, Quattro Pro, Paradox и Oracle. Программы шифрования похожи на лекарства. Пилюля, полученная от шарлатана, обычно выглядит точно так же, как целительное снадобье.