2010-05-25 2 views
2

저는 SQL Server 2008 데이터베이스에 정보를 읽고 쓰는 .NET 웹 앱을 작성하고 있습니다. 이 정보 중 일부는 본질적으로 매우 기밀로 유지되므로 특정 데이터 요소를 암호화하려고합니다.SQL Server 2008의 특정 필드를 암호화하는 가장 좋은 방법은 무엇입니까?

성능상의 이유로 TDE 또는 전체 데이터베이스 암호화를 사용하고 싶지 않습니다. 필자의 주요 관심사는 SQL 인젝션이나 데이터베이스 서버 손상에 대한 최후의 수단으로이 민감한 데이터를 보호하는 것입니다.

성능을 유지하기 위해 가장 좋은 방법은 무엇입니까? EncryptByKey과 같은 SQL Server 2008 암호화 기능을 사용하는 것이 더 빠르습니까? 아니면 .NET 웹 응용 프로그램 자체의 데이터를 암호화하고 해독하는 것이 더 빠릅니까? 앱은 보안 web.config에 저장된 대칭 키를 사용하고 암호화 된 값을 DB에 저장합니다.

답변

0

타사 라이브러리를 사용하여 웹 응용 프로그램 내부에서 데이터 암호화를 수행했으며 SQL2008 EncryptByKey에 비해 속도가 느릴 것이라고 생각합니다.

0

데이터베이스 암호화를 사용하지 않았지만 응용 프로그램 수준에서 암호화를 수행하는 것이 좋습니다. 어떤 이유로 든 데이터베이스를 변경해야하는 경우 암호화 논리는 데이터베이스 계층이 아닌 응용 프로그램 계층에있게됩니다.

나는 둘 사이의 속도가 확실하지 않지만 응용 프로그램 계층에서 유지 관리되는 경우 프로젝트 유지 관리가 줄 아래로 더 쉬울 것입니다. 암호화에 관해서는이 웹 사이트는 암호화 및 암호 해독 논리 및 염분 설계에 대한 좋은 지침서입니다.

Encrypt and Decrypt Data Using a Symmetric (Rijndael) Key

1

나는 항상 규칙을 따라 한 그 무엇을 당신이하려고하는 것은 데이터베이스에 수행해야 다음없는 비즈니스 규칙과 관련 데이터에 대한 걱정은하지 않아도 방법 인 경우 또 다시 ... 예를 들어 다른 응용 프로그램을 작성한다면 이미 암호화 설정이되어있어 추가 코드를 작성할 필요가 없습니다. 여기에는 다시 테스트하거나 새로운 버그를 도입 할 필요가 없습니다.

관련 문제