거래 상대가 실제로 존재하는 회사라는 사실과, 눈앞의 사람이 그 회사를 대표할 수 있다는 사실은 서로 다른 증명이 필요하다.

 

새로운 협력사에서 계약서를 보내왔다고 가정해 보자.

회사 이름과 주소가 적혀 있고, 담당자는 회사 이메일을 사용한다. 계약서에는 ‘재무 담당 임원’이라는 직함과 서명도 들어 있다.

이 정보만으로 계약을 진행해도 될까?

먼저 확인할 것이 있다. 같은 이름의 다른 회사는 아닌지, 계약 상대가 본사인지 자회사인지, 서명한 사람이 실제로 그 회사에서 일하는지 살펴봐야 한다. 그 사람이 해당 계약을 체결할 권한을 갖고 있는지도 별개의 문제다.

앞선 디지털 신원 글이 개인의 신원과 자격을 다뤘다면, 이번에는 기업의 신원과 기업을 대신하는 사람의 역할을 살펴본다.

이때 중심이 되는 개념이 LEI와 vLEI다.

1. 기업 신원에서는 무엇을 확인해야 할까?

기업 간 거래에서 필요한 확인을 세 단계로 나누면 이해하기 쉽다.

확인 대상핵심 질문
기업 자체 우리가 거래하려는 법적 실체가 정확히 어디인가?
사람과 기업의 관계 이 사람은 해당 기업에서 어떤 역할을 맡고 있는가?
구체적인 행위 권한 이 사람이 이번 계약이나 결제를 승인할 수 있는가?

예를 들어 ‘A그룹 구매 담당자’라는 소개만으로는 충분하지 않다.

A그룹은 브랜드나 기업집단의 이름일 수 있다. 실제 계약 당사자는 특정 국가에 설립된 자회사일 수 있으며, 구매 담당자의 권한에도 금액이나 업무 범위에 따른 제한이 있을 수 있다.

이 글에서 사용하는 ‘기업 신원’은 이런 문제를 설명하기 위한 표현이다. LEI가 식별하는 대상은 기업에만 한정되지 않는 법적 실체인 legal entity이므로, 개인의 실명확인이나 단순한 회사 계정 관리와 구분해서 읽는 것이 좋다.

2. LEI: 세계 여러 시스템에서 같은 법적 실체를 가리키는 식별자

LEI는 Legal Entity Identifier의 약자다.

ISO 17442에 기반한 20자리 영문·숫자 코드이며, 특정 법적 실체를 고유하게 식별한다. 해당 코드에는 공식 명칭, 주소 등 검증된 참조정보가 연결된다. GLEIF의 LEI 설명

GLEIF가 공개한 자체 LEI를 예로 들면 다음과 같다.

506700GE1G29325QX363

이 코드는 비밀번호나 비밀키가 아니다. 누구나 조회할 수 있는 공개 식별자다.

따라서 어떤 사람이 거래 문서에 정확한 LEI를 적었다고 해서 그 기업의 관계자라는 증거가 되지는 않는다. 다른 회사의 공개 식별자를 복사할 수도 있기 때문이다.

LEI의 역할은 기업을 정확히 가리키는 것이고, 그 기업을 대신해 행동하는 사람을 인증하는 것은 추가로 해결해야 할 문제다.

회사 이름만으로는 왜 부족할까?

가상의 기업 이름을 생각해 보자.

한빛테크 주식회사
HANBIT TECH CO., LTD.
Hanbit Technology

같은 회사를 서로 다르게 표기한 것일 수도 있고, 비슷한 이름의 별개 회사일 수도 있다.

기업명이 바뀌거나 국가별 표기 방식이 다르면 이름 비교만으로 데이터를 연결하기 어려워진다. LEI는 이런 상황에서 공통 식별 기준으로 활용할 수 있다.

국가별 사업자·법인 등록 식별자와도 역할이 다르다. LEI는 기존 등록 체계를 없애는 것이 아니라, 해당 실체에 관한 정보를 국제적으로 연결하는 식별 기준으로 이해하면 된다.

3. LEI를 조회하면 어떤 정보를 볼 수 있을까?

LEI 데이터는 대표적으로 Level 1과 Level 2로 구분한다.

Level 1: 누구인가?

Level 1은 법적 실체의 기본 정보다.

공식 명칭과 등록 주소처럼 기업을 구분하는 정보를 제공한다. GLEIF는 이를 ‘Who is who’라는 질문으로 설명한다. GLEIF의 데이터 구분

실제 레코드에는 등록기관 식별정보, 법적 형태, 설립 관할, 실체의 상태, LEI 등록 상태 등도 포함될 수 있다. 구체적인 데이터 구조는 LEI-CDF 문서에서 확인할 수 있다. GLEIF LEI-CDF 문서

Level 2: 어떤 상위 실체와 연결되는가?

Level 2는 ‘Who owns whom’이라는 표현으로 소개되지만, 정확한 범위를 알아야 한다.

주요 대상은 다음 관계다.

  • 직접 회계 연결 모기업
  • 최상위 회계 연결 모기업

즉, 회계 연결 기준에 따른 상위 실체 정보를 다룬다. 이를 모든 지분 관계나 최종 자연인 실소유자 정보가 담긴 완전한 소유 구조로 해석해서는 안 된다. 보고 예외 등도 고려해야 한다. GLEIF Level 2 설명

AML 업무에서 확인하는 실소유자와 LEI의 상위 실체 정보를 같은 것으로 취급하면 범위를 잘못 이해하게 된다.

4. LEI는 누가 발급하고, 왜 갱신할까?

LEI 발급·갱신 서비스를 제공하는 기관은 LEI Issuer, 또는 Local Operating Unit·LOU라고 부른다.

기업은 발급기관을 통해 등록하고, 기관은 관련 정보를 검증한다. LEI는 매년 갱신하며, 발급·유지 비용과 요금 체계는 발급기관에 따라 달라질 수 있다. GLEIF LEI FAQ

갱신이 중요한 이유는 기업 정보가 계속 바뀌기 때문이다.

주소나 명칭이 변경될 수 있고, 합병이나 조직 재편이 발생할 수도 있다. 식별자가 존재한다는 사실과 연결된 정보가 최근에 검증됐다는 사실은 구분해야 한다.

LAPSED는 회사가 폐업했다는 뜻일까?

아니다.

GLEIF는 Level 1의 LAPSED를 예정된 기간 안에 갱신·재검증되지 않은 상태라고 설명한다. 기업이 비활성 상태라는 뜻은 아니다. GLEIF LEI Search 안내

특히 다음 두 필드를 섞어 읽지 않아야 한다.

구분확인하려는 내용
Entity Status 법적 실체 자체의 상태
Registration Status LEI 등록·관리 상태

서비스에서 LAPSED를 받아들일지는 업무 목적과 적용 요건에 따라 결정해야 한다. 상태 이름 하나만 보고 폐업 여부나 거래 가능 여부를 단정하는 것은 적절하지 않다.

5. vLEI: 기업 식별에 사람의 역할을 연결한다

LEI로 거래 상대 기업을 정확히 찾았다고 해 보자.

그래도 질문이 남는다.

“지금 이 요청을 보낸 사람이 그 기업을 대표할 수 있는가?”

vLEI는 verifiable Legal Entity Identifier다.

기존 LEI에 기반한 조직 신원과 사람의 신원·역할을 암호학적으로 연결해 검증할 수 있도록 하는 체계다. GLEIF는 조직의 LEI, 개인의 신원, 조직 내 역할을 연결하는 구조로 설명한다. GLEIF의 vLEI 설명

비교하면 다음과 같다.

구분LEIvLEI 체계
중심 기능 법적 실체 식별 조직과 사람·역할의 검증 가능한 연결
기본 형태 공개 식별 코드와 참조정보 암호학적으로 검증하는 자격증명
대표 질문 어떤 조직인가? 누가 그 조직에서 어떤 역할을 하는가?

vLEI는 LEI에 첨부파일 하나를 붙이는 정도의 개념이 아니다. 발급기관의 자격, 발급·철회 절차, 키 관리, 자격증명 구조를 포함한다.

GLEIF는 이 신뢰 구조의 출발점인 root of trust 역할을 맡는다. 따라서 분산된 검증 기술을 활용하더라도, 발급자의 책임과 거버넌스가 존재한다. GLEIF의 vLEI 신뢰 구조

6. 조직의 공식 직책과 업무상 역할은 어떻게 구분할까?

vLEI를 이해할 때 중요한 것이 OOR과 ECR이다.

OOR: 공식 조직 역할

OOR은 Official Organizational Role이다.

조직의 공식 역할을 맡은 사람을 표현하는 자격증명이다. 자격을 갖춘 vLEI 발급기관인 QVI·Qualified vLEI Issuer가 관련 검증을 거쳐 발급한다.

공식 프레임워크는 인물의 신원뿐 아니라 암호학적 식별자와 지갑의 통제도 확인하도록 다룬다. 역할 역시 공개 자료나 요구되는 조직 문서 등을 통해 검증하는 절차가 있다. GLEIF OOR Credential Framework

이름과 직함을 입력한 프로필을 그대로 인정하는 구조와는 차이가 있다.

ECR: 업무 맥락의 역할

ECR은 Engagement Context Role이다.

공식 직책 외에 기능적·업무상 맥락의 역할을 표현한다. 예를 들어 특정 업무의 담당자나 연락 창구를 증명하는 활용을 생각할 수 있다.

GLEIF 프레임워크상 ECR은 법적 실체가 직접 발급·철회하거나, QVI가 관련 서비스를 제공할 수 있다. GLEIF 자격증명 프레임워크 안내

정리하면 다음과 같다.

구분중심 내용
OOR 공식 조직 역할의 검증
ECR 특정 기능이나 업무 맥락의 역할 표현

‘임원인가?’와 ‘이번 업무를 담당하도록 지정됐는가?’는 서로 다른 질문이다.

7. 역할을 증명하면 모든 거래를 승인할 수 있을까?

여기서 가장 조심해야 할 부분이 있다.

역할을 확인하는 것과 구체적인 거래를 허용하는 것은 별도의 판단이다.

어떤 사람이 기업의 재무 관련 역할을 갖고 있다고 해도 다음 조건까지 자동으로 충족되는 것은 아니다.

  • 모든 금액의 지급을 단독 승인할 수 있는가?
  • 이번 계약이 담당 업무 범위에 포함되는가?
  • 다른 승인자의 동의도 필요한가?
  • 현재 조직의 내부 정책과 법적 제한을 충족하는가?

예를 들어 서비스에서 다음과 같은 정책을 정할 수 있다.

조직과 역할 증명 확인
          ↓
허용된 업무 범위 확인
          ↓
거래 금액 및 추가 승인 조건 확인
          ↓
이번 요청의 실행 허용 여부 결정

이는 이해를 위한 설계 예시이며 vLEI의 표준 처리 순서를 그대로 옮긴 것은 아니다.

역할 자격증명은 이런 판단에 필요한 근거를 제공할 수 있다. 하지만 최종적으로 어떤 행위를 허용할지는 검증 서비스의 정책과 적용되는 법적·계약적 조건에 연결해야 한다.

8. 전자서명이나 인증서와는 무엇이 다를까?

전자서명과 vLEI는 함께 사용할 수 있는 개념이다.

암호학적 서명 검증은 특정 키와 연결된 서명인지, 서명 대상이 변경됐는지 등을 확인하는 데 사용된다. 서명자를 어떤 현실의 신원과 연결하는지는 인증서나 다른 신뢰 체계의 검증이 필요하다.

기업 거래에서는 여기에 다음 질문이 추가된다.

“이 서명자가 어떤 기업에서 어떤 역할로 서명했는가?”

vLEI 체계는 이런 조직·역할 정보를 검증 가능한 형태로 연결하는 데 초점을 둔다.

다만 기존 인증서에도 조직 관련 정보를 담을 수 있다. GLEIF 역시 디지털 인증서에 LEI를 포함하는 방식을 별도로 다룬다. 따라서 기존 인증서는 기업 신원을 전혀 다루지 못하고 vLEI만 가능하다고 설명하면 부정확하다. GLEIF: LEI in Digital Certificates

비교할 때는 기술 이름보다 다음 항목을 확인하는 편이 유용하다.

확인 항목질문
신원 연결 키를 어떤 사람·조직과 연결했는가?
역할 증명 직함이나 업무 역할을 어떻게 검증했는가?
상태 관리 철회·변경 정보를 어떻게 확인하는가?
행위 연결 증명이 이번 문서나 요청과 연결되는가?
법적 인정 해당 거래에서 요구하는 요건을 충족하는가?

vLEI를 사용했다는 사실만으로 모든 국가의 법적 서명 요건이 자동 충족되는 것도 아니다.

9. DID·VC와는 어떻게 연결될까?

앞선 디지털 신원 글에서 DID와 VC를 살펴봤다면, vLEI도 비슷한 문맥으로 이해할 수 있다.

다만 검증 가능한 자격증명이라는 일반 개념과 특정 데이터 형식을 구분해야 한다.

vLEI는 KERI와 ACDC 등을 기반으로 하는 기술 체계를 사용한다. GLEIF의 기술 요구사항은 자격증명과 관련 프로토콜의 준수 조건을 정의한다. GLEIF vLEI Technical Requirements

큰 역할만 구분하면 다음과 같다.

구성 요소이해할 때의 초점
LEI 현실의 법적 실체를 식별하는 기준
KERI 암호학적 식별자와 키 이벤트를 다루는 기반
ACDC 연결된 자격증명을 표현하고 검증하는 기술
vLEI 거버넌스 누가 무엇을 확인하고 발급·철회하는지 정하는 규칙

따라서 W3C VC를 지원하는 지갑이나 DID를 사용하는 시스템이라고 해서 vLEI를 곧바로 처리할 수 있다고 가정해서는 안 된다.

실제로 지원하는 자격증명 형식, 제출 방식, 검증기, 신뢰 기준을 확인해야 한다.

10. 실제 서비스에서는 어떻게 활용할 수 있을까?

다음은 협력사 등록 서비스를 가정한 설계 예시다. 특정 기업의 실제 도입 사례는 아니다.

1단계: 계약 상대를 식별한다

협력사의 LEI를 받아 공식 명칭과 등록정보를 조회한다. 신청자가 입력한 정보와 비교해 계약 대상이 어느 법적 실체인지 확인한다.

2단계: 담당자의 조직 관계를 확인한다

지원되는 환경이라면 담당자의 vLEI 역할 자격증명을 요청한다. 발급 근거와 유효성을 검증하고, 신청 대상 기업과 일치하는지 확인한다.

3단계: 업무 정책을 적용한다

확인한 역할이 협력사 등록이나 계약 요청에 적합한지 판단한다. 필요한 경우 별도의 승인이나 추가 문서를 요구한다.

4단계: 변경과 철회를 반영한다

담당자가 퇴사하거나 역할이 바뀌었을 때 접근 권한을 갱신한다. 과거에 통과했다는 이유만으로 계속 권한을 유지하지 않도록 한다.

이 구조에서 기대할 수 있는 것은 반복적인 자료 확인의 일부를 기계 검증으로 연결하는 것이다. 실제 시간 단축이나 위험 감소는 연동 범위와 운영 품질에 따라 검증해야 한다.

LEI가 없는 상대방이나 vLEI를 지원하지 않는 조직도 고려해야 한다. 모든 거래처가 참여한다는 전제로만 서비스를 만들면 도입 자체가 어려워질 수 있다.

11. 개발자가 놓치기 쉬운 운영 문제

기업 신원 기능을 구현할 때는 조회 성공과 서명 검증 성공 외에도 살펴볼 것이 많다.

공개된 LEI를 인증 수단으로 사용하지 않기

LEI는 공개 정보다. 입력값이 실제 레코드와 일치하는지는 확인할 수 있어도, 입력한 사람이 해당 기업의 관계자인지는 추가 증거가 필요하다.

최신 상태와 판단 시점을 구분하기

현재 자격의 유효성을 확인하는 문제와, 과거 특정 시점의 행위가 적절했는지 확인하는 문제는 다르다.

감사 기록에는 어떤 증거와 상태를 언제 확인했는지 남기는 설계를 고려할 수 있다.

철회를 서비스 권한에 연결하기

조직에서 역할 자격증명을 철회했어도 서비스가 오래된 결과를 계속 사용하면 의도한 통제가 작동하지 않는다.

캐시와 세션의 유지 기간, 재검증 시점, 장애 발생 시 처리 방침을 정해야 한다.

실패한 검증을 자동 승인하지 않기

네트워크 오류와 실제 자격 문제를 구분하고, 확인할 수 없는 경우에 어떤 추가 절차를 사용할지 정한다.

개인정보를 필요한 범위로 처리하기

조직 식별정보가 공개돼 있다고 해서 사람의 정보와 활동 기록을 제한 없이 저장해도 되는 것은 아니다. 기업 정보와 개인의 역할·행위 기록을 구분해서 다뤄야 한다.

이 목록은 구현을 위한 설계 제안이다. 공식 거버넌스 역시 가용성, 자격증명 유효성, 조직의 관리 책임 등 운영 위험을 별도로 다룬다. GLEIF vLEI Risk Assessment

12. 기업을 식별하는 것에서 기업의 행위를 검증하는 것으로

LEI는 여러 시스템에서 같은 법적 실체를 가리키는 기준을 제공한다. vLEI는 여기에 사람과 조직 역할의 검증을 연결한다.

하지만 기업의 신원, 담당자의 역할, 거래의 허용 여부는 끝까지 구분해야 한다.

LEI가 있다고 신용도가 보장되지는 않는다. 유효한 역할 자격증명이 있다고 모든 계약을 체결할 수 있는 것도 아니다. 제재 확인, 실소유자 확인, 거래 위험 평가처럼 별도로 수행해야 할 판단도 남는다.

기업 신원 서비스를 설계할 때 필요한 질문은 구체적이다.

어느 조직을 상대하고 있는가? 요청한 사람의 역할을 어떤 근거로 확인했는가? 그 역할로 이번 행위를 허용해도 되는가?

이 세 질문에 대한 증거와 정책을 연결할 때, 기업 신원은 조회용 정보에서 실제 거래를 지원하는 기반으로 확장될 수 있다.


참고 자료

온라인에서 “내가 누구인지”를 증명하는 일은 로그인보다 넓은 문제다.

 

우리는 온라인에서 여러 종류의 증명을 요구받는다.

서비스에 로그인할 때는 계정의 주인임을 증명한다. 금융 서비스를 이용할 때는 실제 신원을 확인한다. 학생 할인을 받을 때는 재학 여부를, 연령 제한 서비스를 이용할 때는 나이 조건을 충족하는지 증명한다.

모두 비슷해 보이지만 확인하려는 내용은 다르다.

계정을 통제한다는 사실, 현실의 특정 인물이라는 사실, 어떤 자격을 갖췄다는 사실은 각각 별도의 주장이다.

디지털 신원을 이해하려면 이 차이부터 살펴볼 필요가 있다. 이 글에서는 기본 개념을 정리한 뒤 DID, 검증 가능한 자격증명, 디지털 지갑, 유럽의 eIDAS 2.0이 어떻게 연결되는지 알아본다.

1. 디지털 신원이란 무엇일까?

디지털 신원은 온라인 환경에서 어떤 주체를 구분하고, 그 주체에 관한 정보를 표현하는 데 사용된다.

사람을 예로 들면 다음과 같은 정보가 관련될 수 있다.

  • 서비스 안에서 사용하는 계정 식별자
  • 이름이나 생년월일 같은 속성
  • 재학·재직·면허 보유 여부
  • 계정과 연결된 인증 수단

모든 서비스가 이 정보를 전부 필요로 하는 것은 아니다.

익명 게시판에서는 같은 계정이 다시 방문했는지만 확인하면 될 수 있다. 반면 면허가 필요한 서비스를 제공한다면 사용자가 유효한 자격을 갖췄는지 확인해야 한다.

NIST의 디지털 신원 지침도 신원확인, 인증, 연합 신원을 구분하고, 서비스의 위험에 맞는 보증 수준을 선택하도록 설명한다. 이 지침은 미국 정부 정보시스템을 주된 대상으로 하지만 개념을 구분하는 데 유용하다. NIST SP 800-63-4

중요한 설계 질문은 다음과 같다.

이 서비스는 사용자의 무엇을, 어느 정도 확실하게 알아야 할까?

2. 식별·신원확인·인증·인가는 서로 다르다

한국어에서는 여러 과정을 모두 ‘인증’이라고 부르는 경우가 많다. 하지만 시스템을 설계할 때는 구분하는 편이 정확하다.

개념확인하는 질문예시
식별 어떤 계정이나 주체를 가리키는가? 사용자 ID로 계정 찾기
신원확인 주장하는 현실의 신원이 맞는가? 신원 증거와 신청자 확인
인증 등록된 인증 수단을 통제하는가? 패스키로 로그인하기
인가 이 작업을 수행해도 되는가? 결제 승인 권한 검사
속성·자격 확인 필요한 조건을 충족하는가? 유효한 학생 자격 확인

위 표는 개념을 이해하기 위한 구분이다. 실제 제품의 용어와 절차는 다를 수 있다.

신원확인: 증거와 사람을 연결하는 과정

신분증 이미지 한 장을 받았다고 신원확인이 완료되지는 않는다.

신청자가 주장하는 신원을 구분하고, 제출된 증거가 유효한지 확인하며, 신청자가 그 증거의 정당한 소유자인지도 연결해야 한다.

NIST는 이를 resolution, validation, verification으로 나누어 설명한다. 문서가 진짜인지 확인하는 일과 그 문서를 제출한 사람이 실제 주인인지 확인하는 일은 별개다. NIST SP 800-63A-4

인증: 등록된 인증 수단의 통제를 확인하는 과정

로그인 인증에서는 비밀번호, 보안키, 패스키 등 계정에 연결된 인증 수단을 확인한다.

여기서 인증이 강력하더라도, 최초에 계정과 현실의 인물을 연결하는 절차가 약했다면 그 문제가 자동으로 해결되지는 않는다. 반대로 처음 신원을 철저히 확인했어도 로그인 수단이 탈취되면 계정이 악용될 수 있다. NIST SP 800-63B-4

예를 들어 실명확인을 하지 않는 서비스에서 패스키로 계정을 만들 수 있다. 패스키는 안전한 계정 접근을 지원하지만, 그 계정의 실명까지 새로 증명하는 것은 아니다.

인가: 인증 이후에도 남는 판단

직원 계정으로 로그인했다고 모든 회사 문서에 접근할 수 있는 것은 아니다.

직원이라는 사실과 급여 정보를 열람할 권한은 구분해야 한다. 따라서 시스템에는 신원과 인증 결과를 바탕으로 접근 권한을 결정하는 정책이 필요하다.

3. 디지털 신원은 어떻게 전달될까?

신원정보를 다루는 구조는 하나만 존재하지 않는다. 다음 세 가지 방식으로 나누어 보면 이해하기 쉽다.

서비스가 직접 관리하는 방식

서비스가 계정과 인증 수단을 직접 관리한다.

사용자 → 서비스 로그인 → 서비스가 인증

다른 신원 제공자의 인증 결과를 사용하는 방식

사용자가 외부 신원 제공자에서 인증하고, 서비스는 그 결과를 받아들인다.

사용자 → 신원 제공자에서 인증
                    ↓
             서비스가 결과 수신

이런 연합 신원 구조에서 널리 쓰이는 기술이 OpenID Connect, 즉 OIDC다. OIDC는 OAuth 2.0을 기반으로 사용자 인증과 사용자 관련 주장인 클레임을 전달하는 규격이다.

다만 OIDC를 사용한다는 사실만으로 법적 실명이 확인됐다는 뜻은 아니다. 전달된 정보와 신원 제공자의 확인 절차를 함께 봐야 한다. OpenID Connect Core

사용자가 자격증명을 보관하고 제출하는 방식

발급기관이 만든 자격증명을 사용자가 보관하고, 필요한 서비스에 제시한다.

발급기관 → 사용자에게 자격증명 발급
                        ↓
                 사용자가 서비스에 제출

이 구조를 이해하는 데 필요한 개념이 검증 가능한 자격증명과 디지털 지갑이다.

세 방식은 실제 서비스에서 함께 사용될 수도 있다. 지갑으로 자격을 제출한 뒤 서비스 계정에 연결하고, 이후에는 패스키로 로그인하는 구성을 생각할 수 있다.

4. DID는 무엇을 해결할까?

DID는 Decentralized Identifier, 분산 식별자를 뜻한다.

형태는 다음과 같다.

did:example:123456789abcdefghi

설명용 예시이며, 세 부분으로 구성된다.

did : method : method-specific identifier

여기서 메서드는 식별자를 생성하고 해석하는 구체적인 방식을 정한다.

DID는 DID 문서와 연결되며, 문서에는 공개키 등 검증에 필요한 정보나 서비스 엔드포인트가 포함될 수 있다. 이를 통해 식별자와 관련된 암호학적 증명을 확인할 수 있다. W3C DID Core

DID를 만들었다고 실명이 증명되지는 않는다

어떤 사람이 DID를 만들고 관련 키로 서명했다고 가정하자.

그 증명으로 확인할 수 있는 것은 해당 식별자에 연결된 키를 통제한다는 사실이다. 이름, 학위, 재직 여부 같은 현실의 속성은 별도의 근거가 필요하다.

또한 DID 표준은 특정 블록체인을 필수로 요구하지 않는다. 저장·해석·키 변경·복구 방식은 메서드에 따라 달라진다. 식별자의 통제를 분산하는 것과 자격을 판단하는 기관의 역할을 없애는 것도 서로 다른 문제다. W3C DID Core

5. VC는 ‘누가 무엇을 증명했는지’를 표현한다

VC는 Verifiable Credential, 검증 가능한 자격증명이다.

발급기관의 주장을 기계가 처리하고 암호학적으로 검증할 수 있도록 표현한다. 예를 들어 대학은 어떤 사람이 해당 대학의 졸업생이라고 증명할 수 있다.

W3C의 VC 모델에는 세 가지 주요 역할이 있다.

역할하는 일학위 증명 예시
발급자·Issuer 자격증명을 발급 대학
보유자·Holder 보관하고 제시 졸업생
검증자·Verifier 받아서 검토 채용 기업

보유자와 자격증명의 대상은 이 예시에서는 같지만, 항상 같아야 하는 것은 아니다. W3C VC Data Model 2.0

서명이 맞아도 내용까지 자동으로 참이 되지는 않는다

누구나 자신이 만든 문서에 서명할 수 있다. 따라서 서명 검증에 성공했다는 사실만으로 그 발급자가 대학이거나 면허 발급 권한을 가진 기관이라고 판단할 수는 없다.

검증자는 발급자를 신뢰할 근거와 해당 자격을 발급할 권한을 확인해야 한다. 적용되는 유효기간·상태 정보와 서비스 정책도 함께 검토해야 한다.

W3C 표준도 검증 가능성이 내부 주장의 진실성을 뜻하지 않는다고 명시한다. 암호학적 검증과 업무상 신뢰 판단이 함께 필요하다. W3C VC의 신뢰 모델

6. 디지털 지갑은 어떤 역할을 할까?

디지털 신원 지갑은 자격증명을 보관하고 제출하는 사용자 인터페이스가 될 수 있다.

학교에서 받은 재학 증명, 기관에서 받은 자격 증명 등을 보관하고, 서비스가 요청한 정보를 확인한 뒤 제출하는 방식이다. 교육·고용 등 다양한 활용 사례가 W3C 문서에도 정리돼 있다. W3C VC Use Cases

단순히 문서 이미지를 저장하는 것보다 중요한 기능은 요청과 제출의 맥락을 처리하는 일이다.

예를 들어 학생 할인 서비스라면 다음 흐름을 설계할 수 있다.

서비스: 학생 자격 증명 요청
           ↓
지갑: 요청 기관과 제출할 정보 표시
           ↓
사용자: 제출 내용 확인
           ↓
지갑: 요청에 맞는 증명 제출
           ↓
서비스: 검증 후 할인 정책 적용

이는 이해를 위한 예시다. 구체적인 절차는 지갑과 자격증명 형식에 따라 달라진다.

자격증명과 제출 프로토콜도 구분해야 한다

문서 형식을 정했다고 안전한 제출 절차까지 완성되는 것은 아니다.

검증 요청의 대상, 제출받을 서비스, 일회성 값인 nonce 등을 적절히 연결해야 과거 응답을 재사용하는 공격 등을 방어할 수 있다. OpenID for Verifiable Presentations는 이런 자격증명 요청·제출을 다루는 프로토콜이다. OpenID4VP 1.0

복사한 파일이나 캡처 화면을 보여주는 것과, 현재 요청에 연결된 증명을 제출하는 것은 다르다.

7. 개인정보를 덜 공개하면서 증명할 수 있을까?

서비스에 필요한 정보가 “특정 연령 이상인가?”라면 전체 생년월일과 주소까지 전달할 필요는 없을 수 있다.

학생 할인도 이름·학번·학과를 모두 수집하기보다 유효한 학생 자격만 확인하는 방향을 고려할 수 있다.

이때 구분해야 할 개념이 있다.

개념목적
최소 수집 서비스가 필요한 정보만 요청
선택적 공개 자격증명의 일부 정보만 공개
조건 충족 증명 원래 값 대신 조건을 만족하는지 증명
연결 가능성 최소화 여러 제출이 같은 사람의 활동임을 추적하기 어렵게 설계

선택적 공개와 조건 충족 증명은 기술적으로 같은 기능이 아니다. 예를 들어 발급기관이 처음부터 ‘특정 연령 이상’이라는 속성을 발급하는 방법과, 생년월일을 숨긴 채 계산 결과를 증명하는 방법은 다르다.

또한 VC나 지갑이라는 이름만으로 이런 기능이 자동 제공되지는 않는다. 사용하는 형식과 암호 기술, 발급·제출 방식에 맞춰 구현해야 한다.

개인정보 보호를 설계할 때는 공개하는 항목뿐 아니라 반복 사용되는 식별자와 제출 메타데이터도 살펴봐야 한다. W3C 역시 데이터 최소화와 정보의 결합을 통한 추적 위험을 다룬다. W3C VC 개인정보 보호 고려사항

8. eIDAS 2.0은 기술을 제도적 신뢰와 연결한다

DID와 VC가 기술적 구성 요소라면, eIDAS 2.0은 전자 신원과 신뢰서비스에 관한 유럽의 법적·제도적 체계다.

일반적으로 eIDAS 2.0이라고 부르는 개정 체계는 기존 eIDAS를 확장하며, 핵심 요소 중 하나로 European Digital Identity Wallet, EUDI Wallet을 도입한다.

목표는 회원국이 제공하는 디지털 신원을 바탕으로 국경을 넘는 공공·민간 서비스 이용과 속성 증명을 지원하는 것이다. EU 집행위원회: EUDI Regulation

하나의 유럽 계정으로 통합하는 구상일까?

EU 집행위원회는 각국의 디지털 신원을 하나로 대체하는 것이 목적은 아니라고 설명한다. 회원국의 신원 체계를 바탕으로 지갑의 기능과 상호운용성을 확장하는 접근이다.

사용자 이용은 자발적이라는 원칙도 중요하다. EU 집행위원회 공식 Q&A

도입 일정은 어떻게 봐야 할까?

2026년 10월 16일 기준, EU 집행위원회는 회원국이 2026년 말까지 지갑을 제공하도록 하는 일정을 안내한다. 이 일정만으로 모든 국가와 민간 서비스가 이미 동일한 수준으로 운영 중이라고 판단해서는 안 된다. EU 공식 도입 일정

또한 DID 구현이나 W3C VC 형식을 사용한다는 사실만으로 eIDAS의 법적 효력이 자동으로 부여되지는 않는다. 기술 규격 준수와 법적 요건 충족은 각각 확인해야 한다.

9. 전체 구조를 한 번에 연결해 보기

지금까지의 개념은 다음처럼 배치할 수 있다.

계층다루는 문제관련 개념
현실의 신원과 연결 신청자가 주장하는 사람이 맞는가? 신원확인
계정 접근 등록한 인증 수단을 통제하는가? 비밀번호·패스키 등
식별 어떤 주체를 가리키는가? 서비스 ID·DID 등
속성 표현 누가 어떤 자격을 증명했는가? VC 등
보관과 제출 사용자가 증명을 어떻게 전달하는가? 디지털 지갑·제출 프로토콜
신뢰와 정책 무엇을 인정하고 허용할 것인가? 발급자 신뢰·인가 정책·제도

이 표는 구성 요소의 역할을 구분한 것이다. 모든 디지털 신원 시스템이 DID나 VC를 반드시 사용해야 한다는 뜻은 아니다.

예를 들어 대학이 학생 자격을 발급하는 서비스를 설계한다면 다음 질문이 이어진다.

  1. 대학은 어떤 근거로 학생을 확인하는가?
  2. 발급받는 지갑을 학생과 어떻게 연결하는가?
  3. 할인 서비스는 그 대학을 왜 신뢰하는가?
  4. 졸업이나 휴학 이후의 자격 변화를 어떻게 반영하는가?
  5. 제출 과정에서 불필요한 개인정보가 노출되지 않는가?
  6. 휴대전화를 잃었을 때 어떻게 복구하는가?

형식과 서명이 올바른지만으로 답할 수 없는 문제들이다.

10. 개발자가 실제로 설계해야 하는 부분

디지털 신원 기능을 구현할 때는 다음 세 가지를 먼저 구체화하면 좋다.

무엇을 확인할 것인가?

실명이 필요한지, 같은 계정인지 확인하면 되는지, 특정 자격만 있으면 되는지 정한다.

학생 할인 기능에 금융 서비스와 같은 수준의 정보를 요구해야 하는지는 따로 검토할 문제다.

누구의 증명을 인정할 것인가?

허용할 발급기관과 자격의 범위, 유효기간, 상태 확인 정책을 정한다.

같은 형식의 문서를 읽을 수 있어도 발급기관의 의미와 신뢰 기준이 다르면 상호운용이 완성되지 않는다.

실패와 복구를 어떻게 처리할 것인가?

정상적인 발급·제출 흐름과 함께 운영 시나리오를 설계한다.

  • 기기 분실과 인증 수단 변경
  • 자격 만료·철회·재발급
  • 상태 조회 서비스 장애
  • 잘못 발급된 정보의 정정
  • 스마트폰 사용이 어려운 사람의 대체 경로

특히 복구 과정이 기존 통제보다 약하면 공격자가 그 경로를 이용할 수 있다. 신원확인과 인증을 설계할 때부터 복구와 예외 처리를 함께 고려해야 한다. NIST 인증 수단 생애주기 지침

디지털 신원 시스템의 품질은 필요한 사실을 얼마나 적절하게 증명하고, 그 증명을 안전하게 사용하며, 문제가 생겼을 때 회복할 수 있는지에서 드러난다.


참고 자료

+ Recent posts