PLOD

[crypto]Authentication Protocols 본문

computer science/Cryptography

[crypto]Authentication Protocols

훌룽이 2022. 12. 7. 08:32

* Authentication :  네트워크 사용자 인증 또는 단말 인증과 관련되는 보안 서비스를 제공하는 프로토콜

ex)

1) Hash password with salt.

2) attacks on authentication software, keystroke logging, etc, can be issues.

 

1. Simple Authentication

-  Simple Authentication attack


Replay attack 발생

 

 

- Better Authentication

여기서 Alice가 Hash를 이용해 password를 암호화 하여 보낼 수 있다. 하지만 Trudy가 Hash 값을 알고 있기 때문에여전히 replay attack이 가능함. 그리고 비밀번호가 같은 이상 Hash 값이 항상 같기 때문에 위험하다. 

 

* Challenge- Response(질문답변)

step1. 사용자가 자신의 사용자 ID를 인증서버에 알려준다

step2. 인증서버가 임의의 난수값을 생성해서 사용자에게 보낸다(Response)

step3. 사용자는 이 난수값을 이미 약속된 암호 알고리즘 및 비밀키를 이용하여 암호화한다.

step4. 암호값을 response

step5. 서버에서 response값을 확인 , 결과 값 계산 후 사용자 인증

 


이와 같은 문제(replay - attack)를 방지하기 위해서 challenge- response 방식을 사용하여 어느정도 방지 할 수 있다. 

Alice 만이 제공할 수 있는 response를 Bob에게 제공하면 Alice 가 Challenge 하였을 때  Bob은 Response 에 맞춰 verify 할 수 있다. 이와 같은 방식으로 password의 frefhness를 유지할 수 있다.

 

1) challenge- Nounce :  질문

인증 주체인 서버 측에서 솔신, 클라이언트에게 올바른 응답(response, Hash)를 요구한다.

 

2)challenge- response의 장단점 

- 장점 : 인증 서버가 사용자 토큰과 동기를 유지할 필요가 없음

- 단점 : 입력을 간소화 하기 어렵다.

 

 

2. Symmetric key Authentication(대칭키 인증방)

 

대칭키를 이용한 알고리즘은 R + E(R,K)를 하면 key가 나오기 때문에 위험한 알고리즘이다.

그리고 단방향 인증 protocol은 상호인증에서 안정성이 보장되지 않는다.

 

 

Trudy 가 Alice 인척 하고 R을 받을  수 있기 때문이다.(key exchange problem)

그렇다면 해결책은?

누가 보냈는지 명시하는 방법(signature)으로 Sysmetric Authentication이 secure 해질 수 있다.

 

 

3. public key Authentication

 

공개키 방식은 Alice의 public key로는 누구나 암호화 할 수 있지만, M을 서명 하는 것은 Alice의 private key로만 가능하다. 모든 사람은 Alice의 public key를 사용 할 수 있다. 하지만 Alice 만 Alice's private key를 사용 할 수 있다.

 

*public key Authentication의 조건

 

1) secure key exchange(안전한 키 교환)

 

2) mutual authenticate(상호 인증)

 

 

위의 두 protocol 대칭키 인증의 안전하지 않는 예시이다. 이것을 방지하기 위해서는 한쌍은 인증용(암호화, 복호화) , 다른 한쌍은 서명용의 key pair가 필요하다.

 

보통 공개키와 함께 세션키로 Authenticate 하는데 위의 protocol은 서로 안전하게 key exchange 가 가능하지만  상호 인증을 하지 못하였다. 

 

위의 protocol은 반대로 상호인증은 하였지만 key exchange가 안전하지 못하기 때문에 non-secure 하다.

 

 

 

위처럼  Alice와 Bob이 서로의 키로 암호화 하고 서명하는 방식을 사용하거나 , K,R에 대한 각자의 서명을 한다음 각자 암암호화하여 보내는 방식으로 public Authenticate를 구현 할 수 있다.

 

 

 

 

'computer science > Cryptography' 카테고리의 다른 글

[crypto] Software Security  (0) 2022.12.08
[crypto] SSL/TLS  (0) 2022.12.08
[crypto] Hash  (0) 2022.12.05
[crypto]Diffie-­‐Hellman  (0) 2022.12.05
[crypto] Public Key Cryptography  (1) 2022.12.05
Comments