Authentication Vs Authorization- 무엇이 다른가? Part 1

Calvin Park·2022년 10월 15일
0

원본 링크 freecodeCamp.org

이번에 번역할글은 Authentication Vs Authorization입니다.
두단어가 공통으로 사용하는 root 단어가 Auth입니다. Auth는 authentic, author, authority, authorized 등 단어들이 있는데요. 승인이라는 뜻으로 이해 하면 됩니다. 근데 Authentication이랑 Authorization은 뭐가 다른가?

Authentication: 인증, 증명;

Authorization: (공식적인)허가, 허가[인가] 증
이라고 사전에는 나옵니다. 둘이 비슷 하면서도 다른 단어...
웹 개발을 하게되면 Authentication 또는 Authorization이라는 단어를 듣게 됩니다. 그리고 둘다 'auth'로 줄여서 쓴다는 것도 그닥 도움이 되지 않기 때문에, 굉장히 햇갈리면서도 혼동을 하기 매우 쉽습니다.

이 글의 포인트

  • Authentication 과 Authorization의 차이점
  • 두개가 어떻게 작동되는가?
  • 일상생활에서의 Authentication 의 Authorization 예시.

드가자~!!!

Authentication은 무엇인가?

본질적인거; Authenticationdms 인증을 받아야 한다는 것입니다. 유저가 인증을 받으면 유저가 누구인지 증명하는 프로세스 입니다. 만약 자격 증명이 일치가 된다면 엑세스 권한을 아니면 권한을 주지 않습니다.

Authentication의 방법

Single Factor Authentication:

This is often used as the authentication process for lower risk systems. 즉 저위험 시스템의 인증 프로세스로 사용된다는 것입니다. 인증에는 단일 요소만 필요하며, 대표적으로 비밀번호입니다. 이것은 피싱 공격 또는 키 로거에 더 취약합니다.

추가적으로, 데이터에 따르면 Z-세대 사용자들의 78%가 여러 서비스에서 동일한 비밀번호를 사용한다는 것입니다. 이것은 공격자가 하나의 계정에 엑세스를 얻는ㄴ다면 동일한 비밀번호를 사용하는 것만으로도 다른 서비스 계정에 액세스 할 가능성이 높다는 것입니다.

2-Factor Authentication:

이방법은 Single Factor Authentication보다 더 안전합니다. 보안을 한번 더 해야한다는 것입니다. 전화번호로 인증코드를 발송하거나 또는 보안 토큰으로 사용자가 알고 있거나 가지고 있는 두가지 인증 요소로 구성이 되어서 더 안전합니다.

2-Facor Authentication은 SMS문자로 또는 연결된 인증자 앱 코드를 인력하고 변화하는 액세스 코드를 합니다.

여러분들이 상상할 수 있듯이, 2-Factor Authentication은 비밀번호만 입력하는 것보다 안전합니다. 그러기 위해서는 로그인 credentials를 잘알고 있어야 하며, 디바이스에 액세스 할 수 있어야 합니다.

2-Factor Authentication은 온라인 서비스에서 굉장히 보편화되었으며, 많은 기업에서 기본 인증 방식하는 부분입니다. Many REQUIRE that you setup 2-Factor Authentication in order to even utilize the service 즉 서비스를 활용하기 위해서는 2-Factor Authentication 인증은 필수(Required, NOT recommended) 입니다.

Multi-Factor Authentication:

한단계 더 나아 갑니다. 더 보안을 신경쓰기 위해서 3개 또는 더 많은 factors를 추가합니다.
이런 방법은 보통

  • 본인이 알고있는것 (암호 + 암호 또는 사용자 이름 + 보안 질문과 대답)
  • 휴대폰 SMS,인증 앱, USB 키(한국은 공인인증?같은거)
  • 어떤 사람인지 (지문/얼굴 인식, 토스에서 본인 제외 계좌이체를 하기위해서 한번 더 지문 또는 얼굴인식을 합니다)

multi-factor authentication은 가장 안전한 보안 장치입니다, 이러한 이유로 해킹을 하거나 복제하기가 더 어렵습니다.

The downside(반대측면)에서 보면 많은 일반 시스템에서 사용이 되지 않을 뿐더러 설정 및 유지관리가 번거로울 수 있다는 것입니다. 따라서 보호하는 데이터/ 시스템은 보안의 필요성을 정당화해야 합니다.

그래서 인증해야하는 정보가 어떻게 되는데?

이 질문은 보안 아키텍처 미팅에서 제기되며, 대답은 항상 "It depends."(사항봐서/ 끄때 봐서/ 따라 다르다)입니다.
기업들은 애플리케이션의 사용마다 보안을 강화합니다.
예를들어, 은행 앱. 은행 앱은 매우 민감한 정보들을 가지고 있습니다, 그리고 잘못된 사람에 의해 finalcial and reputational impacts 즉 재정문제와 평판에 큰 영향을 미칠 수 있습니다. 은행은 고객 번호와 복잡한 비밀번호 함께 답변할 개인 질문을 결합할 수 있습니다.

반면에, 소셜미디어 사이트의 경우 사용자 이름과 암호만 필요로 할 수 있으며 그리고 확인이 되면 엑세스를 허용합니다.

애플리케이션 특정상 애플리케이션에 들어간 후 어떤 정보를 얻을 수 있는지에 대한 것입니다. 민감한 정보들이 많으면 인증 수준을 결정하는 것에 도움이 됩니다.

당신이나 당신의 팀에서 앱에 필요로 하는 인증 수준을 과소평가 한다면, 시스팀 내의 데이터를 적절하게 보호하지 않았다는 이유로 고소 당할 수 있습니다. (Facebook을 에시로)따라서 좋은 방법은 보안 전문가에게 모범 사례 및 적절한 솔루선에 대해 조언하는게 좋다.

우리가 사는세상에서는 인증이 어떻게 되는건가요?

소셜 미디어를 예를 들어보겠습니다. 제일 자주 사용하는 SNS를 생각해보세요. 그서버는 로그인 페이지를 통해 사이트에 엑세스를 받을 수 있다고 말을 합니다. 그래서 아이디를 입력하고 비밀번호를 입력합니다.

이런 세부 정보가 서버로 전송되고 인증 절차가 시작됩니다. 입력한 세부 정보가 서버의 데이터베이스에서 확인 및 체크를 합고, 기록중인 세부정보와 일치하면 사용자가 인증됩니다. 그런 다음 쿠키 또는 JWT(Json Web Token ) 같은 식별 데이터 형식을 제공합니다.

그리고 성공을 합니다. 당신은 그 사이트에 들어갈 수 있게 된것입니다!!

자이렇게 Autentication에 대해 알아 보았습니다. 다음 포스트는 Authorization에 대하여 알아 보겠습니다.!

profile
Personal Velog Note

0개의 댓글