CAPI을 사용하여 PIV 스마트카드를 통한 SSH 접속

CAPI는 Microsoft에서 제공하는 다양한 방법의 애플리케이션 암호화가 가능하며, 모든 기능은 운용 체계에 포함되어 있어 PKCS#11과 같이 별도의 모듈을 설치할 필요가 없습니다. 수행 기능에는 암호 알고리듬 제공, 스마트 카드와 같은 하드웨어 컴포넌트 제공, 사용자 개인 키를 사용한 전자 서명의 경우 사용자와 직접 통신 제공 등이 있습니다. 이 중 스마트 카드의 인증서를 사용하여 원격 SSH 서버에 접속할 수 있습니다.

다음은 유비키 스마트 카드의 인증서로 원격 SSH 서버에 접속하는 방법에 대한 안내입니다.

Yubikey에서 인증서 생성 및 내보내기

인증서 생성

  1. Yubikey manager 실행

  2. Applications - PIV - Certificates를 차례로 선택합니다.

  3. Authentication에서 Generate를 실행합니다.

    Self-signed certificate를 선택합니다.

    알고리즘은 ‘RSA2048’이나 ‘RSA1024’를 선택합니다. 2023년 11월 20일 현재 ECCP256은 Xshell이 지원하지 않습니다.


    인증서의 이름을 입력합니다.

    인증서의 만료일을 입력합니다.

    지정한 내용이 맞는지 확인한 후 인증서 생성을 합니다.

    해당 스마트 카드의 설정 정보를 바탕으로 필요한 키 값들을 입력합니다.

    Export를 선택하여 위에서 생성한 인증서를 인증서 저장소에 등록할 파일을 생성합니다.

     

인증서 등록

  1. 위 인증서 생성 과정에서 생산된 인증서를 마우스 더블 클릭 등으로 실행 후 ‘인증서 설치’를 실행합니다.

     

  2. 인증서 가져오기 마법사에서 '현재 사용자'를 선택합니다.

     

  3. ‘모든 인증서를 다음 저장소에 저장’을 선택한 후 인증서 저장소가 ‘개인용’ 되도록 합니다.

     

  4. 인증서 관리자(certmgr)를 실행하여 해당 인증서가 제대로 설치된 것을 확인합니다.



Xshell에서 CAPI 세션 생성 및 실행

  1. 해당 세션 파일의 등록 정보를 연 후 ‘사용자 인증’ → ‘CAPI’ → ‘설정’을 차례로 선택하여 CAPI 설정 대화 상자를 엽니다.

     

  2. 더 보기(…) 버튼을 눌러 ‘윈도우 보안’ 대화 상자를 연 후 해당 인증서를 선택합니다.
    해당 인증서가 선택되어 있지 않을 경우 ‘다른 옵션 선택’을 눌러 인증서를 선택합니다.

     

  3. 해당 인증서를 선택하면 아래와 같이 CAPI 키 문자열과 해당 인증서의 퍼블릭 키 문자열이 표시됩니다.
    토큰 핀 번호는 해당 스마트 카드의 핀 번호이며 이곳에 저장하거나 접속 도중에 입력할 수 있습니다.
    아래 붉은 박스의 문자열을 복사한 후 접속하고자 하는 서버에 등록합니다.
    퍼블릭 키 등록은 https://netsarang.atlassian.net/wiki/spaces/KRSUP/pages/419955301 을 참고하시기 바랍니다.

  4. 해당 세션 파일을 저장한 후 실행합니다.

  5. 스마트 카드의 핀 번호를 입력합니다. Xshell의 해당 세션 파일에 핀 번호를 저장하면 이 창은 나타나지 않습니다.

     

  6. PIV 카드와 CAPI 인증서를 통해 해당 서버에 성공적으로 접속한 것을 확인할 수 있습니다.