Что Veriqa хранит сегодня
Начнём с текущего состояния: именно на нём вы принимаете решение о рисках. Идентификатор канала и профиль хранятся в открытом виде. Ключ канальной идентичности — пара «тип канала + идентификатор пользователя в нём», рядом лежит профиль: отображаемое имя, имя и фамилия, username, адрес почты, телефон, аватар, локаль. Производных форм на пути хранения нет, срока жизни у записи тоже. Это ровно то поведение, которое есть у любого коннектора, — но знать его лучше заранее. Маскирование сегодня закрывает только журналы. Аудит и логи по контракту не пишут ни токенов, ни неприкрытых идентичностей, и это работает. Основного хранилища эта норма не касается. И оговорка, на которой держится решение о рисках: из коробки этого хранилища нет. Veriqa не поставляет реализации порта, который сохранял бы канальную идентичность, и не регистрирует ни одной — штатная установка держит профиль ровно те минуты, что живёт транзакция. Всё описанное выше начинает действовать с момента, когда вы зарегистрировали собственную реализацию. Полный инвентарь — что где лежит, сколько живёт и что зашифровано — в Безопасности и обработке данных.Шифрование, которое в продукте уже есть, относится к секретам провайдеров каналов, а не к
идентификаторам пользователей. Рекомендации по укреплению закрывают секреты и соединение с базой
— не идентификаторы.
Каким спроектирован режим
Режим спроектирован как решение интегратора — режим уровня тенанта, который включают осознанно, а не умолчание, меняющее поведение для всех. Он сводится к четырём свойствам, и они связаны между собой. Производное значение вместо нативного идентификатора. В записи лежит односторонний хеш на секрете, а не сам идентификатор. Один и тот же человек всегда даёт одно и то же значение — учётная запись узнаётся при каждом входе, — но обратно в telegram id или адрес почты значение не разворачивается. Секрет живёт не рядом с данными. Он в KMS или секрет-сторе, включая self-hosted-развёртывания, без послаблений. Это не совет по укреплению, а условие работоспособности: пространство возможных входов мало настолько, что перебирается целиком, и секрет в том же снимке, что и база, позволил бы атакующему просто пересчитать функцию самому. Там, где секрет-стора нет, режим спроектирован не включаться, а не деградировать до чего-то послабее. У разных интеграторов — разные значения. Тенант входит в вычисление, поэтому один и тот же человек превращается в разное значение в базе каждого интегратора. Две утёкшие базы не склеиваются между собой и не склеиваются с купленной маркетинговой базой. А где сценарий позволяет — вообще никакого значения. Если пользователь всегда приходит из канала сам, идентификатор приезжает с каждым подтверждением, и между транзакциями хранить нечего. Сильнейшая форма свойства — не «хорошо зашифровано», а «не записано вовсе».Чем за это платят
Оба следствия вытекают из самого свойства, а не оговаривают его:- Найти пользователя по его telegram id или адресу почты станет нельзя. Ровно за это и платят.
- Сценарию, который сам инициирует подтверждение в канал, нативный идентификатор всё-таки нужен обратно. Там он спроектирован жить зашифрованным на ключе того же сервиса — обратимо, в отличие от хеша: сильнее хранения в открытом виде, слабее режима, который не хранит ничего.