[암호공학] 14장. Entity Authentication

2019. 12. 1. 15:41학교공부/암호공학

Keyword : message authentication, entity authentication, password, challenge-response protocols, zero-knowledge protocols, biometrics

 

1. Introduction

: Entity authentication은 one party prove the identity of another party를 수행하는 technique이다. 이 때의 entity는 사람이거나, process이거나, client거나, server일 수 있다. entity whose identity needs to be proved를 claimant라고 하고, the party that tries to prove the identity of the claimant를 verifier라 한다.

 

Message authentication과 entity authentication에는 두 가지 다른점이 있다.

1) Message authentication은 in real time으로 동작할 필요가 없으나 entity는 그러해야 한다.

2) Message authentication은 one message를 간단하게 authenticate하기에 for each new message에 의해 process가 계속 반복되어야 한다. Entity authentication은 entire duration of a session동안 claimant에 대한 authentication을 보장한다.

 

*Verificatoin Categories

1) Something Known

 : claimant만 알고 있는 secret. verifier에 의해 check될 수 있음. password, PIN, secret key, private key 등이 있다.

2) Something possessed

 : claimant의 identity를 prove할 수 있는 무언가. passpord, driver's license, ID card, credit card 등이 있다.

3) Something inherent

 : inherent characteristics of claimant이다. conventional signature이나 fingerprints, voice, facial characteristics, retinal pattern, handwritting등이 있다.

 

2. Password

가장 간단하고 오래된 방식의 entity authentication 방법이다. password는 claimant가 something known인 것이다.

가장 기본적인 접근 방식으로, system이 table을 갖고 있는데, user가 user identification과 password를 평문으로 system에 보내면 systaem이 identification으로 table 내의 password를 찾고, 찾은 password와 받은 password가 같으면 access granted, 아니면 denied 된다.

다양한 공격 방법들이 존재한다.

1) Eavesdropping : Eve는 Alice가 패스워드를 타이핑할 때 패스워드를 볼 수 있다. 

2) Stealing a password : EVe가 물리적으로 Alice의 password를 도난하려 할 때이다 .

3) Accessing a password file : Eve가 system을 해킹해서 Id/password file에 대한 엑세스를 얻는다. 이러한 공격을 방지하기 위해 file은 read/write protected되어야 한다. 

4) Guessing : Eve는 system에 로그인할 때 alice의 암호를 다른 조합을 계속 넣어가면서 guessing할 수 있다. 이를 방지하기 위해 long random password가 권장된다. 

 

 

더 안전항 방법이 고안되었는데, password를 해싱시켜서 보관하는 방식이다. hash function을 통과한 password는 guessing하기가 거의 불가능하다. user가 id와 password를 시스템에 보내면, system이 password의 hash를 만들어서 비교하는 방식이다. 

1) Dictionary Attack : hash function은 eve가 password file이 있더라도 system에 접근할 수 없게 한다. 만약 Eve가 유저의 ID와 상관 없이 단 하나의 password를 찾는데에만 몰두한다면, Eve는 6-digit numbers(000000 to 999999)의 리스트를 만들어서 hash function에 apply해 볼 수 있다. 그러면 백만개의 hash에 대한 결과를 가질 수 있고, 같은 값을 찾으면 된다. 

third approach에서는 salting이라는걸 password에 추가한다. password string이 생성되면 random string(salt)와 concatenate 시켜서 hash된다. 이 salt 때문에 dictionary attack은 매우 힘들어진다. 

 

그리고 Fourth Approach에서는 두가지의 identification techniques들이 결합된다. 이 방법의 authentication은 ATM card with a PIN(personal identification number)에 이용된다.

 

3. Challenge-Response

: password authentication에서, claimant는 그의 identity를 증명할 때 secret을 전송하지 않고 secret을 안다는 사실 만으로 증명한다. claimant는 secret을 verifier에게 보낼 필요가 없다.

First approach에서는 verifier은 nonce( a random number used only once)를 A에게 보낸다. 이때의 nonce는 time-varying이어야 한다. 즉 every time it is created, it is different하다. 위 그림을 살펴보자.

1번의 message는 challenge-response이다. 즉 verifier에게 challenge를 원한다고 정보를 보낸다.

2번의 message는 challenge이고, RB는 randomly chosen by the rectifier to challenge the claimant이다. 

claimant는 이 nonce를 shared secret key를 이용해서 그 결과를 verifier에게 보낸다. 그러면 verifier가 그 message를 복호화하여 nonce obtained from decryption이 처음의 값과 같으면 access grant를 준다.

Second approach에서는 time-varying value is timestamp이다. 이 방법에서 challenge message는 current time sent from the verifier to the claimant이다. 그러나 이 방법은 서버시간과 claimant의 시간이 동기화되어있다고 가정한 방법이다. 

세번째 방식에서는 Alice가 Bob의 identity에 대해서도 인증을 받는다. 이는 bidirectional authentication이다.

위 그림에서 2번의 second message Rb는 challenge from bob to alice이고,

3번의 message는 Alice가 Bob의 challenge에 반응함과 더불어 challenge Ra를 Bob에게 전송하는 행위이다.

그러면 4번의 message에서 Bob이 Ra와 Rb의 순서를 바꿔서 보낸다.  

암호화/복호화를 entity authentication에 이용하기 보다는 keyed-hash function(MAC)을 이용할 수도 있다.

이 scheme의 장점은 challenge와 respond messages의 integrity를 보존한다는 것.