2017-01-05 1 views
0

두 개의 개별 서버에 있어야하는 두 개의 응용 프로그램을 개발 중입니다. 하나는 데이터를 암호화하고 암호화 된 데이터를 SQL Server 인스턴스에 저장합니다 (SQL 2012 표준이므로 TDE는 지원하지 않습니다). 다른 응용 프로그램은 암호화 된 데이터를 가져 와서 해독하여 일부 보고서에 표시합니다.한 서버에서 암호화하고 .NET을 사용하여 다른 서버에서 암호 해독

공유 개인/공개 키 액세스를 사용하여 비밀 키 AESManaged을 볼 수 있습니까?

답변

3

AES는 대칭 키 암호이므로 개인/공개 키 쌍을 사용하지 않습니다. AES를 사용하면 데이터를 암호화하고 해독하기 위해 모든 액터가 동일한 키에 액세스 할 수 있어야합니다. 두 시스템에서 동일한 키에 액세스 할 수 있으면이 솔루션에 비대칭 (공개/개인) 암호화를 도입 할 필요가 없습니다.

두 시스템 모두 정적 공유 키에 영구 액세스하지 못하게하려면 하이브리드 암호 시스템을 사용할 수 있습니다. 각 메시지/레코드에 대해 임의의 AES "세션"키를 생성 할 수 있습니다. 원본 시스템에서 암호화되고 대칭 키 (AEAD 모드를 사용하거나 암호문에 인증 태그 을 추가)를 사용하여 데이터를 암호화 한 다음 수신자의 공개 키를 통해 세션 키를 암호화합니다. 이제 암호화 된 세션 키와 암호화 된 데이터를 함께 전송할 수 있습니다.받는 사람은 개인 키를 사용하여 세션 키를 해독 한 다음 데이터를 해독합니다. 단일 메시지가 손상되면 다른 레코드가 손상되지 않습니다 (수신인 개인 키가 손상되지 않은 한). AesManaged 또는 AesCryptoServiceProvider (자세한 내용은 here 참조) 또는 RsaCryptoServiceProviderRsaCNG 수단 .NET에서

(here 참조).

+0

또는 ... TLS 만 사용할 수 있습니다. –

+2

TLS는 전송 중에 데이터를 확실히 보호하지만 데이터 저장소의 지속성으로 인해 애플리케이션 계층 암호화에 대해 묻는 질문을 읽습니다. – Andy

+0

아 "가게"라는 단어를 보지 못했습니다. –

관련 문제