Authentication & Access control

Authentication Access control
sth -> authentic
The subject is True
*Identity of a person
*Computer program
system이 authority에게 주는 접근 권한

 

 

User Authentication

Validate users to ensure they are authorized.

How?

sth you know sth you have sth you are
ID/PW Security tokens Biometrics

 

 

Scenarios requiring User authentication

  • Logging in to local computer
  • Logging in to computer remotely
  • Logging in to network
  • Access web sites

 

 

Variants of Password

Password Passphrase Passcode PIN

 

 

Threats to Password

  • Evasdropping - insecure channel
  • Login spoofing, shoulder surfing, key loggers
  • Offline dictionary attack
  • Online guessing
  • Social engineering - pretexting
    pseudo target subject에게 정보를 유출하거나 특정 행동을 수행하도록 이끌어내는 공격

 

 

Guessing attack

Password를 유추해서 공격하는 방법이다. 다음의 요소에 의하여 성공이 결정된다.

Average # of guesses Easiness to check validity
how long?
symbols?
how is it created?
PW 저장 방식
PW 확인 방식
Limitation on trying PW

 

 

Password Entropy

Password의 복잡도를 측정하는 방법이다. Entrophy는 bit를 이용해서 계산한다. 평균적으로 password entrophy의 절반 정도의 시도는 이루어저야 공격에 성공한다. 일반적으로 사람은 충분한 password entrophy를 가지지 못한다. Usability 때문이다.

 

NIST에 따른 일반적인 password entrophy는 다음과 같다.

Char의 category를 고려하지 않은 PW entrophy이다.

 

 

Better Password Entrophy

PW entrophy를 높이기 위해서는 다음의 방법이 있다.

  • Different category of characters
  • Orders
  • State-of-art : Markov Chain
    Markov chain으로 unpredictable한 PW를 만들 수 있다.

 

PW를 다른 order로 시도하는 공격 등의 fundamental challenge들은 여전히 존재한다. 그렇기에 PW entrophy를 높이는 작업은 중요하다.

 

*Example of weak PW

더보기

Default passwords

password

 

Dictionary words

Apple

 

Words with simple obfuscation

 

p@ssword

 

Double words

appleapple

 

Keyboard row sequences

qwer, 1234, asdfg

 

Well known numeric #

112, 911, 119

 

Identifiers

1999/03/03

 

Anything personally related to an individual

 

 

Avoid Weak Passwords

  • Long passphrase
  • Randomly generate PW (일반적으로는 적절하지 않음)
  • Check the quality of user PW
    • Dictionary attack 등을 시도해서 바꾸라고 알려주기
  • Give user suggestion / guidelines

 

 

Balancing : PW entrophy, Usability

  • Random PW는 user가 기억하기 어렵기 때문에 often bad하다. 
  • PW expiration, PW trial limitation 등이 구현되어 있다면 Guessing PW도 괜찮을 수 있다.

Usability 때문에 발생하는 문제이다. 적절한 선택이 필요하다.

 

 

 

Storing PW ; UNIX case

PW를 저장하는 과정에서 Old UNIX에서 발생했던 문제점이 있다.

  • H(password) -> /etc/passwd
  • World readable
  • Bruteforce attack으로 broken

 

이에 Modern UNIX에서는 password salt를 이용해서 이를 방지하였다.

 

 

Password Salt

Modern UNIX는 password를 /etc/password와 /etc/shadow에 저장한다. 기존의 문제를 해결하기 위하여 /etc/shadow는 root만 읽을 수 있게 되었다.

  • [r, H(password, r)] -> /etc/shadow
    r : random vector and public

 

사용함으로써 얻게 되는 장점은 다음과 같다.

  • Dictionary attack이 어려워진다.
  • Single account 공격 cost는 유지된다.
  • 2 user가 같은 password를 사용해도 다른 값으로 보인다.

 

 

Mechanism to defend Dictionary attack & Guessing attack

Multiple failed attempts가 이루어지면 account를 disable하면 된다. Account를 복구하고 싶다면 추가적인 authentication을 수행하도록 구성한다.

 

 

Login Spoofing attack

가짜 login window를 제작하여 이용자가 ID, PW를 입력하면 그 내용을 가져가는 방법이다.

 

-> Trusted Path로 방지할 수 있다.

Real web과의 연결을 보장하며, non-maskable interrupt이 발생하면 데이터가 spoofed 되는 것을 방지해주는 internet connection이다.

 

 

Other Spoofing attack & Defense

Phishing attack Website forgery
신뢰성이 높은 객체로써 행동함
민감한 정보를 획득함 (username, password ...)
Fake website를 준비함
User의 방문을 유도 및 민감한 정보 입력을 유도

 

Defense 방법은 다음과 같다.

  • Browser filtering of known phishing site
  • Cryptographic authentication of server
  • User-configured authentication of server

브라우저나 서버 단에서 방지할 수 있다.

 

 

Key Logging

키보드 입력을 tracking하는 방법이다. Insecure client side에서 발생하는 문제이다. 

  • SW-based
    Keystroke events, Grab web forms, Analyze HTTP packets
  • HW-based
    Connector, Wireless sniffers, Acoustic-based

Anti-spyware, network monitor 등에 의해서 방어할 수 있지만, 일단 system이 감염된다면 해결하기 어려워진다.

 

 

Using password over Insecure channels

흔히 알고 있는 One Time Password, OTP를 사용하면 된다. 일회용 비밀번호이기 때문에 공격자가 비밀번호를 확인해도 추후에 사용할 수 없다는 장점이 있다. 다만, 유저와 공격자 동시에 요청을 하면 문제가 발생한다.

 

 

How to do OTP

  • OTP list를 공유해서 사용한다.
  • Time-synchronized OTP
    $MAC_k(t)$를 이용한다.
    k:shared secret, t:current time
  • Using a hash chain (Lamport)
    h(s), h(h(s)), ... 값을 h(h(...h(s)))...)부터 password로 이용한다.

 

 

Lamport's OTP ; hash chain

다음의 순서로 진행된다.

  • One-time setup
    User가 s, h(), t를 선택해서 server에 전송한다.
    ex) $h^{1000}(s)$
    Server는 이 값을 저장한다.

 

  • Authentication
    User는 $h^{999}(s)$ 값을 보낸다.
    Server는 $h(h^{999}(s))==h^{1000}(s)$ 검증한다.
    Server는 다음 authentication을 위해 $h^{999}(s)$ 값을 저장한다.

 

 

Challenge-Response Protocols

Server가 user에게 challenge를 전송하면, user는 secret key를 통해서 암호화한 값을 server에 response한다. Challenge는 일회성 난수로 생성되며 매번 다른 값으로 설정된다. 이를 위해서 server와 user는 shared secret key를 가진다.

 

공격자는 response를 스니핑하더라도 다시 사용할 수 없다. 이미 사용된 일회성 값이기 때문이다.

 

 

Challenge-Response protocols based on symmetic key crypto

Unilateral authentication Mutual authentication
timestamp-based nounce-based nounce-based
A to B : $MAC_k(t_A, s)$ B to A : $r_B$
A to B : $MAC_k(r_B, s)$
B to A : $r_B$
A to B : $r_A$, $MAC_k(r_A, r_B, s)$
B to A : $MAC_k(r_b, r_A)$

 

 

Other Defenses

  • Alternatives to PW : graphical PW
  • Go beyond PW
    • Security token
    • Biometric
    • 2-factor authentication
      2개의 독립적 인증 체계를 이용하는 방법이다.
    • Out of band authentication
      Internet 대신 channel을 이용하는 방법이다.

 

 

Open problems

  • PW quality를 측정하는 좋은 방법
  • 사람들이 더 secure한 PW 사용하는 방법
  • PW 대체해서 사용할만한 것
  • 다른 장치를 이용한 authentication 방법
  • 2-factor 인증
  • Phishing 방어 방법

'Study > Computer Security' 카테고리의 다른 글

6. Web security  (0) 2023.04.17
5. Key distribution & Aggrement, Secure communication  (0) 2023.04.17
4. OS security & Access control  (0) 2023.04.14
2. Cryptography  (0) 2023.04.11
1. Cryptography  (0) 2023.04.10