Системы и способы для защиты выходного сигнала видеоплаты
Иллюстрации
Показать всеИзобретение относится к способам и системам для обработки данных с использованием видеоплат. Технический результат заключается в обеспечении защиты от несанкционированного копирования видеоданных. Технический результат достигается благодаря использованию памяти, которая содержится на видеоплате и имеет защищенные и незащищенные области, и видеоданные, подлежащие защите, содержатся в защищенных областях основной поверхности памяти на видеоплате. 15 н. и 43 з.п. ф-лы, 13 ил.
Реферат
Область техники
Настоящее изобретение относится к способам и системам для обработки данных с использованием видеоплат.
Предшествующий уровень техники
В типовом случае информационное содержание, находящееся в компьютере, может подвергаться попыткам взлома (несанкционированного доступа) лицами, которые стремятся похитить или модифицировать такое содержательное наполнение. В качестве примера рассмотрим случай автора содержательных материалов, такого как киностудия или пользователь, публикующего содержательные материалы на web-странице. В типовом случае эти лица будут публиковать видеосодержание, которое имеет ограничения на то, каким образом пользователи могут просматривать их. Это содержание в типовом случае может просматриваться или визуализироваться на компьютере, например на персональном компьютере. Большое количество времени, усилий и финансовых средств тратится каждый год недобросовестными людьми и организациями в попытках похитить или иным образом заполучить такое видеосодержание. Кроме того, рассмотрим случай программного обеспечения электронной коммерции, которое позволяет пользователям осуществлять сделки, например, банковские транзакции. Данные, которые отображаются на мониторе дисплея пользователю для просмотра и манипулирования данными, могут подвергаться попыткам взлома приложениями инородного программного обеспечения, исполняемого на компьютере пользователя. Т.е. инородные программы или устройства могут и часто пытаются несанкционированно получить содержание, как только оно получено на компьютере, таком как персональный компьютер.
Возможное решение, обеспечивающее защиту, может включать различные, основанные на программном обеспечении решения по цифровому управлению правами (ЦУП). Проблема в данном случае состоит в том, что не имеет значения, насколько хороша основанная на программном обеспечении, защищенная от несанкционированного доступа, «защищенная от наблюдения» система ЦУП, которая осуществляет программную визуализацию, - в конечном счете биты переходят в состояние записи на видеоплату, где их может «увидеть» и даже скопировать другое программное обеспечение. Это представляет сферу уязвимости. Таким образом, видеоплата, которая обрабатывает видеосодержание, может оказаться объектом попыток нарушения защиты.
На фиг. 1 представлен пример видео (или графической) платы 100, которая включает шинный разъем 102, который вставляется в порт на типовом компьютере. Видеоплата 100 также включает разъем 104 монитора (например, вилку на 15 выводов) для подсоединения кабеля, который соединяется с монитором. Видеоплата 100 может включать в себя цифровое гнездо 106 видеовыхода, которое может использоваться для передачи видеоизображений на жидкокристаллические (ЖК) и плоскопанельные мониторы и т.п.
Современная видеоплата состоит из четырех основных компонентов: графического процессора (ГП) 108, видеопамяти 110, цифроаналогового преобразователя оперативной памяти (ЦАП ОЗУ) 112 и программного обеспечения драйвера, который может быть включен в базовую систему ввода/вывода видеоданных (видео BIOS) 114.
ГП 108 представляет собой специализированную микросхему обработки графики, которая управляет всеми аспектами разрешения, глубины цвета и всеми элементами, связанными с воспроизведением изображений на экране монитора. Центральный процессор (ЦП) компьютера посылает набор инструкций и данных для рисования, которые интерпретируются специализированным драйвером графической платы и выполняются ГП 108 платы. ГП 108 выполняет такие операции, как переносы битовых карт и рисование, изменение размеров окна и изменение позиционирования, вычерчивание линий, масштабирование шрифта и рисование многоугольниками. ГП 108 проектируется для обработки этих задач в аппаратных средствах с намного более высокими скоростями, чем у программного обеспечения, исполняемого в системном ЦП. ГП затем записывает данные кадров в кадровый буфер (или во встроенную память 110 видеоданных). ГП в значительной степени сокращает нагрузку системного ЦП.
Память для хранения видеоизображения также называется кадровым буфером и обычно реализуется на самой видеоплате. В данном примере кадровый буфер реализован на видеоплате в форме памяти 110. Ранние системы реализовывали память видеоданных в стандартной динамической оперативной памяти (DRAM). Однако это требует постоянного обновления данных, чтобы предотвратить их потери, причем данные не могут модифицироваться в течение этого процесса обновления. Вследствие этого, в частности на очень высоких тактовых скоростях, требуемых современными графическими платами, рабочие характеристики существенным образом ухудшаются.
Преимуществом реализации памяти видеоданных на самой видеоплате является то, что она может настраиваться на конкретную задачу и, на самом деле, это привело в результате к быстрому разрастанию новых технологий памяти:
- оперативная память видеоданных (Video RAM(VRAM)): специальный тип двухпортовой DRAM, в которую одновременном может осуществляться запись и считывание. Она также требует намного менее частого обновления, чем обычная DRAM, и, следовательно, обеспечивает намного лучшие рабочие характеристики;
- Windows RAM (WRAM - двухпортовая память): в том виде, как она используется платой Matrox Millennium, эта память также представляет собой двухпортовую память и может работать несколько быстрее, чем обычная VRAM;
- EDO RAM (динамическая память с увеличенным временем доступности данных): обеспечивает большую ширину полосы, чем DRAM, может тактироваться с более высокой частотой, чем обычная DRAM, и более эффективно управляет циклами записи/считывания;
- SDRAM (синхронная динамическая память): подобна EDO RAM, за исключением того, что микросхемы памяти и графики работают с общим тактовым сигналом, используемым для фиксации данных, позволяя SDRAM работать более быстро, чем обычная память EDO RAM;
- SGRAM (синхронная графическая оперативная память): то же самое, что и SDRAM, но также поддерживает блочную запись и побитовую запись, что дает лучшие рабочие характеристики на графических микросхемах, которые поддерживают эти улучшенные функциональные возможности; и
- DRDRAM: прямая RDRAM, представляющая собой совершенно новую универсальную архитектуру памяти, которая обеспечивает 20-кратное улучшение рабочих характеристик по сравнению с обычной динамической оперативной памятью DRAM.
Некоторые конструкции интегрируют графические схемы в саму материнскую плату и используют часть системной оперативной памяти для кадрового буфера. Это определяется как «объединенная архитектура памяти» и используется только по причинам снижения стоимости и может привести к ухудшению эффективности графики.
Информация в кадровом буфере памяти видеоданных представляет собой изображение, которое появляется на экране, сохраненное как цифровая битовая карта. Но в то время как память видеоданных содержит цифровую информацию, ее выходной носитель, монитор, может использовать аналоговые сигналы. Аналоговые сигналы требуют более чем простого сигнала включения или выключения, как это используется для определения того, где, когда и какой интенсивностью электронная пушка должна быть инициирована, по мере того как она сканирует по монитору. Именно в этом случае используется память ЦАП ОЗУ (RAMDAC) 112, как описано ниже. Некоторые блоки памяти RAMDAC также поддерживают выходные данные цифрового видеоинтерфейса (DVI) для цифровых дисплеев, таких как ЖК мониторы. В таких конфигурациях RAMDAC преобразует внутреннее цифровое представление в форму, понятную для цифрового дисплея. Память RAMDAC выполняет функцию «цифрового преобразователя», поскольку она преобразует внутренние цифровые данные в форму, которая понятна для дисплея.
Даже если полный объем памяти видеоданных, инсталлированной на видеоплате, может не потребоваться для конкретного разрешения, дополнительная память часто используется для кэширования информации для графического процессора 108. Например, кэширование обычно используемых графических элементов, таких как текстовые шрифты и пиктограммы или изображения, устраняет необходимость в графических подсистемах для загрузки их каждый раз, когда записывается новый символ или перемещается пиктограмма, и при этом улучшаются рабочие характеристики.
Много раз за секунду RAMDAC 112 считывает содержание памяти видеоданных, преобразует его в сигнал и передает его по видеокабелю к монитору. Для аналоговых дисплеев в типовом случае имеется один цифроаналоговый преобразователь (ЦАП) для каждого из трех первичных цветов, которые ЭЛТ использует для создания полного спектра цветов. Для цифровых дисплеев память RAMDAC выдает единый поток RGB (красный-синий-зеленый) данных для интерпретации и отображения на выходном устройстве. Предусматриваемым результатом является корректная смесь, необходимая для создания цвета одного пиксела (элемента изображения). Скорость, с которой RAMDAC может преобразовывать информацию, и собственно конструкция графического процессора 108 определяет диапазон частот обновления, которые может поддерживать графика. RAMDAC 112 также определяет число цветов, доступных при заданном разрешении, в зависимости от его внутренней архитектуры.
Шинный разъем 102 может поддерживать одну или более шин, которые используются для соединения с видеоплатой. Например, шина ускоренного графического порта (AGP) может обеспечить прямой доступ видеоплаты к системной памяти. Непосредственный доступ к памяти позволяет сделать пиковую ширину полосы во много раз большей, чем у шины стандарта PCI (взаимного соединения периферийных компонентов). Это может позволить графическому процессору системы выполнять другие задачи в то время, когда графический процессор на видеоплате получает доступ к системной памяти.
В процессе работы данные, содержащиеся в памяти видеоданных на плате, могут быть выданы в системную память компьютера и могут управляться, как если бы они были частью системной памяти. Это включает использование, например, методов управления виртуальной памятью, которые использует программа-менеджер памяти компьютера. Кроме того, когда данные, содержащиеся в системной памяти, необходимы для операции графики на видеоплате, данные могут быть посланы по шине (такой как шина PCI или AGP) на видеоплату и сохраняться в памяти 110 видеоданных на плате. Затем к данным может быть обеспечен доступ и обработка со стороны графического процессора 108, как описано выше.
Настоящее изобретение вытекает из соображений, связанных с обеспечением способов и систем для защиты данных. В частности, изобретение вытекает из соображений, связанных с обеспечением способов и систем, которые являются устойчивыми по отношению к попыткам несанкционированного доступа, которые реализуются инородными приложениями, выполняемыми на компьютере пользователя.
Сущность изобретения
Различные способы и системы, описанные здесь, направлены на обеспечение защищенного канала для программного обеспечения, исполняемого на главном компьютере (хосте). Эти способы и системы обеспечивают решения для модели попыток несанкционированного доступа, в которой инородное программное обеспечение, исполняемое на компьютере-хосте, пытается несанкционированным образом получить доступ к данным или иным образом манипулировать данными. Некоторые варианты осуществления могут обеспечить данные элементов изображения, в отношении которых может поддерживаться конфиденциальность (состоящая в том, что не являющиеся доверительными приложения программного обеспечения не могут считывать данные с экрана дисплея). Кроме того, другие варианты осуществления могут сохранять целостность данных элементов изображения путем обнаружения того, имело ли место несанкционированное манипулирование данными элементов изображения.
Различные варианты осуществления базируются на процессоре дешифрирования, который располагается на видеоплате и действует на самом позднем этапе в последовательности обработки видеоданных, так что программный доступ к дешифрованным данным элементов изображения отклоняется.
Краткое описание чертежей
Фиг. 1 - блок-схема, показывающая различные компоненты приведенной для примера видео или графической платы, предназначенной для использования в компьютерной системе.
Фиг. 2 - блок-схема приведенной для примера компьютерной системы, которая может использовать видеоплаты в соответствии с описанным вариантом осуществления.
Фиг. 3 - блок-схема, показывающая различные компоненты приведенной для примера видео или графической платы, соответствующей изобретению.
Фиг. 4 - блок-схема, показывающая приведенную для примера основную поверхность, имеющую защищенные и незащищенные области.
Фиг. 5 - блок-схема последовательности этапов в способе, соответствующей возможному варианту осуществления.
Фиг. 6 - блок-схема последовательности этапов в способе, соответствующей возможному варианту осуществления.
Фиг. 7 - блок-схема, показывающая приведенную для примера основную поверхность, имеющую защищенную область и незащищенную область.
Фиг. 8 - блок-схема, показывающая экран дисплея, имеющий перекрывающиеся окна.
Фиг. 9 - диаграмма, показывающая приведенные для примера данные элементов изображения и связанную с этим таблицу вспомогательных функций.
Фиг. 10 - блок-схема последовательности этапов в способе, соответствующей возможному варианту осуществления.
Фиг. 11 - диаграмма, показывающая приведенную для примера таблицу ключей для каждого элемента изображения, соответствующую возможному варианту осуществления.
Фиг. 12- блок-схема последовательности этапов в способе, соответствующей возможному варианту осуществления.
Фиг. 13 - диаграмма, иллюстрирующая приведенную для примера таблицу, соответствующую возможному варианту осуществления.
Детальное описание
Примерная компьютерная система
На фиг. 2 представлен пример соответствующей среды 200 вычислительной системы, в которой могут быть реализованы система и соответствующие способы.
Следует иметь в виду, что среда 200 вычислительной системы является всего лишь примером подходящей вычислительной среды и не означает никаких ограничений объема или функциональных возможностей системы обработки медийных данных. Вычислительная среда 200 также не должна интерпретироваться как имеющая какую-либо зависимость или требующая связи с каким-либо одним компонентом или комбинацией компонентов, показанных в иллюстрируемом примере вычислительной среды 200.
Различные описанные варианты осуществления могут быть реализованы с использованием многочисленных других сред или конфигураций универсальных или специализированных вычислительных систем. Примеры хорошо известных вычислительных систем, сред и/или конфигураций, которые могут подходить для использования с системой обработки медийных данных, включают, без какого-либо ограничения, персональные компьютеры, компьютеры-серверы, тонкие клиенты, толстые клиенты, портативные или переносные устройства, мультипроцессорные системы, микропроцессорные системы, приставки, программируемые потребительские электронные приборы, сетевые персональные компьютеры, миникомпьютеры, универсальные компьютеры (мэйнфреймы), распределенные вычислительные среды, которые включают любые из вышеуказанных систем или устройств и т.п.
В некоторых реализациях система и связанные с ней способы могут быть описаны в общем контексте выполняемых компьютером инструкций, таких как программные модули, выполняемые компьютером. В общем случае программные модули включают в себя стандартные подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют конкретные задачи или реализуют конкретные абстрактные типы данных. Эти варианты осуществления также могут быть реализованы в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, связанными посредством коммуникационных сетей. В распределенной вычислительной среде программные модули могут находиться как на локальных, так и на удаленных компьютерных носителях информации, включая устройства памяти.
Как показано на фиг. 2, приведенная для примера вычислительная система 200 содержит один или более процессоров или процессорных блоков 202, системную память 204 и шину 206, которая связывает различные компоненты системы, включая системную память 204, с процессором 202.
Шина 206 представляет одну или более из различных типов шинных структур, включая шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт и процессор или локальную шину, использующую любую из шинных архитектур. В качестве примера, но не для ограничения, могут быть указаны такие архитектуры, как шина ISA (архитектура промышленного стандарта), шина MCA (микроканальная архитектура), усовершенствованная шина ISA (EISA), локальная шина VESA (ассоциации стандартов по видеоэлектронике), шина PCI (межсоединений периферийных компонентов), также известная как шина Mezzanine.
Компьютер 200 в типовом случае содержит множество носителей информации, считываемых компьютером. Такие носители могут представлять собой любую доступную среду, к которой осуществляется локальный и/или удаленный доступ компьютером 200, и могут включать энергозависимые и энергонезависимые носители, съемные и несъемные носители.
На фиг. 2 системная память 204 включает считываемые компьютером носители информации в форме энергозависимой памяти (ОЗУ (RAM)) 210 и/или энергонезависимой памяти, такой как ПЗУ (ROM) 208. Базовая система ввода/вывода (BIOS) 212, содержащая базовые стандартные подпрограммы для обеспечения переноса информации между элементами в компьютере 200, такими как в процессе запуска, в типовом случае сохранена в ПЗУ 208. ОЗУ 210 в типовом случае содержит данные и/или программные модули, которые являются непосредственно доступными для процессорного блока 202 и/или в текущее время обрабатываемыми им.
Компьютер 200 может также включать в себя другие съемные/несъемные, энергозависимые/энергонезависимые компьютерные носители информации. В качестве примера, фиг. 2 иллюстрирует накопитель 228 на жестких дисках, который считывает или записывает на несъемные энергонезависимые магнитные носители информации (не показаны, в типовом случае называются жесткими дисками), накопитель 230 на магнитных дисках, который считывает или записывает на съемный, энергонезависимый магнитный диск 232 (например, «гибкий диск») и накопитель 234 на оптических дисках, который считывает или записывает на съемный энергонезависимый оптический диск 236, такой как ПЗУ на компакт-диске (CD-ROM), ПЗУ на многоцелевом цифровом диске (DVD-ROM) или иные оптические носители информации. Накопитель 228 на жестких дисках, накопитель 230 на магнитных дисках и накопитель 234 на оптических дисках соединены с шиной 206 одним или более интерфейсов 226.
Накопители и связанные с ними считываемые компьютером носители обеспечивают энергонезависимую память для считываемых компьютером инструкций, структур данных, программных модулей и других данных для компьютера 200. Хотя в описываемом примере осуществления используются жесткий диск 228, съемный магнитный диск 232 и съемный оптический диск 236, специалистам в данной области техники должно быть понятно, что другие типы считываемых компьютером носителей информации также могут быть использованы в приведенной для примера операционной среде, включая кассеты на магнитных лентах, платы флэш-памяти, цифровые многофункциональные диски, цифровые видеомагнитные ленты, RAM, ROM и т.п.
Ряд программных модулей может быть сохранен на жестком диске 228, магнитном диске 232, оптическом диске 236, ПЗУ 208 или ОЗУ 210, включая, для примера, но не в качестве ограничения, операционную систему 214, одну или более прикладных программ 216 (например, мультимедийное приложение 224), другие программные модули 218 и программные данные 220. Пользователь может ввести команды и информацию в компьютер 200 посредством устройств ввода, таких как клавиатура 238 и координатно-указательное устройство 240 (например, мышь). Другие устройства ввода могут включать в себя устройство (устройства) 253 ввода аудио/видеоданных, микрофон, джойстик, игровую панель, антенну спутниковой связи, сканер и т.п. (не показаны). Эти и другие устройства ввода часто подсоединяются к процессорному блоку 202 через интерфейс 242 ввода, который связан с шиной 206, но может быть подсоединен посредством других структур интерфейсов и шин, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB).
Монитор 256 или устройство отображения другого типа также соединено с шиной 206 через интерфейс, такой как видеоадаптер или видео/графическая плата 244. В дополнение к монитору, персональные компьютеры в типовом случае включают другие периферийные устройства вывода (не показаны), такие как громкоговорители и принтеры, которые могут быть подключены через интерфейс 246 периферийных устройств вывода.
Компьютер 200 может работать в сетевой среде с использованием логических соединений с одним или более удаленных компьютеров, таких как удаленный компьютер 250. Удаленный компьютер 250 может включать многие или все из элементов и признаков, описанных выше в связи с компьютером.
Как показано на фиг. 2, вычислительная система 200 связана с удаленными устройствами (например, с удаленным компьютером 250) через локальную сеть (LAN) 251 и глобальную сеть (WAN) 252. Такие сетевые среды широко используются в офисах, компьютерных сетях предприятий, интранетах и в Интернете.
При использовании в сетевой среде LAN компьютер 200 подключен к локальной сети LAN 251 через соответствующий сетевой интерфейс или адаптер 248. При использовании в среде глобальной сети WAN компьютер 200 обычно включает в себя модем 254 или иное средство для установления связи в глобальной сети WAN 252. Модем 254, который может быть внутренним или внешним, может соединяться с системной шиной 206 через интерфейс 242 пользовательского ввода или иной подходящий механизм.
В сетевой среде программные модули, показанные на чертеже в связи с компьютером 200, или их части могут храниться в удаленных устройствах памяти. В качестве примера, но не ограничения, фиг. 2 иллюстрирует удаленные прикладные программы 216 как находящиеся в устройстве памяти удаленного компьютера 250. Ясно, что показанные сетевые соединения приведены для примера и могут быть использованы другие средства установления линий связи между компьютерами.
Обзор
Различные способы и системы, описанные здесь, направлены на обеспечение защищенного канала для программного обеспечения, исполняемого на компьютере-хосте. Эти способы и системы обеспечивают решения для модели попыток несанкционированного доступа, в которой инородное программное обеспечение, выполняемое на компьютере-хосте, пытается несанкционированным образом получить доступ или манипулировать данными иным образом. Различные варианты осуществления могут обеспечить среду защищенного выполнения, в которой данные могут защищенным образом воспроизводиться на дисплее для пользователя, чтобы взаимодействовать с ним. Описанные варианты осуществления могут воплощать, в числе других характеристик, одну или более из следующих характеристик.
Первая характеристика состоит в том, что данные, например данные элементов изображений, которые находятся на видеоплате, могут сохраняться конфиденциальными. Это означает, что недостоверные приложения (или инородные приложения) не могут считывать данные с экрана дисплея или из памяти видеоданных. Аспект конфиденциальности полезен в цифровой рабочей области, так как если некто визуализирует видеоданные или данные элементов изображения, желательно иметь возможность посылать видеоданные на видеоплату таким образом, чтобы инструментальное средство взлома, исполняемое на компьютере, не могло считать данные. Например, рассмотрим случай, когда пользователь работает в защищенной программе электронной почты, которая позволяет ему принимать данные в зашифрованной форме. Различные варианты осуществления могут обеспечить возможность визуализации данных на экране дисплея без риска того, что инородное приложение получит доступ к данным.
Вторая характеристика заключается в целостности. Под этим понимается, что, в принципе, пользователю нежелательно, чтобы недостоверное программное обеспечение (или инородное программное обеспечение) имело возможность манипулирования данными, которые отображаются на отдельных частях дисплея. Рассмотрим, например, осуществление электронной сделки, в которой пользователь реализует посредством исполнения программного обеспечения на своем компьютере оплату некоторой компании 10 долларов США. Пользователь может просто напечатать сумму в долларах в окне, отображенном на его экране. Однако возможно, что инородное приложение изменило "$1000" на "10$". Ясно, что это нежелательно: пользователь авторизовал платеж более крупной суммы, чем подразумевалось.
Кроме того, если некоторое недостоверное программное обеспечение ненадлежащим образом манипулирует данными определенным способом, было бы желательным иметь возможность сообщить, что это имело место. Соответственно, некоторые из вариантов осуществления, описанные ниже, обеспечивают средство, позволяющее обнаружить манипулирование данными.
Варианты осуществления, описанные ниже, направлены на обеспечение защищенных выходных видеоданных, т.е. выходных видеоданных, которые не подвержены взлому посредством программного обеспечения. Различные варианты осуществления могут обеспечить защиту на основе окна, которая может селективным образом применяться к областям (т.е. окнам) на экране пользовательского дисплея, а не ко всей области экрана, хотя защита всего экрана тоже не исключается. Защищенные выходные видеоданные в типовом случае не могут считываться недостоверным программным обеспечением. Такое поведение обеспечивает защиту для содержания, такого как платное содержание (например, видеофильмы, книги), а также широкое разнообразие общей электронной коммерции и защищенных приложений. Кроме того, различные варианты осуществления могут обеспечить так называемые защищенные диалоги, которые не могут быть сделаны непонятными (частично или полностью) недостоверными диалогами. Данный режим наиболее полезен в контексте транзакций общей электронной коммерции.
Варианты осуществления, описанные ниже, являются решениями, основывающимися на шифровании, которое обеспечивает защищенные выходные видеоданные. Преимуществом различных вариантов осуществления является то, что эти варианты осуществления в типовом случае просты для реализации и, по-видимому, не оказывают влияния на существующие архитектуры программного обеспечения.
Некоторые из вариантов осуществления, которые будут описаны, основываются на процессоре дешифрирования, который находится на видеоплате, для применения на позднем этапе в последовательности видеообработки. В примерах, описанных в настоящем документе, многие аспекты вариантов осуществления реализованы аппаратными средствами, другие аспекты могут быть реализованы как программно-аппаратными средствами, так и программным обеспечением.
Желательное свойство соответствующих изобретению вариантов осуществления состоит в том, что различные данные, которые должны отображаться на экране пользовательского дисплея, зашифровываются. Соответственно, попытки взлома, направленные на кражу данных, приведут в результате только к краже зашифрованных данных. Методы шифрования могут быть использованы таким образом, чтобы любые похищенные данные математически невозможно было дешифрировать. Дополнительно, дешифрирование зашифрованных данных производится в такой момент (в таком месте) в последовательности обработки, где не имеется программного доступа к дешифрированным битам, которые должны отображаться. Т.е. программному обеспечению запрещен доступ к дешифрированным битам, так что инородное программное обеспечение, исполняемое на пользовательском компьютере, не может получить доступа к дешифрированным битам.
В одном варианте осуществления дешифратор размещается на видеоплате и находится между графическим процессором и преобразователем дисплея (например, RAMDAC). Дешифратор реализован желательным образом аппаратными средствами и может обрабатывать зашифрованные данные в реальном времени, так как видеоплата растеризует кадровый буфер в преобразователь дисплея.
Примерные архитектуры
На фиг. 3 показана приведенная для примера видео (или графическая) плата 300, соответствующая возможному варианту осуществления изобретения. Плата 300 содержит разъем 302 шины, который вставляется в порт на типовом компьютере. Видеоплата 300 также включает разъем 304 монитора (например, штепсельный разъем на 15 выводов), который сопрягается с кабелем, подсоединяемым к монитору. Видеоплата 300 может, но не обязательно должна, включать в себя гнездо 306 цифрового видеовыхода (например, стандарта DVI), которое может быть использовано для передачи видеоизображений к цифровым дисплеям и т.п.
Подобно видеоплате по фиг. 1, видеоплата 300 содержит графический процессор 308, память 310 видеоданных, преобразователь дисплея или ЦАП ОЗУ (RAMDAC) 312 и программное обеспечение драйверов, которое может быть введено в базовую систему ввода/вывода (BIOS) 314.
Графический процессор 308 является специализированной микросхемой обработки графики, которая управляет всеми аспектами разрешения, глубины изображения и всеми элементами, связанными с воспроизведением изображений на экране монитора. Контроллер памяти (иногда интегрируемый в графический процессор) управляет распределением памяти на видеоплате. Центральный процессор (не показан) компьютера передает набор инструкций рисования и данных, которые интерпретируются специализированным драйвером графической платы и выполняются графическим процессором 308 платы. Графический процессор 308 платы выполняет такие операции, как перенос битовой карты и раскрашивание, изменение размеров окна и изменение позиционирования, рисование линий, масштабирование шрифта и рисование многоугольниками. Графический процессор может затем записать данные кадра в кадровый буфер (или в память 310 видеоданных на плате).
Информация в кадровом буфере памяти видеоданных представляет собой изображение того, что появляется на экране, сохраненное как цифровая битовая карта. RAMDAC 312 используется для преобразования цифровой битовой карты в форму, которая может использоваться для визуализации на мониторе, как описано выше.
В дополнение к этим компонентам, в данном варианте осуществления видеоплата 300 содержит контроллер 316 памяти и управляющий процессор 318, который может включать программу управления ключами защиты. Видеоплата также содержит дешифратор 320. Эти компоненты могут быть реализованы в виде любых подходящих аппаратных средств, программного обеспечения, программно-аппаратного обеспечения или комбинации любых указанных средств.
Контроллер 316 памяти принимает данные на видеоплате и распределяет данные в памяти 310 видеоданных. Контроллер памяти может также нести ответственность за управление переносами данных между видеоплатой и системной памятью.
Предусмотрен управляющий процессор 318, который может включать в себя программу управления 319 ключами защиты. Управляющий процессор может нести ответственность за организацию криптографических функций, которые реализуются на видеоплате. Например, управляющий процессор 318 может осуществлять информационный обмен по специализированной шине или защищенному каналу с дешифратором 320 для обеспечения того, чтобы дешифратор имел возможности, которые необходимы ему для надлежащего дешифрирования данных элементов изображения, которые были зашифрованы в целях обеспечения защиты. Управляющий процессор 318 посредством программы управления 319 ключами защиты может управлять ключами защиты, которые связаны с шифрованием и дешифрированием соответствующих данных элементов изображения. В некоторых вариантах осуществления управляющий процессор может быть реализован как отдельная микросхема на видеоплате.
Дешифратор 320 конфигурирован или имеет возможность конфигурирования для дешифрирования соответствующих данных элементов изображения. Например, как описано более детально ниже, данные, которые должны быть защищены, могут быть зашифрованы и записаны в защищенную область, содержащую часть так называемой «основной поверхности» или поверхности рабочего стола памяти видеоплаты, которая содержит данные, используемые блоком RAMDAC 512 для воспроизведения изображения на мониторе. Зашифрованное изображение может копироваться во временную ячейку в памяти видеоданных перед копированием на основную поверхность. Управляющий процессор 318 может устанавливать ключи шифрования, которые должны использоваться для шифрования данных, и может обеспечивать ключи дешифрирования для дешифратора 320 для использования при дешифрировании зашифрованных данных элементов изображения. После того как данные дешифрированы, данные могут быть переданы в блок RAMDAC для последующей обработки.
Следует иметь в виду, что хотя дешифратор показан как отдельный компонент, RAMDAC может быть снабжен соответствующими функциональными средствами, чтобы эффективно действовать в качестве дешифратора.
В процессе работы защищенное или достоверное приложение 322 программного обеспечения может устанавливать совместно используемый ключ для дешифратора 320 и приложения. Приложение затем может использовать ключ для генерации зашифрованных данных элементов изображения, которые могут быть сохранены в памяти (в памяти 310 видеоданных или в системной памяти).
В типовом случае имеется ряд различных путей, чтобы можно было записать данные элементов изображения в защищенные области основной поверхности или в кадровый буфер. Во-первых, данные элементов изображения могут быть записаны непосредственно в кадровый буфер посредством операции «move» (переместить), которую реализует контроллер памяти. Во-вторых, приложение (например, защищенное приложение 322) может собрать данные элементов изображения, которые должны быть защищены в системной памяти, где они зашифровываются. Зашифрованные данные в системной памяти в конечном счете будут скопированы на основную поверхность для дешифрирования и визуализации.
Управляющий процессор может затем обеспечить, что дешифратор будет знать, какой ключ следует использовать для дешифрирования данных элементов изображения, прежде чем послать данные в блок RAMDAC 312 (или перед их визуализацией на мониторе).
Таким образом, в данном примере имеется механизм, посредством которого один или более ключей защиты могут совместно использоваться всеми доверительными сторонами. Данные могут зашифровываться на видеоплате и дешифрироваться в такой точке в последовательности обработки данных, чтобы незашифрованные данные, которые должны визуализироваться на мониторе дисплея, не были подвержены попыткам несанкционированного доступа посредством программного обеспечения. Недостоверные или инородные стороны, которые пытаются считать зашифрованные данные из защищенных областей основной поверхности, будут иметь возможность считать только зашифрованные данные, которые эффективно бесполезны для них. Кроме того, это справедливо, когда память VRAM отображается на системную память посредством методов виртуального распределения памяти. Таким образом, независимо от того, располагаются ли данные, находящиеся в защищенных областях основной поверхности, на видеоплате или отображаются в системную память, они остаются зашифрованными и, следовательно, защищенными.
Защищенные окна
В одном из вариантов осуществления предусмотрены одно или несколько защищенных окон, которые могут быть использованы для отображения конфиденциальных данных на экране пользовательского дисплея. Защищенные окна на экране пользовательского дисплея связаны и соответствуют защищенным областям на основной поверхности в памяти видеоплаты (или в системной памяти, если используются методы виртуального распределения памяти). Например, рассмотрим фиг. 4, где показано схематичное представление основной пов