2017-05-24 1 views
1

나는 Azure KeyVault (this tutorial 기준)를 사용하여 blob 암호화를 구현했습니다. 그러나 내가 완전히 이해하지 못하는 것은 한 가지입니다. 이것이 바로 KeyResolver의 정확한 목적입니다. 특히 다음과 같습니다 : // In this case, we will not pass a key and only pass the resolver because // this policy will only be used for downloading/decrypting. BlobEncryptionPolicy policy = new BlobEncryptionPolicy(null, cloudResolver);하늘빛 암호화 키 대 KeyResolver

응용 프로그램 시작시 KeyVault에서 키를 가져와 내 UnityContainer에 등록하므로 Blob 업로드 및 다운로드를 처리하는 저장소에서 사용할 수 있으므로 KeyResolver가 필요하다고 생각하지 않습니다. 나 맞아? 아니면 제가 빠진 것이 있습니까?

답변

0

응용 프로그램 시작시 KeyVault에서 키를 가져와 내 UnityContainer에 등록하므로, 업로드 및 blob 다운로드를 처리하는 저장소에서 사용할 수 있으므로 KeyResolver가 필요하다고 생각하지 않습니다. 나 맞아? 아니면 제가 빠진 것이 있습니까?

KeyVault에 키 정보를 저장하지 않으려면 KeyResolver를 사용할 필요가 없습니다. 암호화 및 암호 해독 용 BLOB를 사용할 때처럼 키를 사용할 수 있습니다.

RsaKey key = new RsaKey("your private Key"); 
BlobEncryptionPolicy policy = new BlobEncryptionPolicy(key, null); 
BlobRequestOptions options = new BlobRequestOptions() { 
EncryptionPolicy = policy }; 

우리는 this tutorial에서 KeyResolver 대 키에 대한 자세한 정보를 얻을 수 있습니다. 다음은 tutorial의 스 니펫입니다.

사용자는 EncryptionPolicy 객체를 생성하는 동안 키 (IKey 구현), 리졸버 (IKeyResolver 구현) 또는 둘 다를 제공 할 수 있습니다.

IKey는 키 식별자를 사용하여 식별되고 래핑/래핑을위한 논리를 제공하는 기본 키 유형입니다. IKeyResolver는 암호 해독 프로세스 중에 키를 확인하는 데 사용됩니다. 키 식별자가 주어진 IKey를 반환하는 ResolveKey 메서드를 정의합니다. 이를 통해 사용자는 여러 위치에서 관리되는 여러 키 중에서 선택할 수 있습니다.

  • 암호화의 경우 키는 항상 사용되며 키가 없으면 오류가 발생합니다.
  • 암호 해독의 경우 : 키를 가져 오도록 지정된 경우 키 확인자가 호출됩니다. 해석기가 지정되었지만 키 식별자에 대한 매핑이없는 경우 오류가 발생합니다. resolver가 지정되지 않았지만 키가 지정되면 식별자가 필수 키 식별자와 일치하면 키가 사용됩니다. 식별자가 일치하지 않으면 오류가 발생합니다.
+0

는 "우리가 덩어리를 암호화 또는 decrption 때, 우리는 같은 EncryptionPolicy 객체를 사용할 필요가있다. KeyResolver와 우리가 암호화 BLOB 경우 의미는, 우리가 KeyResolver가 덩어리를 암호 해독 할 필요가있다." - 사실이 아니므로 자습서에서는 블로 브를 다운로드 (암호 해독)하는 동안 업로드 (암호화) 및 확인 자 동안 키만 사용합니다. 정확히 내 질문에 상황이 – Hanno

+0

나는 대답을 업데이 트했습니다. –