문제

최근에 친구와 저는 SQL 서버 데이터베이스에서 저장 프로시저 코드를 보호하는 방법에 대해 이야기하고 있었습니다.

먼 기억에 따르면 "암호화 사용"은 모든 버전의 SQL Server에서 매우 쉽게 깨질 수 있다고 확신합니다. 그러나 그는 SQL 2005에서는 이 기능이 크게 향상되었다고 말했습니다.결과적으로 나는 지금까지 작업한 어떤 시스템에서도 이를 보안 옵션으로 심각하게 고려하지 않았습니다.

그렇다면 어떤 시나리오에서 "암호화"를 사용할 수 있으며, 어떤 대가를 치르더라도 이를 피해야 하는 경우는 언제입니까?

도움이 되었습니까?

해결책

일반 관찰자로부터 코드를 숨기는 데 사용할 수 있지만 다음과 같이 말합니다.쉽게 우회됩니다.

서버가 코드를 실행하려면 코드를 해독해야 하기 때문에 실제로 다른 방법은 없습니다.이는 기본적으로 DRM이며 다른 모든 DRM과 동일한 이유로 실패합니다. 즉, 데이터를 숨기는 동시에 액세스를 허용할 수 없습니다.

다른 팁

@블로그비어드

좋은 응답입니다. "WITH ENCRYPTION"에 대한 MSDN 문서는 귀하의 요점에 동의하는 것 같습니다. 이제 암호화된 것이 아니라 "난독화"라고 부릅니다.

그러나 나는 이 점을 전혀 인식하지 못하는 몇몇 개발자들을 만났습니다.이 질문/답변이 다른 사람들에게도 도움이 되기를 바랍니다.

네, 쉽게 깨집니다.지난 주에 전 개발자가 내 클라이언트를 위해 암호화한 여러 sproc을 해독해야 하는 상황이 있었습니다.적당한 노력을 들여 암호를 해독한 후에는 지적 재산, 비밀번호, 사용자 ID를 보호하기 위한 어떤 수단에도 의존하지 않을 것입니다.정말 뭐든지.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top