2017-10-15 15 views
0

SQL의 암호화에 대한 질문이 있습니다. 응용 프로그램의 코드 (C#)에서 데이터 암호화 및 암호화 된 데이터를 데이터베이스에 저장하는 데 사용되는 오버 헤드가 훨씬 적습니다. 빌드 SQL 암호화 옵션. Safey가 SQL-CLR 함수를 사용하여 SQL Server에서 암호화 된 데이터를 유효화합니다.

나는 그것을 좋아한다 : 당신은 당신이 다른 서버에 데이터베이스를 복원하는 경우 또는 SQL 복제를 사용할 때 데이터를 해독 할 수 있습니다 확인하고 걱정할 필요가 없습니다

  1. . 나는 당신이 그렇게 할 수있는 특별한 키를 생성 할 수 있지만, 너무 많은 오버 헤드가 있다는 것을 알고있다.

  2. 암호화 방법과 암호화 된 데이터를 완전히 분리합니다.

사용자 암호 유효성 검사는 사용자 입력을 해시 된 암호와 비교하여 응용 프로그램 코드를 통해 수행됩니다. 얼마나 많은 사용자가 특정 암호를 가지고 있는지 확인하기 위해 쿼리를 실행해야 할 필요가 없다고 생각합니다.

반면에 암호화 된 데이터가 신용 카드 번호 인 경우 특정 카드가 사용 된시기를 알기위한 쿼리를 실행하는 것이 비정상적인 작업이 아닙니다.

이 문제를 해결하기 위해 SQL-CLR 함수를 사용하여 암호화 된 데이터의 유효성을 검사하려고합니다. 이는 유효성 확인에만 사용되고 암호화에는 사용되지 않습니다.

데이터를 쿼리 할 수 ​​있도록이 사용자 함수를 릴레이하는 일부 저장 프로 시저를 만들려면 특히 안전 할 것입니다.

감사합니다.

+0

"암호화 된 데이터의 유효성 검사"란 무엇을 의미합니까? 그것을 즉시 암호 해독 하시겠습니까? – Alex

+0

성능에 영향을 미쳤습니까? 예 : 데이터베이스 등에서 인덱스를 만들고 싶습니까? 저는 직접 휠을 다시 발명하는 것과는 대조적으로 기존 접근법 중 하나 (온라인 자습서 찾기)를 구현하는 것이 좋습니다. 보안을 유지하면 사소한 실수로 쉽게 모든 작업을 음소거 할 수 있습니다. 그것은 사슬에서 가장 약한 고리에 관한 것입니다. – Alex

답변

0

내가 생각하는 PCI 문제를 묻는 중이다. 특정 카드가 언제 사용되었는지 알 필요가있는 이유는 무엇입니까? 분석 /보고 또는 조사/분쟁/기타 등의 목적을 위해.

귀하의 판매자 프로세서 (귀하가 해당 게시물을 기반으로하는 판매자라고 가정)는 판매 시점에서 실제 카드 번호를 토큰화할 수있는 가능성이 있습니다. 이 토큰을 사용하여 여전히 분석 /보고를 수행 할 수 있습니다.

응용 프로그램 계층에서 암호화 된 데이터베이스에 암호화 된 데이터를 저장 한 다음 데이터베이스에서 암호 해독 방법을 제공하면 암호화의 모든 이점이 손상 될 수 있습니다.

C# 응용 프로그램에서 카드 번호를 암호화 한 다음 이미 암호화 된 값을 사용하여 해당 데이터베이스를 쿼리 할 수 ​​있습니까?

"암호화 된 데이터의 유효성 검사"에 대한 도움을받을 수 있습니까?