작업 관리자에서 kpmcnt.exe 를 보고 설치된 앱 목록을 뒤지면 비슷한 이름이 나오지 않는다. 서비스 목록에는 KicaPMSvc 가 있고, 앱 목록에는 SecuKit NXS 가 있다. 셋 다 한국정보인증(KICA)의 것이다. 이름이 이렇게 갈라져 있으면 지우려는 사람은 무엇을 지워야 할지부터 막힌다. 이번 편은 이 셋을 한 줄로 이어 본다.
이름이 세 갈래
설치된 앱 목록의 "SecuKit NXS" 는 버전 1.0.9.4, 게시자는 한국정보인증(주), 지원 주소는 signgate.com 이다. SignGate 는 한국정보인증의 공동인증서 브랜드다. 전자세금계산서나 전자문서 사이트, 법인 인증서를 쓰는 사이트에서 "인증 프로그램이 설치되어 있지 않다"는 안내와 함께 내려받게 되는 경우가 많은 것으로 알려져 있다. 한국정보인증은 법인 인증서 시장에서 비중이 큰 기관이라, 회사 업무를 하는 PC 에 특히 흔하다.
폴더는 C:\Program Files (x86)\KICA 아래 두 갈래로 나뉜다.
| 위치 | 들어 있는 것 | 역할(이 PC 에서 본 것) |
|---|---|---|
KICA\Common\kpmsvc |
kpmsvc.exe 1.1.5.2, kpmcnt.exe 1.1.5.11, config.ini | 서비스와 상주 프로세스 |
KICA\SecuKitNXS |
secukitNX.dll 1.0.9.4, NXModule.dll, NXIssueModule.dll, KICADialog.dll 등 DLL 과 NXUnInst.exe | 인증서 기능을 담은 라이브러리와 제거 프로그램 |
SecuKitNXS 폴더에는 제거 프로그램 말고는 실행 파일이 없다. 실제로 떠 있는 것은 Common\kpmsvc 의 두 파일이다. 이름의 PM 은 파일 설명에 적힌 대로 Process Manager 다. 설명 문자열은 "KICA Prosess Manager Service" 로 Process 의 철자가 틀려 있었다. 15편의 ToucnEn_nxFirewall 처럼 이런 오타는 한번 배포되면 좀처럼 고쳐지지 않는다. 두 파일 모두 KOREA INFORMATION CERTIFICATE AUTHORITY 서명이 유효했다.
서비스가 kpmcnt.exe 를 지킨다
서비스 KicaPMSvc(표시 이름 KICA Process Manager Service)는 자동 시작, LocalSystem 계정이고, sc.exe qc 의 오류 제어는 IGNORE 였다. 11편 IPinside 와 같은 설정으로, 부팅 중 이 서비스가 실패해도 Windows 가 경고 없이 넘어간다. 메모리는 서비스 쪽이 작업 집합 6.7MB, kpmcnt.exe 가 12.6MB 정도였다.
시작 프로그램(Run 키)에도 kpmcnt.exe 가 같은 이름으로 등록되어 있다. 그런데 프로세스의 부모를 보면 kpmcnt.exe 는 서비스 kpmsvc.exe 의 자식이었다. 앞 편의 SignKorea 와 같이, 감시하는 서비스와 Run 키를 겹쳐 둔 구조다.
재미있는 장면이 하나 있었다. 처음 확인했을 때 kpmcnt.exe 는 127.0.0.1:14315 와 127.0.0.1:14319 두 포트에서 연결을 기다리고 있었다. 조금 뒤 같은 확인을 다시 하니 kpmcnt.exe 의 프로세스 번호가 바뀌어 있었고, 14315 는 그대로였지만 14319 는 연결이 거부됐다. 그 사이 프로세스가 한 번 내려갔다가 서비스가 다시 띄운 것으로 보인다. 두 번째 포트가 언제 열리는지는 확인하지 못했다. 사이트가 특정 기능을 부를 때만 여는 포트일 수도 있다.
14315 에 단순한 TLS 접속을 시도했을 때는 인증서를 받아 내지 못했다. 19편에서 적은 대로, 정해진 첫 요청을 보내야 응답하는 방식으로 보인다.
KICA NXS Root CA
루트 인증서 저장소에는 KICA NXS Root CA 가 컴퓨터와 현재 사용자 양쪽에 들어 있었다. 기간은 2016년 7월 26일부터 2036년 7월 21일까지 약 20년이다.
이 날짜가 눈에 띈다. 이 PC 에 KICA 폴더가 생긴 것은 2026년 4월인데 루트는 10년 전에 만들어진 것이다. 4편의 Veraport 나 11편의 INTEREZEN CA 처럼 설치할 때 PC 마다 새로 만드는 루트가 아니라, 제품에 담겨 모든 PC 에 같은 것이 들어가는 루트로 보인다. 이런 방식이라면 루트의 개인 키가 어디에 어떻게 보관되는지가 중요해진다. 서버 인증서를 PC 에서 만들려면 키가 PC 에 있어야 하고, 미리 만들어 둔 인증서를 넣는 방식이라면 키는 회사에 있다. 이 PC 에서 본 것만으로는 어느 쪽인지 알 수 없었다.
18편의 표로 보면 루트는 세 부류였다. 설치할 때 만드는 20년짜리, 1년짜리, 그리고 이것처럼 설치 날짜와 상관없이 고정된 것. KICA 는 세 번째에 속한다.
지우는 방법
법인 인증서로 전자세금계산서를 발행하거나 한국정보인증 인증서를 쓰는 사이트를 PC 로 쓰지 않는다면 지워도 된다. 설정 → 앱 → 설치된 앱에서 "SecuKit NXS" 를 제거한다. kpmcnt 나 KICA 라는 이름으로 찾으면 나오지 않는다. 등록된 제거 명령은 다음과 같다.
C:\Program Files (x86)\KICA\SecuKitNXS\NXUnInst.exe
제거한 뒤에는 서비스 KicaPMSvc 와 시작 프로그램의 kpmcnt.exe 가 함께 사라졌는지 꼭 본다. 앱 목록의 이름과 상주 프로세스의 폴더가 다르기 때문에, 라이브러리만 지워지고 Common\kpmsvc 쪽이 남는 경우가 있을 수 있다. Common 폴더에는 별도의 Setup.exe 가 있었는데, 제거 뒤에도 서비스가 남아 있다면 이 폴더가 따로 설치된 공용 구성 요소일 가능성이 있다. 그 경우 한국정보인증 고객센터가 안내하는 방법을 따르는 편이 안전하다. 마지막으로 certlm.msc 에서 KICA NXS Root CA 를 확인한다.
다음 편은 한국전자인증의 CrossCert UniCRS 다. 서비스 없이 Run 키 세 개로 뜨고, 0.0.0.0 에서 포트를 연다.