kal logo mobile russian

Search KAL

Модули TPM - основа безопасности Нет TPM = нет безопасности

Скачайте копию технического документа/сообщения в формате PDF, нажав здесь.

 

Модули TPM (доверенные платформенные модули) — это миниатюрные полупроводниковые устройства, встраиваемые во все ПК, а иногда даже непосредственно в процессоры. Они представляют собой защищенные хранилища ключей шифрования и во многом аналогичны микросхемам для платежных карт. ПК и ноутбуки комплектуются модулями TPM уже достаточно продолжительное время, однако сети банкоматов не оснащены ими в надлежащей мере, часто по причине инертности во внедрении новых архитектур безопасности. И это удивительно, учитывая тот факт, что сети банкоматов более любых других областей применения нуждаются в архитектурах безопасности с криптографической защитой.

На самом деле модули TPM — это значительно больше, чем просто защищенные хранилища ключей. Они являются корнем доверия для построения безопасности в сетях на основе ПК. Сети банкоматов должны быть защищены подобным образом.

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

Введение

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

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

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

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

Windows Hello представляет собой криптографически защищенное с помощью TPM биометрическое устройство для распознавания лица. Фактически это очень похоже на широко используемую в банковском деле концепцию безопасности на основе микросхемы и пин-кода. Используемая в Windows Hello микросхема представляет собой модуль TPM, который является криптографическим процессором, сходным с микросхемой платежной карты, а биометрические данные можно сопоставить с пин-кодом. Эта система является не только более безопасной, чем любая система с использованием имени пользователя и пароля, но и максимально понятной и удобной для пользователей. Ведь я не только могу войти на свой планшет Surface просто посмотрев на него, но и вхожу на него практически мгновенно, не набрав ни одной буквы своего пароля. Но разве может система быть и более безопасной, и одновременно более простой в использовании? Без всяких сомнений. Нам нужно расстаться с мыслью, что цель можно достигнуть только потом и кровью — настоящая безопасность не должна стать пыткой для пользователей.

Как вы заметили, выше мы начали говорить о модулях TPM. Этот документ посвящен этим модулям, которые являются «корнем доверия» в вычислительных средах. Модуль TPM — это защищенная полупроводниковая микросхема, содержащая архитектуру безопасности, разработанную группой Trusted Computing Group (TCG), в которую входит более 100 компаний, включая такие гиганты, как Intel, Microsoft, HP и IBM. Еще в 1999 году эти компании начали работу над сознанием защищённого ядра для вычислительных устройств, на основе которого можно было бы формировать безопасность вычислительных систем. Замечательно то, что сейчас модули TPM стали и уже много лет являются неотъемлемой частью всех новых ПК. Есть и плохая новость: многие организации даже не знают об этом драгоценном камне безопасности внутри вычислительных устройств и не пользуются предоставляемыми им преимуществами. С помощью этого документа мы пытаемся изменить сложившуюся ситуацию, особенно в нашей отрасли. В конце концов нам, в отличие от большинства отраслей, действительно необходимо обеспечивать безопасность вычислительных систем.

Модули TPM — «корни доверия»

Что означает «корень доверия» и почему модуль TPM является основой безопасности вычислительных систем? Чтобы понять это, важно помнить, что вся безопасность вычислительных систем зависит от разумного использования шифрования. Шифрование — это метод вычислений, преобразующий данные из «открытой» формы в последовательность, выглядящую случайной, и обратно.

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

Важно понимать, что сам ключ не должен быть зашифрован, ведь иначе он не сможет расшифровать сообщение. Это означает, что должен быть способ безопасного хранения этого ключа. Да, можно зашифровать этот ключ другим ключом. Тогда исходный ключ будет в безопасности, однако возникнет новая проблема: где хранить новый, второй ключ. Конечно, можно иметь целую связку ключей (и очень часто такие связки действительно существуют). Однако, исходный ключ должен храниться где-то в безопасном месте в открытом виде. Где можно хранить этот незашифрованный главный ключ внутри компьютера? Ответ: не на жестком диске (или твердотельном накопителе). Невозможно безопасно сохранить незашифрованный ключ на жестком диске — хакер может получить физический доступ к диску и найти этот незашифрованный ключ. Программное обеспечение само по себе не сможет обеспечить защиту ключа, если у злоумышленника есть физический доступ к жесткому диску.

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

CRTM — измерение корня доверия

Я уже говорил, что модуль TPM — это не просто замечательное хранилище для ключей. Подумайте, какая проблема может возникнуть с безопасным хранилищем ключей в первый же день работы. Кто-нибудь придет к TPM и скажет: «Дайте мне, пожалуйста, ключ в открытом виде». Как понять, кто запрашивает этот ключ? Очень здорово хранить ключ в безопасности, но кому разрешено его выдавать? Ключ запрашивается легальным кодом или какой-то вредоносной программой? Хакер изменил программное обеспечение на ПК с помощью вредоносного ПО, а потом вежливо просит: «Пожалуйста, TPM, дай мне воспользоваться ключиком». Видите проблему? Недостаточно просто иметь чрезвычайно защищенное хранилище ключей. Необходимо проверять подлинность программного обеспечения, которое требует предоставить эти ключи. И тут на сцену выходит второй козырь TPM — CRTM или измерение корня доверия.

CRTM работает с цепочкой доверия, которая начинается с самого включения питания компьютера. Оборудование и TPM работают вместе для «измерения» последовательности загрузки ПК с исходного запуска, затем при загрузке BIOS/UEFI, вплоть до запуска операционной системы. Они «измеряют», было ли какое-либо программное обеспечение на ПК изменено или взломано во время запуска. Этот процесс называется безопасной загрузкой, которая, на сегодняшний день, является стандартной функцией всех новых ПК, работающих под управлением микропрограммы UEFI.

Для обеспечения безопасной загрузки модуль TPM задействует так называемые PCR (регистры конфигурации платформы). Значения PCR рассчитываются модулем TPM с помощью процедуры, которая называется «расширением PCR». Ее можно рассматривать как аналог создания блокчейна, благодаря чему регистры PCR получают уникальный отпечаток (в данном случае набор хешей) во время последовательности запуска ПК. Если PCR не были изменены за прошедшее время, программное обеспечение запуска на ПК считается неизмененным, причем это подтверждается криптографически. Вредоносное ПО не может изменить ни один байт измеренного программного обеспечения запуска, оставив без изменения значения PCR.

tpm diagram 1

Это очень важная концепция криптографии. Функция безопасного хеширования — это функция, напоминающая шифрование, преобразующая блок данных в строку символов фиксированной длины, которая воспринимается как отпечаток исходных данных. При изменении данных меняется и отпечаток. Это гарантированный способ определения даже самых незначительных изменений в пространном коде программного обеспечения. Модуль TPM использует разновидность хеширования, которая называется HMAC. HMAC — это хеш, который является хешированием по ключу, то есть создать или проверить хеш HMAC может только тот, кто имеет надлежащий ключ безопасности. Это разновидность «зашифрованного хеша».

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

Теперь у нас есть защищенное ядро программного обеспечения, но что делать с прикладными приложениями?

В банкомате на основе Windows 10 используются две важные технологии Microsoft, которые играют важную роль на данном этапе: Bitlocker и Device Guard (теперь известная как Windows Defender Application Control ‒ WDAC). Bitlocker — это технология шифрования дисков от Microsoft. Она может шифровать весь жесткий диск или твердотельный накопитель, но самое главное — сохраняет ключ шифрования диска в модуле TPM. На самом деле, это более сложный процесс, нежели чем простое сохранение ключа в TPM, поэтому мы рассмотрим эту тему подробнее.

Имейте в виду, что недостаточно просто хранить ключи в безопасности. Необходимо знать, кто требует ключ и стоит ли этот ключ выдавать. В модуле TPM используется новый метод «опечатывания» ключа. Когда диск банкомата первый раз шифруется в безопасной среде и операционная система Windows создаёт новый ключ, этот ключ шифруется с помощью процесса «ключ-шифрование-ключ», который называется KEK. Сам KEK далее шифруется с помощью процесса, который называется «опечатыванием», с использованием значений PCR и закрытого ключа TPM. При запуске банкомата ключ KEK становится доступным только в том случае, если все отпечатки базового программного обеспечения, измеренные с помощью PCR, были успешно проверены. То есть, код BIOS и Windows не был изменен, как это описывалось ранее. С помощью KEK Windows расшифровывает ключ шифрования диска и использует его для последующей расшифровки всего диска. После получения KEK Windows закрывает эту дверцу KEK. Делается это с помощью расширения PCR 11, то есть значение PCR 11 изменяется после распечатывания KEK. В результате никто не может в дальнейшем получить KEK. KEK хранится в безопасности в модуле TPM до следующей последовательности загрузки и будет доступен, только если значения PCR подтвердят, что базовое программное обеспечение не было изменено. Затем, как только KEK станет доступен технологии Bitlocker для расшифровки диска, дверца KEK будет снова закрыта.

Как можно увидеть, мы шаг за шагом прошли все базовое программное обеспечение, проверяя каждый шаг с помощью значений PCR чтобы, до того как был завершён процесс загрузки и запущен Windows, быть уверенными, что ничего не было взломано и изменено. Теперь нам нужно запустить приложение банкомата и убедиться, что все нужные нам исполняемые файлы не были изменены. Другими словами, мы продолжаем расширять данную концепцию проверки криптографического отпечатка каждого программного компонента перед его использованием. Эта итоговая часть последовательности запуска выполняется с помощью Windows WDAC (или стороннего программного обеспечения с аналогичными функциональными возможностями). Часто это называется «созданием белого списка» и заключается в создании хеша (то есть вычисленного отпечатка) каждого проверяемого исполняемого файла до того, как его можно будет запустить.

Создание белого списка в банкомате

Лучшим способом создать белый список программного обеспечения банкомата с помощью Windows WDAC (или другого программного обеспечения для создания белого списка ПО) — это использование, так называемого, «правила сертификата». Для этого требуется, чтобы программное обеспечение, развернутое на банкомате, было предварительно подписано разработчиком данного программного обеспечения. К примеру, исполняемые файлы Windows 10 подписываются закрытым ключом Microsoft. Это означает, что любой человек может проверить неизменность исполняемых файлов Windows во время передачи и убедиться, что они пребывают в том же состоянии, в котором они были на момент подписи Microsoft. Это делается с помощью проверки файлов при помощи публичного ключа Microsoft для подписи кода. Чтобы WDAC выполняло проверку, необходимо просто создать «правило сертификата», которое говорит о том, что исполняемые файлы, подписанные Microsoft, можно безопасно использовать. 

Аналогичным образом программное обеспечение KAL всегда подписывается с помощью закрытого ключа для подписи кода KAL. Наши клиенты могут убедиться, что программное обеспечение KAL не было взломано, установив на каждом банкомате сертификат KAL для подписи кода.

Но что делать с прочим программным обеспечением, которое не было предварительно подписано подобным образом? Банк может воспользоваться одним из трех вариантов действий:

  1. попросить поставщика ПО подписать код;
  2. перестать работать с этим поставщиком (в конце концов, разве в 2020 г. еще остались поставщики ПО для банкоматов, которые не подписывают свой код? Видимо, да);
  3. использовать «правило хеша».

Правило хеша — это правило, которое добавляется в политики белых списков WDAC. С его помощью банк рассчитывает хеш каждого файла поставщика, который не подписал свои исполняемые файлы. Другими словами, вы подписываете код за своего поставщика. Безусловно, это не настолько же безопасно, как подпись кода поставщиком, так как любое изменение кода с момента отправки его поставщиком и получения банком останется незамеченным (хотя могут использоваться и какие-либо другие механизмы для обеспечения безопасной передачи).

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

Итак, мы полностью защищены?

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

Однако это еще не все. Банкомат, защищенный подобным образом, является пуленепробиваемым в том, что касается несанкционированной модификации его программного стека. Однако это далеко не всё. Внедрение вредоносного ПО в систему банкомата далеко не единственный метод атаки. Теперь рассмотрим, как модуль TPM позволит нам справиться с другими типами атак.

Общие сведения о возможностях модулей TPM

Модуль TPM может не только обеспечивать безопасную загрузку банкомата. Это корень доверия, который позволяет организовать и всю остальную безопасность. Следует упомянуть замечательную книгу, написанную участниками группы TCG Уиллом Артуром (Will Arthur), Дэвидом Чалленером (David Challener) и Кеннетом Гольдманом (Kenneth Goldman). Эта книга под названием «Практическое руководство по TPM 2.0» представляет собой кладезь самых замечательных идей, которые вдохновили меня взяться за составление этого документа. Книгу можно бесплатно загрузить отсюда.

Лучшим способом вкратце описать эту книгу — акцентировать внимание на приведенных в ней 53-х примерах использования. С разрешения авторов я привожу этим примеры использования ниже:

1. Хранение параметров загрузки

2. Доступ к ключу VPN

3. Оптимизация первичного ключа

4. Предоставление ключей идентификации

5. Разрешение менеджеру ресурсов безопасно управлять ключами TPM

6. Злоумышленник заменяет ключ с тем же дескриптором

7. UEFI

8. Определение перезагрузок между подтверждениями

9. Хеширование большого файла

10. Доверенная загрузка — 1

11. Доверенная загрузка — 2

12. Несколько одновременно работающих алгоритмов выборки TPM

13. Сохранение паролей для входа

14. Проверка подписи корня доверия

15. Использование нескольких первичных ключей

16. Использование специализированных первичных ключей

17. Подтверждение ключа квоты TPM

18. Создание цепочки сертификатов

19. Гарантия использования цифровой подписи для авторизации ключа

20. Гарантия использования биометрических данных для авторизации ключа

21. Обеспечение энергонезависимого хранения данных

22. Эквивалент квоты для энергонезависимого расширенного индекса

23. Хранение секретного ключа

24. Хранение сертификата

25. Хранение общего пароля

26. Хранение корневого публичного ключа

27. Хранение ключа HMAC

 

28. Отзыв доступа к ключу

29. Отзыв ключей нескольких пользователей

30. Защищенный журнал аудита использования ключа ЦС

31. Дополнительные регистры PCR

32. Регистры PCR с другими атрибутами

33. Виртуализация

34. Однократно записываемый индекс в энергонезависимой памяти

35. Стандартные сертификаты

36. Энергонезависимый индекс с однократной записью и многократным чтением

37. Защита данных политик

38. Дублирование набора ключей

39. Запечатывание ключа шифрования жесткого диска в структуру платформы

40. Ключи VPN

41. Безопасная передача пароля из среды с наличием ОС в среду с отсутствием ОС

42. Квота

43. Определение перезагрузок между транзакциями

44. Отсутствие увеличение PCR атрибутов для виртуальных машин

45. Отсутствие увеличения PCR атрибутов для аудита

46. Создание разных SrK для различных пользователей

47. Ряд серверов работает в качестве одного

48. К какому модулю TPM я сейчас подключен?

49. Какое состояние энергонезависимого индекса, счетчика или индекса битового поля?

50. Энергонезависимый индекс, используемый как PCR

51. Аудит модуля TPM с использованием центра сертификации

52. Использование TPM для обеспечения безопасности журнала аудита приложений

53. Обеспечение неизменности PCR при последовательности команд

 

Пожалуйста обратите внимание на приведенные выше примеры использования. Следует понимать, что модули TPM не только обеспечивают безопасную загрузку. Как уже говорилось ранее, TPM — это корень доверия, который последовательно обеспечивает безопасность каждого шага или каждого нашего действия с банкоматом. Конечно, не все вышеприведенные примеры использования должны обязательно применяться в нашей отрасли. И помните, что эти примеры использования относятся к защите компонента  криптографически безопасным способом.

Возьмем, к примеру, пункт 40 — ключи VPN. При обычном использовании VPN будет настроен между банкоматом и сервером путем установки цифровых сертификатов (т. е. подписанных открытых ключей) на двух системах. Однако что будет, если кто-то взломает сертификаты? Без сомнения, сертификаты, сохраненные в среде Windows под защитой TPM с механизмом блокировки, описанным в данном документе, будет невозможно изменить. Однако мы можем пойти еще дальше. Ключи VPN могут быть запечатаны по PCR с помощью TPM. Это означает, что когда VPN готова к настройке, ключи, необходимые для настройки VPN, могут стать доступными только в том случае, если регистры PCR находятся в надлежащем состоянии. При наличии каких-либо расхождений в регистрах, в подключении VPN будет отказано. Теперь предположим, что эта концепция применена к обеим сторонам туннеля VPN. В таком случае регистры PCR должны быть в надлежащем состоянии не только на стороне банкомата, они также должны быть в надлежащем состоянии и на стороне сервера, обслуживающего банкоматы. Если все настроено подобным образом, мы криптографически подтвердим, что и банкомат, и сервер, обслуживающий банкоматы, находятся в защищенном состоянии перед подключением. Мы точно будем знать, что все исполняемые файлы, которые должны выполняться и на банкомате, и на сервере, к этому моменту, находятся в своем исходном, неизменном состоянии, и банкомат и сервер могут подключаться друг к другу, исключительно если это условие выполняется обеими системами.

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

Обеспечение безопасности сетевых подключений

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

 

tpm diagram 2

 

На ней показан сценарий подключения в типичном крупном банке с комплексными услугами, предоставляемыми через банкоматы. Банкоматы подключаются к терминальному комплексу, который управляет службами, предоставляемыми несколькими серверами. Аппаратный модуль безопасности HSM обеспечивает криптографические службы и зонирование пин-кодов. После подготовки транзакции, которая теперь должна быть авторизована, эта транзакция передается в основную банковскую систему как транзакция «OnUs» или в расчетные системы как транзакция «OffUs».

Теперь рассмотрим утопию безопасности, где каждый банкомат и каждый сервер оснащен модулем TPM (что применимо ко всему современному оборудованию), где все системы прошли проверку с момента загрузки с помощью измерений PCR, а все подключения TLS и VPN были установлены с использованием сертификатов, распечатанных TPM, а значит имеют криптографическую гарантию отсутствия какого-либо вмешательства. Действительно утопия. К сожалению, к августу 2020 г. очень немногие банки достигли такого уровня безопасности.

Потенциальная трудность реализации подобного подхода заключается в масштабируемости и кластеризации. Как создать кластер серверов, если все подключения привязаны к отдельным модулям TPM? См. пример использования №47 «Ряд серверов работает в качестве одного». Группа TCG уже продумала такое развитие событий.

Обеспечение безопасности сетевых подключений банкоматов

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

 

tpm diagram 3

 

Как вы видите, Я нарисовал подключения USB в виде облака, что указывает на риски, связанные с атаками. Модуль TPM защищает встраиваемый ПК, однако кабели USB могут быть подвержены атакам, если они не защищены надлежащим образом. Можно считать, что ответственность за эти подключения несет поставщик оборудования для банкоматов. Однако ситуация не так проста, так как все зависит от требований к взаимодействию различного оборудования и остальной системы. Например, если сообщения для обмена с устройством выдачи наличных подлежат сквозному шифрованию, то что будет считаться «другим концом провода»? Если этим другим концом является, к примеру, терминальный контролер, то необходимо обсуждать и согласовывать самые разные требования по взаимодействию.

Очевидно также, что даже устройство для выдачи наличных еще не защищено на многих банкоматах надлежащим образом. Свидетельством тому являются многочисленные новости о различных атаках с использованием «черных ящиков». Атака на банкомат по принципу «черного ящика» происходит, когда хакеры перехватывают подключение к устройству выдачи наличных и могут получить наличные по команде со своего компьютера. Большинство современных банкоматов обеспечивают зашифрованное соединение между ПК и устройством выдачи наличных, однако специалисты KAL сомневаются в надежности таких схем безопасности, ведь многие банкоматы не оснащены модулями TPM. Давайте скажем предельно четко: Нет TPM = нет безопасности. Сомнительные способы шифрования подключений с использованием ключей, защищенных магией — это не безопасность. Это обскурантизм и надежда на авось. Если ваш поставщик оборудования не может предоставить информацию о защите ключей шифрования, будьте уверены: это связано с тем, что ключи не имеют надлежащей защиты.

XFS4IoT и защита оборудования

  1. Спецификация не должна зависеть от операционной системы. Это означает, что на банкоматах может быть установлена как ОС Windows, так и Linux или любая другая ОС.
  2. Присутствует поддержка облака. Банкоматы могут пользоваться непосредственно облачными службами. Управление банкоматом может осуществляться из облака, а не внутренними ресурсами, как в настоящее время. Например, считыватель карт может использовать облачные службы для считывания карт. Устройство выдачи наличных может использовать облачные службы управления выдачей наличных.
  3. Веб-службы, предоставляемые таким образом, должны быть надежно защищены. XFS4IoT будет иметь встроенную безопасность, обеспечивающую сквозную защиту устройств. В качестве транспортного протокола были выбраны веб-сокеты с защитой по TLS с сертификатами на обеих сторонах. Кроме того, каждое устройство XFS4IoT может иметь аппаратный элемент безопасности, обеспечивающий сквозную защиту подключения. Это подключение может завершаться самим банкоматом (как обстоит дело сегодня) или же облачным сервером.

На следующей схеме проиллюстрирована эта концепция.

tpm diagram 4

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

Стоит обратить внимание на самую важную вещь — зеленые поля с пометкой HSE. HSE означает «аппаратный элемент  безопасности», и в спецификации XFS, конечно же, поставщикам оборудования предоставляется свобода по реализации подобных элементов. Очевидно, что в качестве элемента HSE должен выступать модуль TPM или любой элемент, имеющий аналогичные TPM функции. Элемент HSE должен, как минимум выполнять следующие функции:

  • надежно хранить закрытые ключи;
  • реализовывать базовое измерение CRTM, чтобы только защищенные микропрограммы могли использовать HSE;
  • реализовывать службы шифрования и подписи.

Компания KAL обсудила этот вопрос с комитетом TCG, и члены этого комитета продемонстрировали готовность и желание помочь отрасли решений для банкоматов найти возможные варианты решений. Можно сказать, что TCG уже добилась некоторых успехов в реализации концепции мини-модуля TPM. Одним из проектов TCG является DICE, другим — MARS. Готовы ли DICE и MARS к использованию в банкоматах? Нам предстоит это выяснить.

Мыслью, заслуживающей внимания, является возможность использования стандартных модулей TPM в качестве элементов HSE внутри каждого устройства. На вопрос окупаемости затрат можно ответить утвердительно: модули TPM стоят дешевле одного доллара США при оптовых закупках у производителей оригинального оборудования. DICE может обойтись еще дешевле. Это сэкономит миллионы долларов потребителей в нашей отрасли, поэтому стоимость TPM или любых видов HSE вряд ли будет препятствием.

Банкоматы имеют второй корень доверия — EPP-клавиатура

В предыдущем разделе мы обсудили защиту устройств, однако есть одно уникальное устройство, которое в контексте безопасности следует выделить особо: это EPP-клавиатура или клавиатура с инкриптором. EPP-клавиатура — это независимый корень доверия внутри банкомата. Это в высокой степени защищенное устройство, которое регулируется требованиями PCI PED. Каждая клавиатура управляется отдельно и отслеживается отраслью на глобальном уровне. Она имеет собственное измерение CRTM на базе собственной микропрограммы и автоматически уничтожается при определении взлома. Без всяких сомнений, безопасность на высшем уровне.

Однако, EPP-клавиатура, в рамках всей отрасли, имеет свои плюсы и минусы. Так как EPP-клавиатура обеспечивает определенный уровень безопасности для банкоматов (ниже мы обсудим ее недостатки), банки полагаются на нее для обеспечения защищенных транзакций. EPP-клавиатура надежно хранит банковский мастер-ключ, а использование цепочки ключей обеспечивает защищенность блока ввода пин-кодов и сообщений, которые передаются между банкоматом и хостом. Это очень хорошая защита. Однако этой защиты недостаточно.

EPP-клавиатура недоступна, когда банкомат загружается, и остается недоступной, пока не заработает Windows и не запустятся XFS SP (драйверы оборудования банкомата). Это означает, что EPP-клавиатура ничего не знает о подлинности программного обеспечения внутри банкомата. Если вредоносное приложение в банкомате пожелает принять пин-код или создать MAC (Meesage Authentication Code) для сообщения банкомата, EPP-клавиатура выполнит свою работу. Периметр защиты EPP-клавиатуры слишком мал, чтобы обеспечить безопасность всего банкомата. Это маленький островок безопасности среди массы незащищенного программного обеспечения из-за отсутствия TPM оборудования.

Как обновлять программное обеспечение защищённое модулем TPM?

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

Для изменения базового программного обеспечения, измеряемого PCR, нужно еще одно дополнительное действие. Базовое программное обеспечение может обновляться удаленно без посещения специалистом. Однако, при установке должен быть создан временный ключ, «запечатанный» с использованием неизменяемых регистров PCR. После завершения установки новые ключи запечатываются на основе полного набора регистров PCR. Все просто.

Давайте вспомним ранее приведенный пример с Windows Hello — хороший уровень безопасности необязательно сложен в использовании. Фактически, мировой уровень безопасности, а именно такой уровень обеспечивает банкам TPM, гораздо проще в применении по сравнению с традиционными методами криптографической защиты.

Защита от физических атак

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

Другим типом атаки является попытка взлома TPM методом быстрого перебора ключей. Модуль TPM оснащен встроенной защитой против взлома перебором, которая предотвращает подобные попытки. 

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

Держитесь подальше от магически работающих решений

Обеспечение безопасности банкоматов и ПК с помощью модулей TPM, представляющих собой корень доверия — это единственный известный способ обеспечения полной безопасности компьютерных систем. Наша отрасль должна задаться вопросом, почему безопасность на основе TPM еще не стала распространенной в сетях банкоматов? Конечно, различные компании конкурируют на рынке, желая предоставить собственные продукты по обеспечению безопасности. Это вполне ожидаемо. Однако очень важно, чтобы банки не поддавались иллюзиям. Вот список мифов, которых следует остерегаться.

Миф: «Нет нужды в элементах аппаратной безопасности»

Следует понимать, что невозможно хранить закрытые ключи на диске/твердотельном накопителе банкомата в полной безопасности. Причина заключается в том, что какой бы длинной ни была цепочка ключей, всегда есть исходный незашифрованный ключ. Если этот ключ «спрятан» на диске, то его всегда можно получить. В некоторых решениях заявляется, что ключ создается при запуске. Однако помните, что для создания такого ключа используется открытый код. Он должен быть открытым, так как к этому моменту диск еще не расшифрован. Таким образом,  исходный текст этого кода можно восстановить по исполняемому коду, который находится в открытом виде ещё до расшифрования диска.

Посмотрим на это с другой стороны. Если ключи можно безопасно хранить в банкомате с помощью исключительно программных методов, наша отрасль не стала бы создавать EPP-клавиатуры...

Миф: «Элементы аппаратной безопасности не нужны, так как ключи хранятся в сети»

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

Миф: «Нет нужды в ключах шифрования»

Поставщик заявляет, что хранение ключей не является необходимым, так как есть магическая технология, обеспечивающая шифрование без ключей. Это слишком хорошо, чтобы быть правдой. Почему мир постоянно пытается найти новые методы управления ключами, когда эти ключи вообще не нужны? Все известные методы шифрования, будь то 3DES, AES или RSA, нуждаются в закрытых ключах. Закрытые ключи называются так, потому что должны хранится в безопасности. Безопасной систему шифрования делает то, что ключи выбираются среди огромного числа возможных вариантов. Например, для 3DES есть как минимум 2112 вариантов ключей. Понадобится 30 лет, чтобы перебрать все ключи, если мы будем делать все со скоростью 5 млрд ключей в секунду. При той же скорости понадобится 1022 лет, чтобы перебрать все ключи при использовании метода шифрования AES.

Миф: «Наш алгоритм является секретным»

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

Миф: «Списки управления доступом (ACL) обеспечат необходимую безопасность»

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

Выводы

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

Надеюсь, что этот документ даст начало выработке спецификаций по взаимодействию и безопасности с использованием криптографической основы, которая доступна всем нам благодаря модулям TPM. Trusted Computing Group предложила нам свою помощь. Теперь очередь различных комитетов в нашей отрасли (XFS4IoT, ATMIA и EAST), а также банков и поставщиков решений определить дальнейшее развитие.

Благодарности

Выражаю свою благодарность за вклад в этот проект:

  • Майклу Мольтке (Michael Moltke) (NCC Group Denmark)
  • Киту Паттерсону (Kit Patterson) (KAL)
  • Уиллу Артуру, Дэвиду Чалленеру и Кеннету Гольдмана за их электронную книгу о модулях TPM, а также отдельно Дэвиду Чалленеру за организацию поддержки TCG

Для получения дополнительной информации напишите нам на Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.