Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vkgEx-000vEC-2B for pgsql-hackers@arkaria.postgresql.org; Tue, 27 Jan 2026 10:24:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vkgEw-00DANM-1w for pgsql-hackers@arkaria.postgresql.org; Tue, 27 Jan 2026 10:24:06 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vkgEw-00DANE-0s for pgsql-hackers@lists.postgresql.org; Tue, 27 Jan 2026 10:24:06 +0000 Received: from fhigh-b2-smtp.messagingengine.com ([202.12.124.153]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vkgEt-002Xze-37 for pgsql-hackers@postgresql.org; Tue, 27 Jan 2026 10:24:05 +0000 Received: from phl-compute-05.internal (phl-compute-05.internal [10.202.2.45]) by mailfhigh.stl.internal (Postfix) with ESMTP id C58DF7A024D; Tue, 27 Jan 2026 05:24:03 -0500 (EST) Received: from phl-imap-03 ([10.202.2.93]) by phl-compute-05.internal (MEProxy); Tue, 27 Jan 2026 05:24:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=compiler.org; h= cc:cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm2; t=1769509443; x=1769595843; bh=/aNcz16nA+rpBVqNV7L/xOmLlPuL7IcmYTvk/ouLlmE=; b= Bri1eE78ouUkRVBPYUSPzj/Rjsy0vXTI27q/+0AoFtb8py1FGJTEexA35Mpi4Dmx MZ9JZGsJXJDp0ZavfxGn482OwIVSpJ2+spIb6NHU/kC5LRLvuYjk7pHIPBmFL5TO G15DobjoI68h6FlH4muimSBgxWNguq5vMkzLVpLiJWzT25awPTW+mcG9puUBxjOP NsLype0GDyidSwZwKK8qrI5M4ojcdyifI1JyH7wTVpMU7deMP+YXFnM226N3EEoI 4EAHZzT73MMzi7oIVTy5k18Aa/hsTIh+ewOeOnqN2ElKB4rcaptpFEgE0mzuYEDD TmlZK4kJWMWVouzufm9yBw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t=1769509443; x= 1769595843; bh=/aNcz16nA+rpBVqNV7L/xOmLlPuL7IcmYTvk/ouLlmE=; b=N 1DrgnWJ3rCW3OkDrP7xvNtueCRsxzosfUbIPekO9h6PHwSD/wfMRZwnGfNBHiZGL MdUyBvrVidfPIZfegIUeT5zbU2w6//13Vu1G1uyh3FrCwBcQ1ODGaNpRo34TeHA0 pY/csN4I5e862i8FEhOUHI8YfFmp6yWupObT2Mc39TywqX+ZGY9v+A9Z6HUJbbnQ yF1iPPayk+frHas3Cd57MjXf+tvVtm1Zc/0lShLDm1gN8nIp+1vBxrvgOZ+OVnVU EAYxSgQHbGjsUm0IdWtQy/iLrIP8gD478CZ8VCaQfZ4D6JYCG9vwVOYVCgv1txY7 gsiFNhpmxcw4XVX9rzaIQ== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefgedrtddtgdduiedtvdekucetufdoteggodetrf dotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfurfetoffkrfgpnffqhgenuceu rghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmnecujf gurhepofggfffhvfevkfgjfhfutgfgsehtjeertdertddtnecuhfhrohhmpedflfhovghl ucflrggtohgsshhonhdfuceojhhovghlsegtohhmphhilhgvrhdrohhrgheqnecuggftrf grthhtvghrnhepfeehleffgedvleefveetjedtkeetfeeliefhtdduleekieejtdevgfeu veeikeeinecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomh epjhhovghlsegtohhmphhilhgvrhdrohhrghdpnhgspghrtghpthhtohepvddpmhhouggv pehsmhhtphhouhhtpdhrtghpthhtohepiihsohhlthdrphgrrhhrrghgihesphgvrhgtoh hnrgdrtghomhdprhgtphhtthhopehpghhsqhhlqdhhrggtkhgvrhhssehpohhsthhgrhgv shhqlhdrohhrgh X-ME-Proxy: Feedback-ID: ic6394509:Fastmail Received: by mailuser.phl.internal (Postfix, from userid 501) id 4B92918E0071; Tue, 27 Jan 2026 05:24:03 -0500 (EST) X-Mailer: MessagingEngine.com Webmail Interface MIME-Version: 1.0 X-ThreadId: AqjVpH9sACpR Date: Tue, 27 Jan 2026 11:23:43 +0100 From: "Joel Jacobson" To: "Zsolt Parragi" Cc: pgsql-hackers Message-Id: <15730b4b-bbcd-4ec3-b448-504073a31f96@app.fastmail.com> In-Reply-To: References: Subject: Re: Time to add FIDO2 support? Content-Type: text/plain Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Tue, Jan 27, 2026, at 10:35, Joel Jacobson wrote: > Draft [1] ("SASL Passkey") is essentially "SASL over WebAuthn/passkeys". > I don't think the browser-based WebAuthn-protocol maps well to PostgreSQL, > due to the browser-specific RP ID model (DNS name, HTTPS, origin checks, > etc). Also, for Passkeys i.e. Cloud Provider backed keys, to work, > at least on Apple macOS, native apps need platform-specific entitlement > / domain-association requirements (AASA). I was curious what would happen if trying a self-compiled Chromium on my macOS machine, with a website that supports Passkeys. Expectedly, it refuses access to the keys stored locally: [35826:18100134:0127/105844.098344:ERROR:components/device_event_log/device_event_log_impl.cc:202] [10:58:44.058] FIDO: touch_id_context.mm:89 Touch ID authenticator unavailable because keychain-access-group entitlement is missing or incorrect. Expected value: .org.chromium.Chromium.webauthn This is due to the lack of "entitlement" for the app (Chromium). However, when trying to sign-up and sign-in via Passkey, Chromium or macOS instead shows a QR-code. Scanning this QR code with my separate iPhone device, then opened up the native Apple Passkey UI, where I could select among my passkeys, and then authenticate using FaceID. While not as convenient as being able to use TouchID one the same device, I still think this is interesting, as it would then provide an option to use real cloud-backed Passkeys. I haven't explored what kind of API that provides this QR-based Passkey mechanism, but will do some digging. I guess psql would then show a ASCII art QR code, which the user would scan using their Cloud Provider mobile phone device. If it turns out it could work, then I think it should be a separate auth method, since it has different tradeoffs between security and convenience, compared to only storing the secret key on the hardware security device. /Joel