사용자가 로그인을 하거나 리소스에 접근하는 것과 같이 보안을 요구하는 행동에 대하여 보안 조치를 취하는 것입니다. 간단하게 말하면 현재 로그인을 하거나 리소스에 접근하는 사용자가 누구인지 확인하는 것입니다.
인증과 인가는 다른 의미인데 인증은 사용자가 누구인지 확인하는 것이라면 인가는 사용자가 리소스에 접근하는 것을 허락하는 것입니다.
인증을 통해 리소스에 대한 적절한 인가를 받는 것입니다.
사용자가 로그인을 하거나 리소스에 접근하기 전에 먼저 사용자가 누구인지 인증할 수 있는 로그인과 같은 행동을 통해 자신이 누구인지 증명합니다.
이렇게 인증을 받은 이후 특정 리소스에 대한 인가를 받습니다.
인증을 통해 사용자가 접근하지 말아야 할 정보에 접근하지 못하게 해주기 때문입니다.
이는 악의적인 사용자가 다른 사람들의 리소스를 악용하는 것을 막아줍니다.
주요 인증 방식은 3가지가 있습니다.
지식 기반 인증
사용자가 알고 있는 지식을 통해 사용자가 누구인지 인증하는 것입니다.
아이디와 패스워드를 통한 로그인이 지식 기반 인증의 예시입니다.
소유 기반 인증
사용자가 가지고 있는 것을 통해 사용자가 누구인지 인증하는 것입니다.
자동차 면허증이나 신분증이나 휴대폰 인증 등이 소유 기반 인증의 예시입니다.
존재 기반 인증
사용자의 생물학적 특징을 이용하여 사용자가 누구인지 인증하는 것입니다.
지문 인식이나 홍채 인식 등이 존재 기반 인증의 예시입니다.
위와 같이 인증 방식을 분류하기도 하지만 더 간단하게 비밀번호 기반 인증과 비밀번호 기반 인증 방식이 아닌 것으로 구분하기도 합니다.
오래전부터 사용되어 왔기 때문에 사용자들에게 익숙한 방식입니다.
보통 아이디와 비밀번호를 입력하고 로그인을 함으로써 인증을 하게 됩니다.
슬픈 사실은 생각 외로 비밀번호는 좋은 인증 방식이 아닙니다.
유저들이 많은 계정을 운영하는데 있어서 같은 아이디와 비밀번호를 사용함으로써 하나의 계정만 탈취당해도 다른 계정들도 탈취당할 위험이 있습니다.
또한 비밀번호를 설정할 때 다른 사람이 알아보기 힘든 비밀번호를 만드는 것이 아닌 기억하기 편한 비밀번호를 만들기 때문입니다.
비밀번호가 없는 인증 방식은 여러 방식이 존재합니다.
1. 생체 인증
지문이나 홍채같은 사람들이 가지는 그들을 유일하게 식별하게 해주는 특성들을 통해 인증을 받는 방식을 말합니다.
유저 인증을 통한 보안을 개선하기 위해서는 아래와 같은 일이 가능합니다.
긴 비밀번호 요구하기
비밀번호에 랜덤한 문자 넣기
비밀번호에 패턴이 있거나 개인과 관련된 정보 넣지 않기
SSO 방식으로 인증 구현하기
Multi-Factor 인증 전략 사용하기