КРИПТОГРАФИЧЕСКОЕ УПРАВЛЕНИЕ ДОСТУПОМ К ДОКУМЕНТАМ
CRYPTOGRAPHIC MANAGEMENT OF ACCESS TO DOCUMENTS

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ
Предоставление доступа к пользовательским данным обычно выполняют программным образом. То есть операционная система или веб-служба предоставляют доступ к данным, основываясь на правах доступа пользователя. Эта модель не очень безопасна, особенно в размещенных в Интернет носителях, в которых данные пользователя хранятся на сервере, который доступен многим другим пользователям или процессам. Если безопасность сервера нарушена, то к данным пользователя можно осуществлять доступ без разрешения пользователя или так, что он не будет знать об этом. Чем больше субъектов участвует в обработке данных пользователя, тем менее защищены данные.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Кратко, аспекты описанного предмета изобретения относятся к криптографическому управлению доступом к документам. В аспектах документы шифруют для защиты их от несанкционированного доступа. Участник системы безопасности, стремящийся осуществлять доступ к документу, сначала получает документ. Документ включает в себя идентификатор, который идентифицирует данные безопасности, связанные с документом. Данные безопасности включают в себя зашифрованную часть, которая включает в себя полномочия для участников системы безопасности, у которых есть доступ к документу. Участник системы безопасности, имеющий соответствующий ключ, может расшифровывать свои полномочия в данных безопасности для получения одного или большего количества других ключей, которые можно использовать для получения доступа к документу. Эти другие ключи соответствуют правам доступа, которые участник системы безопасности имеет по отношению к документу.
Данную сущность изобретения обеспечивают для того, чтобы кратко идентифицировать некоторые аспекты предмета изобретения, которое дополнительно описано ниже в подробном описании. Данная сущность изобретения не предназначена для идентификации ключевых или существенных признаков заявляемого предмета изобретения, и при этом она не используется для ограничения объема заявляемого предмета изобретения.
Фраза «описанный здесь предмет изобретения» относится к предмету изобретения, описанному в подробном описании, если контекст ясно не указывает иначе. Термин «аспекты» следует читать как «по меньшей мере, один аспект». Идентификация аспектов предмета изобретения, описанного в подробном описании, не предназначена для идентификации ключевых или существенных признаков заявляемого предмета изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Описанные выше аспекты и другие аспекты описанного предмета изобретения показаны для примера, а не в качестве ограничения, на сопроводительных фигурах, на которых одинаковые позиционные обозначения указывают аналогичные элементы и на которых:
Фиг.1 - блок-схема, представляющая примерную универсальную вычислительную среду, в которую в данном случае можно внедрять аспекты описанного предмета изобретения;
фиг.2 - блок-схема, которая в общем виде представляет примерную среду, в которой в данном случае могут работать аспекты описанного предмета изобретения;
фиг.3 - блок-схема, которая в общем виде представляет примерный набор субъектов, которые могут участвовать в обеспечении доступа к документу согласно аспектам описанного предмета изобретения;
фиг.4 показывает некоторые примерные структуры данных, которые могут использоваться совместно с аспектами описанного предмета изобретения;
фиг.5 - схема последовательности операций, которая в общем виде представляет примерные действия, которые могут происходить при доступе к документу в соответствии с аспектами описанного предмета изобретения; и
фиг.6 - блок-схема, которая представляет примерное устройство, конфигурируемое для работы в соответствии с аспектами описанного предмета изобретения.
ПОДРОБНОЕ ОПИСАНИЕ ПРИМЕРНОЙ ОПЕРАЦИОННОЙ СРЕДЫ
Фиг.1 показывает пример подходящей вычислительной системной среды 100, в которой в данном случае можно реализовывать аспекты описанного предмета изобретения. Вычислительная системная среда 100 является только одним из примеров подходящей вычислительной среды и не вводит никаких ограничений относительно области применения или функциональных возможностей аспектов описанного предмета изобретения. Вычислительную среду 100 также нельзя интерпретировать как имеющую какую-либо зависимость или требование, относящееся к какому-либо одному или к комбинации компонентов, показанных в примерной операционной среде 100.
Аспекты описанного предмета изобретения работают с множеством других универсальных или специальных вычислительных системных сред или конфигураций. Примеры известных вычислительных систем, сред и/или конфигураций, которые могут подходить для использования с аспектами описанного предмета изобретения, включают в себя, но не ограничены ими, персональные компьютеры, серверы, карманные или портативные компьютеры, многопроцессорные системы, основанные на микроконтроллере системы, компьютерные приставки к телевизору, программируемую бытовую электронику, сетевые ПК (персональные компьютеры), миникомпьютеры, универсальные компьютеры, распределенные вычислительные среды, которые включают в себя любую из указанных выше систем или устройств, и т.п.
Аспекты описанного предмета изобретения можно описывать в общем контексте выполняемых компьютером команд, таких как программные модули, выполняемые компьютером. В общем случае программные модули включают в себя подпрограммы, программы, задачи, компоненты, структуры данных и т.д., которые выполняют определенные задачи или реализовывают определенные абстрактные типы данных. Аспекты описанного предмета изобретения можно также осуществлять в конфигурациях с распределенными вычислительными средами, в которых задачи выполняют с помощью удаленных устройств обработки, которые связаны через сеть связи. В распределенных вычислительных средах программные модули могут располагаться на носителях данных, включающих в себя устройства хранения, как локальных, так и удаленных компьютеров.
Обращаясь к фиг.1, примерная система для реализации аспектов описанного предмета изобретения включает в себя универсальное вычислительное устройство в форме компьютера 110. Компоненты компьютера 110 могут включать в себя, но не ограничены ими, блок 120 обработки, системную память 130 и системную шину 121, которая связывает различные системные компоненты, включающие в себя системную память, с блоком 120 обработки. Системная шина 121 может быть любой из нескольких типов шинных структур, включающих в себя шину памяти или контроллер памяти, периферийную шину и локальную шину, использующих любую из разнообразия шинных архитектур. Для примера, а не в качестве ограничения, такая архитектура включает в себя шину промышленной стандартной архитектуры (ISA), шину микроканальной архитектуры (MCA), шину расширенной ISA (EISA), локальную шину ассоциации видеоэлектронных стандартов (VESA) и шину взаимодействия периферийных компонентов (PCI), также известную как шина расширения.
Компьютер 110 обычно включает в себя множество считываемых компьютером носителей. Считываемый компьютером носитель может быть любым доступным носителем, к которому может обращаться компьютер 110, и включает в себя и энергозависимые, и энергонезависимые носители, и съемные, и несъемные носители. Для примера, а не в качестве ограничения, считываемый компьютером носитель может содержать компьютерные носители данных и среды связи. Компьютерные носители данных включают в себя и энергозависимые, и энергонезависимые, и съемные, и несъемные носители, реализованные с помощью любого способа или технологии хранения информации, такой как считываемые компьютером команды, структуры данных, программные модули или другие данные. Компьютерные носители данных включают в себя, но не ограничены ими, RAM, ROM, EEPROM, флэш-память или память другой технологии, CD-ROM, цифровые универсальные диски (DVD) или другой оптический дисковый носитель, магнитные кассеты, магнитную ленту, магнитную дисковую память или другое магнитное устройство хранения, или любой другой носитель, который может использоваться для хранения необходимой информации и к которому может обращаться компьютер 110. Среды связи обычно воплощают считываемые компьютером команды, структуры данных, программные модули или другие данные в модулированном сигнале данных, таком как несущая, или используют другой механизм транспортировки и включают в себя любые средства доставки информации. Термин «модулированный сигнал данных» означает сигнал, который имеет одну или более из своих характеристик, установленные или измененные таким образом, чтобы кодировать информацию в сигнале. Для примера, а не в качестве ограничения, среды связи включают в себя проводную среду, такую как проводные сети или прямое проводное подключение, и беспроводную среду, такую как акустическая, RF, инфракрасная и другие беспроводные среды. Считываемые компьютером носители должны также включать в себя комбинации любых из указанных выше носителей.
Системная память 130 включает в себя компьютерные носители данных в форме энергозависимой и/или энергонезависимой памяти, такой как постоянное запоминающее устройство (ROM) 131 и оперативная память (RAM) 132. Базовая система ввода-вывода (BIOS) 133, которая содержит основные подпрограммы, которые помогают перемещать информацию между элементами в пределах компьютера 110, например, во время запуска, обычно хранится в ROM 131. RAM 132 обычно содержит данные и/или программные модули, которые мгновенно доступны для обработки и/или в данный момент обрабатываются блоком 120 обработки. Для примера, а не в качестве ограничения, фиг.1 показывает операционную систему 134, прикладные программы 135, другие программные модули 136 и данные 137 программ.
Компьютер 110 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители данных. Только для примера, фиг.1 показывает накопитель 141 на жестком диске, который считывает с или записывает на несъемный энергонезависимый магнитный диск, накопитель 151 на магнитном диске, который считывает с или записывает на съемный энергонезависимый магнитный диск 152, и привод 155 оптического диска, который считывает с или записывает на съемный энергонезависимый оптический диск 156, такой как CD-ROM или другой оптический носитель. Другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители данных, которые могут использоваться в примерной операционной среде, включают в себя, кассеты магнитной ленты, карты флэш-памяти, цифровые универсальные диски, цифровую видеопленку, полупроводниковую RAM, полупроводниковое ROM и т.п., но не ограничены ими. Накопитель 141 на жестком диске обычно подключается к системной шине 121 через интерфейс несъемного запоминающего устройства, такой как интерфейс 140, а накопитель 151 на магнитном диске и привод 155 оптического диска обычно подключается к системной шине 121 через интерфейс съемного запоминающего устройства, такой как интерфейс 150.
Приводы и соответствующие им компьютерные носители данных, рассмотренные выше и показанные на фиг.1, обеспечивают хранение считываемых компьютером команд, структур данных, программных модулей и других данных для компьютера 110. На фиг.1, например, накопитель 141 на жестком диске показан в качества устройства хранения операционной системы 144, прикладных программ 145, других программных модулей 146 и данных 147 программ. Следует отметить, что эти компоненты могут или быть теми же самыми, как операционная система 134, прикладные программы 135, другие программные модули 136 и данные 137 программ, или отличаться от них. Операционной системе 144, прикладным программам 145, другим программным модулям 146 и данным 147 программ присвоены другие обозначения для того, чтобы показать, что они, как минимум, являются другими копиями. Пользователь может вводить команды и информацию в компьютер 20 через устройства ввода, такие как клавиатура 162 и устройство 161 позиционирования, такое как мышь, трекбол или сенсорная панель. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровую клавиатуру, спутниковую антенну, сканер, сенсорный экран карманного ПК или подобные устройства. Эти и другие устройства ввода часто подключаются к процессору 120 через входной пользовательский интерфейс 160, который связан с системной шиной, но они могут быть подключены с помощью другого интерфейса и шинных структур, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB). Монитор 191 или другой вид устройства отображения также подключается к системной шине 121 через интерфейс, такой как видеоинтерфейс 190. В дополнение к монитору, компьютеры могут также включать в себя другие периферийные устройства вывода, такие как динамики 197 и принтер 196, которые могут быть подключены через интерфейс 190 внешних устройств вывода.
Компьютер 110 может работать в сетевом окружении, используя логические подключения к одному или большему количеству удаленных компьютеров, такому как удаленный компьютер 180. Удаленный компьютер 180 может быть персональным компьютером, сервером, маршрутизатором, сетевым ПК, равноправным устройством сети или другим обычным сетевым узлом, и обычно включает в себя многие или все элементы, описанные выше относительно компьютера 110, хотя на фиг.1 показано только устройство 181 хранения. Логические подключения, показанные на фиг.1, включают в себя локальную сеть (LAN) 171 и глобальную сеть (WAN) 173, но могут также включать в себя другие сети. Такие сетевые среды обычно применяют в офисах, компьютерных сетях в масштабах предприятия, интрасетях и Интернет.
При использовании в сетевой среде LAN, компьютер 110 подключен к LAN 171 через сетевой интерфейс, или адаптер 170. При использовании в сетевой среде WAN, компьютер 110 обычно включает в себя модем 172 или другие средства для установления связи через WAN 173, такой как Интернет. Модем 172, который может быть внутренним или внешним, может быть подключен к системной шине 121 через пользовательский интерфейс 160 ввода, или другой соответствующий механизм. В сетевой среде программные модули, показанные относительно компьютера 110 или его частей, могут храниться в удаленном устройстве хранения. Для примера, а не в качества ограничения, фиг.1 показывает удаленные прикладные программы 185 как находящиеся в устройстве 181 памяти. Следует признать, что показанные сетевые соединения являются примерными, и могут использоваться другие средства установления канала связи между компьютерами.
Управление доступом к документам
Фиг.2 - блок-схема, которая в общем виде представляет примерную среду, в которой в данном случае могут работать аспекты описанного предмета изобретения. Среда включает в себя пользовательские устройства 205-207, устройства 210-212 хранения, размещаемое приложение 215, службы 220-223 и сеть 225.
Пользователь может использовать пользовательское устройство 205 для сохранения данных на устройстве 210 хранения. К пользовательским данным могут затем обращаться пользовательские устройства 205-207, службы 220-223 и размещаемое приложение 215. Пользовательские данные можно также реплицировать на устройства 211-212 репликации.
Пользовательскими устройствами 206 и 207 может управлять пользователь, который сохранял данные, или ими могут управлять другие пользователи, которым пользователь дал права доступа к данным. Например, у пользователя может быть компьютер (например, пользовательское устройство 205) на работе, с которого пользователь сохраняет данные на устройстве 210 хранения. Дома у пользователя может быть другой компьютер (например, пользовательское устройство 206), с которого пользователь осуществляет доступ к данным. У пользователя могут также быть сотовый телефон или другое электронное устройство (например, пользовательское устройство 207), с которого пользователь осуществляет доступ к данным. Когда пользователь путешествует, пользователь может осуществлять доступ к данным через компьютер, который пользователь берет с собой, или через другой компьютер или электронное устройство, которое пользователь может использовать.
Как указано ранее, пользователю может быть необходимо сделать так, чтобы другие пользователи имели доступ к данным, и он может предоставлять другим пользователям такой доступ. Эти пользователи могут использовать компьютеры или другие электронные устройства (например, пользовательские устройства 206 и 207) для доступа к данным согласно их правам доступа.
Пользователю может быть необходимо обращаться к данным через размещаемое приложение 215. Пользователь может осуществлять доступ к размещаемому приложению 215, например, через веб-браузер, и может затем осуществлять доступ к данным через размещаемое приложение 215.
Пользователю может быть необходимо, чтобы определенные службы имели доступ к данным пользователя. Например, пользователю может быть необходимо, чтобы сервер 221 рекламы имел доступ к данным пользователя для обеспечения соответствующей рекламы пользователю или другим. Пользователю может быть необходимо, чтобы поисковая машина 220 имела доступ к данным пользователя для предоставления возможности другим находить данные пользователя. Пользователю может быть необходимо, чтобы архивная служба 222 имела доступ к данным для создания резервной копии данных. Пользователю может также быть необходимо, чтобы другие службы 223 имели доступ к данным в различных целях.
Пользователю может быть необходимо, чтобы каждому субъекту с доступом к пользовательским данным дали определенный набор прав доступа, которые могут изменяться от субъекта к субъекту. Например, пользователю может быть необходимо, чтобы архивная служба могла копировать данные, но не могла осмысленно считывать данные или изменять данные. Возможность копирования данных, не считывая их осмысленно и не изменяя их, иногда упоминается как доступ «только для копирования». В качестве другого примера, пользователю может быть необходимо, чтобы сервер 221 рекламы и поисковая машина 220 могли считывать данные, но не могли записывать данные. Пользователю может быть необходимо, чтобы некоторые коллеги имели доступ чтения/записи к данным, в то время как другие деловые партнеры имели доступ для чтения или доступ только для копирования данных.
Сеть 225 представляет любой механизм и/или набор из одного или большего количества устройств для передачи данных от одного субъекта к другому и может включать в себя интрасеть и интерсеть, Интернет, телефонные линии, сети сотовой связи, сетевое оборудование и т.п. Пользователю могут потребоваться сетевые устройства 225, которые могут копировать данные для передачи их к другим субъектам, но не способные изменять данные или считывать их осмысленно.
Примеры устройств (например, устройств 205-207 и 210-212) включают в себя сотовые телефоны, устройства обмена текстовыми сообщениями, смартфоны, сетевые устройства, специальные и универсальные электронные устройства (или их части), которые описаны в связи с фиг.1, их комбинации или разновидности и т.п.
Специалисты должны признать, что наличие множества субъектов, которые обрабатывают или получают доступ к данным, делает более трудным сохранение данных защищенными и обеспечение того, чтобы доступом управляли необходимым образом. Аспекты описанного предмета изобретения направлены на управление доступом, как описано ниже.
Фиг.3 - блок-схема, которая в общем виде представляет примерный набор субъектов, которые могут участвовать в обеспечении доступа к документу согласно аспектам описанного предмета изобретения. Субъекты включают в себя запрашивающий субъект 305, ноль или большее количество промежуточных субъектов 310 и 330, субъект 315 доступа к памяти, устройство 320 хранения и репозиторий 335 данных безопасности.
В одном из вариантов осуществления запрашивающий субъект - электронное устройство, такое как компьютер, а промежуточные субъекты 310 и 330 являются нулевым или большим количеством сетевых устройств, серверов или других устройств, которые находятся между запрашивающим субъектом и субъектом 315 доступа памяти и/или репозиторием 335 данных безопасности. Субъектом 315 доступа к памяти является устройство, которое может получать доступ к запоминающему устройству (например, к устройству 320 хранения), на котором хранится требуемый документ.
Документ, как используется здесь, включает в себя любой набор битов любой длины, которые можно сохранять на устройстве хранения. Как будет обсуждаться более подробно в связи с фиг.4, версия документа может включать в себя среди других данных идентификатор документа, идентификатор данных безопасности и зашифрованные данные. Идентификатор документа однозначно определяет документ в определенной области имен. Идентификатор данных безопасности может использоваться для извлечения данных безопасности, относящихся к документу. Зашифрованные данные могут включать в себя, например, содержимое, безопасность которых пользователю необходимо обеспечить, например, файл обработки текста, электронную таблицу, другие данные, ключи к шифру, которые могут использоваться для дешифрования других данных, или любые другие данные, которые важны для пользователя.
Поскольку данные зашифрованы, их могут осмысленно считывать только те, у кого есть ключ для дешифрования данных. Как будет обсуждаться более подробно ниже, эти ключи хранятся в данных безопасности в репозитории данных безопасности. С помощью соответствующего ключа пользователь может расшифровывать зашифрованные данные и получать доступ к содержимому.
Устройство 320 хранения является любым считываемым компьютером носителем, который может хранить данные, и он может включать в себя, например, распределенные файловые системы. Некоторый примерный считываемый компьютером носитель, который подходит для запоминающего устройства 320, описан выше в связи с фиг.1.
Репозиторий 335 данных безопасности хранит данные безопасности, относящиеся к документам, хранящимся на устройстве 320 хранения. Репозиторий 335 данных безопасности может включать в себя одно устройство или несколько устройств, которые работают во взаимодействии друг с другом. Репозиторий 335 данных безопасности может включать в себя запись данных безопасности для каждой версии документа. Запрашивающий субъект 305 может запрашивать запись данных безопасности, соответствующую извлеченному документу, посылая идентификатор данных безопасности, который включает в себя документ, в репозиторий данных безопасности, и запрашивая данные безопасности, идентифицированные таким образом.
В одном из вариантов осуществления данные безопасности могут храниться непосредственно в документе. В данном варианте осуществления запрашивающий субъект может получать данные безопасности непосредственно из документа.
В одном из вариантов осуществления одним или большим количеством субъектов 305, 310, 315 и 330 могут быть один или большее количество процессов или компонентов, которые выполняются на одном или большем количестве устройств. В одном из вариантов осуществления устройство 320 хранения и/или репозиторий 335 данных безопасности может быть устройствами, которые включает в себя устройство, на котором выполняется запрашивающий субъект 305, или соединены с ним. Документы, хранящиеся в устройстве 320 хранения, могут быть помещены туда пользователем устройства, на котором выполняется запрашивающий субъект 305, другим устройством, или их можно помещать туда, например, с помощью инфраструктуры реплицирования файла.
Как можно заметить, в примерной операционной среде, описанной выше в связи с фиг.3, документ может проходить через многие субъекты по маршруту к и от субъектов, которые стремятся осуществлять доступ к документу. Шифрование данных документа и указание того, какие данные безопасности необходимы для дешифровки данных, позволяет надежно сохранять данные на любом устройстве хранения и в любой конфигурации устройств.
Фиг.4 показывает некоторые примерные структуры данных, которые можно использовать в связи с аспектами описанного предмета изобретения. Структуру данных версии документа (например, структуру 400 данных версии документа) можно сохранять для каждой версии документа. Каждая структура 400 данных версии документа может включать в себя различные поля, включающие в себя идентификатор 405 документа, идентификатор 410 данных безопасности, временную метку 415, зашифрованные данные 420 и сигнатуру 425.
Идентификатор 405 документа может использоваться для однозначного определения документа в заданной области имен. Например, унифицированный идентификатор ресурса (URI), имеющий синтаксис подобный http (например, live://alice/users/file1.txt), может использоваться для идентификации документов в заданной области имен.
Идентификатор 410 данных безопасности можно использовать для идентификации данных безопасности, связанных с документом. В одном из вариантов осуществления идентификатором 410 данных безопасности является хэш полей (кроме самого этого поля) в структуре данных безопасности (например, в структуре 427 данных безопасности). Хэш принимает входные данные и вычисляет выходные данные фиксированной длины. Учитывая достаточно большую фиксированную длину выходных данных и подходящий хэш, значение хэш эффективно обеспечивает уникальный идентификатор для входного потока.
Поле 410 временной метки может включать в себя временную метку, которая указывает, когда версия была создана. Как обсуждается ранее, поле 420 зашифрованных данных может включать в себя любое содержимое, безопасность которого пользователю необходимо обеспечить.
Поле 425 сигнатуры содержит один или большее количество механизмов, которые могут использоваться для гарантии того, что структура 400 данных версии документа была создана уполномоченным пользователем и не изменилась после создания.
Структура 400 данных версии документа может включать в себя больше или меньше полей, пока она включает в себя механизм для идентификации или включения в себя данных безопасности, относящихся к документу, и механизм для шифрования необходимых данных.
Структура 427 данных безопасности может включать в себя поле 430 идентификатора данных безопасности, одно или большее количество полей 435 полномочий, один или большее количество ключей 440 и сигнатуру 425. В одном из вариантов осуществления идентификатор данных безопасности в поле 430 идентификатора данных безопасности можно вычислять, как описано ранее (т.е. как хэш других полей структуры 427 данных безопасности).
Поле 435 полномочий включает в себя полномочия для каждого участника системы безопасности, у которого должен быть доступ к структуре 400 данных версии документа. В некоторых вариантах осуществления участником системы безопасности является субъект, который можно положительно идентифицировать и проверить через методику, известную как аутентификация. В других вариантах осуществления участник системы безопасности может содержать ключ, расшифрованный из данных безопасности, связанных с другим документом. Участник системы безопасности может включать в себя пользователя, машину, службу, процесс, другой субъект, дешифрованный ключ или множество (например, группу) из одного или большего количества из описанного выше. Каждое полномочие можно шифровать с помощью ключа, который можно расшифровывать с помощью ключа, хранящегося у участника системы безопасности, или созданного им. Криптография с открытым ключом/секретным ключом является одним из механизмов, которые могут использоваться для шифрования/дешифрования полномочия.
Поскольку у определенного участника системы безопасности может быть много ключей и может быть много полномочий в документе, для которого обеспечивают безопасность, в одном из вариантов осуществления оптимизация обеспечивает подсказку ключа, которая обеспечивает первые несколько битов (в открытом тексте) ключа, который можно использовать для дешифрования полномочий. Подсказка ключа позволяет субъекту быстро определять, какие полномочия он должен попытаться расшифровать, поскольку субъект может просто сравнивать первые несколько битов со своим ключом. Когда существуют сотни или тысячи полномочий, экономия времени, обеспечиваемая этим механизмом, может быть существенной. Поскольку можно обеспечивать только несколько бит (например, между 2 и 16), устойчивость механизма, используемого для шифрования/дешифрования полномочий, не может быть значительно ослаблена. Если нужно, то устойчивость механизма можно увеличивать с помощью использования более длинных ключей.
В одном из вариантов осуществления полномочие включает в себя зашифрованные ключи, которые позволяют участнику системы безопасности выполнять одно или большее количество прав доступа по отношению к версии документа. Например, пользователю-участнику можно дать права читать документ, создать новые версии документа, изменять то, какие участники системы безопасности могут получать доступ к документу, и выполнять любые другие связанные с безопасностью действия по отношению к документу. Другому пользователю-участнику можно давать доступ только для чтения или только для записи. Субъекты, которым не дают прав по отношению к документу, могут все равно иметь доступ только для копирования (т.е. возможность копировать, но не осмысленно читать зашифрованные данные). Такие субъекты можно использовать, например, для архивирования документов.
В другом варианте осуществления полномочие может включать в себя зашифрованный ключ, который позволяет участнику системы безопасности расшифровывать дополнительные ключи в другом месте (например, в ключе(ах) 440) структуры 427 данных безопасности. Эти дополнительные ключи могут предоставлять права доступа к документу участнику системы безопасности. Это можно сделать, например, для уменьшения места, необходимого для структуры 427 данных безопасности, поскольку один ключ в полномочии может использоваться для дешифрования множества ключей в другом месте в структуре 427 данных безопасности. Когда структура 427 данных безопасности включает в себя сотни или тысячи полномочий, множество полномочий могут совместно использовать общий набор прав доступа. Хотя ключи, соответствующие этим правам доступа, могут включать в себя само полномочие, может быть более эффективно по отношению к месту обеспечивать один ключ в каждом полномочии, что позволяет участникам системы безопасности расшифровывать ключи доступа в другом месте в структуре 427 данных безопасности.
Ключи 440 могут включать в себя зашифрованные секретные ключи, как обсуждается ранее, которые могут соответствовать правам доступа, предоставленным в документе. Эти ключи можно расшифровывать с помощью ключей, полученных в поле 435 полномочия(й), как обсуждается ранее.
Поле 445 сигнатуры может использоваться таким же образом, как поле 425 сигнатуры структуры 400 данных.
Структура 427 данных безопасности может включать в себя больше или меньше полей, пока она включает в себя механизм для обеспечения ключей для доступа к соответствующему документу(ам) полномочным пользователям.
Структура 400 данных версии документа может включать в себя идентификатор, который идентифицирует другую структуру данных версии документа. Другая структура данных версии документа может включать в себя ключ, который разрешает доступ к документу. Этот механизм может использоваться для обеспечения группового доступа к документу. Например, полномочия в структуре данных безопасности, связанной с первой структурой данных версии документа, могут соответствовать ключам, хранящимся у членов группы. Любой член группы, у которой есть соответствующий ключ, может получать ключ участника из данных безопасности, который позволяет участнику получать доступ ко второму документу согласно правам, предоставленным группе в данных безопасности, связанных со вторым документом. Таким образом, доступ к документу может использовать доступ к промежуточному документу.
В другом варианте осуществления структура 400 данных версии документа может не содержать идентификатор. В данном варианте осуществления можно предложить другой механизм, согласно которому ключи в данных безопасности первого документа могут обеспечивать доступ ко второму документу. Например, если первый документ, как известно, обеспечивает групповой доступ к другому документу, то ключ участника из данных безопасности первого документа можно попробовать на каждом полномочии в данных безопасности для любого документа, к которому пользователь пытается обратиться. Подсказки о ключе, которые описаны ранее, могут ускорять этот процесс.
Фиг.5 - схема последовательности операций, которая в общем виде представляет примерные действия, которые могут происходить при доступе к документу в соответствии с аспектами описанного предмета изобретения. Действия начинаются на этапе 505.
На этапе 510 субъект запрашивает документ, который включает в себя зашифрованные данные. Например, обращаясь к фиг.3, запрашивающий субъект 305 посылает запрос о документе, который хранится на устройстве 320 хранения.
На этапе 515 субъект принимает запрос. Например, обращаясь к фиг.3, один из промежуточных субъектов 310 или субъект 315 доступа к памяти принимает запрос.
На этапе 520 документ посылают запрашивающему субъект. Например, обращаясь к фиг.3, документ извлекают из устройства 320 хранения и посылают запрашивающему субъекту 305.
На этапе 525 запрашивающий субъект получает документ. Например, обращаясь к фиг.3, запрашивающий субъект 305 принимает документ.
На этапе 530 субъект делает запрос и получает данные безопасности, связанные с документом. Например, обращаясь к фиг.3, запрашивающий субъект 305 получает идентификатор безопасности из документа и посылает идентификатор безопасности вместе с запросом в репозиторий 335 данных безопасности. В вариантах осуществления, где документ включает в себя данные безопасности, запрашивающий субъект 305 может получать данные безопасности непосредственно из документа.
На этапе 535 по меньшей мере часть данных безопасности (например, полномочие) расшифровывают для получения указания разрешенного действия(й) доступа, относящегося к документу. Например, обращаясь к фиг.3 и 4, запрашивающий субъект 305 расшифровывает полномочие в поле 435 полномочий и определяет, что у запрашивающего субъекта 305 есть доступ для чтения к документу.
На этапе 540 ключ, соответствующий действию, получают из данных безопасности. В одном из вариантов осуществления ключ получают с помощью действия дешифрования на этапе 535; в другом варианте осуществления ключ получают из другой части документа безопасности. Например, обращаясь к фиг.3 и 4, запрашивающий субъект 305 получает ключ для чтения документа из поля 435 полномочий.
На этапе 545 ключ используется для выполнения действия. Например, обращаясь к фиг.3 и 4, запрашивающий субъект 305 использует ключ для дешифрования зашифрованных данных в поле 420 зашифрованных данных.
На этапе 550 заканчивают действия. В одном из вариантов осуществления действия происходят в порядке, описанном в связи с фиг.5. В других вариантах осуществления действия, описанные выше относительно фиг.5, могут происходить в другом порядке и/или параллельно, не отступая от объема или формы описанного предмета изобретения. Кроме того, следует признать, что действия могут происходить или могут не происходить очень близко по времени друг к другу. Например, система синхронизации файла может периодически запрашивать документы и сохранять их локально. Позже, когда пользователю необходимо просматривать документ, пользователь может попытаться открыть документ, и другие действия могут происходить для получения данных безопасности и дешифрования документа.
Фиг.6 - блок-схема, которая представляет примерное устройство, настроенное для работы в соответствии с аспектами описанного предмета изобретения. Устройство 605 может включать в себя запрашивающий компонент 610, криптографический компонент 615, средство 620 обнаружения документа, компонент 625 данных безопасности, хранилище 630 данных и механизм 635 связи.
Запрашивающий компонент 610 представляет описанный ранее запрашивающий субъект. Криптографический компонент 615 используется для шифрования и дешифрования данных и может, например, содержать библиотеку криптографических подпрограмм.
Средство 620 обнаружения документа определяет местоположение документа, которое может быть или в локальном хранилище 630 данных, или в некотором хранилище данных, внешнем по отношению к устройству 605.
Компонент 625 данных безопасности взаимодействует с данными безопасности для получения прав доступа, имеющих отношение к документу.
Механизм 635 связи предоставляет возможность устройству 605 осуществлять связь с другими устройствами для получения, например, документов и данных безопасности. Механизм 640 связи может быть сетевым интерфейсом или адаптером 170, модемом 172 или любым другим средством для установления связи, как описано в связи с фиг.1.
Следует признать, что другие разновидности устройства 605, показанного на фиг.6, можно воплощать, не отступая от объема или формы аспектов описанного предмета изобретения. Следует признать, что большее количество, меньшее количество или другие компоненты могут существовать в устройстве 605, не отступая от объема или формы аспектов описанного предмета изобретения.
Как можно заметить из предшествующего подробного описания, описаны аспекты, относящиеся к криптографическому управлению доступом к документам. Хотя аспекты описанного предмета изобретения восприимчивы к различным модификациям и альтернативным конструкциям, определенные показанные варианты его осуществления показаны на чертежах и описаны выше подробно. Следует подразумевать, однако, что нет никакого намерения ограничивать аспекты заявляемого предмета изобретения определенными раскрытыми формами, но напротив, намерение состоит в том, чтобы охватить все модификации, альтернативные конструкции и эквиваленты, находящиеся в пределах объема и формы различных аспектов описанного предмета изобретения.