티스토리 뷰

개발/코더 탈출

코드 서명

-=HaeJuK=- 2024. 2. 2. 12:51
반응형

Windows

윈도우 기반의 코드 서명은 개발자가 제작한 소프트웨어나 파일에 디지털 서명을 적용하는 프로세스입니다. 이는 사용자에게 소프트웨어의 출처와 무결성을 보장하고, 보안 경고를 최소화하는 데 도움이 됩니다. 아래는 Windows 환경에서 코드 서명을 하는 방법에 대한 간략한 가이드입니다:

참고: 코드 서명을 위해서는 디지털 인증서가 필요하며, 이는 신뢰할 수 있는 Certificate Authority(CA)에서 구입하거나 자체적으로 생성할 수 있습니다.

  1. 디지털 인증서 생성:
    • 개발자는 디지털 서명을 위한 개인 키와 공개 키를 가지고 있는 디지털 인증서를 생성해야 합니다.
  2. 디지털 인증서 저장:
    • 생성한 디지털 인증서와 개인 키는 안전한 곳에 저장되어야 합니다. 개인 키는 노출되지 않도록 주의해야 합니다.
  3. SignTool 사용:
    • Microsoft에서 제공하는 SignTool을 사용하여 코드 서명을 적용할 수 있습니다. SignTool은 Visual Studio Command Prompt나 Windows SDK의 도구 모음에 포함되어 있습니다.
  4. 서명 명령어 실행:
    • Visual Studio Command Prompt를 열고, SignTool을 사용하여 서명 명령을 실행합니다. 아래는 예시 명령어입니다:
      • /f: 인증서 파일의 경로와 이름을 지정합니다.
      • /p: 인증서의 비밀번호를 입력합니다.
      • /t: 타임스탬프 서버를 지정합니다.
      • "파일명.exe": 서명할 대상 파일명을 지정합니다.

        signtool sign /f "경로\인증서.pfx" /p 비밀번호 /t http://timestamp.digicert.com "파일명.exe"
    • 필요한 옵션들을 알맞게 설정한 후 명령을 실행하면 파일에 디지털 서명이 적용됩니다.
  5. 서명 확인:
    • 서명이 적용된 파일을 실행하면 Windows 운영 체제가 서명을 확인하고, 인증서가 유효하다면 사용자에게 신뢰성이 보장됩니다.

이를 통해 Windows에서 코드 서명을 수행할 수 있습니다.

자세한 내용이나 추가적인 설정은 사용 중인 개발 환경에 따라 다를 수 있습니다.

 

macOS

맥에서 코드 서명을 하는 방법은 주로 codesign 명령어를 사용하는 것이 일반적입니다. 아래는 macOS에서 코드 서명을 하는 간단한 가이드입니다:

참고: 코드 서명을 위해서는 디지털 인증서가 필요하며, 이는 신뢰할 수 있는 Certificate Authority(CA)에서 구입하거나 macOS의 Keychain Access 등을 통해 생성할 수 있습니다.

  1. 디지털 인증서 생성:
    • macOS에서 Keychain Access를 이용하여 디지털 인증서를 생성하고 내보내거나, 개발자 계정을 통해 Apple Developer 사이트에서 인증서를 생성할 수 있습니다.
  2. 디지털 인증서 추가:
    • 생성한 디지털 인증서를 Keychain Access에 추가하여 사용할 수 있도록 합니다.
  3. codesign 명령어 사용:
    • codesign 명령어를 사용하여 코드 서명을 적용합니다. 예를 들면:
      • -s: 사용할 인증서의 이름을 지정합니다.
      • -v: 서명의 유효성을 검사하고 출력합니다.
      • "파일명.app": 서명할 대상 파일 또는 애플리케이션을 지정합니다. 
      •  
      • codesign -s "Developer ID Application: Your Developer Name" -v "파일명.app"
  4. 서명 확인:
    • codesign 명령어를 사용하여 서명이 올바르게 적용되었는지 확인할 수 있습니다:
    • codesign -dvvv "파일명.app"
    • 이 명령어는 서명의 세부 정보를 출력합니다.

macOS에서 코드 서명은 애플의 보안 정책과 App Store에서의 배포를 위해 중요합니다.
따라서 macOS 애플리케이션을 개발하거나 배포하는 경우 코드 서명을 적용하는 것이 권장됩니다.

 

LINUX

리눅스에서 코드 서명을 적용하는 과정은 주로 GNU Privacy Guard(GPG)를 사용하여 이루어집니다. 아래는 간단한 리눅스 환경에서의 코드 서명 절차입니다:

참고: 코드 서명을 위해서는 GPG 키 쌍이 필요하며, 이는 사용자가 직접 생성하거나, 키 서버에서 가져올 수 있습니다.

  1. GPG 키 생성:
    • GPG 키를 생성합니다. 이때 개인 키는 안전한 장소에 보관되어야 합니다.
    • gpg --gen-key
  2. GPG 키 확인:
    • 생성된 GPG 키 목록을 확인합니다.
    • gpg --list-secret-keys --keyid-format LONG
    • 이 명령어를 통해 GPG 키의 ID를 확인합니다.
  3. 코드 서명:
    • 코드 서명을 적용할 파일에 대해 GPG로 서명합니다.
      • --detach-sign: 서명만 생성하고 별도의 서명 파일을 생성합니다.
      • -u: 사용할 GPG 키의 ID를 지정합니다.
      • "파일명": 서명을 적용할 대상 파일을 지정합니다.
    • gpg --detach-sign -u "GPG 키 ID" "파일명"
  4. 서명 확인:
    • 서명이 정상적으로 적용되었는지 확인합니다.
      • "파일명.sig": 생성된 서명 파일의 이름입니다.
    • gpg --verify "파일명.sig" "파일명"

리눅스에서는 주로 GPG를 사용하여 코드 서명을 진행합니다. 코드 서명은 소프트웨어 패키지의 무결성을 보장하고, 패키지가 신뢰할 수 있는 소스에서 왔음을 확인하는 데 중요한 역할을 합니다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함