2011-04-08 5 views
0

웹 브라우저의 데이터를 보안 및 검증하는 동시에 메시지의 무단 생성을 방지하기 위해 플래시 브라우저 애플리케이션의 데이터를 웹 서버의 PHP 파일로 전송할 수 있어야합니다. (나는 메시지가 응용 프로그램에서 온 것이지 사용자가 다른 방법을 통해 메시지를 보내지 않도록하려는 것입니다.)플래시 또는 Java에서 소금 코드를 숨기려면 어떻게합니까?

C++ 응용 프로그램에서 데이터를 솔트하고 데이터와 함께 해시를 보낸 다음 데이터에 대해 해시의 유효성을 검사하여 무결성과 소스를 보장합니다.

그러나 Flash (& Java)에서는 응용 프로그램을 디 컴파일하여 소스 코드를 볼 수 있습니다. 따라서이 방법을 사용하면 누군가가 (상대적으로) 쉽게 소금을 찾아서 응용 프로그램 외부로 전송할 수있는 '유효한'메시지를 만들 수 있습니다.

송신을 보호하기 위해이 소금 코드를 숨길 수있는 방법이 있습니까? 예, 코드 난독 화가가 있다는 것을 알고 있지만 코드를 완전히 숨기지 않고 다른 레이어를 추가하기 만하면됩니다.

또는 데이터를 전송하고 소스 코드 &의 유효성을 검사하는 데 사용할 수있는 다른 방법이 있습니까?

+0

C++ 바이너리를 디 컴파일 할 수도 있습니다. 바이너리 안에서 뭔가를 "숨길"수는 없습니다. 그러한 수단에 SSL을 사용하고 서버 인증서가 유효한지 확인하십시오. – halfdan

+0

위와 동의하지만 SSL은 클라이언트와 서버 간의 통신 만 보호합니다. SLL을 사용해도 클라이언트가 생성하는 트래픽은 사용자가 수정할 수 있습니다. –

+0

중간에 첫 핸드 셰이크를 조작 한 사람이 있으면 보내진 데이터를 조사하고 조작 할 수있는 사람이 있으면 SSL은 100 % 안전하지 않습니다. 그러나 타이밍이 맞아야합니다. – ITroubs

답변

1

당신이 무엇을 하든지 관계없이 코드를 클라이언트에 포함시킬 수 있으며 사용자가 할 수있는 일은 난독 화입니다. Tomasz가 말한 것처럼 클라이언트가 서버로 인증 한 다음 소금 (또는 비대칭 키 쌍의 키)을받는 경우 클라이언트의 서버에 연결하는 데 필요한 모든 코드가 필요합니다. 그래서 당신이 무엇을 하든지 상관없이 모든 재료는 고객과 귀하의 "해커"컴퓨터에 있어야합니다. 해커가이 사실을 이해하는 것이 훨씬 더 어려워지는 것입니다.

언어에 관계없이 모든 클라이언트에서 동일합니다. DVD 플레이어에서 TV에 암호 해독 된 DVD 디스크를 표시 할 수있는 경우 메모리에서 해독 할 수있는 키가 있어야합니다. 찾을 수 있습니다. 이런 이유로 아무도는 완벽한 사본 보호를 만들지 않았다 :

편집 : 다른 모든 사람들은 말하고있다. 기성품 인 난독 화가가 아마도 가장 좋은 방법 일 것입니다. 그러면 클라이언트가 먼저 몇 가지 추가 작업을 수행 할 수 있습니다.

EDIT2 : 나는 Tomasz를 정확하게 이해하지 못했다. 해시를 얻기 위해 사용자가 서버에 인증 할 수있는 키를 가지고 있다면 실제로는 메시지가 사용자로부터 전송되었지만 여전히 애플리케이션에서는 전송되지 않았 음을 인증합니다. 이것이 속임수를 피하는 문제라면 해커는 이미 고객 (제품을 구입하거나 계정을 만드는 것) 일 것입니다. 당신이 원하는 것이 사용자를 인증하는 것이라면, 그것은 완전히 다른 문제이며, 그것은 가능합니다. (자체 문제 코스가 있음)

+0

나는 화면 앞에있는 사용자가 인증을 받아 응용 프로그램 자체에 키가없는 것을 의미합니다. 키가 앱에 있다면, 실제로 할 수있는 일은별로 없습니다. –

1

클라이언트에서 실행되는 프로그램을 보호하는 진정한 보안 방법은 없습니다. (C++은 또한 디 컴파일 될 수 있습니다.) 사용자가 해킹 된 클라이언트를 항상 실행할 수 있으며 어떤 암호화 키가 어떤 형태로든 코드에 있어야합니다. 당신은 캐주얼 해커에게 더 어려울 수 있지만 그게 전부입니다. 당신이 구현하는 것은 다른 형태의 난독 화에 해당합니다. 당신은 기성품 인 obfuscator를 볼 수 있습니다.

1

아마도 서버에서 먼저 인증을 받고 서버에서 소금 키를 가져온 다음 사용 하시겠습니까? 사용자가 앱을 디 컴파일 할 수있는 경우에도 메시지를 가짜로 만들고 싶다면 인증해야합니다.

그 외 - 애플리케이션에서 사용할 수있는 비밀번호, 해시, 키 (또는 데이터를 암호화하거나 유효성을 검사하는 데 필요한 모든 것)가 필요하며 서버에서 먼저 가져 오거나 애플리케이션에 삽입하거나, 이는 디 컴파일로 인식 할 수 있습니다.

편집 다른 사람들이 더 100 % 보안, 모든 것이 해킹 할 수는 그게 다야, 요점은, 너무 쉬운 일이 아닙니다하게 유출되는 것을 방지하는 것입니다,이없는 지적으로

. 따라서 Jim은 쉘 밖 obfuscator가 최상의 타협이 될 수 있다고 말했습니다.

관련 문제