이 화면
폰을 바꿀 때 옛 폰의 모바일신분증과 새 폰 얼굴 인증으로 새 폰에 신분증을 다시 받는 과정(신분증 이어받기)을 시험해 보는 시뮬레이터입니다. 실제 모바일 신분증 앱이 아니고 정부 시스템과도 연결되지 않습니다. 인물(김민수, 1958년생)과 날짜는 모두 가상입니다.
- 옛 폰: 지금 신분증이 들어 있는 폰(쓰던 폰)
- 새 폰: 신분증을 받을 폰
- 공통기반 기록: 모바일 신분증 중앙 시스템 역할. 무엇을 검사했는지 시간순으로 남깁니다. 줄을 누르면 실제 서명값(16진수 앞부분)과 검증 결과가 펼쳐집니다. 빨간 칸이 막힌 검사입니다.
쓰는 법
- 위에서 시나리오를 고르고, 주황 테두리가 생긴 버튼을 차례로 누릅니다. 이어받기는 새 폰에서 먼저 시작합니다.
- 「자동 시연」은 3초마다 한 단계씩 저절로 진행합니다(다시 누르면 멈춤). 「+72시간」「+30일」「+3년」은 가상 시계를 앞으로 돌립니다.
- 「분실 신고 창구에서 되돌리기」는 옛 폰이 없을 때(보상판매 등) 누리집·콜센터·주민센터에서 본인 확인 뒤 새 폰 신분증을 폐기하는 경우입니다(신분증은 방문·IC로 다시 받음, 이어받은 지 72시간 안일 때만 누를 수 있음).
시나리오
- ① 정상 이어받기
- ② 다른 사람이 내 명의로 시도 → 얼굴 불일치로 거절: QR도 뜨지 않고, 옛 폰에 시도 알림
- ③ 옛 폰 분실 → 방문·IC 안내
- ④ 30일 안에 또 이어받기 → 거절: 30일이 지나면 됨
- ⑤ 대면 확인 6년 상한: 이어받아도 만료일은 대면 확인 후 6년까지, 그때가 되면 갱신 대신 방문(IC 주민등록증 전환 안내)
- ⑥ 72시간 안 「내가 하지 않았어요」: 새 폰 신분증 폐기, 옛 폰에 다시 발급
- ⑦ 만료 60일 전 → 3년 갱신
- ⑧ 멀리서 승인 시도 → 근거리 확인에서 거절(얼굴은 통과했다고 가정한 경우): QR 화면을 캡처해 보내 옛 폰으로 찍게 해도 두 폰이 떨어져 있어 막힘
공통기반이 하는 다섯 가지 확인 (이어받기 요청)
- 옛 신분증 확인: 옛 신분증 서명, 유효기간, 정지·폐기 아님
- 옛 폰 승인 확인: 승인 서명, 1회용 번호
- 본인 확인: 얼굴 일치(공통기반 대조), 명의 일치
- 근거리 확인: 두 폰 가까이(블루투스)
- 이용 규칙: 72시간 보호, 30일 제한, 6년 상한
얼굴은 새 폰에서 찍자마자 공통기반이 먼저 대조하고, 맞을 때만 새 폰에 QR이 뜹니다.
실제로 동작하는 것과 시뮬레이션
- 실제: 전자서명과 검증. 브라우저에 들어 있는 암호 기능(WebCrypto)으로 ECDSA P-256(지금 널리 쓰는 타원곡선 전자서명)과 SHA-256을 씁니다. 가상 발급기관·공통기반·옛 폰·새 폰이 각자 열쇠를 만들고, 폰 열쇠의 비밀 부분은 밖으로 꺼낼 수 없게 만듭니다.
- 시뮬레이션: 얼굴 인증, 본인 명의 확인, 블루투스 근거리 확인, 창구 본인 확인. 버튼이나 시나리오 설정으로 결과를 정합니다. 공통기반 기록에서 점선 칸이 시뮬레이션 결과입니다. ⑧의 「가정」 표시는 얼굴 인증이 뚫렸다고 보고 진행한다는 뜻입니다.
- QR은 모양만 흉내 냈고 「QR 촬영」 버튼으로 연결합니다. 연결 코드에는 새 폰 공개키 지문(열쇠를 줄인 값)과 1회용 번호가 들어 있습니다.
규칙
- 신분증으로 쓸 수 있는 폰은 언제나 한 대. 이어받는 순간 옛 폰 신분증은 폐기 목록에 올라 효력이 멈춤
- 옛 폰에는 72시간 동안 「내가 하지 않았어요」만 누를 수 있는 되돌리기 열쇠(공통기반이 옛 폰 열쇠에 묶어 서명한 1회용 증표)만 남음. 옛 폰이 없으면 분실 신고 창구에서 되돌림
- 새 폰은 72시간 동안 휴대폰 개통·계좌 개설·신분증 재발급(이어받기 포함)이 막힘. 일반 신원확인은 됨
- 이어받기는 30일에 한 번. 만료 60일 전에 앱 알림
- 실물 신분증(창구 확인 또는 IC 카드 태그)으로 6년마다 다시 확인. 만료일은 「받은 날+3년」과 「마지막 대면 확인+6년」 중 이른 날
위조 시험
누른 뒤 이어받기를 해 보면 공통기반이 어느 검사에서 막는지 볼 수 있습니다.
검증 기록 내보내기
공통기반 기록을 JSON 파일로 내려받습니다. 서명값·공개키·서명한 내용이 모두 들어 있어 브라우저 밖에서도 다시 검증할 수 있습니다.
만든 방법
생성형 AI(Anthropic Claude)로 코딩했습니다. 외부 라이브러리 없이 이 파일 하나로 동작하며 인터넷 연결이 필요 없습니다.