본문으로 건너뛰기

READMD

인증과 인가의 차이

인증과 인가는 동시에 사용될 때가 많지만 역활은 서로 다르다. 인증과 인가의 차이점

인증

인증이란 통신 상대가 누구인지를 확인하는 일이다.

인증의 3요소

  1. 지식 정보 : 비밀번호 등 사용자만 알고 있는 정보

  2. 소지 정보 : 스마트폰이나 보안키나, IC 카드 등 사용자 본인만이 물리적으로 갖고 있는 것에 포함되는 정보

  3. 생체 정보 : 사용자의 생체 정보를 의미함

인가

통신 상대에게 특정한 권한을 부여하는 것을 의미한다.

인증 기능의 보안 리스크

  • 비밀번호 인증 : 가장 대표적인 방식으로 비밀번호를 서버로 전송해 비밀번호 일치 여부를 확인하는 방법이다.

    • SMS 인증 : 사용자가 수신한 메시지 정보로 로그인하는 인증 방식

    • 소셜 로그인 : 구글 계정으로 로그인, 트위터 계정으로 로그인

    • FIDO : 얼굴, 코드 등을 바탕으로 생성한 공개키와 비밀키로 사요자를 인증하는 기술

    • WebAuth : FIDO를 웹에서 사용하기 위한 기술로 브라우저 내장되어 있다.

비밀번호 인증 공격

  • 브루트 포스 : 이론적으로 가능한 모든 숫자를 대입하는 방법

  • 사전 공격 : 단순한 문자열 입력을 반복

  • 비밀번호 리스트 : 유출된 비밀번호 공격

  • 리버스 부르트 포스 : 로그인을 위한 ID를 변경하면서 반복인증을 시도하는 방법

비밀번호 인증 공격 대책

  • 복합 인증 : 이중 요소 인증을 이용해 2단계 인증을 이용할 수 있다.

  • 계정 잠금 기능 : 계정 감금 기능 로그인 일정 실패 시 계정에 잠금 걸 수 있다.

입력 내용 유효성 검사

  • input 필드에 적절한 값을 준다, email or password

  • required 속성을 필드에 넣어 이 입력창에 값을 요구한다.

  • pattern 정규 표현식을 이용해 확인할 수 있다 .

  • title : 에러메시지 추가 정보를 입력할 수 있다.

  • 자바스크립트를 이용한 방식 : 더욱 강력한 유효성 검사를 위해선 자바스크립트를 이용할 수 있다.

  • 비밀번호 관리자 지원 : auto-complete 기능을 이용하면 로그인 자동 입력이 가능하다.

  • 비밀번호 복사 및 붙여 넣기 기능 : 1Passwword, Bitwarden 라이브러릴 이용해 복사 붙여넣기를 방지 할 수 있다.

  • 사용자에게 맞는 키보드 사용 : 전화 번호 같은 경우에 tel을 이용한다던지 할 수 있다.