인증 서버: 정의, 아키텍처 및 운영

인증 서버는 네트워크, 애플리케이션 또는 시스템에 대한 액세스를 허용하는 프로세스를 관리합니다.

사용자가 서버에 접속하려면 자신의 신원을 먼저 입증해야 합니다. 인증 서버는 이렇게 정교한 작업을 처리합니다. 

인증 서버는 스위치, 전용 컴퓨터 또는 네트워크 서버에 설치할 수 있습니다. 또한 상용 소프트웨어를 사용하거나, 혹은 기업에서 직접 작성한 맞춤형 코드를 기반으로 실행하는 방법도 있습니다. 

인증 서버는 설치 및 배포 방법에 상관없이 중요한 자산을 안전하게 보호하는 데 핵심적인 역할을 합니다. 

인증 서버란 무엇인가요?

서버에 방문하는 사람이 사기꾼일까요? 아니면 신뢰할 수 있는 아는 사람일까요? 이러한 질문에 대한 답을 찾을 수 있는 것이 바로 인증입니다. 

인증은 일반적으로 비밀번호로 시작됩니다. 대부분의 사람들은 비밀번호를 70~80개 가지고 있으며, 비밀번호가 무엇인지, 그리고 어떻게 실행되는지 잘 알고 있습니다. 이를테면 웹사이트를 방문할 때 비밀번호와 사용자 이름을 입력하여 액세스 권한을 얻습니다. 

인증 서버는 다음 두 가지 방법 중 하나를 통해 이러한 사용자 이름/비밀번호 조합을 처리할 수 있습니다.

  • 단일 인증요소: 사용자가 두 필드에 정확한 정보를 입력하면 인증이 완료됩니다. 이때 비밀번호가 서버에서 확인하는 단일 인증요소에 해당합니다. 
  • 다중 인증요소: 정확한 사용자 이름/비밀번호 조합만으로는 충분하지 않습니다. 사이트에서 인증을 완료할 때까지 한 가지 단계를 더 요구합니다. 여기에는 임시 보안 코드를 연결된 디바이스로 보내거나, Yubikey를 사용하는 등 다양한 방법이 포함될 수 있습니다. 

단일 인증요소 시스템은 사용자에게 간단하게 보일 수 있습니다. 하지만 사용자 이름/비밀번호 조합을 일일이 기억하기란 쉽지 않습니다. 전문가들은 온라인 비밀번호 관리자를 사용하여 이러한 워크로드를 줄일 것을 권장합니다. 하지만 웹사이트마다 동일한 정보를 재사용하는 사용자들도 있습니다. 이 때문에 해커가 사용자 이름과 비밀번호를 알아내면 다수의 사이트에 로그인할 수 있게 됩니다. 

다중 요소 인증은 액세스하려면 두 가지 인증요소를 통과해야 한다는 점에서 더욱 안전합니다. 절반이 넘는 기업들이 현재 다중 요소 인증을 사용해 자사 사이트를 보호하고 있으며, 이 기술을 도입하는 기업들이 매년 늘고 있습니다.

인증 서버는 어떻게 운영됩니까? 

파일에 대한 액세스 권한을 입증하는 프로세스는 매우 빠르게 진행됩니다. 대부분의 사용자는 프로세스 지연을 인지하지 못합니다. 하지만 사용자가 알아채지 못하는 순간에도 많은 단계가 실행되고 있습니다. 

단일 요소 인증 사이트에서 실행되는 프로세스는 다음과 같습니다.

  1. 사용자가 사용자 이름과 비밀번호를 입력합니다. 사이트가 해당 데이터를 암호화(또는 변조)하여 서버로 전송합니다. 
  2. 서버가 데이터를 복호화(또는 해독)하여 데이터베이스에 저장된 정보와 비교합니다. 
  3. 입력한 데이터 항목이 저장된 조합과 일치하면 인증이 완료됩니다. 

다중 요소 인증 프로세스에서는 다른 단계가 추가됩니다.

  1. 사용자가 사용자 이름과 비밀번호를 입력합니다. 사이트가 해당 데이터를 암호화하여 서버로 전송합니다. 
  2. 서버가 데이터를 복호화하여 데이터베이스에 저장된 정보와 비교합니다. 
  3. 서버가 일치하는 정보를 찾으면 일회용 비밀번호를 생성하여 사용자에게 다시 전송합니다. 이때 사용자가 가지고 있는 휴대전화로 문자 메시지를 전송하거나, 사용자가 소유한 보안 키로 메시지를 전송하는 것이 효과적입니다. 서버가 일회용 비밀번호를 입력할 수 있는 팝업 창을 생성합니다. 
  4. 사용자가 수신된 일회용 비밀번호를 입력합니다. 인증이 완료됩니다. 

인증 프로토콜은 종류가 매우 다양한데 대표적으로 Kerberos, RADIUS, Microsoft NTLM이 있습니다. 사용되는 기술이나 코드 유형은 인증 프로토콜마다 약간씩 다릅니다. 하지만 사용자가 위에서 설명한 단계를 따라야 하는 것은 같습니다. 

인증과 권한 인증은 어떻게 다른가요?

두 용어는 비슷하게 보이기 때문에 혼용하는 경우가 많습니다. 하지만 인증과 권한 인증을 구분하는 기준이 무엇인지 알고 있어야 합니다. 

쉽게 말해서 인증은 사용자의 아이덴티티를 확인하는 과정입니다. 권한 인증은 해당 사용자에게 액세스가 허용되는 것과 허용되지 않는 것을 확인하는 과정입니다. 

인증 서버는 첫 번째 단계를 처리합니다. 서버의 인증 작업이 완료되면 사용자의 아이덴티티가 확인됩니다. 하지만 여기서 인증 서버가 권한 인증 서버와 연동해야 하는 작업이 남아있습니다. 권한 인증 서버는 액세스 토큰을 발행하여 적합한 권한을 부여합니다. 

물리적 환경을 예로 들어 이러한 관계를 명확히 규명할 수 있습니다. 보안 전문가 컨퍼런스에 참석한다고 해봅니다. 학회에 도착하면 이름과 이메일 주소를 입력해야 합니다. 그러면 주최측은 등록된 사용자 목록에서 입력된 데이터를 확인합니다. 이러한 확인을 통해 인증을 통과하게 됩니다.

인증을 마치면 주최측은 참석자가 등록한 세션과 결제 여부를 조회합니다. 조회를 마치면 참석자에게 다양한 이벤트에 참석할 수 있는 배지와 티켓을 배부합니다. 이것으로 참석자는 권한 인증을 통과하여 학회에서 원하는 일을 할 수 있습니다.

대부분의 웹사이트가 권한 인증과 인증을 함께 실행합니다. 대학의 경우 사이트 로그인을 허용하는 동시에 다른 학생의 데이터를 볼 수 없도록 차단합니다.

Okta를 통해 보안 살펴보기

단일 요소 인증을 사용해야 합니까? 아니면 다중 요소 인증에서만 가능한 안전을 원합니까? 기업 아키텍처에서 서버의 자리는 어디가 되어야 합니까?

보안 팀은 많은 궁금증을 갖게 되지만 해답을 찾기 어려울 때도 있습니다. Okta를 통해 다중 요소 인증, 사용자 인증 등을 처리하는 방법을 알아보세요.

참고 자료

New Research: Most People Have 70-80 Passwords. (2020년 2월). Newswire. 

Study Reveals Average Person Has 100 Passwords. (2020년 10월). Tech.Co. 

More Enterprises Use Multi-Factor Authentication to Secure Passwords. (2019년 10월). Security. 

Understanding and Selecting Authentication Methods. (2001년 8월). TechRepublic. 

Understanding Authentication, Authorization, and Encryption. Boston University.