문제

.snk 파일은 무엇입니까? 나는 그것이 의지한다는 것을 안다 강하게 명명 된 키, 그러나 그것이 무엇인지에 대한 모든 설명과 그것이 어떻게 작동하는지에 대한 모든 설명이 내 머리 위로갑니다.

강력하게 명명 된 키가 사용되는 방법과 작동 방식에 대한 간단한 설명이 있습니까?

도움이 되었습니까?

해결책

.snk 파일은 a를 적용하는 데 사용됩니다 .NET 어셈블리에 강한 이름. 그러한 강한 이름은 구성됩니다

간단한 텍스트 이름, 버전 번호 및 문화 정보 (제공된 경우) - 공개 키 및 디지털 서명.

SNK에는 고유 한 키 쌍 (개인 및 공개 키)가 포함되어있어 조립품의 고유 한 이름을 갖도록하는 데 사용할 수 있습니다. 어셈블리가 강하게 이름 지정되면, "해시"는 어셈블리의 내용으로 구성되고 해시는 개인 키로 암호화됩니다. 그런 다음이 서명 된 해시는 .SNK의 공개 키와 함께 어셈블리에 배치됩니다.

나중에 누군가가 강력하게 이름이 지정된 어셈블리의 무결성을 확인해야 할 때 그들 어셈블리 내용의 해시를 구축하고 어셈블리에서 공개 키를 사용하여 어셈블리와 함께 제공되는 해시를 해독하여 두 해시가 일치하는 경우 어셈블리 검증이 통과됩니다.

이런 식으로 어셈블리를 검증하여 전체 응용 프로그램을 전복시킬 악의적 인 조립품을 아무도 교환 할 수 있도록 어셈블리를 검증하는 것이 중요합니다. 그렇기 때문에 이름이없는 어셈블리가 강하게 이름이 붙은 어셈블리와 같은 방식으로 신뢰하지 않으므로 GAC에 배치 할 수 없습니다. 또한 신뢰의 체인이 있습니다. 엄청나게 이름이없는 어셈블리를 참조하는 강력한 이름의 어셈블리를 생성 할 수 없습니다.

기사 "강한 이름 지정의 비밀". 이러한 개념을 더 자세히 설명하는 훌륭한 일을합니다. 그림.

다른 팁

The.net 세계에서 SNK 파일은 편집 된 바이너리에 서명하는 데 사용됩니다. 이것은 몇 가지 일이 일어날 수있게합니다.

  1. GAC에 어셈블리를 등록 할 수 있습니다 (글로벌 어셈블리 캐시). 기본적으로 여러 사본을 유지하지 않고도 동일한 기계의 여러 장소에서 참조 할 수 있습니다).
  2. 서명 된 다른 바이너리 내에서 바이너리를 사용할 수 있습니다 (서명 된 어셈블리와 관련하여 이상한 바이러스 성 행동입니다).
  3. 조립은 (쉽게) 수정할 수 없습니다 제 3 자 SNK 파일에 액세스 할 수없는 사람은 적어도 소량의 보안을 제공합니다.

나는 방법에 익숙하지 않습니다 Biztalk 서버 효과가 있으므로 나는 그들이 그 환경 내에서 어떤 특정한 목적을 제공하는지에 대해 많은 빛을 발할 수 있다고 생각하지 않습니다.

이것이 다소 도움이 되었기를 바랍니다.

.SNK 파일은 GAC (Global Assembly Cache)에 추가 할 수 있도록 어셈블리에 서명하는 데 사용됩니다.

.SNK 파일에는 키에 대한 공개 및 개인 토큰이 포함되어 있습니다. 해당 키로 일부 데이터 (또는 이진)에 서명하려면 데이터에 대한 체크섬이 계산 된 다음 개인 토큰으로 암호화됩니다. 그런 다음 암호화 된 체크섬을 데이터에 추가합니다. 누구나 키에서 공개 토큰을 사용하여 체크섬을 해독하고 계산 된 체크섬과 비교하여 서명 된 데이터가 변조되지 않았는지 확인할 수 있습니다.

공개 키 암호화에 대한 자세한 내용은 http://en.wikipedia.org/wiki/public-key_cryptography.

a .SNK 파일은 프레임 워크 유틸리티 세트에서 SN 유틸리티에서 생성 된 "키"의 지속 된 버전입니다. 그런 다음이 파일을 사용하여 어셈블리를 '디지털 서명'합니다. 2 부 키입니다. 개인-공공 키 조합. 열쇠의 공개 부분은 모든 사람에게 알려진 IE로 출판됩니다. 개인 부분은 구성 요소/앱 개발자 만 알려져 있으며 그렇게 유지되도록 의도되었습니다.

어셈블리에 서명 할 때는 조립에 내장 된 디지털 서명을 만들기 위해 개인 키와 해시 값을 사용합니다. 그 후, 당신의 어셈블리를로드하는 사람은 누구나 확인 단계를 거칩니다. 공개 키는 어셈블리가 실제로 당신에게서 온 것인지 확인하는 데 사용됩니다. 당신은 이것에 대한 공개 키가 필요합니다 (또한 어셈블리에서 토큰 화 형태로 내장되어 있습니다). 어셈블리가 변조 된 경우 해시 값이 다르고 어셈블리 부하가 중단됩니다. 이것은 보안 메커니즘입니다.

.SNK 파일은 다른 사람이 자신의 대신 자신의 조립을 미끄러 뜨릴 수 없도록하는 데 사용됩니다. 암호화/암호 해독 키 쌍을 제공합니다.

.SNK 파일이 어셈블리에 서명하는 데 사용되면 어셈블리 파일에서 해시 코드 값을 계산하고 개인 키를 사용하여 암호화합니다. 그런 다음 암호화 된 "다이제스트"는 .SNK 파일의 공개 키와 함께 어셈블리에 닿습니다.

그런 다음 누군가가 당신의 어셈블리를 받으면 해시 코드 값을 계산할 수도 있습니다. 공개 키를 사용하여 계산 한 값을 해독하고 계산 된 값을 비교합니다. 어셈블리가 전혀 변경되면 해당 값은 다르고 어셈블리 사용자는 귀하가 가진 어셈블리가 귀하가 제공 한 어셈블리가 아니라는 것을 알게됩니다.

Biztalk Server의 맥락에서 Biztalk 솔루션에서 사용하는 사용자 정의 어셈블리를 작성하는 사람은 .SNK 파일을 사용하여 조립품에 서명하여 BizTalk 서버를 GAC에로드하여 사용할 수 있도록해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top