2010-01-27 5 views
2

우리는 약 1000MB의 장치 구성을 적어도 1000 개의 XML 파일에 구현했습니다.편집에서 XML 파일 보호

이제 우리는 소프트웨어를 고객에게 공개 할 예정입니다. 그러나 우리의 요구 사항은 사용자가 xml 구성 파일을보고 편집 할 수 없도록하는 것입니다. XML 구성 파일에는 읽을 수있는 경우 쉽게 해킹 할 수있는 장치 정보의 많은 비밀이 들어 있습니다.

이제 xml 파일을 암호화해야합니다. XML 파일을 암호화하는 데 권장되는 방법이 있으며 런타임에 해독 할 수 있습니까?

+2

XML이 잘못되었습니다. – ChaosPandion

+0

왜이 질문에 누구도 대답하지 못했습니까? –

답변

2

이것은 DRM 응용 프로그램에서 알려진 문제입니다. 사용자 에이전트를 조작하는 사용자가 아닌 선택한 사용자 에이전트에서 데이터를 사용 가능하게하려고합니다. 하지만 사용자 에이전트는 일반적으로 사용자 측에 있기 때문에 Jon과 Oded가 지적한 것처럼 해커가 결정을 내리면 암호화를 해제 할 수 있습니다. 그것은 고양이와 마우스 게임입니다. DRM을 구현하는 사람들이 해결하고자하는 것과 똑같은 문제에 대한 해결책을 찾으려고합니다. 소프트웨어 전용 사용자 에이전트는 하드웨어 지원 사용자 에이전트보다 해킹하기 쉽지만 두 경우 모두 해커가 작동합니다. 최신 개발은 하드웨어의 모든 암호화 기능을 포함하는 후자입니다. HDMI의 HDCP 방식 (고 대역폭 디지털 콘텐츠 보호 경로)과 같이 암호 해독 된 디지털 신호를 블랙 박스 하드웨어를 통과시켜 사용자가 액세스 할 수 없게 만들었습니다 암호 해독 지점에서부터 사용 가능하게 될 때까지, 그러나 의도 된 목적지 - TV 화면에서. 그러나 HDCP가 성공하려면 하드웨어로 구현해야했습니다. 대부분의 해커들은 소프트웨어를 다루는 법을 배웠습니다. 그러나 요즘에는 좋은 소프트웨어 해커 100 명당 1 개의 하드웨어 해커가 있다고 말하고 있기 때문에 마우스는 아무 고양이도 잡을 수 있기를 기대하지 않습니다. 너무 많은 이론에 대한 미안하지만, 당신의 문제에 필수적입니다, 나는 믿습니다. 여전히 게임을 즐기려는 경우 XML 파일을 암호화하고 암호 해독 용 키를 실버 플레이트에있는 해커가 사용할 수 없도록해야합니다. 즉, 난독 화 키를 사용하면 해독 할 수 있습니다.

+1

문제에 던져진 수백만의 영화 산업이 영화를 보호 할 수 없다면 누구에게나 희망이있다. –

+0

당신의 요점은 무엇입니까? Wheres 대답? 100 명의 좋은 범죄자 당 1 명의 도둑이 집에 침입 할 수 있다는 사실을 알고 집 문을 잠그셨습니까? '게임을 기꺼이'하지 않습니까? 역사가 보여주는 보안은 결국 깨질 것입니다. 하지만 그렇게하면 안된다. 대답에서 제공 한 귀중한 정보는 난독 화입니다. 적어도 나에게는. –

+0

@publicENEMY, 제 대답은 꽤 좋다고 생각합니다 - 약간의 정보가 담긴 이론과 약간의 조언이 있습니다. 나는 내가 문제를 직접 다루고있는 것처럼 썼다. 고양이가 내 생쥐를 잡는 걸 바라지 않아. 전체 DRM 시스템은 해독 키를 난독 화하기 위해 제작되었습니다. 이것은 오래된 주장입니다. 모든 보안 조치가 결국 깨질 것이기 때문에 나쁜 보안 조치에서 돈을 버는 것이 좋습니다. :-) 암호화는 그것이 의미하는 바가 무엇이든간에 진짜 보안을 생산하기위한 집중적 인 노력입니다. 자체 개발 한 DRM 시스템은 가정용 차고 잠금 장치와 유사합니다. 좋은 암호 작성자는 극히 소수입니다. – amn

1

어떻게 "해커"가되기를 기대합니까? 정보 의 암호를 해독하는 데 필요한 모든 정보가 시스템에있는 경우이있는 경우 결정된 공격자가 어쨌든 액세스 할 수 있습니다.

+0

그들은 기본적으로 소프트웨어의 현장 사용자이며 일부 고객 개발자 일 수 있습니다. –

1

Cryptography 네임 스페이스의 클래스를 사용할 수 있습니다.

대부분의 암호화 클래스를 사용하면 스트림을 암호화하고 해독 할 수 있으므로 용도에 적합합니다.

그러나 어셈블리에 있어도 어딘가에 여전히 암호화 키 을 보유해야합니다.

Jon이 지적했듯이, 결정된 해커는 암호화를 위반하는 방법을 발견하게됩니다.

1

다른 설명처럼 어떤 상황에서도 키를 저장하고 해당 키에 대한 액세스 권한을 부여하지 않고 암호 해독을 수행하는 신뢰할 수있는 장치가 없으면 절대적으로 안전하지 않습니다. 컴퓨터는 "신뢰할 수있는 장치"가 아닙니다 ... 내 고용주가 그러한 기술을 판매하고 데이터가 실제로 돈 가치가 있다면 그러한 솔루션을 고려해야합니다. 추가 USB-Dongle이 허용되지 않거나 너무 비싸면 적어도 공개 키 (비대칭) 암호화를 사용하십시오 (System.Security.Cryptography 참조). 비대칭 암호화는 데이터를 해독하는 데 사용되는 키를 사용하여 데이터를 암호화 할 수 없다는 이점이 있습니다. 응용 프로그램에서 암호 해독 키를 저장해야하며 해커가 암호 키를 결정할 수 있습니다. 그런 다음 모든 데이터를 해독 할 수 있지만 변경된 데이터를 다시 암호화 할 수는 없습니다. 따라서 그는 변경된 데이터로 애플리케이션을 사용할 수 없습니다. 이 작업을 수행하지 않으려면 응용 프로그램을 난독 처리하고 디버깅 방지 기술 (정적 및 런타임)을 사용해야합니다. 이 방법을 사용하면 기존 솔루션을 구입하는 것이 더 저렴할 것입니다.

1

주의 : 해커는 .net에서 생성 된 모든 기능을 볼 수 있으며 dll을 생성 할 수 있습니다! DecryptXML (문자열 경로)과 같은 .net 프로젝트에서 해독 알고리즘을 작성하면 해커가이 명령을 호출하는 것이 매우 쉽습니다. 따라서 프로젝트를 소프 프트 화해야합니다.