Типовая конфигурация: банкоматы
Этот раздел показывает, как Tessera разворачивается на парке банкоматов и кто из инженеров что сможет делать на устройстве. Адресован инженерам сопровождения и специалистам по безопасности банка: после прочтения видно устройство доступа, роли и границы прав ещё до пилота.
Конкретные значения (роли, сроки, группы) — пример одного безопасного профиля, а не единственно возможный. Полный справочник параметров — configuration.md; режимы входа — pam-integration.md; мандатный контроль на Astra — mac-integrity.md.
1. Картина развёртывания
Заголовок раздела «1. Картина развёртывания»Банкомат — устройство без управляющей сети (zero-egress): в момент входа инженера обращение к серверу невозможно. Поэтому вся проверка доступа — локальная, на самом устройстве.
На банкомате:
- Tessera Engine — проверяет удостоверение и применяет права (enforcement);
- Tessera Login (PAM-модуль) — точка входа в ОС;
- monitord — следит за носителем (извлекли флешку — сессия закрывается);
- локальная база ролей в
/var/lib/tessera/roles/; - корневой сертификат удостоверяющего центра в
/etc/tessera/.
Инженер приносит удостоверение с собой — сертификат на USB-носителе под PIN или на аппаратном токене (Rutoken, JaCarta). Сервер (Tessera Control) при наличии связи доставляет обновления ролей и списков отзыва, но в момент входа не нужен.
2. Кто входит и под какой ролью
Заголовок раздела «2. Кто входит и под какой ролью»«Роль» в Tessera — именованный набор прав ОС, активируемый на сессию при входе. Людей называем по должности; роль — это про права, не про человека. Один инженер может входить под разными ролями, если они разрешены его удостоверением.
Типовой профиль банкоматного парка — три роли:
oper— оператор: повседневное обслуживание (замена кассет, просмотр журналов, перезагрузка). Минимум прав.serv— сервисный инженер: наладка, диагностика, доступ к служебным командам черезsudo, повышенные лимиты ресурсов.admin— администратор (на Astra — с мандатным контролем целостности): высокий уровень доступа, короткий срок сессии.
3. Матрица «операция × роль»
Заголовок раздела «3. Матрица «операция × роль»»Что каждая роль разрешает на банкомате. «✓» — разрешено правами роли, «—» —
недоступно. Прикладное ПО банкомата (драйвер устройства выдачи, терминальное
приложение, служба мониторинга) Tessera не заменяет: роль выдаёт сессии
группы и sudo-правила, по которым ОС пускает инженера к этому ПО и его
служебным операциям.
| Операция | oper | serv | admin |
|---|---|---|---|
| Вход на устройство по удостоверению | ✓ | ✓ | ✓ |
| Просмотр журналов и состояния | ✓ | ✓ | ✓ |
| Обслуживание кассет, расходники | ✓ | ✓ | ✓ |
| Перезагрузка устройства | ✓ | ✓ | ✓ |
| Доступ к служебным операциям прикладного ПО | — | ✓ | ✓ |
Команды наладки через sudo | — | ✓ | ✓ |
| Изменение системной конфигурации | — | — | ✓ |
| Управление учётными правами на устройстве | — | — | ✓ |
| Отключение защитных рубежей (ЗПС, МКЦ, контроль запуска ПО) | — | — | — |
| Срок сессии (TTL) | 8 ч | 4 ч | 2 ч |
TTL — верхняя граница сессии: по истечении инженер входит заново. Чем выше права, тем короче сессия.
4. Что несёт удостоверение инженера
Заголовок раздела «4. Что несёт удостоверение инженера»Сертификат — не просто пропуск «свой/чужой». В нём зашиты:
- личность инженера — субъект сертификата; попадает в каждую запись журнала;
- привязка к устройству (host-binding) — сертификат выписан на конкретный банкомат; украденная флешка бесполезна на соседнем устройстве парка;
- разрешённые роли — под какими ролями инженеру можно войти;
- срок жизни (TTL) — часы или смена, не бессрочно.
Проверка всех четырёх — на устройстве, без сети.
5. Жизненный цикл сессии
Заголовок раздела «5. Жизненный цикл сессии»- Инженер вставляет носитель, вводит PIN, выбирает роль.
- Engine проверяет локально: подпись сертификата по цепочке доверия → host-binding (это устройство) → срок → разрешена ли запрошенная роль.
- При успехе открывается сессия на запрошенной роли по принципу наименьших привилегий — даже если сертификат разрешает больше.
monitordследит за носителем. Извлекли флешку — сессия завершается (для банкоматов: немедленно).- По истечении TTL вход нужно повторить.
6. config.toml: безопасный профиль
Заголовок раздела «6. config.toml: безопасный профиль»Ключи приведены как в /etc/tessera/config.toml; полное описание каждого —
в configuration.md. Принцип профиля — fail-closed:
при сомнении доступ закрывается.
# Удостоверение на аппаратном токене (Rutoken/JaCarta). Для контейнера# на флешке — mode = "pkcs12".crypto_backend = "openssl"mode = "pkcs11"pkcs11_module = "/usr/lib/librtpkcs11ecp.so"
# Реакция на извлечение носителя. Для банкомата — закрыть сессию сразу.on_usb_removed = "logout" # или "shutdown" — обесточить хостusb_removed_grace_seconds = 0 # без отсрочки
# Отказ демона мониторинга трактуется как отказ в доступе.monitor_fail_mode = "strict"
[trust]# Корневой сертификат удостоверяющего центра. Минимум один.anchors = ["/etc/tessera/ca/bundle.pem"]
[trust.revocation]# "none" — отзыв по сроку жизни сертификата (TTL-backstop);# "crl" — плюс локальный список отзыва, обновляемый при наличии связи.mode = "crl"crl_paths = ["/var/lib/tessera/crl/parkruntime.crl"]crl_max_age_hours = 24
[host_identity]# Источник идентичности устройства (machine-id, серийники DMI).# fallback = "deny" — если идентичность не подтверждена, вход закрыт.fallback = "deny"Минимальные права файлов: корневой сертификат — 0640 root:root, каталог
ролей /var/lib/tessera/roles/ — 0755 root:root, срезы ролей — 0644.
7. Вход: режим cert-only
Заголовок раздела «7. Вход: режим cert-only»Для банкоматов рекомендуется режим cert-only — сертификат единственный фактор, без отхода на пароль. Потеря или блокировка токена означает полную недоступность входа — это осознанный выбор для необслуживаемого устройства (чек-лист перед раскаткой — operations.md).
PAM-сниппет (/etc/pam.d/tessera-only):
auth [success=done default=die] pam_tessera.soaccount required pam_tessera.soПодключается скриптом, который ставит строки в правильном порядке и
добавляет фазу сессии после common-session:
sudo /usr/share/tessera/integrate-pam.sh --mode=cert-only /etc/pam.d/loginsudo /usr/share/tessera/integrate-pam.sh --mode=cert-only /etc/pam.d/sudo8. Роли в деталях
Заголовок раздела «8. Роли в деталях»Роль — это файл-срез в каталоге базы ролей. База — для одной ОС: срезы Linux
и Astra не смешивают в одном каталоге. Срезы проверяются перед раскаткой:
tessera role lint --dir /var/lib/tessera/roles --os linux.
8.1. На ОС без мандатного контроля (Linux)
Заголовок раздела «8.1. На ОС без мандатного контроля (Linux)»Права выдаются через стандартные механизмы ОС: дополнительные группы,
sudo-роли, лимиты systemd на сессию. Группы Engine выставляет сам (не через
pam_group) — чтобы права нельзя было обойти через DBus или sudo.
Оператор — минимальный профиль:
role = "oper"version = 1os = "linux"name = "Operator"level = 1
[payload]groups = ["operators"] # членство в группе на сессию
[session]max_ttl_seconds = 28800 # 8 чСервисный инженер — sudo и повышенные лимиты:
role = "serv"version = 1os = "linux"name = "Service Engineer"level = 5
[payload]groups = ["service", "wheel"]sudo_role = "service" # правило sudoers, действующее в сессии
[payload.limits]nofile = 4096 # лимит открытых файлов
[session]max_ttl_seconds = 14400 # 4 чmemory_max = "2G" # systemd MemoryMax — жёсткий потолок памятиtasks_max = 512 # systemd TasksMaxДоступ инженера к служебным операциям прикладного ПО банкомата задаётся
именно так: группа и sudo-правило в роли определяют, какие команды и
службы устройства инженеру доступны. Где лежит и как устроено само прикладное
ПО — определяет его поставщик; Tessera управляет только правами доступа к нему.
8.2. На Astra с мандатным контролем целостности (МКЦ)
Заголовок раздела «8.2. На Astra с мандатным контролем целостности (МКЦ)»На Astra Linux SE роль дополнительно несёт потолок уровня целостности (МКЦ). Сертификат инженера задаёт максимальный уровень, роль — битовую маску; эффективный уровень сессии = минимум из потолка сертификата и маски роли.
role = "admin"version = 1os = "astra"name = "Administrator"level = 63 # отражает уровень МКЦ на Astra
[payload]mac_mask = "0x3f" # битовая маска МКЦ
[session]max_ttl_seconds = 7200 # 2 чВажно. В открытой сборке Tessera маска
mac_maskразбирается, но не применяется: адаптер enforcement через МКЦ — коммерческое расширение. На открытой сборке срез роли сmac_maskотклоняется в момент входа. Подробнее о механизме — mac-integrity.md.
9. Чего не может ни одна роль
Заголовок раздела «9. Чего не может ни одна роль»Tessera управляет доступом: кто вошёл, под какой ролью, какие группы и
sudo-правила действуют в сессии. Она не управляет защитными рубежами
устройства и не выдаёт прав на их отключение. Эти рубежи — отдельный слой,
действует независимо от того, кто и под какой ролью вошёл. Роль admin —
высокие права в рамках ОС, но не «выключатель» защиты.
Независимые рубежи на банкомате:
- Замкнутая программная среда (ЗПС / DIGSIG на Astra) — ядро запускает
только подписанные исполняемые файлы; неподписанный бинарь отвергается на
execve/mmap. Запуск постороннего ПО невозможен независимо от роли. То же относится к иным модулям контроля запуска, если они установлены. - Мандатный контроль целостности (МКЦ) — механизм ядра PARSEC. Высокая маска целостности в роли задаёт уровень в рамках МКЦ, но не право отключить МКЦ.
- Контроль целостности самой Tessera — бинарники Engine и PAM-модуля
подписаны и охраняются ЗПС; инженер с ролью
adminне может подменить их или конфигурацию, обойдя проверку.
Ключевой принцип безопасного профиля: роль не должна нести sudo-правил,
позволяющих перевести ЗПС или МКЦ в режим без enforcement, остановить их
службы или подменить ключи подписи. Переключение этих подсистем — не
рядовая операция инженера, а изменение доверенного состояния устройства;
оно выполняется вне обычного входа и по отдельному регламенту. Tessera
здесь — не последний рубеж, а слой доступа поверх уже неизменяемой среды.
10. Отзыв и срок жизни
Заголовок раздела «10. Отзыв и срок жизни»Доступ инженера прекращается двумя путями:
- По команде (нужна связь с устройством): список отзыва (CRL) и завершение живых сессий, карантин устройства. Доходит до банкомата при очередном сеансе связи.
- По сроку (работает всегда, без сети): сертификат протухает по TTL — часы или смена. Это backstop: даже на полностью изолированном банкомате отозванный инженер теряет доступ после истечения срока.
Профиль с mode = "crl" сочетает оба: при связи список отзыва свежий, без
связи держит TTL. На парке без связи допустим mode = "none" с опорой только
на TTL.
11. Что происходит при сбоях
Заголовок раздела «11. Что происходит при сбоях»| Событие | Поведение |
|---|---|
| Инженер вынул флешку | Сессия завершается (по профилю — сразу) |
| Истёк TTL сессии | Требуется повторный вход |
| Сервер недоступен | Вход по действующим сертификатам работает; истёкшие не продлеваются |
| Отзыв не доставлен (нет связи) | Сертификат всё равно протухнет по TTL |
| Демон мониторинга отказал | monitor_fail_mode = "strict" → вход закрывается |
| Идентичность устройства не подтверждена | fallback = "deny" → вход закрывается |
Отказ серверного компонента не открывает дверь и не запирает валидного инженера с действующим сертификатом. Безопасность одинакова с сервером и без — сервер добавляет масштаб и свежесть данных, не безопасность.
12. Чек-лист безопасной раскатки
Заголовок раздела «12. Чек-лист безопасной раскатки»- Корневой сертификат на устройстве, права
0640 root:root. -
host_identity.fallback = "deny". -
monitor_fail_mode = "strict". -
on_usb_removed=logoutилиshutdown,usb_removed_grace_seconds = 0. - Режим входа cert-only подключён к нужным сервисам (login, sudo, графический вход).
- Срезы ролей прошли
tessera role lint. - TTL ролей соответствует риску (выше права — короче сессия).
- Для Astra с МКЦ — установлен коммерческий адаптер enforcement.
- ЗПС (DIGSIG) в режиме
enforce; бинарники Tessera подписаны. - Ни одна роль не содержит
sudo-прав на управление ЗПС, МКЦ или ключами подписи. - Список отзыва (если
mode = "crl") обновляется не реже раза в смену. - Проверен сценарий потери токена и порядок аварийного доступа.
13. Дальше
Заголовок раздела «13. Дальше»- configuration.md — полный справочник
config.toml. - pam-integration.md — режимы входа и интеграция в PAM.
- cert-issuance.md — выпуск удостоверений и расширения сертификата.
- mac-integrity.md — мандатный контроль целостности на Astra.
- operations.md — эксплуатация, чек-лист перед раскаткой.