READMD
인증과 인가의 차이
인증과 인가는 동시에 사용될 때가 많지만 역활은 서로 다르다. 인증과 인가의 차이점
인증
인증이란 통신 상대가 누구인지를 확인하는 일이다.
인증의 3요소
-
지식 정보: 비밀번호 등 사용자만 알고 있는 정보 -
소지 정보: 스마트폰이나 보안키나, IC 카드 등 사용자 본인만이 물리적으로 갖고 있는 것에 포함되는 정보 -
생체 정보: 사용자의 생체 정보를 의미함
인가
통신 상대에게 특정한 권한을 부여하는 것을 의미한다.
인증 기능의 보안 리스크
-
비밀번호 인증: 가장 대표적인 방식으로 비밀번호를 서버로 전송해 비밀번호 일치 여부를 확인하는 방법이다.-
SMS 인증: 사용자가 수신한 메시지 정보로 로그인하는 인증 방식 -
소셜 로그인:구글 계정으로 로그인,트위터 계정으로 로그인 -
FIDO: 얼굴, 코드 등을 바탕으로 생성한 공개키와 비밀키로 사요자를 인증하는 기술 -
WebAuth: FIDO를 웹에서 사용하기 위한 기술로 브라우저 내장되어 있다.
-
비밀번호 인증 공격
-
브루트 포스: 이론적으로 가능한 모든 숫자를 대입하는 방법 -
사전 공격: 단순한 문자열 입력을 반복 -
비밀번호 리스트: 유출된 비밀번호 공격 -
리버스 부르트 포스: 로그인을 위한 ID를 변경하면서 반복인증을 시도하는 방법
비밀번호 인증 공격 대책
-
복합 인증: 이중 요소 인증을 이용해 2단계 인증을 이용할 수 있다. -
계정 잠금 기능: 계정 감금 기능 로그인 일정 실패 시 계정에 잠금 걸 수 있다.
입력 내용 유효성 검사
-
input필드에 적절한 값을 준다,emailorpassword -
required속성을 필드에 넣어 이 입력창에 값을 요구한다. -
pattern정규 표현식을 이용해 확인할 수 있다 . -
title: 에러메시지 추가 정보를 입력할 수 있다. -
자바스크립트를 이용한 방식: 더욱 강력한 유효성 검사를 위해선 자바스크립트를 이용할 수 있다. -
비밀번호 관리자 지원:auto-complete기능을 이용하면 로그인 자동 입력이 가능하다. -
비밀번호 복사 및 붙여 넣기 기능:1Passwword,Bitwarden라이브러릴 이용해 복사 붙여넣기를 방지 할 수 있다. -
사용자에게 맞는 키보드 사용: 전화 번호 같은 경우에tel을 이용한다던지 할 수 있다.