public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Stefan Sterz <s.sterz@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [pbs-devel] [PATCH proxmox{, -backup} 00/12] authentication cleanup and
Date: Thu, 15 Feb 2024 16:19:49 +0100	[thread overview]
Message-ID: <20240215152001.269490-1-s.sterz@proxmox.com> (raw)

this series adds some more functionality to `proxmox-auth-api` and tries
to clean it up a little. the first commit tries to move signing into
the keyring itself, instead of exposing the openssl's `Signer` further.

the second commit replaces our old P-256 ec signatures with Ed25519
which offers similar security but is a bit more modern and tries to
avoid common implementation pitfalls.

the third commit adds hmac signing to the `proxmox-auth-api`'s `Keyring`
which is useful for applications where only one daemon is issueing and
verifying tickets. hmac uses symmetric keys and is much more efficient
than asymetric signature schemes. the downside being that the verifier
and the signer need to be the exact same party, as the verification key
can also be used to issue new signatures.

the fourth commit uses the hmac functionality to sign csrf tokens. here
we previously used a self-rolled potentially insecure method of
generating these tokens. hmac avoids common pitfalls here. the commit
also provides a fallback to avoid compatability issues.

the next three commits move our password hashing scheme to yescrypt,
implement a constant time comparison for password hashes and add a
method to enable us to upgrade existing hashes respectively. the final
commit for `proxmox-auth-api` cleans up some test cases that were
failing for the wrong reasons.

the four commits on the proxmox backup server side do the following:

- use hmac keys when generating new csrf tokens
- upgrade password hashes on log in if they are not using the latest
  password hash function already
- add a `proxmox-backup-manager` command to upgrade existing hashes
- use Ed25519 keys when generating new auth keys

the first and the last commit here will require a bump of
`proxmox-auth-api`, while the middle two patches will require a bump to
`proxmox-sys`.

proxmox:

Stefan Sterz (8):
  auth-api: move signing into the private key
  auth-api: move to Ed25519 signatures
  auth-api: add ability to use hmac singing in keyring
  auth-api: move to hmac signing for csrf tokens
  sys: crypt: move to yescrypt for password hashing
  sys: crypt: use constant time comparison for password verification
  sys: crypt: add helper to allow upgrading hashes
  auth-api: fix types `compilefail` test

 proxmox-auth-api/src/api/access.rs |  88 ++++++++--
 proxmox-auth-api/src/api/mod.rs    |   6 +-
 proxmox-auth-api/src/auth_key.rs   | 211 +++++++++++++++++-----
 proxmox-auth-api/src/lib.rs        |   2 +-
 proxmox-auth-api/src/ticket.rs     |  40 ++---
 proxmox-auth-api/src/types.rs      |  10 +-
 proxmox-sys/Cargo.toml             |   3 +-
 proxmox-sys/src/crypt.rs           | 271 ++++++++++++++++++++++++++++-
 8 files changed, 540 insertions(+), 91 deletions(-)


proxmox-backup:

Stefan Sterz (4):
  auth: move to hmac keys for csrf tokens
  auth: upgrade hashes on user log in
  auth/manager: add manager command to upgrade hashes
  auth: us ec keys as auth keys

 src/auth.rs                            |  32 +++--
 src/auth_helpers.rs                    | 176 ++++++++++---------------
 src/bin/proxmox_backup_manager/user.rs |  34 ++++-
 3 files changed, 122 insertions(+), 120 deletions(-)


Summary over all repositories:
  11 files changed, 662 insertions(+), 211 deletions(-)

--
Generated by git-murpp 0.5.0




             reply	other threads:[~2024-02-15 15:20 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-15 15:19 Stefan Sterz [this message]
2024-02-15 15:19 ` [pbs-devel] [PATCH proxmox 01/12] auth-api: move signing into the private key Stefan Sterz
2024-02-26 20:22   ` Esi Y
2024-02-27  9:12     ` Stefan Sterz
2024-02-27 18:13       ` Esi Y
2024-02-29 16:07         ` Stefan Sterz
2024-02-15 15:19 ` [pbs-devel] [PATCH proxmox 02/12] auth-api: move to Ed25519 signatures Stefan Sterz
2024-02-15 15:19 ` [pbs-devel] [PATCH proxmox 03/12] auth-api: add ability to use hmac singing in keyring Stefan Sterz
2024-02-15 15:19 ` [pbs-devel] [PATCH proxmox 04/12] auth-api: move to hmac signing for csrf tokens Stefan Sterz
2024-02-19 16:02   ` Max Carrara
2024-02-20 12:54     ` Max Carrara
2024-02-23  9:26       ` Stefan Sterz
2024-02-23 10:48         ` Thomas Lamprecht
2024-02-23 10:52           ` Stefan Sterz
2024-02-23 13:06         ` Wolfgang Bumiller
2024-02-15 15:19 ` [pbs-devel] [PATCH proxmox 05/12] sys: crypt: move to yescrypt for password hashing Stefan Sterz
2024-02-15 15:19 ` [pbs-devel] [PATCH proxmox 06/12] sys: crypt: use constant time comparison for password verification Stefan Sterz
2024-02-19 16:11   ` Max Carrara
2024-02-23  9:26     ` Stefan Sterz
2024-02-15 15:19 ` [pbs-devel] [PATCH proxmox 07/12] sys: crypt: add helper to allow upgrading hashes Stefan Sterz
2024-02-19 18:50   ` Max Carrara
2024-02-23  9:26     ` Stefan Sterz
2024-02-15 15:19 ` [pbs-devel] [PATCH proxmox 08/12] auth-api: fix types `compilefail` test Stefan Sterz
2024-02-15 15:19 ` [pbs-devel] [PATCH proxmox-backup 09/12] auth: move to hmac keys for csrf tokens Stefan Sterz
2024-02-19 18:55   ` Max Carrara
2024-02-23  9:26     ` Stefan Sterz
2024-02-15 15:19 ` [pbs-devel] [PATCH proxmox-backup 10/12] auth: upgrade hashes on user log in Stefan Sterz
2024-02-19 18:58   ` Max Carrara
2024-02-23  9:26     ` Stefan Sterz
2024-02-15 15:20 ` [pbs-devel] [PATCH proxmox-backup 11/12] auth/manager: add manager command to upgrade hashes Stefan Sterz
2024-02-19 19:06   ` Max Carrara
2024-02-23  9:26     ` Stefan Sterz
2024-02-15 15:20 ` [pbs-devel] [PATCH proxmox-backup 12/12] auth: us ec keys as auth keys Stefan Sterz
2024-02-19 19:10   ` Max Carrara
2024-02-23  9:26     ` Stefan Sterz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240215152001.269490-1-s.sterz@proxmox.com \
    --to=s.sterz@proxmox.com \
    --cc=pbs-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal