인증(Authentication) & 인가(Authorization)

GiWan_KWON·2023년 9월 7일
0

wecode 강의 정리

목록 보기
9/12

인증(Authentication)이란?

누군가 또는 시스템이 실제로 그 누구인지 또는 시스템인지를 결정하는 과정

  • SFA : 단일 요소 인증
  • 2FA : 2개 요소 인증
  • MFA : 다요소 인증

인가(Authorization)란?

사용자에게 특정 리소스 또는 기능에 대한 액세스 권한을 부여하는 프로세스

  • Session : 동일한 클라이언트(사용자)가 브라우저를 통해 웹 서버에 접속한 시점으로부터 브라우저를 종료하여 연결을 끝내는 시점 동안에 들어오는 일련의 Request를 하나의 상태로 보고, 그 상태를 일정하게 유지하여 클라이언트와 웹 서버가 논리적으로 연결된 상태
  • Cookie : 클라이언트의 컴퓨터에 저장되는 데이터 파일입니다. Cookie에는 이름, 값, 만료 날짜/시간(저장기간), 경로 정보 등으로 구성이 되어있다.

Session 기반 인증의 특징

  • 장점 :
    서버에서 정보를 관리하기 때문에 데이터의 손상 우려에 대해 상대적으로 안전 하다.
    서버에서 상태를 유지하고 있으므로, 사용자의 로그인 여부 확인이 쉽고, 경우에 따라서 강제 로그아웃 등의 제재를 가할 수 있다.
  • 단점 :
    모바일 기기와 브라우저에서 공동 사용 할 때 중복 로그인 처리가 되지 않는 문제 등 신경 써줘야 할 부분 들이 증가한다.
    서버에서 모든 사용자의 상태를 관리해야 되므로 사용자의 수가 증가 할 수록 서버에 가해지는 부하가 증가한다.
  • Token : 제한된 리소스에 대해 일정 기간 동안 접급 할 수 있는 권한을 캡슐화 한 것

Token 기반 인증의 특징

  • 장점 :
    Token을 사용자 측에서 저장하므로 서버의 메모리나 DB 등의 부담이 없다.
    Token의 만료 시간을 짧게 설정하여 안정성을 높일 수 있다.
    모바일과 브라우저의 멀티 환경에서 사용이 용이하다.
  • 단점 :
    서버에서 사용자의 상태를 저장하고 있지 않기 때문에 사용자의 로그인 여부 확인, 경우에 따른 강제 로그웃 등의 제재를 가하기 어렵다.
    XSS 공격에 취약하여 Payload에 민감한 정보를 포함하는 경우 위험할 수 있다.
    사용자 식별을 위한 여러 정보들이 포함 되어 있어 Session Id의 길이보다 길어져 HTTP request 전송 데이터의 크기가 증가한다.

Bcrypt 란?

키(key) 방식의 대칭형 블록 암호에 기반을 둔 암호화 해시 함수
레인보우 테이블 공격을 방지하기 위해 솔팅과 키 스트레칭을 적용한 대표적인 예

  • 솔팅(Salting)
    단방향 해시 함수를 통해 암호화를 진행 할 때 본래 데이터에 추가적으로 랜덤한 데이터를 더하여 암호화를 진행하는 방식
  • 키 스트레칭(Key Stretching)
    단방향 해쉬값을 계산 한 후, 그 해쉬값을 또 다시 해시하고 또 이를 반복하는 방식
profile
그냥 '개'발자

0개의 댓글