2012-11-21 2 views
1

나는 많은 사람들이 (뱀, 자동차 경주, 루 등 같은) 브라우저 기반의 간단한 (SWF 또는 HTML5) 게임을 즐길 수있는 시스템을 구축하고자합니다. 이 게임은 간단하고 서버에 로직을 작성하지 않아도됩니다. 최고 점수를받은 사람이 상을 수상합니다.보안 HTTP 트랜잭션은

이제는 워크 플로우 보안 문제입니다. 내 접근 방식이 틀렸을 수도 있습니다. 어떤 대안을 제안해도 좋습니다.
1. 게임이 시작되면 게임 ID가 생성됩니다.
2. 게임이 끝나면 점수와 게임 ID가 다시 전송됩니다.

문제는 2 단계를 스푸핑 할 수 있다는 것입니다. 어느 누구도 생성 된 게임 ID 및 점수와 비슷한 http 요청을 보낼 수 있습니다. 게임에서 얻은 점수와 직접 전송되지 않은 점수를 어떻게 알 수 있습니까?

점수를 암호화하는 것을 생각했지만 암호화 메커니즘이 자바 스크립트에서 쉽게 복제 될 수 있습니다.

미리 감사드립니다.

편집 1 : 나는 중간 공격 스니퍼, 세션 하이재킹, 사람에 대한 걱정 아닙니다. HTTPS가 모든 것을 처리 할 것입니다. 나는 사용자 자체에 대해 걱정하고있다. 그는 브라우저에서> inspect를 마우스 오른쪽 버튼으로 클릭하고 보낼 요청 헤더를 확인할 수 있습니다. 그는 쉽게 동일한 요청 헤더를 재생할 수 있습니다 (새 탭에서 마우스 오른쪽 버튼을 클릭하여 열어 볼 수 있음)

답변

1

당신은 추가 할 수있다 데이터를 모호하게하는 제출 서명/인코딩 계층, 사용자가 해당 수준의 보호를 취소하는 것을 어렵게 만드는 JS 코드 난독 화 등이 있습니다.

그러나 궁극적으로이 문제를 해결할 수 없습니다. 신뢰할 수없는 클라이언트에게 예상되는 방식으로 코드를 실행하도록 트러스트를 배치하고 있으며 이는 자연히 신뢰할 수없는 결과를 제공합니다. 점수를 위장하는 것은 단지 하나의 진입 지점 일뿐입니다. 침입자는 클라이언트 측 게임 논리의 다른 부분을 쉽게 부정 할 수 있습니다. 클라이언트를 신뢰

는 거의 해결 방안이 다년생 보안 문제입니다. 아무도 신경 쓰지 않는 사소한 고득점 테이블의 경우, 명백하게 사기성 제출에 대한 수동 모니터링 및 잘라 내기와 결합하여 임시 공격자를 막기위한 난독 화의 가능성을 없앨 수 있습니다.

실제 상품을 제공하려는 경우 게임의 일부를 관리하는 서버로 옮겨야 할 수도 있습니다. 보호해야 할 부분과 게임 의존도가 높은 부분 및 방어하기 어려운 잔여 공격이 발생할 가능성이 있습니다.예를 들어 상용 멀티 플레이어 서버 기반 게임이 목표 로봇과 같은 클라이언트 해킹을 방어하려고 시도하는 길이를 고려하십시오.

1

데이터의 값에 따라 다르지만 값이 매우 낮게 들리는 것 같습니다.

추측 할 수없는 ID를 기능적으로 선택하십시오. 예를 들어, GUID (128 비트 무작위로 생성 된 값). 누군가가 그것을 추측한다면, 그들은 게임을 얻습니다. 그러나 통계적으로 불가능할 것입니다. 그리고 만약 당신이 그것을 HTTPS를 통해 보내면 그들은 그것을 밖으로 냄새를 맡을 수 없습니다 (나는 단지 HTTPS를 통해 그것을 보낼 것입니다).

더 잘하고 싶다면 무작위 암호를 사용하여 선택하십시오. 그러나 수학이이를 지원하는지 질문합니다. 데이터가 미친 것처럼 들리는 것 같습니다. 정말 중요합니까?

FWIW, 내가 걱정 것 더 큰 것은 당신이 존재하지 않는 게임 데이터의 톤과 톤을 저장하는 요청에 의해 서비스 거부 당신에게 결정하는 사람이 ...

+0

나는 스니퍼, 세션 하이재킹 또는 중간 공격자에 대해 걱정하지 않습니다. 나는 사용자 자체에 대해 걱정하고있다. 누구든지 요소를 마우스 오른쪽 버튼으로 클릭하고 요청 헤더 (양식 데이터 전송 중)를 확인하고 동일한 요청 헤더를 마우스 오른쪽 버튼으로 클릭하고 새 탭에서 열어 재생할 수 있습니다. 이렇게하면 점수 = 100을 보내는 대신 점수 = 1000을 보낼 수 있습니다. –

+0

HTTPS가 스니퍼 및 MITM을 완화합니다. 사용자가 점수를 제출하고 런타임을 제어하지 않으면, 그것이 바로 그 것이다. 당신이 가장 걱정하는 위협에 대해 선명해야합니다. 어떤 암호를 사용하든 사용자는 자신의 상태를 조작 할 수 있습니다. 데이터를 혼란스럽게하는 일종의 미친 계획에 의해 바를 꼬집는 것만입니다. 당신은 바를 높이기 위해 일을 할 수 있지만, 지금까지 가정이 주어지면 난독 화일뿐입니다. –

관련 문제