brunch

You can make anything
by writing

C.S.Lewis

by 진토끼 Sep 26. 2024

CI와 DI, 비슷해보이지만 다른 두 인증 정보

CI, DI의 차이점과 활용 사례

인증 시스템을 설계하다 보면 CI(Connecting Information)와 DI(Duplicate Information)라는 용어를 자주 접하게 된다. 

CI...? DI...?

특히 본인인증 과정에서 이 두 가지 값이 많이 나오는데, 처음 접하면 조금 헷갈릴 수 있다. 그래서 오늘은 실무자들이 알아두면 유용한 CI와 DI의 차이를 쉽게 설명해보려고 한다.


두 정보 모두 본인인증 API 제공사에서 고객사에게 리턴을 해주는 값 중 하나이며, 고객사는 어떤 정보를 달라고 할지 선택할 수 있다. 


간단히 비유하자면, CI는 암호화된 주민등록번호처럼 여러 서비스에서 같은 사람임을 구분하는 정보이고, DI는 학번처럼 하나의 서비스 내에서 중복을 방지하기 위한 고유한 값이라고 생각하면 된다.


그럼 조금 더 구체적으로 알아보자.





1. CI의 개념과 사용 목적

할미는 2야..
CI = 암호화된 주민등록번호

→ 여러 서비스에서도 나를 동일하게 식별할 수 있다.


CI는 "연결 정보"라고 불리며, 여러 서비스에서 동일한 사용자를 구별하기 위해 사용되는 고유한 값이다. 예를 들어, 내가 A라는 쇼핑몰에 가입하고 B라는 금융 서비스에 가입할 때, 두 서비스 모두 나를 같은 사람으로 인식할 수 있는 정보를 제공하는 게 CI다. 하지만 CI는 암호화된 값으로, 내 민감한 정보를 보호하면서도 서비스들 간에 나를 동일하게 식별할 수 있게 해주는 것이다.


요약하자면, CI는 여러 서비스 내에서 공통적으로 사용되며, 다양한 서비스에서 나를 같은 사람으로 인식하기 위한 목적으로 사용된다.





2. DI의 개념과 사용 목적

DI = 학번

→ 같은 학교(서비스) 내에서는 내가 고유하지만, 다른 학교(서비스)에는 나와 같은 학번을 가진 사람이 있을 수 있다. 


DI는 "중복 방지 정보"로, 하나의 서비스 안에서 사용자의 중복 가입을 막기 위한 고유 값이다. 예를 들어, 내가 A 쇼핑몰에 두 번 가입하려고 할 때, DI를 통해 "이미 가입한 사용자"로 구분될 수 있다. 한 마디로, 학번처럼 내가 그 서비스에서 하나의 계정만 가지도록 관리하는 정보인 것이다. 서비스마다 부여되는 DI는 다르기 때문에, A 서비스의 DI와 B 서비스의 DI는 서로 다를 수 있다.


요약하자면, DI는 특정 서비스 내에서만 유효하며, 같은 사용자가 여러 계정을 만들지 못하도록 중복을 방지하는 목적으로 사용된다.




3. CI와 DI가 사용되는 사례


1) CI 활용 사례

금융 서비스를 예로 들어보자. 내가 A라는 은행에서 대출을 받았다고 하자. 이후 B라는 다른 금융 서비스에서 또 대출을 신청할 때, B 서비스에서도 내가 같은 사람인지를 알아야 한다. 여기서 CI가 사용된다. CI 덕분에 금융기관들이 동일한 사용자를 식별할 수 있게 되어, 중복 대출이나 신용 관리를 할 수 있게 되는 것이다. 하지만 이 과정에서 내 주민등록번호나 개인 정보는 암호화된 상태로 보호된다.


- 사용자 : 대출 신청을 위해 금융기관A에 본인인증을 한다.
- 본인인증제공사 : 본인인증을 통해 CI값을 받는다. 이 값을 금융기관A에 알려준다.
- 금융기관A : 본인인증 제공사가 주는 정보를 받아서 저장해둔다. 
(며칠 뒤) 
나중에 사용자가 또 대출받을라 함
- 사용자 : 대출 신청을 위해 금융기관B에 본인인증을 한다.
- 본인인증제공사 : 본인인증을 통해 CI값을 받는다. 이 값을 금융기관B에 알려준다.
- 금융기관B : 어? 우리 금융기관들끼리 얘기해보니까 너 이미 받았다는데? 못해줘~



2) DI 활용 사례

DI는 쇼핑몰 같은 서비스에서 많이 사용된다. 예를 들어, A 쇼핑몰에 내가 이미 가입한 상태에서 또 다시 가입을 시도한다면, DI를 통해 이미 가입된 사용자라는 걸 확인할 수 있다. 즉, 하나의 서비스 내에서 중복 가입이나 다중 계정 생성을 방지하는 역할을 하는 거다. 특히 이벤트나 쿠폰 남용을 막기 위해 DI가 사용된다. 만약 DI가 없다면, 하나의 사용자 계정으로 여러 번 이벤트에 참여할 수 있게 되는 문제가 생길 수 있을 것이다.


- 사용자 : 본인인증을 한다.
- 본인인증제공사 : 본인인증을 통해 DI값을 통신사로부터 받는다. 이 값을 쇼핑몰에 알려준다.
- 쇼핑몰 : 본인인증 제공사가 주는 정보를 받아서 저장해둔다. 
(며칠 뒤) 
나중에 사용자가 또 가입할라 함
- 사용자 : 본인인증을 한다.
- 본인인증제공사 : 본인인증을 통해 DI값을 통신사로부터 받는다. 이 값을 쇼핑몰에 알려준다.
- 쇼핑몰 : 어? DB 뒤져보니까 저번에 걔네? 너 이미 가입한 계정 있어~




4. 개인정보 보호 이슈


특히 CI는 개인정보 보호와 연관된 정보로, 법적으로도 매우 민감하게 다뤄진다. 예를 들어, 어떤 서비스가 CI 정보를 제공받기 위해서는 그 목적을 분명히 해야 하고, 그 과정에서 본인인증 API 제공사에게 CI 제공 사유서를 제출해야 한다. 본인인증 API 제공사로부터 해당 정보를 받아온 뒤에도, 이 값을 적절히 보호하고 관리하는 것이 너무나도 중요하다.






CI와 DI는 사용자 식별과 중복 방지라는 중요한 역할을 맡고 있다. 서비스에서 회원이나 인증 부분을 맡고 있는 실무자라면, 필요에 따라 이 두 정보를 활용하는 경우가 꽤나 있을 것이다. CI는 여러 서비스 간의 사용자 식별을 위한 값이고, DI는 하나의 서비스 내에서 중복 가입을 방지하는 값이라는 점을 기억해두고 적재적소에 활용해보자!



작가의 이전글 본인인증과 점유인증, 두 가지 방식의 특징과 차이
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari