마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

서버없이 운영되는 게임아이템 암호화 질문 드립니다

0 추천
안녕하세요.

서버를 운영한다면 큰 문제가 아니지만 로컬에서만 운영하려는 게임이다 보니 (사실 어느정도 수익이 난다고 판단될때 서버구성을 하려 합니다) 게임 아이템의 암호화가 큰 문제로 떠올랐습니다.

우선 아이템은 퍼즐게임의 힌트입니다

이 힌트를 단순히 암호화 하는건 문제가 되지 않지만 제가 염려 하는 부분은  힌트를 한번 구매한이후 다량의 힌트카운트가 디비에 저장되어있는 상태에서 해당 디비를 사용자가 별도로 백업해둔뒤 힌트가 모두 소진되었을때 기존에 백업해놓았던 디비와 비꿔치기를 했을경우 어떻게 디비의 무결성을 검사할수 있는지 입니다. 디비의 일부분을 위조했을경우 해시값을 가지고 무결성 검사를 할수 있으나, 위의 경우와 같이 모든 디비를 통째로 바꿔치기 한다면 무용지물이 되는 수가있어서요.

더욱이 지금 제작중인 퍼즐은 스테이지 진행형식이 아니기때문에 기존의 데이터를 그대로 바꿔치기 한다고 하더라도 사용자가 손해볼수 있는 부분이 전혀 없는 상태입니다.

ios의 키체인 같이 절대불변의 저장소를 제공해준다면 쉽게 풀어나갈수 있을것 같은데 아무리 머리를 쥐어짜도 이부분에 대한 해답을 구하기가 힘들군요.

경험있으신 분의 소중한 조언 기다리겠습니다다.

감사합니다
성상 (380 포인트) 님이 2014년 10월 5일 질문

3개의 답변

0 추천
기기고유값을 키값으로해서 암호화하면 DB를 통채로 변경하더라도 판별 가능할것같습니다.
익명사용자 님이 2014년 10월 5일 답변
답변 감사합니다. 그렇지 않아도 키값은 기기 고유값 + 어플 버전에 따른 별도의 값을 혼합하여 사용 할 예정입니다.
이런경우 타인의 데이터를 통째로 바꿔치기 하는건 불가능 하지만, 자신의 데이터 (힌트를 구매한 초기의 데이터) 를 힌트를 모두 소진한 시점의 데이터와 바꿔치기 한경우 어떻게 판별 가능할까 하는 질문이있습니다^^
혹시 방법을 알고 있으시다면 조언좀 부탁드릴게요!
0 추천
서버없이 이런 것을 하려한다는 것 자체가 잘못된 생각입니다.

예를 들어 구글 플레이 인앱 결제를 가짜로 진행하는 류의 툴이 이미 많이 있습니다.

이런 걸 쓰면 DB를 아무리 잘 암호화해도 아무 소용이 없습니다.
익명사용자 님이 2014년 10월 5일 답변
그렇군요 답변 감사합니다.  
아무래도 가상호스트 하나 얻어 써야 하는 건가 보군요.
0 추천
일단 최소한의 보안은 해야한다는 점에서는 의의가 있긴 합니다만...

솔직하게 말씀드리면 어차피 결국 뚫리는 뻔한 보안을 거는건 보안이라는 의미를 붙일 수 없다고 생각합니다.

어느정도라도 버틸 정도로(최소한 현재의 치팅 어플이라도 막을 정도의) 강력함을 가지고 있다면 모를까,

그런 방법은 현재 어디에도 없습니다.

 

서버 없는 보안이라는건 없습니다.

100% 뚫린다고 생각하셔야합니다.
Jinthree (8,980 포인트) 님이 2014년 10월 6일 답변
...