5 OIPM DESCRIPTION
5.1 Verifying Authenticity of ID Tokens
This section proposes a method to verify user authen-
ticity during authentication. It begins with checking
the user’s IDT and verifying email ownership at reg-
istration, preventing attackers without email access
from registering. Users generate private and public
keys during registration. Based on FIDO2, signa-
ture verification ensures security as the private key is
stored in a FIDO device that is resistant to attacks, re-
quiring a PIN or biometric verification. FIDO2’s fea-
tures, like KHAccessToken and authenticatorClient-
PIN, are safeguarded against user-level malware, pre-
venting attackers from forging signatures(Kuchhal
et al., 2023).
Key Pair Generation During User Registration:
User registration (phase 1 in Fig. 2) involves gen-
erating a key pair, starting with the user registering
at the RP, followed by IdP authentication and receiv-
ing an IDT. The IDT is sent to the RP for valida-
tion, and the RP emails a confirmation URL to the
user. Upon clicking this URL, a personal confir-
mation token is validated by the RP, which then is-
sues a session-specific challenge to the authenticator
through the browser. User authenticity is confirmed
by biometric or PIN verification on the authenticator,
generating a key pair with the private key stored se-
curely in the authenticator. The public key, sent to
the RP along with the IDT, is saved for future login
authenticity verification.
Authenticity Verification Using Private Key at Au-
thentication: During authentication, the signature
created by the user is verified (phase 2 in Fig. 2).
Specifically, the RP uses a private key to generate a
signature that includes a random string, known as a
challenge value. This signature, along with the IDT, is
then transmitted to the RP, which uses the public key
to verify the validity of the signature. The authenticity
verification process using a signature during authenti-
cation is detailed in Fig. 3.
The user authentication process at the RP starts
with the user logging in and receiving an IDT from
the IdP, which is then sent to the RP for verifica-
tion. The RP issues a session-specific challenge to
the authenticator to prevent replay attacks and ensure
session uniqueness. The user confirms their identity
through biometric or PIN authentication on the au-
thenticator, which then uses the private key to create
a signature. This signature, along with the IDT, is
sent to the RP, where the public key, provided dur-
ing registration, is used to validate the signature and
authenticate the user. Although authentication can be
Figure 3: Authenticity Verification Using Private Key at
Authentication.
achieved solely through FIDO-based signatures, it is
crucial for SSO that RPs continuously reference and
update IdP user information for personalized expe-
riences. Therefore, transmitting the IDT alongside
FIDO-based signatures remains essential.
5.2 Verifying Authenticity of Session
Tokens
This section proposes a method for verifying user au-
thenticity in post-authentication. Specifically, when
users have been logged in, a random string (secret)
shared exclusively between the user and the RP is
generated. This allows the verification of user authen-
ticity at the time of post-authentication to be substi-
tuted and verified through the maintenance of the se-
cret. The following explains the generation and ver-
ification method of the secret at the time of authen-
tication and describes a re-authentication method to
address the threat of secret theft.
Authenticity Verification Using Secret at Post-
Authentication: During authentication, verifying au-
thenticity with FIDO private keys requires a ges-
ture. Requiring gestures for each post-authentication
request would hinder convenience, so we use a
shared secret between the user and RP instead. This
128-bit random string (secret) secures request au-
thenticity and resists brute-force attacks. For post-
authentication requests, the user-generated hash value
is verified (phase 3 in Fig. 2). Specifically, a hash
value is generated using a nonce value and the secret
created by the RP, and this hash value, along with the
ST, is sent to the RP. The RP then generates a hash
value using the nonce value and secret and compares
it with the received one.
After user authentication, the RP stores an unpre-
dictable secret, the user’s IP address and device de-
tails. Additionally, the RP issues a ST and returns it
with the secret. The secret is stored in non-persistent
OIPM: Access Control Method to Prevent ID/Session Token Abuse on OpenID Connect
677