[Authezat] 1. 사용자 인증, 인가, 세션키

2024. 2. 9. 22:01네트워크/Authezat 프로젝트

 

 

 


Authezat

 

오테자(authzat)는 사용자 인증, 인가 관리 및 세션키 생성을 위한 서버입니다.

보안을 고려하여, 내부 서버로 동작하며 - 별도의 프록시 서버로만 통신 가능합니다.

 

오테자의 사명은 다음과 같습니다.

  • 사용자의 역할과 존재를 구분해줍니다.
  • 사용자의 정보를 소중하게 은닉해줍니다.
  • 세션키를 생성합니다.

 

현재 정의된 데이터 교환 레벨은 다음과 같습니다.

 

오테자는 가장 낮은 네트워크 레벨에서부터 높은 응용 수준까지 모두 사용할 수 있습니다.

그리고 사용자 역할과 세션 정보를 제공해주지만, 그 이상으로 개입하지 않습니다. 이는 전적으로 프록시 서버에 일임합니다.

 

 

 

 

 


Identification

 

 

 

사용자 식별을 위한 핸드셰이크(handshake)는 다음과 같습니다.

Step Description
1 - 클라이언트는 무작위 바이트 문자열과 인증 정보를 서버에 전달합니다.
2 - 서버는 클라이언트의 바이트 문자열과 인증 정보가 유효한 지 확인합니다.
- 서버는 무작위 바이트 문자열과 벡터 문자열을 생성하여 클라이언트에게 전달합니다.
3-1 - 클라이언트가 세션을 사용하지 않는다면 이대로 종료합니다.
3-2 - 클라이언트 무작위 바이트 문자열, 서버 무작위 바이트 문자열, 서버 벡터 문자열을 조합하여 세션키를 생성합니다.
- 클라이언트 무작위 바이트 문자열과 세션키를 서버에 전달합니다.
4 - 서버는 이전에 전달받은 클라이언트 무작위 바이트 문자열을 검색하여 유효한 지 확인합니다.
- 클라이언트 무작위 바이트 문자열, 서버 무작위 바이트 문자열, 서버 벡터 문자열을 조합하여 세션키를 생성합니다.
- 클라이언트의 세션키와 동일한 지 여부를 클라이언트에게 전달합니다.

 

 

 

 

 

 


Knight for Authezat

 

사용자 세션은 중복 인증 과정을 생략하기 위해 필요합니다.

오테자는 오직 사용자 정보를 통해 세션키를 생성하는 역할만 있습니다.

따라서 만료 시간 및 여부나, 영속성에 대한 역할은 프록시 서버 또는 클라이언트가 처리해야 됩니다.

 

데이터 교환에 필요한 프로토콜(protocol)은 매우 엄격하므로 - 이를 충실히 이행할 프록시 서버가 필요합니다.

이에 대한 구체적인 설명은 (추후 작성) 글에서 만나볼 수 있습니다.