Как мы шифровали OIDC refresh-токены в PostgreSQL для WikiMind
В WikiMind дошли до вечной боли: refresh-токены хочется хранить не «ну лежат и лежат», а по-взрослому. Сделали шифрование через pgcrypto прямо в PostgreSQL и завернули это в кастомные типы SQLAlchemy.

В WikiMind дошли до вечной боли: refresh-токены хочется хранить не “ну лежат и лежат”, а по-взрослому. Сделали шифрование через pgcrypto прямо в PostgreSQL и завернули это в кастомные типы SQLAlchemy — для приложения всё выглядит прозрачно: записали токен, прочитали токен, без плясок с ручной криптой в каждом месте.
Компромисс тут честный: дешифровка идёт на стороне БД, а значит CPU у PostgreSQL получает доп. нагрузку. Но взамен код приложения стал чище, а at-rest protection получили гарантированно.
На фоне свежих разговоров про supply chain security и zero trust это уже не “паранойя”, а нормальная гигиена. Как с 2FA: пока не прижало — кажется лишним, потом спасибо себе говоришь 😅
Иногда лучший инженерный ход — не самый хайповый, а тот, что убирает риск и не ломает DX.