ObsidianAuth
TOTP 2FA для Minecraft
Двухфакторная аутентификация по TOTP (RFC 6238) для серверов Paper 1.20.1 и прокси Velocity.TOTP (RFC 6238) two-factor authentication for Paper 1.20.1 servers and the Velocity proxy.Двофакторна автентифікація за TOTP (RFC 6238) для серверів Paper 1.20.1 та проксі Velocity.
О проектеOverviewПро проєкт
Пара плагинов, которая закрывает вход на сервер вторым фактором. Paper-модуль хранит секреты и проверяет коды, а Velocity-модуль страхует чат и команды на уровне прокси. Имя выбрано не случайно: обсидиан — единственный обычный блок, который держит взрыв, образует рамку портала и корпус эндер-сундука. Это и есть смысл плагина: закрытый доступ, авторитет и приватное хранилище.
Безопасность здесь не для галочки. Секреты лежат зашифрованными через AES-GCM-256, ключ берётся по цепочке KMS → файл → переменная окружения и никогда не попадает в код. До ввода кода игрок заблокирован полностью: движение, ломание блоков, сундуки, чат — всё отменяется на стороне сервера. Никаких NMS и Mixin, только публичные API.
Архитектура — многомодульный Gradle-проект на Java 17, спроектированный спецификацией заранее: отдельная конституция проекта запрещает трогать внутренности движка. Это серверный плагин уровня продакшена, а не учебная демка.
A plugin pair that gates server login behind a second factor. The Paper module stores secrets and verifies codes; the Velocity module guards chat and commands at the proxy level. The name is deliberate: obsidian is the one ordinary block that survives an explosion, frames a portal and shells an ender chest — gated access, authority, private storage.
Security here is real. Secrets are stored AES-GCM-256 encrypted, the master key resolved via KMS → key file → env var and never hard-coded. Before a valid code, the player is fully locked: movement, block breaking, containers and chat are all cancelled server-side. No NMS, no Mixin, public APIs only.
The architecture is a multi-module Java 17 Gradle project, spec-driven up front: a project constitution forbids touching engine internals. This is a production-grade server plugin, not a learning demo.
Пара плагінів, що закриває вхід на сервер другим фактором. Paper-модуль зберігає секрети й перевіряє коди, а Velocity-модуль страхує чат і команди на рівні проксі. Назва не випадкова: обсидіан — єдиний звичайний блок, що витримує вибух, утворює рамку порталу та корпус ендер-скрині.
Безпека тут справжня. Секрети зберігаються зашифрованими через AES-GCM-256, ключ береться ланцюжком KMS → файл → змінна оточення й ніколи не потрапляє в код. До введення коду гравець повністю заблокований. Жодних NMS і Mixin, лише публічні API.
Архітектура — багатомодульний Gradle-проєкт на Java 17, спроєктований специфікацією заздалегідь. Це серверний плагін рівня продакшену, а не навчальна демка.
ОсобенностиFeaturesОсобливості
- Paper-авторитетная архитектура: секреты и проверка только на сервере
- Шифрование секретов AES-GCM-256 с привязкой к UUID игрока
- Ленивая ротация ключей без простоя
- Failure-closed: неопределённое состояние считается «не авторизован»
- Безопасная выдача QR-кода с атомарным восстановлением инвентаря
- Без NMS и Mixin — только публичные API Paper и Velocity
- Paper-authoritative: secrets and verification stay on the server
- AES-GCM-256 secret encryption bound to player UUID
- Lazy key rotation with zero downtime
- Failure-closed: an indeterminate state counts as unauthenticated
- Inventory-safe QR delivery with atomic restore
- No NMS or Mixin — Paper and Velocity public APIs only
- Paper-авторитетна архітектура: секрети й перевірка лише на сервері
- Шифрування секретів AES-GCM-256 з прив'язкою до UUID гравця
- Лінива ротація ключів без простою
- Failure-closed: невизначений стан вважається «не авторизований»
- Безпечна видача QR-коду з атомарним відновленням інвентарю
- Без NMS і Mixin — лише публічні API