2013-03-22 3 views
4

.NET 암호화 API에서 CspParameters 개체의 키가 서명 키인지 교환 키인지 지정하는 데 사용할 수있는 KeyNumber 속성이 있음을 발견했습니다.Exchange 키와 Crypto API의 서명 키의 차이점

RSA 키에 관한 두 가지의 차이점은 무엇입니까? 특히, 교환 키를 서명에 사용하면 생성 된 키가 부적절하거나 안전하지 않을 수 있습니다.

+0

키 전송은 어떻게됩니까? PFX/P12? 토큰? – Raj

+0

@Raj - 키를 Csp Blob로 내보내고 있습니다. 거기에서 나는 사용자 암호에서 파생 된 별도의 AES 키를 사용하여 개인 키를 암호화하여 데이터베이스에 저장합니다. –

답변

1

서명 할 때 교환 키를 사용하지 마십시오. MSDN 당 인 경우 교환 키는 다른 사람에게 배포되므로 사용자가 보낼 내용을 암호화 할 수 있습니다. 그들이 메시지를 보냈다는 메시지에 서명하려면 자신의 Private key (서명 키)을 사용하여 서명하고 암호화 할 공개 키를 사용합니다. Diffie-Hellman 용어로 공개 키를 사용하여 서명 한 다음 다른 사람들과 배포/교환하면 메시지가 사용자의 것으로 표시되도록 서명 할 수 있습니다. 교환 키를 공개로 생각하고 서명 키를 비공개로 생각하십시오.

+0

저장된 키와 관련된 기본 제공 보안을 사용하여 키에 액세스 할 수없는 사용자, 개인 키 또는 공개 키를 사용할 수 있는지 여부, 그리고 어떤 목적으로 키를 정의 할 수 있는지 정의 할 수 있습니다. 필자는 다른 곳에서 사용하기 위해 키를 내보낼 것입니다. 따라서 키 자체의 속성에 관심이 있고 Crypto API가 키 주위의 보안을 관리하는 방식이 아닙니다 (희망 사항이 맞습니다) –

관련 문제