feat(auth): bring opaque (RFC 9807) auth
OPAQUE (RFC 9807) implementation (using `opaque-ke` crate)
with opaque authentfication, server will never receive the password (in the auth=password mode)
this is a must have to create trust with users to permit end to end encryption in the future
(we cannot know if user use the same password/passphrase for his asymetric key or his oxicloud auth,
this is why server must never have the password)
pass1: prepare server
This commit is contained in:
@@ -117,3 +117,31 @@ OXICLOUD_MAGIC_LINK_SEND_PER_IP_PER_HOUR=50
|
||||
# permits IP spoofing for tests
|
||||
OXICLOUD_TRUST_PROXY_CIDR=0.0.0.0/0
|
||||
|
||||
# ── OPAQUE aPAKE (Phase 0 substrate) ────────────────────────────────
|
||||
# Boot the OPAQUE service in Migrate mode so every Hurl run exercises:
|
||||
# 1. OpaqueConfig::from_env parsing all five OPAQUE env vars.
|
||||
# 2. effective_mode(&auth) permitting Migrate because password IS in
|
||||
# OXICLOUD_AUTH_METHODS above (would auto-downgrade to Off if we
|
||||
# had disabled it — that path is unit-tested in
|
||||
# common::config::tests::effective_mode_downgrades_to_off_...).
|
||||
# 3. OpaqueService::from_config accepting a valid serialised setup.
|
||||
# 4. AppState wiring populating `opaque_service = Some(_)`.
|
||||
#
|
||||
# Phase 0 has no wire-facing endpoints, so this only proves the
|
||||
# substrate loads cleanly; opaque_substrate.hurl asserts the legacy
|
||||
# /api/auth/login path remains intact and the future OPAQUE endpoints
|
||||
# still 404 (they flip to 200 when Phase 1 lands).
|
||||
#
|
||||
# The SERVER_SETUP below is a throwaway keypair generated once for the
|
||||
# test env — real deployments call `opaque-setup` and paste the output.
|
||||
# Never reuse this value outside CI. Regenerate any time with:
|
||||
# cargo run --bin opaque-setup
|
||||
OXICLOUD_OPAQUE_MODE=migrate
|
||||
OXICLOUD_OPAQUE_SERVER_SETUP="ZY4hAGa1MNyE7Ht+8ksLcyMmi/K2iJvxQly+DdfllUxjiH0+CjCt4hG6+9Y68jGet2L213dV0hajCbr4fXnekkWtUxqLr+butVHEksZ9NJRuZTvS6SMC73yf/yku4WUHT1NSRB2yHurAFmYn75D9wdA1VaXTuwgO/u5i1pvcsQs="
|
||||
# Fast Argon2id — CI machines are underpowered vs production (256 MiB
|
||||
# default would drag every test-scaffold future OPAQUE handshake in
|
||||
# Phase 1+). Matches the params used in the round-trip unit test.
|
||||
OXICLOUD_OPAQUE_KSF_MEMORY_KIB=8
|
||||
OXICLOUD_OPAQUE_KSF_ITERATIONS=1
|
||||
OXICLOUD_OPAQUE_KSF_PARALLELISM=1
|
||||
|
||||
|
||||
Reference in New Issue
Block a user