문제

DKIM을 더 잘 이해하기 위해 앱을 작성하고 있습니다. 이 사양에 따르면 도메인 TXT 레코드에서 "ASN.1 DER-ENCODED"공개 키를 검색한다고합니다. "s1024._domainkey.yahoo.com"= "migfma0gcsqgsib3dqebaquaa4gnadcbiqkbgqdreee0ri4juz+qfiwyui/e9ugsxau/2p8ljntd8v4unn+2fazvge3kl23bzeouldeb3g.

.NET 에서이 키를 어떻게 사용할 수 있습니까? 내가 본 예제는 x509certificate2 또는 rsaparameters를 포함하는 XML 파일에서 키를 얻습니다.

보정: Network-Tools.com DNS 도구에서 위의 키를 복사/붙여 넣었습니다. NSLookup은 나에게 전체 키를 제공합니다.

s1024._domainkey.yahoo.com text = "k=rsa; t=y; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDrEee0Ri4Juz+QfiWYui/E9UGSXau2P8LjnTD8V4Unn+2FAZVGE3kL23bzeoULYv4PeleB3gfm" "JiDJOKU3Ns5L4KJAUUHjFwDebt0NP+sBK0VKeTATL2Yr/S3bTxhy+1xtj4RkdV7fVxTn56Lb4udUnwuxK4V5b5PdOKj+XcwIDAQAB; n=A 1024 bit key;"

그래서 Abelenky는 Base64와 함께 올바른 길을 가고있었습니다.

도움이 되었습니까?

해결책

이것은 RSA 공개 키를 포함하는 ASN.1 PublicKeyInfo의 DER- 인코딩의 Base64- 인코딩입니다.

번역은 다음과 같습니다.

   0 30  159: SEQUENCE {
   3 30   13:   SEQUENCE {
   5 06    9:     OBJECT IDENTIFIER '1 2 840 113549 1 1 1'
  16 05    0:     NULL
            :     }
  18 03  141:   BIT STRING 0 unused bits, encapsulates {
  22 30  137:       SEQUENCE {
  25 02  129:         INTEGER
            :           00 EB 11 E7 B4 46 2E 09 BB 3F 90 7E 25 98 BA 2F
            :           C4 F5 41 92 5D AB BF D8 FF 0B 8E 74 C3 F1 5E 14
            :           9E 7F B6 14 06 55 18 4D E4 2F 6D DB CD EA 14 2D
            :           8B F8 3D E9 5E 07 78 1F 98 98 83 24 E2 94 DC DB
            :           39 2F 82 89 01 45 07 8C 5C 03 79 BB 74 34 FF AC
            :           04 AD 15 29 E4 C0 4C BD 98 AF F4 B7 6D 3F F1 87
            :           2F B5 C6 D8 F8 46 47 55 ED F5 71 4E 7E 7A 2D BE
            :           2E 75 49 F0 BB 12 B8 57 96 F9 3D D3 8A 8F FF 97
            :           73
 157 02    3:         INTEGER 65537
            :         }
            :       }
            :   }

객체 식별자는 다음 비트 스트링에 rsapublickey의 인코딩이 포함되어 있음을 나타냅니다. 정수는 계수와 대중 지수입니다.

Base64를 사용하여 해독 할 수 있습니다 Convert.Frombase64String, 그러나 .NET은 publickeyInfos를 구문 분석하기위한 내장 기능이 있다고 생각하지 않으므로 Bouncycastle과 같은 타사 도구를 사용해야합니다.

다른 팁

이 문제에 관심이있는 사람은 System.security.cryptography.x509Certificates.publickey DER 인코딩 된 공개 키를 읽는 데 사용할 수 있습니다.

그 문자열은 일종의 Base-64 인코딩처럼 보입니다. 해당 문자열을 Base-64에서 Blob으로 변환하면 유효한 ASN.1 형식이어야합니다.

시도해보십시오 바운시 캐슬 라이브러리, 그러한 경우에는 훌륭한 기능을 제공합니다.

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