Authentication Flashcards

1
Q

Authentication factors and their risks

A
  1. knowledge: something only the user knows, e.g. static pwd, code, personal identification number
  2. ownership: something only the user possesses (often called an “authenticator”), e.g. token, smart card, smartphone
  3. inherence: something the user is,
    e.g. a biometric characteristic (such as a fingerprint)

Consider application not only to human users but also to processes and devices

Risks:
1. knowledge (e.g. password): storage and demonstration/transmission
2. ownership (e.g. smartphone): authenticator itself, theft, cloning, unauthorised usage
3. inherence (e.g. biometrics): counterfeiting and privacy, cannot be replaced when “compromised” (big problem!). Use it only for LOCAL authentication, as a mechanism to unlock a secret or a device

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Digital authentication model

A

In a digital ecosystem the following components take part in the authentication process:

  1. CSP (Credential Service Provider): The CSP is the entity responsible for establishing and maintaining the digital identity. It performs identity proofing, ensuring that the person claiming a particular identity is, in fact, who they claim to be. This means that the CSP will issue or enroll a user + verify and STORE associated attributes. After successful identity proofing, the CSP issues credentials to the applicant.
  2. Applicant: This is the individual who applies for a digital identity. They must prove their identity to the CSP, typically through a process known as enrollment, which may include providing personal information and verifying existing identity documents.
  3. Authenticator: This is a tool or device used to authenticate the identity of a person, such as a security token, mobile phone, smart card, or biometric device.
  4. Subscriber: Once the applicant’s identity is verified, they become a subscriber. They possess the authenticator and are enrolled in the CSP’s service.
  5. Claimant: When the subscriber attempts to access a service, they become a claimant. They present their credential to demonstrate their identity, usually as part of an authentication protocol.
  6. Authenticated Session: If the claimant successfully authenticates, an authenticated session is established with the relying party.
  7. Verifier: The verifier is responsible for validating the claimant’s presented credentials against the CSP’s records. This process typically involves checking the authenticator and associated credentials to ensure they match what was issued during enrollment.
  8. Relying Party: This is the service or entity that relies on the authentication process. The relying party requires assurance that the claimant is the legitimate subscriber before granting access to services or resources. After successful verification, the relying party accepts an authentication assertion from the verifier.
  9. Authentication Assertion: This is a statement from the verifier to the relying party that confirms the claimant has been authenticated.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Password-based authentication

A

The secret is the user password

Client side
The client creates and transmits the proof (secret) using the identity function F = I, i.e. proof = password. The password is sent in clear both if the server stores the password in clear and if they are stored with their hash value (cleartext!)

Server side
The server will verify the proof:
* case #1: f = I (the identity function) -> the server knows all passwords in cleartext (!) so the access control will be: proof == password ?
* case #2: f = one-way hash -> server knows the passwords’ digests, HUID (unprotected!) so the access control will be: f(proof) == HUID ?

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Problems of reusable passwords

A
  • pwd sniffing
  • pwd DB attacks (if DB contains plaintext or obfuscated pwd)
  • pwd guessing (very dangerous if it can be done offline, e.g. against a list of pwd hashes)
  • pwd enumeration: if pwd limited in length or character type or if authN protocol does not block repeated failures
  • pwd duplication (using the pwd for one service against another one, due to user pwd reuse)
  • cryptography ageing (flexibility on algorithms due to new attacks and more computing power)
  • pwd capture via server spoofing and phishing
  • MITM attacks
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Password storage

A

Server side
* NEVER in cleartext!
* encrypted password? then the Verifier must know the encryption key in cleartext… better storing a digest of the password
* … but beware of the “dictionary” attack, that can be made faster by a “rainbow table”
* -> we must insert an unexpected variation, named “salt

Client-side
* should be only in the user’s head … but too many passwords -> use an encrypted file (or a “password wallet / manager”)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

The “dictionary” attack

A

hypothesis:
* known hash algorithm
* known password hash values

pre-computation:
~~~
for (each Word in Dictionary) do
store ( DB, Word, hash(Word) )
~~~

attack:
let HP be the hash value of a (unknown) password
~~~
w = lookup ( DB, HP )
if ( success )
then write( “pwd = “, w )
else
write( “pwd not in my dictionary” )
~~~

Pre-computation is the key (mounting the attack after discovering HP could take more time than the pwd lifetime)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Rainbow table

A

It is a space-time trade-off technique to store (and lookup) an exhaustive hash table (less space, more time)
It makes exhaustive attack feasible for certain password sets

example: table for a 12 digits password
exhaustive
10^{12} rows { Pi : HPi }

rainbow
10^9 rows, each representing 1000 pwd
The rainbow attack uses the **reduction function r : h -> p (which is NOT h^-1) **

pre-computation:
~~~
for ( 10^9 distinct P )
for (p=P, n=0; n<1000; n++)
k=h(p); p=r(k);
store ( DB, P, p ) // chain head and tail
~~~

Example:
Assume we have a simple password set (P1, P2, P3,…) and we hash it to (H1, H2, H3,…) respectively.
We then apply the reduction function
r(H1) to get a new plaintext (R1).
We hash R1 to get HR1and reduce again to R”, and so on.
After n steps, we store the first plaintext (P1) and the last reduction result (Rn) as a single entry in the table.

Attack:
let HP be the hash of a password
~~~
for (k=HP; n=0; n<1000; n++)
p = r(k)
if lookup( DB, x, p ) then exit ( “chain found!” )
k = h(p)
exit ( “HP is not in any chain of mine” )
~~~
You apply the last reduction function used in your table to HP to get a potential plaintext, RP.
You search for RP in the “endpoints” of your Rainbow Table.
If you find RP, you go to the corresponding starting plaintext in that chain (let’s say it’s P1).
You hash P1 and apply the reduction functions repeatedly, reconstructing the chain until you get to the point where RP was generated.
If at any step, the hash matches HP, the plaintext you just used to generate that hash is the original password.

To avoid “fusion” of chains r0( ) … rn() are used for the different reduction steps

On sale there are pre-computed rainbow tables for various hash functions and password sets (e.g. SHA1 for alphanumeric)

This technique is used by various attack programs

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

How to use the salt in storing passwords?

A

for each user UID:
- create / ask the pwd
- generate a salt (different for each user) that is random (unpredictable) and long (increased dictionary complexity). Should contain rarely used or control characters
- compute HP = hash ( pwd || salt )
- store the triples { UID, HPUID, saltUID }

Additional benefit: we have different HP for users having the same pwd + makes the dictionary attacks nearly impossible, included those based on rainbow tables (a space-time trade-off technique to enable exhaustive search for a character set)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Strong authN: ECB definition

A
  • strong customer authN is a procedure based on the use of two or more of knowledge, ownership, and inherence
  • the elements selected must be mutually independent, i.e. the breach of one does not compromise the other(s)
  • at least one element should be non-reusable and non-replicable (except for inherence), and not capable of being surreptitiously stolen via the Internet
  • the strong authentication procedure should be designed in such a way as to protect the confidentiality of the authentication data
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Strong authN: PCI-DSS definition

A
  • v3.2 requires multi-factor authentication (MFA) for access into the cardholder data environment (CDE) from trusted or untrusted network, by administrators. Exception: direct console access (physical security)
  • … and for remote access: from untrusted network, by users and third-parties (e.g. maintenance)
  • MFA is not twice the same factor (e.g. two passwords)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Strong authN: other definitions

A
  • Handbook of Applied Cryptography: a cryptographic challenge-response identification protocol
  • more in general: technique resisting to a well-defined set of attacks
  • conclusion: an authN technique can be regarded as strong or weak depending on the attack model

e.g. users of Internet banking > ECB definition
e.g. employees of PSP > PCI-DSS definition

watch out for your specific application field = risks

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Challenge-response authentication (CRA): how does it work and issues

A
  1. A challenge is sent to the Claimant who replies with the solution computed using some secret knowledge and the challenge
  2. The Verifier compares the response with a solution computed via a secret associated to the Claimant

General issues
* the challenge must be non-repeatable to avoid replay attacks -> usually the challenge is a (random) nonce
* the function f must be non-invertible, otherwise a listener can record the traffic and easily find the shared secret

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Symmetric CRA: problems, solution, mutual authN

A

A challenge system is an authentication process that verifies an identity by requesting that the correct authentication information be provided in response to a challenge.
The symmetric version requires that the response to the challenge is calculated with the common key shared with the server

Authentication procedure
1. identification: the client sends its UID;
2. request for proof: the server generates a nonce and random number n and sends it as a challenge;
3. test: the client computes the keyed-digest on the challenge received, using the shared secret k as the key d = H (k, n) and transmits the keyed-digest d calculated as a solution to the challenge;
4. check: the server performs the same calculation of the solution using the generated challenge and the shared secret, and compares the proof received with the calculated solution:
if (d = H (k, n)) then OK else ALARM

Requirements, pros and cons
* Claimant and Verifier share a secret (e.g. a pwd or a key). The secret must be known in cleartext to the Verifier but that can lead to attacks against the { ID:K } table at the Verifier.
* The easiest implementation uses a hash function (faster than encryption) (sha1 (deprecated), sha2 (recommended), sha3 (future))
* the challenge goes clear
* + no sniffing
* + no replay (challenge contains a nonce)
* client side, the user must have a hash function to calculate the response (not always possible)

Solution
SCRAM (Salted CRA Mechanism) solves this problem by using hashed passwords at the Verifier. SCRAM also offers channel binding
and mutual authentication.

Mutual symmetric CRA (v1)
* this is the base exchange
* only the initiator provides explicitly its (claimed) identity
* BEWARE! old & bad protocol

Let A and B be the two peers:
1. A sends to B its identity
2. B answers with it challenge C_B
3. A responds to the challenge by encrypting it with the shared key: enc(K_AB, C_B) + A sends its challenge C_A
4. B replies with enc(K_AB, C_A)

Mutual symmetric CRA (v2)
* reduction in the number of messages (better performance but no impact on security) -> do not use
* used by the IBM SNA

  1. A sends it identity A and the challenge C_A
  2. B sends its challenge C_B and the response to the challenge enc(K_AB , C_A)
  3. A replies with enc(K_AB , C_B)

Attack to the mutual symmetric CRA: MITM

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

GSM (in)security

A

The Global System for Mobile Communication (GSM) relies on three secret algorithms for various security functions:

  • A8 Algorithm: Used for symmetric key generation within the Subscriber Identity Module (SIM) card. The generated key, denoted as Kc, is crucial for establishing a secure connection.
  • A3 Algorithm: Employed for authentication purposes within the SIM card. It plays a vital role in verifying the identity of the user and ensuring secure access to the network.
  • A5 Algorithm: This algorithm is responsible for encryption within the mobile device. It uses a stream cipher, with the most commonly used version being A5/1. However, A5/2, which is weaker in terms of security, is still used in some regions. A5/3, based on the Kasumi block cipher, is a more secure alternative but is not as widely adopted.

Despite their critical roles in GSM security, these algorithms are chosen by Mobile Network Operators (MNOs) and are not standardized across all networks.

Furthermore, the foundation of A8 and A3 algorithms often relies on the COMP128 function, which introduces potential vulnerabilities. This function, denoted as Z = COMP128(X, Y), generates 128-bit values based on two inputs X and Y. The resulting value Z is then manipulated to derive the connection key Kc.

This is security-through-obscurity … always a bad idea

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

GSM authentication

A
  • a symmetric CRA is used to authenticate the Mobile Station (MS) via its SIM to the Base Station (BS)
  • SIM contains Ki (individual subscriber authN key)
  • Ki is a 128-bit secret shared with the AC (AuthN Centre)
  • the BS sends to the SIM a random challenge C of 128 bit
  • the SIM returns SRES = A3( C, Ki ) of 32 bit

COMP128-1 is weak … with chosen-challenge (and differential cryptoanalysis) 150,000 challenges are sufficient to compute Ki.
Now we can
* clone the SIM (i.e. same Ki)
* decrypt the traffic by computing Kc for that Ki and C sent by the BS

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Asymmetric CRA: how does it work, which protocols do use it and which are its problems

A

Authentication procedure
1. identification: the client sends its public key certificate;
2. request for a test: the server generates a number n nonce, encrypts it using the Kpub public key taken from the certificate s = enc (Kpub, n)
and send the encrypted number as challenge s;
3. proof: the client decrypts the challenge s received using his private Kpri key and transmits the number in clear text as a solution to the challenge; proof = dec (Kpri, s)
4. check: the server compares the proof received with the generated number n: if (test = n) then OK else ALARM

Pros and cons:
* + the challenge is transmitted encrypted
* + no sniffing attacks: it is not possible to trace the user’s private key;
* + no replay attacks: the challenge contains a nonce number;
* + unnecessary server-side confidentiality: no confidential information is stored on the server.
* - computational complexity on the client side

This is the strongest mechanism because it does not require secret storage at the verifier.

It is implemented for peer authentication (client and server) in IPsec, SSH, and TLS and it is the cornerstone for user authentication in FIDO.

Problems
* slow
* if designed inaccurately may lead to an involuntary signature by the Claimant
* PKI issues (trusted root, name constraint, revocation): avoidable if the Verifier stores ID.PK… but this moves equivalent PKI effort to the Verifier

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

One-Time Password (OTP)

A
  • password valid only for one run of the authentication protocol, next run requires another password
  • immune to sniffing
  • subject to MITM (needs Verifier authentication)
  • difficult provisioning to the subscribers -> lot of passwords, password exhaustion
  • difficult password insertion: typically contains random characters to avoid guessing
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

OTP provisioning to the users

A

on “stupid” or insecure/untrusted workstation: paper sheet of pre-computed passwords (“password cards”) or hardware authenticator (crypto token)

on intelligent and secure/trusted workstation : automatically computed by an ad-hoc application; typical for smartphone, tablet, laptop, …

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

The S/KEY system (I)

A

It is the first OTP system and implementation by Bell Labs (1981)

  1. the user generates a secret SID
  2. the user computes N one-time passwords: P1=h(SID), P2=h(P1), ..., PN=h(PN-1)
  3. the Verifier stores the last one P_N: P_N will never be used directly for authentication, but only indirectly
  4. Verifier asks for PN-1 and gets X, i.e. asks for pwd in inverse order: if (PN != h(X)) then FAIL else {OK; store X as PN-1}

In this way:
* the Verifier has no need to know the user’s secret
* only the user knows all passwords
* uses MD4 (other choices are possible)
* S/KEY is an example of Off-line / Pre-computed OTP

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

S/KEY – generation of the password list

A

To create the user secret (SID):
1. the user inserts a pass phrase (PP): minimum 8 char long (64 bits), secret! (if disclosed then the security of S/KEY is compromised)
2. PP is concatenated with a server-provided seed (64 bits): the seed is not secret (sent in cleartext from S to C); allows to use the same PP for multiple servers (using different seeds) and to safely reuse the same PP by changing the seed
3. a 64-bit quantity is extracted from the MD4 hash that generates 128 bits (by XORing the first / third 32-bit groups and the second / fourth groups)

  • 64-bit passwords are a compromise: neither too long (complex) nor too short (insecure).
  • The passwords are bits but they are entered by the user as a sequence of six short English words chosen from a dictionary of 2048 (2^11 -> each word is representing 11 bits) (e.g. 0=”A”, 1=”ABE”, 2=”ACE”, 3=”ACT”, 4=”AD”, 5=”ADA”)
  • client and server must share the same dictionary

example (using the dictionary in RFC-1760):
- password (text) YOU SING A NICE OLD SONG
- 1D6E5001884BD711 (hex)
- 2,120,720,442,049,943,313 (decimal)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Time-based OTP

A

The password depends upon time and the user’s secret and it is obtained by hashing their combination: p(ID,t) = h( t, SID)

  • requires local computation at the subscriber
  • requires clock synchronization (or keeping track of time-shift for each subscriber)
  • requires time-slot and authentication window: X == p(ID,t) || X == p(ID,t-1) || X == p(ID,t+1) -> only one authentication run per time-slot, typically the slot is 30s or 60s long (not good for some services)

Attacks:
* time attacks against subscriber and Verifier
* fake NTP server or mobile network femtocell
* sensitive database at the verifier
* see the attack against RSA SecurID

22
Q

A TOTP example: RSA SecurID

A
  1. the Claimant sends to the Verifier in clear user, PIN , token-code (seed, time)
    or (if an authenticator with pinpad is used) user , token-code* (seed, time, PIN)
  2. the Verifier checks against three possible token-codes: TC-1, TC0, TC+1
  • duress code: PIN to generate an alarm (to be used under attack)
  • ACE (Access Control Engine) components: ACE client (installed at the Relying Party) and ACE server (implements the Verifier)

ARCHITECTURE ON THE SLIDES

23
Q

Event-based OTP

A
  • uses monotonic integer counter C as input besides the seed: p(ID,C) = h( C, SID )
  • requires local computation at the subscriber
  • counter incremented at the subscriber (e.g. button)
  • frequent authentication runs are possible
  • the Verifier must accommodate desynchronization
  • the subscriber pushed button unwillingly
  • X==p(ID,C) || X==p(ID,C+1) || X==p(ID,C+2) || … ?
  • OTP pre-computation is possible and it is useful if there is the need to travel w/o authenticator (avoid risk of loss/stealing) … but can also be done by an adversary with temporary access to the authenticator
24
Q

Out-of-Band OTP

A
  • at step 5 secure channel w/ server authentication needed to avoid MITM attacks
  • OOB channel frequently is text/SMS message
  • can be attacked due to problems of VoIP, mobile user identification, and SS7 protocol
  • use of PSTN (SMS or voice) as OOB channel is deprecated
  • suggest using Push mechanism over TLS channel to registered subscriber device
25
Q

Two-/Multi-Factors AuthN (2FA/MFA)

A

Quite often nowadays systems require to use more than one authN fator.
This is related both to the authN process in general and to the authenticator protection (example SecureID).

For this last requirement usually a PIN is used:
* PIN transmitted along with OTP
* PIN entered to compute the OTP itself
* PIN (or inherence factor) used to unlock the authenticator. This last option is very risky if: lock mechanism weak, no protection from multiple unlock attempts, unlocking valid for a time window (the device remains unlocked for a certain time)

Summary
- use more than one factor: to increase authN strength and to protect authenticator
- usually PIN is used for the authenticator protection

26
Q

Authentication of human beings

A

How can we be sure of interacting with a human being rather than with a program (e.g. sensing a password stored in a file)? There are two solutions:
* CAPTCHA techniques (Completely Automated Public Turing test to tell Computers and Humans Apart), e.g. picture with images of distorted characters
* biometric techniques, e.g. fingerprint

27
Q

Biometric systems and their problems

A

It is the measure of one biologic characteristics of the user. The main characteristics being used are:
* fingerprint
* voice
* retinal scan and iris scan
* hands’ blood vein pattern
* heart rate
* hand geometry

Each technique can potentially be circumvented and they are NOT REPLACEABLE (!!!)

Problems of biometric systems
* FAR = False Acceptance Rate
* FRR = False Rejection Rate
* FAR and FRR may be partly tuned but they heavily depend on the cost of the device
* variable biological characteristics: finger wound, voice altered due to emotion, retinal blood pattern altered due to alcohol or drug
* psychological acceptance: “Big Brother” syndrome (=personal data collection) + some technologies are intrusive and could harm
* privacy: it’s an identification
* cannot be changed if copied: hence only useful to locally replace a PIN or a password
* lack of a standard API / SPI: high development costs and heavy dependence on single/few vendors

28
Q

Kerberos

A

It is an authentication system based on a TTP (Trusted Third Party) and it is important for non-HTTP services.

TTP stands for Third Thrusted Party, and kerberos has this definition because its authorization system also uses an intermediate ticket issuing server between pretender and verifier.

Users’ passwords are never transmitted but only used locally as (symmetric) cryptographic key.

Important components are:
* realm = Kerberos domain, that is the set of systems that use Kerberos as authentication system
* credential = user.instance@realm
* ticket: the client authentication is made through the ticket
* authenticator: if the authentication protocol success

Ticket
* data structure to authenticate a client to a server
* it has a variable lifetime (V4: max 21 hours = 5’ x 255) (V5: unlimited)
* encrypted with the symmetric key of the target server
* bound to the IP address of the client
* bound to just one credential
* ticket: server-id, client-id, client-address, timestamp, life, K_ServCli

  • client authentication compulsory
  • server authentication optional

Data formats:
* ticket: server-id, client-id, client-address, timestamp, life, KS,C
* authenticator: client-id, client-address, timestamp

29
Q

Kerberos versions and usage

A

MIT V4: the original one

MIT V5 (also RFC-1510)
 not only DES
 extended ticket lifetime (begin-end)  inter-realm authentication
 forwardable ticket
 extendable ticket

single login to all Kerberized services
 K-POP, K-NFS, K-LPD, K-telnet, K-ftp, K-dbms
 services in a Windows domain (MS has adopted Kerberos* since Windows-2000)

Kerberos v5
 RFC-4120 (obsoletes RFC-1510)  algorithm flexibility
 client and servers may support different algorithms  originally it was DES-CRC32
 then 3DES, RC4, AES, Camellia and MD4, MD5
 pre-authentication
 to prevent pwd enumeration or dictionary attacks on the TGT  e.g in Windows, the AS_REQ must contain enc( KC, T )
 support for asymmetric crypto (in AS_REQ only)

30
Q

SSO (Single Sign-On)

A

This is an authentication technique that allows the user to authenticate himself and access any service in the system with a single “credential”.

Fictitious SSO:
* it is a client that takes care of automatic password synchronization / management (alias “password wallet”)
* specific for some applications only
* does not require app modifications

Integral SSO:
* (a) it provides multi-application authentication techniques (e.g. asymmetric CRA, Kerberos) -> likely requires a change in the applications
* (b) multi-domain SSO

! Kerberos is a more general example of SSO because once you receive the TGT you can ask a TS for different services. You have to authenticate just at the first step.

31
Q

Authentication interoperability: why, goal, specifications

A

There are several solutions to implement the authentication process but each of them depends on different providers and devices that are independent and interoperable (for example a OTP can be generated by the SecureID provider or by the S/KEY one, and their generation modes are different).

There has been an international initiative, Open AuthN, whose target is the interoperability of authentication systems based on OTP, symmetric or asymmetric challenge.
They have been developing standards for the client-server protocol and the data format on the client.

They have published several standars and in particuar:
* HOTP (HMAC OTP)
* TOTP (Time based OTP)
* OATH Challenge-response protocol (OCRA)
* Portablle Symmetric Key Container: a standard to easily port symmetric keys
* Dynamic Symmetric Keys Provisioning Protocol: a standard to distribute those symmetric keys

32
Q

HOTP

A

This is an HMAC OTP standard developed by the OATH initiative.

  • this is an IMPLEMENTATION of the Event based OTP

HOTP(K,C) = sel(HMAC-h(K,C)) & 0x7FFFFFFF
* K : shared secret key
* C : counter (monotonic positive integer number)
* h : cryptographic hash function (default: SHA1) (h is the HMAC base function)
* sel : function to select 4 bytes out of a byte string (string composed of several bytes)
* the bit mask 0x7FFFFFFF is used to set MSB = 0 (to avoid problems if the result is interpreted as a signed integer)
* to generate a N digits (6-8) access code: HOTP-code = HOTP(K,C) mod 10^N

33
Q

TOTP

A

This is a Time based OTP standard developed by the OATH initiative and deriving by their HOTP standard.

  • as HOTP but the counter C is the number of intervals T_S elapsed since a fixed origin T_0
  • C = (T – T0 ) / TS

Default (RFC-6238):
* T0 = Unix epoch (1/1/1970)
* T = unixtime( now ) -> seconds elapsed since the Unix epoch
* T_S = 30 seconds
* … equivalent to C = floor ( unixtime( now ) / 30 )
* h = SHA1 (buy MAY use SHA-256 or SHA-512)
* suggested N = 6
* the sel function is left to the implementor (ex. Google)

34
Q

Google authenticator

A

It supports HOTP and TOTP (by OATH) and it’s implementations, that are open-soure, use the following assumptions:
* K is distributed base-32 encoded
* C is provided as uint_64 (unsigned integer of 64 bits)
* the sel(X) function takes as offset the 4 least-significant-bits of X and returns the 4 adjacent bytes of X as X[offset … offset+3]
* TS = 30 seconds
* N=6
* if the generated code contains less than 6 digits then it’s left padded with zeroes (e.g. 123 > 000123)

35
Q

FIDO: description

A

Fast IDentity Online
industry standard of the FIDO Alliance for:
- biometric authN = passwordless user experience
- 2-factor authN = 2nd factor user experience

It is based on personal devices capable of asymmetric crypto
- for responding to an asymmetric challenge
- for digital signature of texts

Terminology
- UAF = Universal Authentication Framework
- U2F = Universal 2nd Factor
- ASM = Authenticator-Specific Module
- available for major services (Google, Dropbox, GitHub, Twitter, …) and also for the cloud (GCP, AWS, Azure, …)

Other characteristics
- biometric techniques: local authentication method to enable the FIDO keys stored on the user device
- secure transactions: digital signature of a transaction text (in addition to the response to the challenge). This is optional.
- FIDO backend (or server): to enable the use of FIDO on an application server
- FIDO client: to create and manage credentials FIDO on a user device

Security and privacyg
- strong authentication (asymmetric cryptography)
- no 3rd party in the protocol
- no secrets on the server side
- biometric data (if used) never leave user device
- no phishing because authN response can’t be reused: it’s a signature over various data, including the RP identity
- since one new key-pair is generated at every registration, we obtain no link-ability among: different services used by the same user, different accounts owned by the same user
- there is no limit because private keys are not stored in the authenticator but recomputed as needed based on an internal secret and FIDO server identity

36
Q

Kerberos is said to be a TTP authentication system. Explain why it is classified in this way and what risks clients and application servers face if the third party does not behave correctly.

A

TTP stands for Third Thrusted Party, and kerberos has this definition because its authorization system also uses an intermediate ticket issuing server between pretender and verifier.

36
Q

Compare the symmetric and asymmetrical challenge authentication issues by clearly identifying the advantages and disadvantages of each of them.

A

A challenge system is an authentication process that verifies an identity by requesting that the correct authentication information be provided in response to a challenge.

Symmetric, Pros and cons:
* + no sniffing
* + no replay (challenge contains a nonce)
* client side, the user must have a hash function to calculate the response (not always possible)
* the server cannot store the hash of the passwords, but must know them in clear text in order to calculate the hash of the solution
* the challenge goes clear

Asymmetric, Pros and cons:
* + the challenge is transmitted encrypted
* + no sniffing attacks: it is not possible to trace the user’s private key;
* + no replay attacks: the challenge contains a nonce number;
* + unnecessary server-side confidentiality: no confidential information is stored on the server.
* computational complexity on the client side

37
Q

What are credentials?

A

Credential duty is to bind an authenticator to the subscriber, via an ID, e.g. a X.509 certificate

38
Q

Attack to the mutual symmetric CRA

A

It can be done while doing the v2 mutual authN.
1. A sends its identity A_ID and C_A
2. B replies with C_B and the encryption of C_A
3. A does not know the K to encrypt C_B so it creates another connection by sending its identitiy and the challenge C_B
4. 4. B will encryt C_B that is what A needs to do the attack
5. A will send back enc(K_AB, C_B) provided by B itself

39
Q

What type of OTP does RSA-SecureID provide?

A

TOTP

40
Q

Where is a CRL distribution point and what does it mean?

A

CRL distribution point (aka CRLDP or CDP) is a public extension of an X.509 certificate: it identifies the CRL distribution point to be used in verifying the validity of a certificate. It can be a directory entry, email or URL.
It can be critical or non-critical.

41
Q

Given an X.509 certificate explain what its intrinsic security properties are and how they are obtained.

A

Authentication and integrity through the CA signature and the list of algorithms used to sign.

42
Q

You receive a USB stick containing a file that must be passed on to a recipient. Since the two peers deem it an untrusted person, the sender also calculates a digest to protect the file against changes and passes it directly to the recipient. It is known that the digest is calculated by taking the 24 most significant bits of the sha256 hash of the file. Propose a technique to modify the file without the peers noticing and also provide an estimate of the number of operations required.

A

Birthday attack, with a lowerbound of 2 ^ (24/2) = 2 ^ 12 hash I start with a 50% chance of finding a hash that collides

43
Q

How does the verification of a signed document take place?

A
  • Verify that the certificate is in the validity period (notBefore / notAfter fields)
  • Verify that the certificate has not been revoked (CRL / OCSP)
  • Verify the certificate chain up to a trusted root CA
  • Verify the signature by decrypting it with the public key present in the certificate and comparing the result with the digest of the message (always calculated with the algorithm specified in the certificate
44
Q

Indicate the errors of this sentence: I have a server that encrypts data with a 2048-bit X.509 certificate, protected with a reverse proxy that verifies passwords with a RIPEMD algorithm.

A

The x.509 certificate is not an encryption algorithm but a standard for certifying the authenticity of a user / host. While RIPEMED is a hash function that can be used to verify a password. The reverse proxy does not protect but only does forwarding.
3 errors.

45
Q

A wants to send B a 100MB file F, having the security properties of confidentiality, authentication and integrity. A has B’s X.509 certificate (the public key). Don’t use complex data structures and describe the steps with protocol names rather than generic.

A

k = DH
C = AES128_CBC (F, k, IV)
K = RSA (k, Kpub) (Kpub from certifiate)
D = HMAC_SHA256 (Kpub, C || K || IV)
send A and B, M = C || K || IV || D.

46
Q

Which are the steps for a client to get authenticated by a Kerberos server?

A

slide

47
Q

FIDO registration

A

Actors in these processes:
* web site
* Fido backend
* User agent (browser, app)
* FIDO client

LOGIN
1. the user agent visits a web sites
2. the web sites, needing the user authN, asks him if he wants to use FIDO
3. After user approval, the registration phase begins. The web site and the user agent are just a pass-through between the FIDO client and the FIDO backend.
4. The FIDO backend sends to the user a registration request and an hash that is the server identifier
5. the FIDO client asks for the device activation (with the chosen authN factor, for example biometric) and generates a key pair and a key handle. The key handle will permit to recognize which server_id and user_nickname the key pair is referred to
6. the FIDO client sends to the FIDO backend the registration response, the key handle, the public key
7. the FIDO backend, after the response validation, stores the public key and the key handle.

48
Q

FIDO login

A

Actors in these processes:
* web site
* Fido backend
* User agent (browser, app)
* FIDO client

LOGIN
1. the user agent visits a web sites
2. the web sites, needing the user authN, asks him if he wants to use FIDO
3. After user approval, the login phase begins. The web site and the user agent are just a pass-through between the FIDO client and the FIDO backend.
4. The user agent sends its credentials to the web site that passes them to the FIDO backend.
4. The FIDO backend sends to the user the challenge and the key handle
5. the FIDO client asks for the device activation (with the chosen authN factor, for example biometric) and, based on the key handle, selects the right key pair and solves the challenge. The key handle permit to recognize which server_id and user_nickname the key pair is referred to
6. the FIDO client sends to the FIDO backend the challenge solution
7. the FIDO backend verifies the challenge solution
8. At the end, the web site is told the authN status

49
Q

FIDO 2.0

A

This is the most recent FIDO implementation.

In the FIDO architecture there is the user device that uses a user agent.
The device has a general platform (OS + HW) that can use different types of FIDO client: it can be internal or external:
* internal: it is a platform authenticator
* external: it is a roaming authenticator that works with USB, BT, NFC

To use an external authenticator it is used the Client To Authentication Protocol (CTAP).

50
Q

FIDO: platform authenticators

A

The platform authenticators aare cryptographic elements that are able to store and use asymmetric keys.

There are different kinds of crypto elements:
* packed attestation: it is an authenticator with limited resources. It is a Secure Element, that means a cryptographic processor inside the SIM (but that does not mean that every SIM is capable of asymm crypto)
* TPM attestation: Trustes Platform Module, crypto element
* Android Key Attestation
* …