본문 바로가기
I Learned

인증(Authentication) ∩ 인가(Authorization) = Auth!!!

by 돈민찌 2021. 11. 8.
반응형

인증(Authentication)인가(Authorization)는 단어의 느낌부터 비슷해서인지 많이들 헷갈려 하는 개념 중에 하나인 것 같다. 인증과 관련된 단어들이 OAuth2-처럼 표현되는 경우가 많아서 더 그런 것 같다. Deploy-Distribute-Release 만큼이나 혼란스럽다. 그렇지만 사이버 공격으로부터 조직과 사용자를 보호하기 위해 사용되는 전혀 다른 별도의 프로세스이기 때문에 차이점을 기억해 두는 것이 좋다. 인증과 인가 (둘이 합치면 Auth!!)는 기밀 데이터가 악의를 가진 타인의 손으로 넘어가지 않게 하는 첫번째 방어선이다. 따라서 강력한 인증 및 인증 방법은 모든 조직의 전반적인 보안 전력에 있어 가장 중점적으로 다뤄져야 할 부분 중 하나이다.

두 개념이 헷갈린다면 간단하게 예를 들어보자. 여객선이 출발할 때, 탑승할 승객들이 항공 티켓과 여권을 통해 자신의 신분과 탑승 자격을 증명받는 것은 "인증"에 가깝다. 그리고 여객선 내에 특정 클래스(비즈니스, 퍼스트)에 탑승할 수 있는 자격을 부여받고 탑승하거나, 혹은 승무원과 기장이 근무하는 구역에 들어가는 것은 각각 목적에 맞게 "인가"를 받은 사람만 가능한 것이다. 인가를 "허락"이라는 단어로 바꾸면 두 개념이 좀 더 명확하게 와 닿지만, 비즈니스 클래스 항공 티켓처럼 탑승 자격과 신분을 인증받는 수단인 동시에 비즈니스 클래스에 탑승할 권한을 입증하는 수단인 경우처럼, 인증과 인가가 동시에 일어나는 순간들이 있기 때문에 (예를 들어 네이버 카페 관리자가 네이버 로그인을 한다던가) auth라는 어떻게 보면 모호한 단어를 공집합처럼 사용하는 이유도 있을 것이다.

이런 시각에서 보면 디지털 세계에서 인증과 인가는 동일한 목표를 달성한다. 인증은 사용자가 실제로 자신을 대표하는 사람임을 확인하는 데 사용된다. 이 권한이 확인되면 사용자의 인증 정보는 여러 유형의 사용자에 대해 설정된 규칙에 따라 사용자에게 다양한 수준의 정보에 액세스하고 특정 기능을 수행할 수 있는 권한을 부여하는 데 사용된다.

인증은 사용자가 누구인지 확인한다. 인가는 사용자가 액세스할 수 있는 리소스를 결정한다. 인증은 암호, 일회용 핀, 생체 정보 및 사용자가 제공하거나 입력한 기타 정보를 통해 작동한다. 인가는 조직에 의해 구현되고 유지되는 설정을 통해 작동한다. 인증은 우수한 ID 및 액세스 관리 프로세스의 첫 번째 단계다. 인가는 항상 인증 후에 수반된다. 인증은 사용자가 눈으로 볼 수 있으며 대부분의 경우 (보안상의 이점을 위해) 부분적으로 변경할 수도 있다. 인가는 사용자에게 표시되지 않거나, 표시되더라도 자신이 변경할 수 없다.

통상적으로 디지털 인증은 최근까지 사용자 이름과 암호의 조합을 사용하여 검증되어 왔지만, 오늘날의 인증은 일반적으로 세 가지 등급의 정보에 의존한다.

  1. 첫번째로는 전통적인 방법으로 사용자가 정한 패스워드를 이용한 암호 인증 방식이 있다. 이 방법은 사용자의 사고 방식이나 개인정보를 꿰뚫고 있지 않다면 일반적인 방법으로 추측하기 어렵기 때문에 여전히 주된 방법으로 쓰인다. 하지만 최악의 비밀번호 랭킹을 보면 알 수 있듯이 사용자는 자신이 기억하기 쉬운 비밀번호를 선호하기 마련이고, 이 때문에 대부분의 웹사이트에서는 비밀번호에 정규 표현식 등을 활용해서 차별화된 특별한 규격을 따르기를 권고하거나 강제한다. 또는 다음에 언급될 다른 방법들을 2차 인증 방법으로 사용하기도 한다.
  2. 다음으로 사용자가 소유할 수 있는 장치를 통한 인증 방법이 있다. 모바일 기기나 그 안에 설치된 어플리케이션, 또는 휴대용 보안카드나 전자 방식의 보안 토큰, 디지털 ID 카드, 공동인증서(!!) 등이 있다. 추측을 통한 접근은 거의 불가능하고, 실제로 그 장치를 소유한(소유했을 가능성이 높은) 사용자만이 장치에 접근할 수 있기 때문에 비교적 안전하다. 하지만 분실의 가능성이나, 기기를 사용할 수 없는 상황에서 무용지물이 되는 경향이 있다.
  3. 사용자의 생체 정보를 이용하는 방법이 있다. 인체의 특성 상 타인과 동일할 가능성이 현저히 낮은 지문, 홍채 인식, 안면 인식과 같은 생체 정보를 활용해 사용자를 인증한다. 기술력이 좀 더 동원되는 홍채 인식 외에, 지문 인식 시스템은 물리적인 복제가 불가능한 것이 아니라 다소 위험에 노출되어 있는 편이고, 안면 인식 역시 기술력의 차이에 따라 그 보안 정도가 차이가 날 수 있다.

보안의 중요성이 더 높은 곳일 수록 위의 방법들을 복수로 사용한다. 여러 인증 계층을 사용해 구현한 인증 프로토콜은 보안은 물론 시스템과 어플리케이션, 혹은 어플리케이션 간의 호환성을 보장하는 좋은 수단이 된다.

사용자가 인증되면 조직에서 부여한 권한에 따라 사용자가 필요한 데이터에 액세스하고 정보 추가 또는 삭제와 같은 특정 기능을 수행할 수 있도록 인증 제어가 적용된다. 이러한 권한은 애플리케이션, 운영 체제 또는 인프라 수준에서 할당할 수 있습니다. 두 가지 일반적인 인가 기술 구현은 다음과 같다.

  • 역할 기반 액세스 제어(RBAC): 이 인증 방법은 조직 내 역할에 따라 사용자에게 정보에 대한 액세스 권한을 제공한다. 예를 들어, 회사 내의 모든 직원은 급여, 휴가 시간 및 401K 데이터와 같은 개인 정보를 볼 수 있지만 수정할 수는 없다. 그러나 HR 관리자는 이 데이터를 추가, 삭제 및 변경할 수 있는 기능을 통해 모든 직원의 HR 정보에 액세스할 수 있다. 각 사용자의 역할에 따라 권한을 할당함으로써 조직은 모든 사용자의 생산성을 보장하고 중요한 정보에 대한 액세스를 제한할 수 있다.
  • ABAC(Attribute-Based Access Control): ABAC는 일련의 특정 특성을 사용하여 RBAC보다 세분화된 수준의 권한을 사용자에게 부여한다. 여기에는 사용자의 이름, 역할, 조직, ID 및 보안 권한과 같은 사용자 속성이 포함될 수 있다. 여기에는 액세스 시간, 데이터 위치 및 현재 조직 위협 수준과 같은 환경 속성이 포함될 수 있다.
참고 자료
https://www.sailpoint.com/identity-library/difference-between-authentication-and-authorization
https://auth0.com/docs/get-started/authentication-and-authorization
https://www.bu.edu/tech/about/security-resources/bestpractice/auth/
https://nordpass.com/most-common-passwords-list/

 

반응형

댓글