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 definition 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
  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 (by XORing the first / third 32-bit groups and the second / fourth groups)
21
Q

S/KEY – passwords

A
  • 64-bit passwords are a compromise: neither too long (complex) nor too short (insecure)
  • entered as a sequence of six short English words chosen from a dictionary of 2048 (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)

22
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

23
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

24
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
25
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
26
Q

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

A
  • use more than one factor: to increase authN strength and to protect authenticator
  • the PIN is used for the authenticator protection: PIN transmitted along with OTP or PIN entered to compute the OTP itself or 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
27
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

28
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

29
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

POI IMMAGINI SU SLIDE

30
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)

31
Q

SSO (Single Sign-On)

A

This means that the user has a single “credential” to authenticate himself and access any service in the system

Fictitious SSO:
* client for automatic password synchronization / management (alias “password wallet”)
* specific for some applications only

Integral SSO:
* multi-application authentication techniques
(e.g. asymmetric CRA, Kerberos)
likely requires a change in the applications
multi-domain SSO (e.g. with SAML tokens, that generalize Kerberos tickets)

32
Q

Authentication interoperability

A

OATH (www.openauthentication.org)
* interoperability of authentication systems based on OTP, symmetric or asymmetric challenge
* development of standards for the client-server protocol and the data format on the client

33
Q

HOTP

A

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
* the 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 10N

34
Q

TOTP

A
  • 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)
* N=6

35
Q

Google authenticator

A

It supports HOTP and TOTP with the following assumptions:
* K is provided base-32 encoded
* C is provided as uint_64
* sel(X)
* offset = 4 least-significant-bits of X
* return 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)

36
Q

FIDO:general description and duties, registration, login, security and privacy

A

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

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

  • 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, …)

IMAGES FOR FIDO REGITRATION AND FIDO LOGIN

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)
* 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 privacy
 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 RP identity

37
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.

37
Q

Explain what the dictionary attack is: under what hypotheses it can be conducted and what countermeasures to adopt.Which is the key of this attack?

A

A dictionary attack is a type of brute force attack with the purpose of detecting one
password knowing the hash (= digest): a list is used, called a dictionary, which contains only the most probable passwords, that is, those that humans choose most frequently because they are easy to remember.
It can be conducted if the attacker has access to information on the server:
- has the server database containing hashes corresponding to user passwords
- knows the hash algorithm used to calculate hashes

Countermeasure: Using “salt” (ie a random string added to the e passwords before hashing) completely eliminates the risk of this attack

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)

38
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

39
Q

What are credentials?

A

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

40
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

41
Q

What type of OTP does RSA-SecureID provide?

A

TOTP

42
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.

43
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.

44
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

45
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
46
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

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.
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.

47
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.