Microsoft로 로그인
로그인하거나 계정을 만듭니다.
안녕하세요.
다른 계정을 선택합니다.
계정이 여러 개 있음
로그인할 계정을 선택합니다.

요약

3141780 보안 업데이트(Microsoft 보안 공지 MS16-035에 설명됨)를 설치한 후 .NET Framework 응용 프로그램에서 SignedXml이 포함된 파일을 처리하는 중에 예외 오류 또는 예상치 못한 실패가 발생할 수 있습니다.

추가 정보

중요 이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수도 있으므로 다음 단계를 주의하여 수행해야 합니다. 추가 보호 조치로 레지스트리를 수정하기 전에 해당 레지스트리를 백업하는 것이 좋습니다. 이렇게 하면 문제가 발생하는 경우 레지스트리를 복원할 수 있습니다. 레지스트리 백업 및 복원 방법에 대한 자세한 내용은 다음 문서 번호를 클릭하여 Microsoft 기술 자료 문서를 참조하십시오.

322756Windows에서 레지스트리를 백업 및 복원하는 방법

시나리오 1

시나리오 1 증상

관리된 응용 프로그램이 다음 서명이 있는 오류 예외를 반환합니다.

System.Security.Cryptography.CryptographicException: URI [FileOrUrl]을(를) 확인할 수 없습니다.





System.Security.Cryptography.CryptographicException: URI testfile.xml을(를) 확인할 수 없습니다.



시나리오 1 해결 방법

고객은 다음 레지스트리 키를 해당 시스템에 적용할 수 있습니다.

레지스트리 항목

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security@SignedXmlAllowDetachedSignature=1

다운로드할 수 있는 .Reg 파일

이 문제를 해결하려면 해당 링크를 클릭한 후 다운로드한 파일을 두 번 클릭하여 레지스트리를 변경합니다.

SignedXml-ExternalReferences.reg(32비트 시스템의 32비트 프로세스 및 64비트 시스템의 64비트 프로세스)

SignedXml-ExternalReferences.Wow6432.reg(64비트 시스템의 32비트 프로세스)


참고

  • 이 레지스트리 항목은 DWORD 항목이어야 합니다.

  • 이 레지스트리 항목은 해당 다이제스트를 계산하기 위해 확인 중인 문서의 외부에 있는 리소스를 열거나 다운로드하는 이전 동작을 복원합니다.

경고 이 레지스트리 키를 사용하도록 설정하면 서비스 거부, 분산 반사 서비스 거부, 정보 유출, 서명 우회 및 원격 코드 실행을 포함한 보안 취약성이 허용될 수 있습니다.

시나리오 2

시나리오 2 증상

성공이 예상될 때 서명 확인이 실패합니다.



시나리오 2 해결 방법

콘텐츠에 다음 시그니처 블록이 포함된 경우, 다음 레지스트리 항목을 적용하는 것이 좋습니다.

시그니처 블록 예

<Document>


<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">

<SignedInfo>

<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

<Reference URI="...">

<Transforms>

<Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116" /></Transforms> <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <DigestValue>…</DigestValue> </Reference> </SignedInfo> <SignatureValue>…</SignatureValue> </Signature> …

</Document>


레지스트리 항목

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXPathTransform=http://www.w3.org/TR/1999/REC-xpath-19991116

다운로드할 수 있는 .Reg 파일

이 문제를 해결하려면 해당 링크를 클릭한 후 다운로드한 파일을 두 번 클릭하여 레지스트리를 변경합니다.

XmlDSigXPathTransform.reg(32비트 시스템의 32비트 프로세스 및 64비트 시스템의 64비트 프로세스)


XmlDSigXPathTransform.Wow6432.reg(64비트 시스템의 32비트 프로세스)

시그니처 블록에 다음 텍스트가 포함된 경우, 다음 레지스트리 항목을 적용하는 것이 좋습니다.

시그니처 블록 예

<Document>


<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">

<SignedInfo>

<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />

<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />

<Reference URI="...">

<Transforms>

<Transform Algorithm="http://www.w3.org/TR/1999/REC-xslt-19991116" /></Transforms><DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /><DigestValue>…</DigestValue></Reference></SignedInfo><SignatureValue>…</SignatureValue></Signature>…
</Document>


레지스트리 항목

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\Security\SafeTransformMethods@XmlDsigXsltTransform=http://www.w3.org/TR/1999/REC-xslt-19991116

다운로드할 수 있는 .Reg 파일

이 문제를 해결하려면 해당 링크를 클릭한 후 다운로드한 파일을 두 번 클릭하여 레지스트리를 변경합니다.

XmlDSigXsltTransform.reg(32비트 시스템의 32비트 프로세스 및 64비트 시스템의 64비트 프로세스)

XmlDSigXsltTransform.Wow6432.reg(64비트 시스템의 32비트 프로세스)

참고 기본적으로, .NET Framework가 제공하고, 서명된 문서의 입력을 받아들이지 않는 해당 XML 서명 변환만 사용됩니다. 입력을 받아들이는 변환 또는 사용자 지정 변환을 사용하도록 설정하려면 해당 변환에 대한 등록된 URI를 이 레지스트리 키 내 REG_SZ-typed 값의 데이터로 지정해야 합니다. 해당 값의 이름은 처리되지 않으며, 컴퓨터 관리자가 선택하는 어느 이름이나 될 수 있습니다.

경고 XPath 및 XSLT 변환을 통해, 문서 보낸 사람이 계산 집약적인 문서를 구성할 수 있습니다. 이로 인해 서비스 거부 상황이 발생할 수 있습니다.

도움이 더 필요하세요?

더 많은 옵션을 원하세요?

구독 혜택을 살펴보고, 교육 과정을 찾아보고, 디바이스를 보호하는 방법 등을 알아봅니다.

커뮤니티를 통해 질문하고 답변하고, 피드백을 제공하고, 풍부한 지식을 갖춘 전문가의 의견을 들을 수 있습니다.

이 정보가 유용한가요?

언어 품질에 얼마나 만족하시나요?
사용 경험에 어떠한 영향을 주었나요?
제출을 누르면 피드백이 Microsoft 제품과 서비스를 개선하는 데 사용됩니다. IT 관리자는 이 데이터를 수집할 수 있습니다. 개인정보처리방침

의견 주셔서 감사합니다!

×