<mxfile host="app.diagrams.net" agent="Claude" version="24.0.0">
  <diagram id="dataflow-V" name="Поток данных — Сценарий В (без HSM)">
    <mxGraphModel dx="1422" dy="900" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="2400" pageHeight="1500" math="0" shadow="0">
      <root>
        <mxCell id="0" />
        <mxCell id="1" parent="0" />

        <mxCell id="t" value="PCI DSS 4.0.1 — Детальный поток данных карт. Сценарий В: БЕЗ обязательного HSM. Допустимые альтернативы 3.5.1: токенизация/усечение · программное шифрование+KMS · нативное TDE/LUKS. Ключи у клиента." style="text;html=1;fontSize=15;fontStyle=1;align=left;" vertex="1" parent="1">
          <mxGeometry x="40" y="16" width="2300" height="26" as="geometry" />
        </mxCell>
        <mxCell id="tb" value="PCI DSS не требует HSM. PAN делается нечитаемым допустимым механизмом. При программном хранении ключей требования 3.6/3.7 применяются строго (изоляция ключей от данных, KEK/DEK). Токенизация/усечение — максимально снижают охват." style="text;html=1;fontSize=12;align=left;fillColor=#FFF8E1;strokeColor=#d6b656;" vertex="1" parent="1">
          <mxGeometry x="40" y="46" width="2300" height="34" as="geometry" />
        </mxCell>

        <!-- zones -->
        <mxCell id="zUser" value="Internet / Untrusted" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#F5F5F5;strokeColor=#999999;verticalAlign=top;fontStyle=1;fontColor=#666666;dashed=1;" vertex="1" parent="1">
          <mxGeometry x="40" y="100" width="300" height="1260" as="geometry" />
        </mxCell>
        <mxCell id="zEdge" value="VDOM EDGE (FortiGate 1800F HA)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E8F5E9;strokeColor=#82b366;verticalAlign=top;fontStyle=1;fontColor=#4a7a3a;" vertex="1" parent="1">
          <mxGeometry x="360" y="100" width="300" height="1260" as="geometry" />
        </mxCell>
        <mxCell id="zDmz" value="VDOM DMZ (оператор)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFF8E1;strokeColor=#d6b656;verticalAlign=top;fontStyle=1;fontColor=#8a6d00;" vertex="1" parent="1">
          <mxGeometry x="680" y="100" width="340" height="1260" as="geometry" />
        </mxCell>
        <mxCell id="zCde" value="VDOM CDE — ТЕНАНТ-CDE 1 (самостоятельный CDE, свой ROC · VLAN+VDOM) · защита PAN без HSM" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FDECEA;strokeColor=#DA291C;strokeWidth=2;verticalAlign=top;fontStyle=1;fontColor=#DA291C;" vertex="1" parent="1">
          <mxGeometry x="1040" y="100" width="780" height="1260" as="geometry" />
        </mxCell>
        <mxCell id="zExt" value="Внешние стороны" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#E8F5E9;strokeColor=#82b366;verticalAlign=top;fontStyle=1;fontColor=#4a7a3a;dashed=1;" vertex="1" parent="1">
          <mxGeometry x="1840" y="100" width="300" height="1260" as="geometry" />
        </mxCell>

        <!-- nodes -->
        <mxCell id="ch" value="Держатель карты&#10;(браузер/POS/app)" style="sketch=0;html=1;shape=mxgraph.cisco19.rect;prIcon=pc;fillColor=#FFFFFF;strokeColor=#1BA0D7;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
          <mxGeometry x="120" y="180" width="90" height="80" as="geometry" />
        </mxCell>
        <mxCell id="fgt" value="FortiGate 1800F&#10;EDGE VDOM" style="sketch=0;html=1;shape=mxgraph.fortinet.fortigate;fillColor=#DA291C;strokeColor=none;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
          <mxGeometry x="450" y="180" width="100" height="100" as="geometry" />
        </mxCell>
        <mxCell id="waf" value="WAF/Reverse-proxy&#10;(DMZ, оператор)" style="sketch=0;html=1;shape=mxgraph.cisco19.rect;prIcon=server;fillColor=#FFFFFF;strokeColor=#d6b656;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
          <mxGeometry x="800" y="180" width="90" height="80" as="geometry" />
        </mxCell>
        <mxCell id="app" value="Payment App/API&#10;(VM/CT клиента)" style="sketch=0;html=1;shape=mxgraph.cisco19.rect;prIcon=server;fillColor=#FFFFFF;strokeColor=#DA291C;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
          <mxGeometry x="1120" y="180" width="90" height="80" as="geometry" />
        </mxCell>
        <mxCell id="db" value="БД&#10;(VM/CT клиента)" style="sketch=0;html=1;shape=mxgraph.cisco19.rect;prIcon=storage_array;fillColor=#FFFFFF;strokeColor=#DA291C;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
          <mxGeometry x="1430" y="180" width="90" height="80" as="geometry" />
        </mxCell>
        <mxCell id="acq" value="Acquirer/&#10;Платёжная система" style="sketch=0;html=1;shape=mxgraph.cisco19.rect;prIcon=cloud;fillColor=#FFFFFF;strokeColor=#82b366;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
          <mxGeometry x="1900" y="180" width="110" height="80" as="geometry" />
        </mxCell>

        <!-- Alternative protection mechanisms zone (replaces HSM) -->
        <mxCell id="altZone" value="Механизмы защиты PAN вместо HSM (выбор клиента) — Req. 3.5.1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FDECEA;strokeColor=#DA291C;strokeWidth=2;verticalAlign=top;fontStyle=1;fontColor=#DA291C;" vertex="1" parent="1">
          <mxGeometry x="1080" y="500" width="700" height="320" as="geometry" />
        </mxCell>

        <mxCell id="opt1" value="① Токенизация / усечение&#10;(token vault, VM/CT клиента)" style="sketch=0;html=1;shape=mxgraph.cisco19.rect;prIcon=storage_array;fillColor=#FFFFFF;strokeColor=#6A1B9A;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
          <mxGeometry x="1110" y="560" width="100" height="80" as="geometry" />
        </mxCell>
        <mxCell id="opt1n" value="PAN→токен / 6+4.&#10;Полный PAN НЕ хранится.&#10;Макс. снижение охвата." style="text;html=1;fontSize=10;align=left;fillColor=#FFFFFF;strokeColor=#cccccc;" vertex="1" parent="1">
          <mxGeometry x="1090" y="650" width="170" height="55" as="geometry" />
        </mxCell>

        <mxCell id="opt2" value="② Software KMS&#10;(прогр. ключи, клиент)" style="sketch=0;html=1;shape=mxgraph.cisco19.rect;prIcon=server;fillColor=#FFFFFF;strokeColor=#2E7D32;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
          <mxGeometry x="1340" y="560" width="100" height="80" as="geometry" />
        </mxCell>
        <mxCell id="opt2n" value="AES-256; DEK под KEK;&#10;KEK отдельно от данных.&#10;Строгие 3.6/3.7." style="text;html=1;fontSize=10;align=left;fillColor=#FFFFFF;strokeColor=#cccccc;" vertex="1" parent="1">
          <mxGeometry x="1320" y="650" width="170" height="55" as="geometry" />
        </mxCell>

        <mxCell id="opt3" value="③ Нативное TDE / LUKS&#10;(СУБД/том, клиент)" style="sketch=0;html=1;shape=mxgraph.cisco19.rect;prIcon=storage_array;fillColor=#FFFFFF;strokeColor=#EF6C00;verticalLabelPosition=bottom;verticalAlign=top;" vertex="1" parent="1">
          <mxGeometry x="1570" y="560" width="100" height="80" as="geometry" />
        </mxCell>
        <mxCell id="opt3n" value="Прозрачное шифр. БД/тома.&#10;Доп. слой; не единств.&#10;мера для 3.5.1." style="text;html=1;align=left;fontSize=10;fillColor=#FFFFFF;strokeColor=#cccccc;" vertex="1" parent="1">
          <mxGeometry x="1550" y="650" width="170" height="55" as="geometry" />
        </mxCell>

        <mxCell id="altNote" value="Клиент выбирает один или комбинацию. Приоритет — токенизации/усечению (выводят полный PAN из хранения). Все ключи (при шифровании) — у клиента; оператор доступа НЕ имеет." style="text;html=1;fontSize=11;align=left;fillColor=#FFFFFF;strokeColor=#DA291C;verticalAlign=top;spacingLeft=6;spacingTop=4;" vertex="1" parent="1">
          <mxGeometry x="1100" y="730" width="660" height="70" as="geometry" />
        </mxCell>

        <!-- storage operator -->
        <mxCell id="store" value="Virtuozzo Storage (реплика 3) — оператор. Шифрование тома at-rest (Req. 3.5). Оператор НЕ имеет ключей/открытого PAN клиента." style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FDECEA;strokeColor=#DA291C;align=center;fontSize=11;verticalAlign=middle;" vertex="1" parent="1">
          <mxGeometry x="1080" y="860" width="700" height="60" as="geometry" />
        </mxCell>

        <!-- FLOW 1 authorization -->
        <mxCell id="a1" value="①443/tcp TLS1.3 · PAN+CVV(SAD) в канале" style="endArrow=classic;html=1;strokeColor=#2E7D32;strokeWidth=2;fontColor=#2E7D32;fontSize=10;fontStyle=1;" edge="1" parent="1" source="ch" target="fgt"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="a2" value="①443/tcp passthrough" style="endArrow=classic;html=1;strokeColor=#2E7D32;strokeWidth=2;fontColor=#2E7D32;fontSize=10;" edge="1" parent="1" source="fgt" target="waf"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="a3" value="①mTLS 8443/tcp · PAN+CVV" style="endArrow=classic;html=1;strokeColor=#2E7D32;strokeWidth=2;fontColor=#2E7D32;fontSize=10;" edge="1" parent="1" source="waf" target="app"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="a5" value="①авториз: TLS1.2+ 443/tcp mTLS · PAN зашифр в канале" style="endArrow=classic;html=1;strokeColor=#2E7D32;strokeWidth=2;fontColor=#2E7D32;fontSize=10;fontStyle=1;" edge="1" parent="1" source="app" target="acq"><mxGeometry relative="1" as="geometry"/></mxCell>

        <!-- app -> protection mechanism -->
        <mxCell id="m1" value="токенизация (8200/tcp TLS)" style="endArrow=classic;html=1;strokeColor=#6A1B9A;strokeWidth=2;fontColor=#6A1B9A;fontSize=10;dashed=1;dashPattern=2 4;" edge="1" parent="1" source="app" target="opt1"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="m2" value="шифр/дешифр (KMS API TLS)" style="endArrow=classic;html=1;strokeColor=#2E7D32;strokeWidth=2;fontColor=#2E7D32;fontSize=10;dashed=1;" edge="1" parent="1" source="app" target="opt2"><mxGeometry relative="1" as="geometry"/></mxCell>

        <!-- FLOW 2 store/settlement -->
        <mxCell id="s1" value="②запись: TLS 5432/tcp · токен/зашифр.PAN→at-rest(3.5.1), SAD удал.(3.3.1)" style="endArrow=classic;html=1;strokeColor=#C62828;strokeWidth=2;fontColor=#C62828;fontSize=10;fontStyle=1;" edge="1" parent="1" source="app" target="db"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="s1b" value="②TDE/LUKS на уровне БД/тома (опц.)" style="endArrow=classic;html=1;strokeColor=#EF6C00;strokeWidth=2;fontColor=#EF6C00;fontSize=10;dashed=1;" edge="1" parent="1" source="db" target="opt3"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="s2" value="②settlement: TLS1.2+ 443/tcp" style="endArrow=classic;html=1;strokeColor=#C62828;strokeWidth=2;fontColor=#C62828;fontSize=10;exitX=1;exitY=0.7;entryX=0;entryY=0.6;" edge="1" parent="1" source="db" target="acq"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="s3" value="②том БД → Virtuozzo Storage (зашифр at-rest)" style="endArrow=classic;html=1;strokeColor=#C62828;strokeWidth=1;fontColor=#C62828;fontSize=10;dashed=1;" edge="1" parent="1" source="db" target="store"><mxGeometry relative="1" as="geometry"/></mxCell>

        <!-- legend -->
        <mxCell id="legBox" value="" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#333333;" vertex="1" parent="1">
          <mxGeometry x="1840" y="500" width="540" height="600" as="geometry" />
        </mxCell>
        <mxCell id="legT" value="Легенда — Сценарий В (без HSM)" style="text;html=1;fontStyle=1;fontSize=13;align=left;" vertex="1" parent="1">
          <mxGeometry x="1860" y="510" width="500" height="24" as="geometry" />
        </mxCell>
        <mxCell id="lgf1" value="① Авторизация — сплошная зелёная" style="text;html=1;fontSize=11;align=left;fontColor=#2E7D32;" vertex="1" parent="1"><mxGeometry x="1860" y="540" width="500" height="20" as="geometry" /></mxCell>
        <mxCell id="lgf2" value="② Хранение/settlement — сплошная красная" style="text;html=1;fontSize=11;align=left;fontColor=#C62828;" vertex="1" parent="1"><mxGeometry x="1860" y="562" width="500" height="20" as="geometry" /></mxCell>
        <mxCell id="lgm" value="Механизмы защиты (вместо HSM):&#10;① токенизация/усечение — фиолетовый&#10;② software KMS (шифрование) — зелёный&#10;③ TDE/LUKS — оранжевый" style="text;html=1;fontSize=11;align=left;verticalAlign=top;" vertex="1" parent="1"><mxGeometry x="1860" y="588" width="500" height="80" as="geometry" /></mxCell>
        <mxCell id="lgBody" value="ОТВЕТСТВЕННОСТЬ (Сценарий В):&#10;• HSM НЕ используется (PCI DSS не требует HSM)&#10;• PAN нечитаем альтернативой 3.5.1&#10;• Ключи (если шифрование) — у КЛИЕНТА&#10;• Программные ключи: DEK под KEK, KEK отдельно&#10;  от данных и бэкапов, доступ по ролям (3.6/3.7)&#10;• Кастодианы/split-knowledge/dual-control — клиент&#10;• Требования 3.6/3.7 — в ROC клиента&#10;&#10;Оператор: периметр, VDOM-изоляция, шифр. тома&#10;at-rest, изоляция сегмента KMS/vault клиента.&#10;&#10;Снижение охвата:&#10;• Токенизация/усечение → полный PAN не хранится&#10;  → системы с токенами могут выйти из охвата&#10;&#10;Состояния данных:&#10;• SAD — только до авторизации, не хранится (3.3.1)&#10;• PAN в канале — TLS 1.2+ (4.2.1)&#10;• PAN at-rest — токен/шифр (3.5.1) + маска (3.4.1)&#10;&#10;Порты: 443/8443/5432/8200(vault)/KMS API/6514" style="text;html=1;fontSize=10;align=left;fillColor=#FFFFFF;strokeColor=none;verticalAlign=top;" vertex="1" parent="1">
          <mxGeometry x="1860" y="672" width="510" height="420" as="geometry" />
        </mxCell>

        <mxCell id="zCde2" value="ТЕНАНТ-CDE 2 — другой самостоятельный CDE (свой VLAN+VDOM, свой ROC)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FCE4EC;strokeColor=#AD1457;strokeWidth=2;dashed=1;verticalAlign=top;fontStyle=1;fontColor=#AD1457;align=center;spacingTop=6;" vertex="1" parent="1">
          <mxGeometry x="1040" y="1080" width="780" height="90" as="geometry" />
        </mxCell>
        <mxCell id="cde2app" value="VM/CT тенанта 2 (свой PAN, свой механизм защиты/ключи)" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#FFFFFF;strokeColor=#AD1457;fontSize=11;" vertex="1" parent="1">
          <mxGeometry x="1080" y="1118" width="700" height="40" as="geometry" />
        </mxCell>
        <mxCell id="denyEdge" value="CDE-1 ⇄ CDE-2: DENY-ALL (между тенантами-CDE взаимодействие ЗАПРЕЩЕНО полностью; исключений нет, всё блокируется и логируется)" style="endArrow=classic;startArrow=classic;html=1;strokeColor=#C62828;strokeWidth=3;dashed=1;fontColor=#C62828;fontSize=12;fontStyle=1;exitX=0.5;exitY=1;entryX=0.5;entryY=0;" edge="1" parent="1" source="zCde" target="zCde2"><mxGeometry relative="1" as="geometry"/></mxCell>
        <mxCell id="scopeNote" value="Охват: управление ключами и выбор механизма — в зоне клиента → требования 3.5.1 и 3.6/3.7 покрываются клиентом (его ROC). При токенизации/усечении полный PAN не хранится — существенное снижение охвата. Оператор отвечает за инфраструктурную изоляцию и шифрование тома at-rest. Конкретный механизм, порты, версии TLS уточнить по фактической конфигурации." style="text;html=1;fontSize=11;align=left;fillColor=#FFF8E1;strokeColor=#d6b656;verticalAlign=top;spacingLeft=8;spacingTop=6;" vertex="1" parent="1">
          <mxGeometry x="40" y="1230" width="1780" height="60" as="geometry" />
        </mxCell>
      </root>
    </mxGraphModel>
  </diagram>
</mxfile>
