[webDev] 식별과 인증 (Identification vs. Authentication)
식별과 인증
정의
식별 : 수 많은 데이터 중에 특정 데이터를 찾는 작업
- 방법 : 이 경우 사용자는 자신이 누구인지를 시스템에 알리고, 시스템은 이 정보를 바탕으로 해당 사용자의 권한을 확인한다
- 식별 정보는 UNIQUE 해야 한다. (중복 불가)
- 이름, 생년월일 등은 중복될 우려가 있기에 식별자로 사용하기 부적합하다
- 예 ) 00년01월01일 생일인 김철수가 우리나라에 두 명 존재하면, 두 사람의 데이터가 중복됨으로 식별할 수 없다.
인증 : 시스템에서 사용자가 제공한 정보가 실제로 그 사용자의 것인지 확인하는 것
- 방법 : 사용자가 전달한 정보를 데이터베이스에서 찾아서, 일치하는지 확인한다
- 인증 정보의 예로는 비밀번호, OTP 등이 있다
- 식별 정보는 외부에 노출되어도 무방하지만, 인증 정보는 외부에 노출되면 안된다!
고유식별정보 : 개인을 고유하게 구분하기 위하여 부여된 식별 정보. 개인정보 보호법에서는 법령에 따라 규정된 정보로 한정한다.
- 예) 주민등록번호, 여권번호
- 고유식별정보는 외부에 노출되면 안된다
- 웹 패킷에 고유식별정보가 평문으로 노출된다면, 보안 취약점으로 판단할 수 있다
인가 (Authorization) : 인증을 통해 허가된 사용자가 어느 범위까지 무엇을 할 수 있는지 정의하는 것
인증의 종류
인증은 본인확인기관에 본인임을 확인하는 본인 '확인'과 확인받은 수단을 서비스에서 활용하는 본인 '인증'으로 구분된다.
- 지식 기반 인증 : 아이디, 비밀번호 로그인
- 장점 : 검증이 확실하며, 관리 비용이 상대적으로 저렴하다
- 단점 : 사용자가 기억하기 어렵다
- 소유 기반 인증 : 공동인증
- 전자서명법 개정으로 본인확인기관 자격을 획득할 시 사설인증 서비스 제공 가능해졌다.
▶ 본인확인기관이란? : 가입자를 대신하여 연계정보(CI : Connecting Information)를 제공하는 기관
- 대표적으로는 통신사 , 카드사 , 공동인증기관 (코스콤, 금결원, 한국정보인증, 한국전자인증) 등이 있습니다.
- 기기 기반 인증 : 휴대폰 본인확인
- 본인확인기관인 통신사의 가입자 정보와 휴대폰 사용자가 입력한 정보를 비교하여, 사용자가 실제 휴대폰 주인인지 검증한다.
- 휴대폰 소유주의 개인정보와 실제 휴대폰 기기를 모두 소유하고 있어야 인증이 가능하여, 가장 강력한 인증수단으로 꼽힌다.
- 생체인증 : 지문인식, 안면인식
- 홍채, 얼굴, 지문, 음성 등 다수의 사람이 공통으로 가지고 있는 고유한 생체적 특징을 기반으로 인증한다.
- 장점 : 간편하고 분실 도난의 위험이 없다
- 단점 : 변경 및 재발급 불가
로그인 로직 구성 방법
아래의 코드는 예시를 위한 것이다. 자세한 코드는 별도의 포스트로 작성하였으며, 아래 링크를 첨부해 두었다.
▶ 식별과 인증을 동시에 하는 케이스
- DB 질의 시, 식별 정보와 인증 정보 확인을 한 번에 수행하여 로그인을 구현
$sql = “select * from table where id=‘$user_id’ and pass’$user_pass’”;
//. 문자열 합치기. 한 줄에 다 써도 상관 없음
$result = $db_connect -> query($sql);
if($result->num_rows>0){
//login ok
}else{
//login fail
}
▶ 식별과 인증을 분리한 케이스
- DB 인증 데이터와 유저가 입력한 데이터를 비교하여, 일치 시 인증 완료
$sql = select * from member where id='$user_id'
$result = $db_connect -> query($sql);
//식별 과정
if ($result->num_rows>0){
// id correct
if($row_pass['Pass']==$user_pass){
// login ok : pass correct
}else{
// pass incorrect
}
}else{
// login fail : id or pass incorrect
}
//인증 과정
실제 작성한 코드는 아래 링크 클릭!
[webDev] 로그인 로직 구성 (식별과 인증)
식별과 인증을 구분하여, 로그인 로직을 구성하는 방법에 대해 자세한 코드와 함께 알아 보자. 로그인 로직 구성 1. 로그인 사이트 구성 2. 식별 / 인증 동시 3. 식별 / 인증 분리 4. 식별 / 인증
yyz-code.tistory.com
< 참조 자료 >
https://yozm.wishket.com/magazine/detail/1660/
내 서비스에는 어떤 인증이 필요할까? | 요즘IT
본인 인증은 시스템에 정당한 가입자가 접근했는지 확인하는 절차입니다. 인증은 보안상 꼭 필요한 절차이지만, 한편으로는 경험의 일관성을 방해하거나 너무 복잡해서 서비스 사용 의욕을 떨
yozm.wishket.com