이 페이지가 유용했습니까?
이 콘텐츠에 대한 여러분의 의견은 중요합니다. 의견을 알려주십시오.
추가 의견
1500자 남음
강력한 이름 도구(Sn.exe)
Collapse the table of content
Expand the table of content

강력한 이름 도구(Sn.exe)

강력한 이름 도구를 사용하면 강력한 이름으로 어셈블리에 서명할 수 있습니다. Sn.exe를 실행하면 키 관리, 서명 생성 및 서명 확인을 위한 옵션이 제공됩니다.


sn [-quiet][option [parameter(s)]]

매개 변수

옵션 설명

-c [csp]

강력한 이름 서명에 사용할 기본 CSP(암호화 서비스 공급자)를 설정하며, 이 설정은 컴퓨터 전체에 적용됩니다. CSP 이름을 지정하지 않으면 현재 설정이 지워집니다.

-d container

지정된 키 컨테이너를 강력한 이름 CSP에서 삭제합니다.

-D assembly1 assembly2

두 개의 어셈블리가 서명만 다른지 확인합니다. 이 옵션은 다른 키 쌍을 사용하여 어셈블리를 다시 서명한 후의 검사 방법으로 종종 사용됩니다.

-e assembly outfile

assembly에서 공개 키를 추출하여 outfile에 저장합니다.

-h

이 도구의 명령 구문 및 옵션을 표시합니다.

-i infile container

지정된 키 컨테이너에 있는 infile에서 키 쌍을 설치합니다. 키 컨테이너는 강력한 이름 CSP에 상주합니다.

-k [keysize] outfile

지정한 크기의 새 RSACryptoServiceProvider 키를 생성하여 지정된 파일에 씁니다. 공개 키와 개인 키 모두 이 파일에 작성됩니다.

키 크기를 지정하지 않으면 Microsoft 고급 암호화 공급자가 설치된 경우 기본적으로 1,024비트 키가 생성되고 그렇지 않은 경우 512비트 키가 생성됩니다.

keysize 매개 변수는 Microsoft 고급 암호화 공급자가 설치된 경우 8비트씩 증가시킬 수 있는 384비트에서 16,384비트까지의 키 길이를 지원합니다. Microsoft Base Cryptographic Provider가 설치된 경우에는 8비트씩 증가시킬 수 있는 384비트에서 512비트까지의 키 길이를 지원합니다.

-m [y|n]

키 컨테이너가 컴퓨터 관련 컨테이너인지 아니면 사용자 관련 컨테이너인지를 지정합니다. y를 지정하면 키 컨테이너는 컴퓨터 관련 컨테이너가 됩니다. n을 지정하면 키 컨테이너는 사용자 관련 컨테이너가 됩니다.

y나 n을 모두 지정하지 않으면 현재 설정이 표시됩니다.

-o infile [outfile]

infile에서 공개 키를 추출하여 .csv 파일에 저장합니다. 공개 키의 각 바이트는 쉼표로 구분됩니다. 이 형식은 키에 대한 참조를 소스 코드의 초기화된 배열로 하드 코딩하는 데 유용합니다. outfile을 지정하지 않으면 출력 파일은 클립보드에 넣어집니다.

-p infile outfile

infile의 키 쌍에서 공개 키를 추출하여 outfile에 저장합니다. 이 공개 키는 어셈블리 링커(Al.exe)/delaysign+ /keyfile 옵션을 사용하여 어셈블리 서명을 연기하는 데 사용될 수 있습니다. 어셈블리 서명이 연기되면 컴파일 타임에 공개 키만 설정되고, 나중에 개인 키를 알게 될 때 추가할 서명을 위한 공간이 파일에 예약됩니다.

-pc container outfile

container의 키 쌍에서 공개 키를 추출하여 outfile에 저장합니다.

-q[uiet]

자동 모드를 지정합니다. 즉, 성공 메시지가 표시되지 않도록 합니다.

-R[a] assembly infile

infile에 있는 키 쌍을 사용하여 이전에 서명했거나 서명을 연기한 어셈블리에 다시 서명합니다.

-Ra를 사용하는 경우 어셈블리에 있는 모든 파일에 대해 해시가 다시 계산됩니다.

-Rc[a] assembly container

container에 있는 키 쌍을 사용하여 이전에 서명했거나 서명이 연기된 어셈블리에 다시 서명합니다.

-Rca를 사용하는 경우 어셈블리에 있는 모든 파일에 대해 해시가 다시 계산됩니다.

-Rh assembly

어셈블리에 있는 모든 파일에 대해 해시를 다시 계산합니다.

-t[p] infile

infile에 저장된 공개 키의 토큰을 표시합니다. infile의 내용은 이전에 -p를 사용하여 키 쌍 파일로부터 생성된 공개 키여야 합니다. -t[p] 옵션을 사용하여 키 쌍 파일에서 직접 토큰을 추출하지 마십시오.

공개 키에서 해시 함수를 사용하여 토큰을 계산합니다. 공용 언어 런타임에서는 공간을 절약하기 위해 강력한 이름을 가진 어셈블리에 대한 종속성을 기록할 때 매니페스트의 공개 키 토큰을 다른 어셈블리에 대한 참조의 일부로 저장합니다. -tp 옵션을 사용하면 공개 키와 토큰이 모두 표시됩니다.

이 옵션은 어셈블리 서명을 확인하지 않으며 신뢰 결정을 내리는 데 사용해서는 안 됩니다. 이 옵션은 원시 공개 키 토큰 데이터만 표시합니다.

-T[p] assembly

assembly 에 대한 공개 키 토큰을 표시합니다. assembly는 어셈블리 매니페스트가 들어 있는 파일의 이름이어야 합니다.

공개 키에서 해시 함수를 사용하여 토큰을 계산합니다. 런타임에서는 공간을 절약하기 위해 강력한 이름을 가진 어셈블리에 대한 종속성을 기록할 때 매니페스트의 공개 키 토큰을 다른 어셈블리에 대한 참조의 일부로 저장합니다. -Tp 옵션을 사용하면 공개 키와 토큰이 모두 표시됩니다.

이 옵션은 어셈블리 서명을 확인하지 않으며 신뢰 결정을 내리는 데 사용해서는 안 됩니다. 이 옵션은 원시 공개 키 토큰 데이터만 표시합니다.

-v assembly

assembly에 있는 강력한 이름을 확인합니다. 여기에서 assembly는 어셈블리 매니페스트가 들어 있는 파일의 이름입니다.

-vf assembly

assembly 에 있는 강력한 이름을 확인합니다. -v 옵션과는 달리 -vf 옵션을 사용하면 -Vr 옵션으로 비활성화된 경우에도 확인이 수행됩니다.

-Vl

사용 중인 컴퓨터에서 강력한 이름 확인을 위한 현재 설정이 표시됩니다.

-Vr assembly [userlist] [infile]

확인을 건너뛸 assembly를 등록합니다. 선택적으로, 쉼표로 구분된 사용자 이름 목록을 지정할 수도 있습니다. infile을 지정하면 확인은 활성화된 상태로 유지되지만 infile의 공개 키는 확인 작업에 사용됩니다. Assembly*, strongname 형식으로 지정하여 지정된 강력한 이름을 가진 모든 어셈블리를 등록할 수 있습니다. Strongname은 공개 키의 토큰 형식을 나타내는 16진 문자열로 지정해야 합니다. 공개 키 토큰을 표시하려면 -t-T 옵션을 참조하십시오.

Caution note주의

개발하는 동안에만 이 옵션을 사용합니다. 어셈블리를 확인 생략 목록에 추가하면 보안상 허점이 발생합니다. 악의적인 어셈블리가 확인 생략 목록에 추가된 어셈블리의 정규화된 어셈블리 이름(어셈블리 이름, 버전, culture 및 공개 키 토큰)을 사용하여 해당 어셈블리의 ID를 모방할 수 있습니다. 이렇게 되면 악의적인 어셈블리도 확인을 건너뛸 수 있습니다.

-Vu assembly

확인을 건너뛸 assembly를 등록 취소합니다. -Vr에 적용되는 것과 동일한 어셈블리 명명 규칙이 -Vu에도 적용됩니다.

-Vx

확인을 건너뛸 모든 엔트리를 제거합니다.

-?

이 도구의 명령 구문 및 옵션을 표시합니다.

Note참고

Sn.exe의 모든 옵션은 대/소문자가 구분되므로 표시된 대로 정확히 입력해야만 도구에서 제대로 인식합니다.

-R–Rc 옵션은 서명이 연기된 어셈블리에 유용합니다. 이 시나리오에서는 컴파일 타임에 공개 키만 설정되고, 나중에 개인 키를 알게 될 때 서명이 수행됩니다.

다음 명령을 사용하여 난수 키 쌍을 새로 만들어 keyPair.snk에 저장합니다.

sn -k keyPair.snk

다음 명령을 사용하여 keyPair.snk에 있는 키를 강력한 이름 CSP의 MyContainer 컨테이너에 저장합니다.

sn -i keyPair.snk MyContainer

다음 명령을 사용하여 keyPair.snk에서 공개 키를 추출하여 publicKey.snk에 저장합니다.

sn -p keyPair.snk publicKey.snk

다음 명령은 publicKey.snk에 들어 있는 공개 키와 공개 키의 토큰을 표시합니다.

sn -tp publicKey.snk

다음 명령을 사용하여 어셈블리 MyAsm.dll을 확인합니다.

sn -v MyAsm.dll

다음 명령을 사용하여 기본 CSP에서 MyContainer를 삭제합니다.

sn -d MyContainer

커뮤니티 추가 항목

추가
표시:
© 2015 Microsoft