게임의 암호화 된 콘텐츠


45

사용자가 프로그램 외부의 프로그램 내용을 파악하지 못하도록 암호화를 사용한다는 아이디어가 있습니다. 사용자가 게임에서 사용하지 않은 텍스처는 게임 데이터를 통해 이동하는 동안 일종의 이스터 에그의 일부를 의미합니다. 예를 들어 온라인에 게시하면 모든 사람을 망칠 수 있습니다.

플레이어가 게임의 보안 도어에서 올바른 숫자를 눌러야하는 비밀의 방을 상상해보십시오. 올바른 경우 올바른 암호 해독 키를 생성 한 다음 레벨의 해당 부분을 해독하고 문을 열어야합니다. 따라서 키가 실제로 저장되어 있지 않기 때문에 게임 데이터를 통해 볼 때에도 부활절 달걀에 액세스 할 수 없게 만드는 것은 사용자 입력을 기반으로 생성됩니다.

여기 제가 상상했던 또 다른 예가 있습니다. 각기 다른 키를 사용하여 암호화 된 20 개 레벨의 퍼즐 게임이 있습니다. 누군가가 프로그램을 직접 디 컴파일하여 찾을 수 있도록 프로그램과 함께 해독 키를 저장하는 대신 이전 퍼즐의 솔루션을 기반으로 암호화 / 암호 해독 키를 생성합니다. 이런 식으로 플레이어는 게임 데이터를 살펴 보더라도 다음 레벨에 대한 정보를 얻기 전에 실제로 퍼즐을 찾아야합니다.

퍼즐 솔루션의 수가 암호 해독 키의 수보다 적을 경우 플레이어는 지식이있는 경우 "쉽게"무차별 대입 할 수 있습니다. 그것은 실제로 퍼즐의 복잡성이며 여기서 중요하지 않습니다. 여기 에 관한 답변을 게시했지만

오늘날 이와 같은 일을 한 프로그램 / 게임이 있습니까? 게임에 암호화 된 콘텐츠를 저장 하시겠습니까? 왜 그렇지 않습니까? 상점이나 국가 차원에서 많은 규칙과 규정이 있습니까? 내가 누락 된 명백한 함정을 본 사람이 있습니까? 사용자 경험과 같은 것을 무시하면 아이디어가 나에게 들리며 왜 이것을 전에 보지 못했는지 궁금해합니다.

편집 : 내가 말하는 것을 정확히 알지 못할 수 있으므로 여기에 더 구체적인 예가 있습니다.

20 자의 문자열을 가져 와서 게임의 일부 내용을 암호화 / 암호 해독하는 데 사용할 수있는 대칭 키를 생성하는 기능이 있다고 가정 해 봅시다. 사용자가 해당 컨텐츠에 접근 할 수있는 유일한 방법은 20 자만 알고 동일한 키를 생성하는 것입니다. 이 키는 직접 저장되지 않으며 사용자 입력에 따라 즉시 생성됩니다. 이 캐릭터들은 책, NPC와의 대화, 심지어 상자 뒤의 게임 밖에서도 게임에 숨겨져 있습니다.

따라서 2 * 10 ^ 28 가능한 조합을 사용하면 사람들이 게임 데이터를 살펴 보는 것보다 의도 된 방식으로 내용을 찾을 가능성이 큽니다.

편집 2 : 문제의 콘텐츠 는 소비자에게 배송 되기 전에 임의의 비밀 키로 암호화 됩니다. 이 키는 분명히 게임과 함께 제공되지 않습니다. 키를 기반으로 한 일련의 단서가 주어지고 게임 전체 또는 다른 곳에 숨겨져있는 일련의 단서가 주어지면 키를 다시 퍼즐로 묶어야합니다. 그러나이 시스템은 실제로 게임 데이터를 살펴 보지 않으면 콘텐츠가 암호화 된 것을 알지 못하므로 사용자에게 투명합니다.

많은 언급에서 알 수 있듯이 사용 사례가 제한적이라는 단점이 있습니다. 한 사람이 알아 낸 후에는 키 / 솔루션이 아니라면 콘텐츠 자체가 다른 사람과 공유 할 수 있습니다. 그러나 당신의 의도가 무언가를 비밀로 유지하여 한 사람이 그것을 해결할 수 없어야하고 사람들이 그것을 해결하기 위해 함께 노력해야하거나 부활절 달걀이 디자인에 의해 숨겨져 있기를 두려워하는 경우 누군가가 게임 플레이를 통해 코드에서 찾을 가능성이 높습니다. 그런 다음 이것이 효과적 일 수 있다고 생각합니다.

개인적으로 게임당 한 번만 사용하고 핵심 게임 플레이에 영향을 미치지 않는 것 (예 : 부활절 달걀, 비밀 결말)에만 사용하는 것이 좋습니다. 모든 퍼즐은 너무 복잡하거나 숨겨져있어 사람들이 가치있는 콘텐츠를 암호화 할 수있을만큼 속도를 늦출 수 있어야하며,이 퍼즐이 사람들이 진행되는 방식에 서 있다면 아무도 재미를 느끼지 못할 것입니다.


56
답변은 기술적 인 세부 사항에 초점을, 그러나 당신의 목표는 숨기기 스포일러에있는 경우,이 정보에 의해 사용할 수있게됩니다 것을 고려 단순히 게임 은 (게임이 인기가있는 경우) 시점에서 합니다 모든 사람을위한 익명 기사에 직진 읽고, 플레이어 또는하지 않습니다.
Leushenko


5
이것은 엔터테인먼트 제품에 약간 과잉이 아닌가? 사람들은 연습을 통해 "키"를 얻거나 이미 게임을 한 사람들에게 물어 보거나 재생할 수 있습니다. 또한 게임을 처리하는이 "모호한"방법으로 인해 게임이 더 오류가 발생하기 쉬울 수 있습니다. 그렇지 않으면 나는 아이디어를 좋아하고 좋은 특수 효과가 될 것이지만 여전히 사람들이 해킹 / 속임수를 막는 것이 아니라 오히려 더 어렵게 만듭니다
BlueWizard

3
사용자가 게임 해킹으로 유명하고 퍼즐이 정말 어렵다 면 이것이 멋지다고 생각합니다 . 포럼에서 "이 이상한 암호화 된 파일이 무엇입니까"를 상상할 수 있습니다.
PyRulez

5
@PyRulez 아 그래! 이것이 저의 주요 동기였습니다. 그 성가신 정부가 모든 부활절 달걀을 찾기 위해 게임 파일을 통과 할 때 나는 그것을 싫어. 모두 적 포럼에 게시하고 국가의 도덕을 망치게 할 수 있습니다.
Christer

답변:


90

이 질문은 (하지 수 있는지 질문입니다 대신 특정 게임 콘텐츠의 잠금을 해제하는 해킹의 퍼즐을 해결하기 위해 적어도 하나의 사용자를 강제로 상업적으로 또는 다른 해석).

내 지식으로는 이것이 가능합니다. 사실, 다른 답변에 따르면 키가 생성되거나 저장되지 않았으며 게임 상태에서 읽을 수 있다고 명시 적으로 명시되어 있어도 불가능하다고 말한 것은 기괴합니다. 값). "게임이 그것을 해독하는 방법을 알고있다"고 작동하지 않는다는 주장은 컨테이너를 해독하는 방법을 알고 있기 때문에 오픈 소스 암호화 / 복호화 소프트웨어 (예 : TrueCrypt)가 본질적으로 안전하지 않다는 것을 암시합니다. 키보드 입력을 기반으로하는 문자열, 간단합니다.).

가장 간단한 경우, 게임 자체가 키보드 시뮬레이터이고 "암호화 된 파일의 비밀번호는 무엇입니까?" 이제 게임이 "가장 작은 동물의 이름과 연결된 지구상에서 가장 큰 동물의 이름은 무엇입니까?"라는 질문을한다고 상상해보십시오. 게임의 소스 코드를 사용해도 도움이되지 않고 퍼즐 을 풀어야 한다는 것이 확실하지 않습니까?

이것이 가능한지 여부에 대한 답은 절대적입니다. 그렇습니다.


9
나는 당신의 대답이 지금까지 내 질문을 완전히 이해하는 유일한 것이라고 생각합니다. 너무 많은 사람들이 자동으로 내 질문이 다른 게임 관련 암호화 질문과 같다고 생각하는 것 같습니다. 나는 그들이 어디에서 왔는지 이해하지만 내 질문을 조금 더 잘 읽기를 바랍니다.
Christer

7
당신이 제안하는 것은 문제에 대한 해결책이 암호화 된 방식으로 만 저장되고 있다는 것입니다. 유효한 솔루션을 확인하는 것은 확실히 가능하지만 기본적으로 그로부터 작업하는 것은 불가능합니다. (사용 방법-비밀번호 -101). 사용자 입력을 표시하지 않아도되는 컨텐츠를 숨기는 방법에 대한 질문의 두 번째 부분은 해결할 수 없습니다 (사용자 입력이 없다고 말하면 매우 엄격하게 의미합니다)
WorldSEnder

3
요점은 실제로 한 명의 사용자가 퍼즐을 풀도록 강요하는 것이 가능하다는 것입니다. 첫 번째 사람은 다른 사람에게 모두 알릴 수 있기 때문입니다. 암호화 연습의 요점을 음소거합니다.
cmaster

4
소스 코드 (또는 strings실행 파일)에서 "가장 큰 동물의 이름은 무엇입니까?"와 같은 수수께끼 플레이어 / 해커 가 여전히 해결 해야 할 수도 있지만, 적어도 질문이 발생한 게임의 위험한 여행을 피할 수 있습니다. 따라서 수수께끼 자체도 다소 숨겨져 있어야합니다 (그래픽은 종종 충분할 수 있기 때문에 텍스트입니다 .보다 정교하게 말하면 특정 포인트에서 볼 때 수수께끼 또는 다른 중요한 솔루션과 결합하여 일반 3D 객체가있는 게임을 기억한다고 생각합니다 information ...)
Hagen von Eitzen

4
"예를 들어 온라인에 게시하면 모든 사람을 망칠 수 있습니다." 원래 질문에서 ... 미안하지만이 대답에는 요점이 없습니다. 그것은 것이 바로 답 또는 해독 파일 또는 무엇이든 게시하는 경우 모두를 위해 그것을 파괴에 취약하고, 단지 그들을 게시에 취약.
Nathan Tuggy

57

시도되었습니다. 여러 번. 암호화를 사용하여 사용자가 원하는대로 프로그램에 액세스하지 못하도록하는 전체 하위 산업이 있습니다. 그리고 그것은 작동하지 않습니다. 가장 좋은 보호 체계는 깨지기 전에 약 한 달 동안 지속되는 경향이 있으며, 인터넷에 관한 문제는 일단 한 번 깨지면 누군가가 게시하자마자 영원히 모든 곳에서 깨지는 것입니다. 당신이 놓친 명백한 함정은 프로그램이 데이터를 사용하기 위해서는 데이터를 해독하는 데 필요한 모든 정보를 포함해야하며 컴퓨터가 그렇게 할 수 있다면 컴퓨터에 액세스 할 수있는 사람이 할 수 있다는 것입니다 그.

"암호화의 근본적인 문제"라고 불립니다. 앨리스는 찰리가 메시지를 읽더라도 메시지를 읽지 않고 Bob에게 메시지를 보내려고합니다. 제안한 접근법의 문제점 은이 경우 Bob과 Charlie가 같은 사람이라는 것 입니다.

나는 사용자를 망치지 않으려는 욕망을 이해할 수 있지만, 사람들이 스포일러를 원한다면 찾을 수 있고, 그렇지 않으면 스포일러를 적극적으로 피하는 경향이 있습니다. 그러나 진정으로 훌륭한 게임을 만들고 싶다면 반대 방향 인 급진적 개방성으로 가십시오. 같은 작품을보고 네버 윈터 나이츠 , 스타 크래프트 , 또는 엘더 스크롤 시리즈 출시 된 이후 년 동안 인기를 유지 게임. 사용자가 모든 것을 파고, 작동 방식을 파악하고, 자신의 컨텐츠를 구축하고 공유 할 수있는 강력한 디자인 도구를 게임과 함께 제공하기 때문입니다. 게임은 커뮤니티 가되고 커뮤니티가 견딜 때까지 게임 일뿐 입니다.


3
이 경우 암호화 크래킹은 퍼즐을 해결하는 봇을 작성하는 데 동등합니다. 단순히 게임을 완료하고 답변을 작성하는 것보다 어려울 것입니다.
Ewan

15
나는이 답변이 실제로 내 질문에 대답하지 않는다고 말하고 싶습니다! 실제로 사람들이 "코드를 해독"하거나 오히려 내 퍼즐을 풀기를 원합니다. 그것은 전체 요점이며, 누군가 누군가 그것을 알아 내면 해결책을 공유하는 것을 막을 수는 없지만 나는 노력하지 않습니다. 그러나이 정보가 사용자에 의해 제공 되었기 때문에 "암호 해독에 필요한 모든 정보를 포함해야합니다"라고 말하는 것은 잘못입니다. 자세한 내용은 업데이트 된 질문을 읽으십시오.
Christer

6
@Christer 그렇게하고 여기에 이유가 있습니다 : Mason은 누가 소수의 사람들 만이 실제로 할 수 있기 때문에 퍼즐 파일을 찾기 위해 게임 파일에 들어갈 수 있는지 누가 신경 쓰는지 말하고 있습니다 .
Insane

9
@JonasDralle 역겨운 냉소적 견해이며 사실이 아닙니다. MorrowindOblivion 주변에 세워진 강력하고 지속적인 커뮤니티는 Skyrim 의 판매를 막지 못했습니다 . 무엇이든, 그것은 더 성공적으로 만들었습니다!
메이슨 휠러

3
@Cronax "일회용 패드"스타일의 암호화를 사용하는 경우 (이 경우 키는 퍼즐 솔루션 임) 키 공간 크기보다 공격자가 더 나은 옵션을 가지고 있지 않습니다. 올바른 종류의 퍼즐을 사용하면 우주의 수명 내에서 해결하기가 비현실적으로 클 수 있습니다. 또한 이스터 에그가 예를 들어 개발자의 메시지 인 경우 공격자는 실제 메시지를 임의의 올바른 인식 된 메시지와 구별 할 방법이 없습니다.
Ben Aaronson

10

내용이 있으면 누군가 찾을 수 있다는 것을 알기에 충분히 오래있었습니다. 더 어렵게 만드는 것은 더 많은 사람들을 끌어들일 것입니다. 제품이 인기가 많을수록 더 흥미로워집니다. 부분적으로는 도전이되기 때문에 부분적으로는 이런 종류의 정보를 게시하여 "신뢰할 수있는"장소가 너무 많기 때문입니다.

키가 게임에 의해 로컬로 생성 된 경우 키가 생성 될 때까지 게임을 속이는 방법을 찾거나 올바른 코드를 파낼 수 있습니다. 게임의 특정 단계를 완료 할 때 서버에서 키를 보내면 누군가가 서버가 충분히 멀어 졌다고 믿도록 속일 것입니다.

결국, 게임은 재미 있고 참여 력을 높이고 다음 단계의 색상이 무엇인지 찾기 어렵게 만드는 데 더 많은 혜택을 줄 것입니다.


로컬에 저장된 키가있는 암호화 된 데이터는 항상 해킹 할 수 있습니다. 실제로 모든 최신 앱과 게임은이를 어느 정도 사용합니다.
Ewan

soomla와 그것이 어떻게 동전을 확인
Ewan

질문은 호기심 많은 플레이어로부터 미래의 콘텐츠를 숨기는 것이지 통화와 플레이어 통계가 위조되지 않도록 보호하는 방법에 관한 것이 아니라고 생각합니다.
axl

1
이것은 부활절 달걀에 관한 것이므로 관심을 끄는 것이 정확히 당신이 원하는 것입니다.
PyRulez

6
단지 더 결정 사람들이 유치 어렵게 만들기 난이 : 게임에 대한 좋은 마케팅 전략이라고 생각
sampathsris

9

이것이 gamedev.SE에 있어야하는 주된 이유는이 암호화를 수행하면 게임 플레이 결과가 발생하기 때문입니다.

한 퍼즐에 대한 솔루션이 다음 퍼즐의 암호화 키가되기를 원합니다. 즉, 해당 솔루션의 실제 데이터는 다음 퍼즐을 해독해야합니다. 이는 암호 해독 키가 게임 데이터의 일부가 아님을 의미합니다. 플레이어가 생성합니다.

결과는 다음과 같습니다. 암호 해독은 일반적으로 이진입니다. 데이터의 암호화를 해제하는 데 필요한 정확한 암호 해독 키가 있거나 그렇지 않습니다.

결과적으로 디자인하는 게임이 너무 좁게 집중되어야 모든 레벨에 대해 하나의 가능한 솔루션 만 있을 있습니다. 따라서 퍼즐 메커니즘은 플레이어가 의도와 다른 방식으로 퍼즐을 풀 수 없도록 매우 신중하게 설계되어야합니다.

Portal, Test Chamber 10을 예로 들어 보겠습니다. 당신은 왼쪽으로 가서 어떤 일을 한 다음 오른쪽으로 가고 어떤 일을해야 플랫폼을 낮추어야합니다.

또는 속도를 내고 바로 걸을 때 플랫폼으로 몸을 던질 수 있습니다.

GLaDOS : 퍼즐 게임을 만들었습니다. 퍼즐 게임을 가장 즐기는 사람들을 처벌하는 퍼즐 게임. 잘 했어. 그러나 적어도 그 해커들은 당신의 소중한 데이터를 얻지 못할 것입니다. 퍼즐 게임 해결을 즐기는 사람들은 온라인 게임 퍼즐 솔루션을 찾는 정확한 종류의 사람들이기 때문입니다.

그것은 그만한 가치가 있습니다.

따라서 Lolo, SpaceCHEM 및 Portal ( 수백만 개의 다른 게임)과 같은 퍼즐 게임 이 있습니다. 대신 하나 이상의 솔루션이있는 퍼즐을 만들 수 없도록 게임을 디자인해야 합니다. 이를 위해서는 상당한주의가 필요하며 일반적으로 게임 플레이를 제한해야합니다.

GLaDOS : 퍼즐 게임을 만들었습니다. 퍼즐에 대한 창의적인 솔루션을 찾는 사람들이 즐기는 게임입니다. 그리고 당신은 퍼즐에 대한 창의적인 해결책이없는 게임을 만들었습니다. * 느린 박수 *

그런 게임을 만들 수 없다는 말은 아닙니다. 또는 그런 게임이 좋지 않을 수 있습니다. 그러한 게임 만이 특정 방식으로 설계되어야합니다.

아, 그리고 당신은 기계적 으로 해결책을 찾는 것이 불가능하거나 매우 어렵도록이 게임 플레이를 디자인해야합니다 .

GLaDOS : 퍼즐 게임을 만들었습니다. 플레이하는 것보다 해킹하는 것이 더 재미있는 퍼즐 게임 . 잘 했어.


물론 여기에는 한 가지주의 사항이 있습니다. "솔루션"의 의미. 또는 솔루션의 어떤 요소를 고려해야합니까?

움직이는 캐릭터와 관련된 게임의 경우, 캐릭터의 정확한 움직임을 사용하여 암호 해독 키를 구성하지 않을 것입니다. 예를 들어, 플레이어가 퍼즐을 "해결"하기 위해 특정 항목을 선택해야하는 퍼즐 게임이있는 경우 해당 항목을 터치하는 순서에 따라 키를 만들 수 있습니다.

물론, 이것은 플레이어가 비 순차적으로 일을 할 수있는 방법을 찾는 위의 문제에 부딪칩니다. 다시 말하지만, 당신이 물건을 집어 올릴 수있는 단 하나의 주문 만 있도록 퍼즐을 설계해야한다는 것을 의미합니다.

또한 암호 해독 키를 구성하는 데 사용하는 모든 요소는 무차별 암호 해독을 어렵게 만들 수있는 충분한 엔트로피를 제공해야합니다. 위의 수집 순서 메커니즘을 사용하면 각각의 새 항목은 사실상 하나의 추가 비트입니다. 레벨에 8 개의 항목 만있는 경우 8 비트 암호화를 수행하는 것입니다. 쓰레기 야 대부분의 스마트 폰은 몇 초 안에이를 처리 할 수 ​​있습니다.

요즘에는 약간 어려워하기 위해 최소한 128이 필요합니다. 이제 각 레벨에 많은 내용이 포함되어 있지만 게임 디자인에 다시 영향을 미칩니다.


2
@Christer : 당신의 예는 당신의 전반적인 질문과 관련이없는 것만을 배신합니다. "퀘스트 이외의 비밀 제단"의 내용은 기본적으로 퀘스트 완료와 관련된 모든 게임과 관련이 없습니다 . 그리고 게임이 퀘스트를 완료하는 것이 아니라면 왜 퀘스트가 있습니까? 어느 쪽이든, 전반적인 사실은 남아 있습니다 : 당신은 게임이나 플레이어와 실제로 관련이없는 것에 많은 시간을 소비하고 있습니다. 당신은 매우 제한된 시간과 에너지를 중요한 것에 집중해야합니다 .
Nicol Bolas

2
@Christer : " 또한 암호화가 사용된다는 사실은 사용자의 99.9 %에게 투명하기 때문에 끔찍한 아이디어라는 주장에는 맞지 않습니다. "부활절 달걀이 개발에 더 많은 시간을 할애한다면 정말 유용한 기능으로 이동하면 끔찍한 아이디어입니다. 이 기능은보다 답변에 질문과 응답을 공식화에 더 많은 시간을 보냈습니다 가치 . 그 당시에는 실제 게임을 작성했을 수 있습니다. 사용자의 99.9 %에게 투명하다면 ... 암호화 된 이유는 무엇입니까? 왜 사람들의 0.1 %를 위해 시간을 보내십니까?
Nicol Bolas 2012

2
미안하지만, 게임을 즐겁게하는 것을 좋아합니다! 모든 사람이 게임 제작 로봇이 될 수있는 것은 아닙니다. 또한 시간이 얼마나 걸리고 얼마나 기꺼이 지출 할 것인지를 판단하도록하겠습니다. 암호화 부분 자체는 최소한 간단하게 구현할 수 있습니다.
Christer

1
The consequence here is that whatever game you design must be so narrowly focused that there is only one possible solution to every level.반드시 그럴 필요는 없습니다. 그는 가능한 각 솔루션에 대해 콘텐츠를 암호화하고 가능한 모든 솔루션에 대해 중복 된 암호화 된 콘텐츠를 배송 할 수있었습니다. 2 계층 암호화를 사용하여 공간을 절약 할 수 있습니다 . 링크 된 답변 의 사용자 키 는 특정 솔루션에 해당 하고 문서 는 내용에 해당합니다.
mucaho

4
@ mucaho : 사전에 "각 가능한 솔루션"을 알아야합니다.
Nicol Bolas

8

여기에 대한 답변이 좋습니다. 그래도 다른 관점에서 볼 것입니다. 당신이 설명하는 것은 기능 입니다. 기능에는 비용과 이점이 있습니다. 비용에는 기능을 만드는 데 드는 달러 비용과 "기회 비용"이 모두 포함됩니다. 유한 한 달러와 유한 한 시간, 유한 한 프로그래머가있는 세상에서, 당신이하는 모든 기능은 그 자리에서 수행되지 않은 무한한 가능한 기능을 의미합니다.

문제는이 기능의 비용을 실제 용어로 설명 할 수 있습니까?입니다. 무료 기능이 없으므로 비용에 대해 현실적으로하십시오. 이 기능에 대해 천 달러를 기꺼이 지불 하시겠습니까? 십만? 백만? 이 기능을 사용하기 위해 어떤 기능을 잘라내시겠습니까?

비용, 이점 및 누락 된 기회 측면에서 우선 순위를 정하기 시작하면 게임을 더 재미있게 만드는 방법에 대해 생각할 수있을 때 이미이 기능에 대해 너무 많은 시간을 보냈다는 것을 알게 될 것입니다.


5

Alice Bob and Eve 문제는이를 잘 보여줍니다. 메이슨이 그의 대답에서 지적했듯이 이브도 밥이라면 이브의 비밀을 지킬 수 없습니다.

따라서 모든 솔루션은 필요한 모든 정보를 가지고 있지 않은 Bob으로 구성됩니다. 각 수준을 개별 메시지로 취급하고 서로 개별적으로 암호화 해야하며 메시지를 올바르게 게이트 유지할 수있는 다음 수준에 대한 외부 메시지 원본이 있어야합니다.

그러나 결국, 그것은 바보가됩니다. 누군가가 게임을 스스로 할 수 있다면 게임을 섭취하는 프로그램을 작성할 수도 있습니다. 그래서 당신이하고있는 일은 외부 소스 (아마도 어떤 종류의 서버)와 앞뒤로 나가도록 강요하는 것입니다. 일단 서버에 메시지를 작성하는 방법을 알아 내면 같은 이야기가됩니다.

그러나 여기서 중요한 요소를 잊고 있습니다. 그것은 게임이다. 누군가가 게임에서 속임수를 쓴다면 사기꾼을위한 게임을 쓰지 않았습니다. 퀘스트 연습 또는 레벨링 가이드와 동일합니다. 스스로 알아내는 데 어려움을 겪는 사람들은 게시 된 솔루션을 무시합니다. 비록 당신이 게임을하지 않고 크래킹을 불가능하게 만들 수 있었다고해도 (우리는 그것이 논리적으로 불가능하다는 것을 알고 있지만 가능하다면조차도), 한 사람이 게임을 이기기 위해 필요한 모든 것을 게시하기 전에 걸을 것입니다. 따라서 당신은 피할 수없는 것만 연기하고 있습니다.

멋진 게임을 만드는 데 시간을 보내십시오. 있다 10 가지 모든 게임이 필요 하고 마지막으로 나는 암호화가 그들 중 하나 아니 었 보았다.


2

나는 당신의 생각이 무의미하다고 생각합니다.

누군가 당신의 게임을 할 때, 그들은 게임을 선택하고, 상을 받기 위해하지 않고, 재미를 위해하고 있습니다.

사용자는 고객이 이미 스토리 텔러로서 당신을 신뢰하기 때문에 자신 이 의도 한대로 행동하고 부정 행위를하지 않는 것이 가장 재미 있다는 것을 알고 있습니다.

또한 누군가가 퍼즐에 대한 해결책, 즉 키를 찾은 즉시 인터넷 어딘가에 게시 할 수 있습니다.
부정 행위를하려는 플레이어는 여전히 그렇게 할 수 있습니다.


그러나 게임에 Super Mario Land 비밀 수준과 같은 여러 솔루션이있는 경우 자산을 암호화하면 해당 솔루션에 쉽게 액세스 할 수 없습니다.

이것이 귀하의 아이디어에 유리한 점으로 보이지만 결국은 아닙니다.

암호화를 사용하더라도 그러한 비밀 솔루션이 존재한다는 것을 여전히 알 수 있습니다.
비밀 솔루션이 존재하는 것으로 알려지면 플레이어가 비밀 자산을 보지 못하게하는 것은 게임 자체를 통해 게임의 숨겨진 부분에 액세스하려는 경우와 관련이 없습니다 (예 : 숨겨진 모든 것을 이미 본 경우에도) 텍스처 / 클립 / 오디오 / 텍스트).

당신은 명백한 기술 1 을 사용하여 비밀 솔루션 존재의 누출을 막을 수 있지만, 여전히 의심 스러울 것입니다 (비밀 솔루션이 없다면 왜 그렇게할까요?). , 아니 더.
결국 우리는 부활절 달걀을 촉발하는 게임을 마친 후 몇 시간 더 게임을 할 수 있지만, 격발적인 노력이 필요하다면 잠시 더 이상 놀지 않을 것입니다!


당신이하고 싶은 것은 다음 장이 현재 장의 단어로 암호화되어 독자가 결말을 망칠 수 없도록하는 책과 같습니다.
생각 해봐, 무의미하지 않니?

1 VeraCrypt와 거의 비슷하게 숨겨진 볼륨으로 수행합니다.


1
나는 실제로 그 책 아이디어처럼 친절합니다. 나는 그것이 많은 사람들을 좌절시킬 수 있다는 것을 이해하지만 사람들이 실제로 그러한 책을 원한다고 상상할 수도 있습니다. 나는 시도하지 않더라도 앞서 건너 뛰어 스스로 결말을 망치는 것을 도울 수없는 사람들을 알고 있습니다. 그런 책이 도움이 될 것 같아요. 키를 개인화하지 않으면 온라인에서 키를 계속 찾을 수 있습니다. 그럼에도 그들은 결말을 직접 찾아 볼 수있었습니다. 그래도 그들이 절망적이라면, 당신이 말한 것처럼 더 이상 그들을 막으려 고하는 것은 의미가 없습니다.
Christer

1

상업적 생존력에 대해서는 언급하지 않겠지 만 순수한 기술적 관점에서 볼 때 이는 매우 어려운 과제입니다.


먼저 암호화되지 않은 것은 보호 할 수 없습니다. 당신은 비밀을 입력 할 수 없습니다, 크래커는 게이트 주위에 방법을 찾을 것입니다, 대신 전체 비밀을 게이트 자체로 만들어야합니다. 자산 측면에서 이것은 전체 텍스처 등을 의미 할 필요는 없습니다. 단지 계획을 암호화하고 사용되는 방법과 방법이 충분하며 성능상의 이유로 가능한 적은 데이터를 암호화하고자합니다.


둘째, 소프트웨어에 키가 포함되어 있으면 소프트웨어에서 해당 키가 표시 될 수 있습니다. 많은 게임은 콘텐츠를 보호 할 때 게임 소프트웨어가 변경되지 않도록하는 모호한 메커니즘이나 메커니즘으로 보안을 사용하려고합니다. 그것들은 단지 지연 전술입니다.

수수께끼의 솔루션을 키로 사용하려는 아이디어는 다소 흥미롭지 만 직접 제공된 키를 사용하면 쉽게 무차별 적용 할 수 있습니다. 대신, 사용자 입력을 암호로 취급하고 최신 암호 해싱 구성표를 사용하십시오. 해시 생성이 핵심입니다.

그러나 그 때에도 키가 게임에 존재하지 않는다고 가정하는 데 실수가 있습니다. 그렇지 않은 경우 플레이어를 향해 이끌 수 없습니다. 따라서 금고를 무차별 적으로 사용하는 대신 단서를 찾고있는 게임 자산을 리버스 엔지니어링 할 수 있습니다. 내가 생각할 수있는 한 가지 퍼즐은 텍스처를 사용하여 글리프를 인코딩하는 것입니다. 그런 다음 암호는 플레이어가 방문한 위치에 따라 키보드에서 사용할 수있는 몇 가지로 구성됩니다 (순서대로).

  • 문제의 핵심은 컴퓨터에서 이미지 인식이 여전히 어렵다는 것입니다
  • 그 위에 우리는 보안 문자 크래커가 사용자 정의 글리프가 아닌 문자와 숫자에 맞게 조정된다는 사실을 계층화합니다.
  • 그 위에 여러 텍스처 (투명도 포함)를 결합하여 글리프를 플레이어에게 공개함으로써 게임의 단일 자산에 글리프가 어떻게 생겼는지 알 수 없습니다
  • 장소 전체에 다른 질감 (조각 포함)을 사용하지만 숨겨진 장소를 제외하고는 플레이어가 절대 도달 할 수없는 경우를 제외하고는 전체 글리프를 생성하지 않습니다.

우승 한 글리프 조합을 자동으로 추출하는 모든 프로그램에는 하루의 지옥이 있습니다.


셋째, 다음 어려움은 공유입니다. 일단 비밀 해결책이 발견, 그것은 공개됩니다. 이상적으로는 각 개인에게 약간 다른 버전의 소프트웨어를 제공해야합니다. 키는 게임 버전에 따라 다릅니다. 실용적으로 만들기 위해 게임을 (비밀번호) (암호화) 및 "비밀 드라이버"(키 생성기)와 분리하는 것이 더 쉬울 것이라고 생각합니다. , 일부는 비밀번호를 형성합니다).

명백한 공격 경로는 생성자가 항상 같은 암호를 선택하도록하거나 다른 암호 파일을 다운로드하여 항상 같은 암호를 수락하도록 검증자를 속이는 것입니다.

여기에서 가능한 해결책은 파일을 사용자의 계정에 연결하고 일반적으로 권장되는대로 암호를 작성하는 것입니다.

  • 사용자가 파일 세트를 요청하는 경우, 비밀이있는대로 임의로 소금과 많은 암호를 생성 한 다음 비밀 자산을 작성하십시오 (예 : 서버 과부하를 피하기 위해이 프로세스를 한 번 / 일 / 사용자로 제한 할 수 있습니다)
  • 세대의 타임 스탬프와 소금을 사용자의 계정 정보에 저장
  • 타임 스탬프 및 개인화 된 비밀 파일을 사용자에게 다시 보냅니다.

그런 다음 사용자가 비밀번호를 제출할 준비가되면 다음을 수행하십시오.

  • 사용자가 로그인하도록합니다 (아직 로그인하지 않은 경우)
  • 소프트웨어가 타임 스탬프와 글리프 암호를 모두 보내도록합니다
  • 타임 스탬프가 저장된 타임 스탬프와 다른 경우 사용하지 않는 비밀 파일 세트를 사용하고 있음을 사용자에게 알려줍니다.
  • 비밀번호가 이미 여러 번 시도 된 경우, 사용하지 않는 비밀 파일 세트를 사용하고 있음을 사용자에게 알리십시오.
  • 그렇지 않으면 salt + password를 해시하여 키를 생성하십시오.
  • 그렇지 않으면 개인화 된 파일을 볼 수 있도록 키를 사용자에게 다시 보냅니다.
  • 이 계정에서이 암호를 시도한 횟수를 늘립니다.

여기서 목표는 계정 공유를 최대한 방해하는 것입니다.

  • 비밀 파일을 생성하기 위해 계정을 공유하는 것은 (a) 하루에 하나만 생성 할 수 있기 때문에 제한적입니다.
  • 주어진 비밀번호는 더 이상 키를 생성하지 않기 전에 N 번만 사용할 수 있기 때문에 계정을 공유하고 관련 비밀 파일을 배포하는 것은 쓸모가 없습니다.

그리고 우리는 거의 다 왔습니다.


마지막으로, 크래커는 비밀 자산이 해독되고 직접 통합되는 신중한 검증 체계를 우회하는 수정 된 버전의 게임을 출시 할 수 있습니다.

해결책은 간단합니다 (그리고 거의 모든 것을 쓸모 없게 만듭니다 1 ) : 클라이언트를 믿지 마십시오.

웹 사이트에서 리더 보드를 만들고 계정에서 플레이어의 진행 상황을 추적하십시오. 플레이어는 자신이 원하는 모든 게임을 끝냈다 고 주장 할 수 있지만, 자신의 계정에이 내용이 반영되어 있지 않은 한, 모든 사람들은 자신이 부정 행위를하고 있다는 것을 알고 있습니다.

... 이것을 사회적 압력이라고 부릅니다.)

1 텍스처 위치 지정 파일을 제외하고, 프로그램에서 키를 추측하지 못하지만 사용자가 키를 추측 할 수 있도록하는 데 사용했습니다.


사려 깊은 답변 주셔서 감사합니다. 당신은 좋은 지적을합니다. 당신이 말한 것처럼 키 / 솔루션을 게임에 저장할 필요가 없다고 덧붙이고 싶습니다. 예를 들어 게임 웹 페이지의 HTML에 숨겨져있을 수 있습니다. 그러나 게임 에서조차도 수수께끼를 솔루션으로 사용하는 것과 같이 창의력을 발휘할 수 있습니다. 각도에서 볼 때 정보를 표시하는 지오메트리, 많은 정보를 읽지 않으면 얻을 수없는 컨텍스트 관련 항목을 사용합니다. 경기. Skyrim의 컴퓨터 터미널에 서적 또는 로그가있는 방식과 같습니다.
Christer

나는 내 질문에 이것을 언급하지 않았으므로 걱정하지 마십시오. 내가 이것을 상상했던 방법은 당신이 전체 게임을 통해 게임을하고 완전한 게임처럼 느껴 졌다는 것입니다. 그러나 당신이 결코 지나치지 않은 이상한 자물쇠가있는이 숨겨진 문이있었습니다. 사람들이 호기심을 갖고 대화를 나누고, 사람들이 함께 일하도록 유도하기를 바랍니다. 아무도 알아 채지 못했기 때문에 알아내는 것도 영광입니다. 아마도 충분한 시간이 지나면 문의 어려운 비밀이 전설을 낳을 것입니다! 게임 자산을 살펴 보는 누군가에 의해 망가 졌을 때 짜증납니다.
Christer

@Christer : 게임 자산을 살펴 보는 누군가에 의해 망가져 버린 것. => 이것은 비밀 파일을 사용하여 장소를 실제로 설명하기 위해 (기존의 텍스처를 대부분 재사용 함) 해결할 수 있습니다. 일단 비밀이 일단 나오면 사라집니다.
Matthieu M.

0

흥미로운 아이디어입니다. 퍼즐 디스크와 수동으로 복사 방지 시스템의 변형. "ARG"게임 중 일부는 이와 같이 작동한다고 생각합니다. 여기서 플레이어는 게임 디자이너에 대해 집단적으로 행동하는 것으로 이해됩니다.

분명히 첫 번째 사람이 암호를 해독하면 인터넷에 게시합니다.

생성 또는 절차 적 컨텐츠는 동일한 방식으로 작동 할 수 있습니다. "시드"를 공유하지 않으면 다른 플레이어와 동일한 세계를 볼 수 없습니다.

Apple이 App Store에서 앱을 거부하고 게임 콘솔에서 승인을 받으려면 솔루션을 제공해야 할 수도 있지만 법적 문제는 없습니다.


0

추가적인 보안 조치를 고려하는 것은 재미 있지만, 제품에 구체적인 가치를 부여 하지는 않습니다 . 이는 제품과 마주 치는 크래커에 대한 욕설을 보여줍니다. 원칙적으로, 길항제는 당신을 따라 잡을 것입니다.

창의성에 번창하는 개발자와 달리 크래커는 분석적인 사람이므로 프로그램을 직관적으로 활용할 수 있습니다. 개발자가 과도한 보안 조치를 취하는 경향이있을 경우, 거부자는 크래커가 다시 보호 체계를 되돌릴 수 있다는 것 입니다.

이 배경 경쟁에 참여하고 싶든 그것은 당신의 전화입니다. 그러나 그것이 최종 제품에서 방해받지 않도록하십시오. 고객을 기쁘게해야합니다. 게임을 슬러그로 바꾸는 기발한 암호화 체계는 도움이되지 않습니다.


0

Mason Wheeler가 옳습니다. 할 수 없습니다. 원하는 경우 언제든지 게임을 리버스 엔지니어링 할 수 있습니다.

어쨌든 설명하는 방식으로 게임을 "보호"할 필요는 없습니다. 한 사람이 이스터 에그를 발견하자마자 비밀은 가방에서 나옵니다. 게임의 각 사본에 다른 이스터 에그가 있으면 해커 사본 만 알 수 있습니다. 1000 명 중 한 명의 해커가 게임 플레이를 거치지 않고 이스터 에그를 찾은 것을 정말로 걱정하십니까?

저작권법은 심각한 소송의 위험없이 아무도 귀하의 게임에서 돈을 벌 수 없기 때문에 저작권이 귀하를 보호합니다.

임의의 사용자가 자신의 텍스처를 자신의 포럼 아바타에 올리는 한, 무엇? 풀뿌리 광고라고 생각하십시오.

"보호"에 대한 강박 관념은 게임 만들기 와 같은 어려운 현실에서 벗어나게 합니다 .

제품이없는 사람들이 존재하지 않는 것들에 대한 IP 보호 체계에 대해 이야기하는 것을 볼 때, 전체 프로젝트에서 거대한 헛소리를 일으키기 때문에 그 순간은 나를위한 것입니다.


-1

몇 가지 가능성 :

  • 낡은 코드 난독 화 . 코드를 해독하는 것이 불가능하지는 않지만 적어도 어려울 것입니다.

  • 서버 측 솔루션. 서버에 특수 명령을 보내면 서버에서 코드를 보내거나 DLC를 다운로드 할 수 있습니다.

  • Steganography 를 사용 하여 다른 콘텐츠에서 실행 코드를 숨길 수 있습니다 .

이렇게하면 비밀이 100 % 안전하지는 않지만 비밀이 밝혀지면 아무도 돈을 잃지 않을 것 같습니다.


-1

클라이언트에 키와 알고리즘을 모두 저장하는 다른 스키마와 마찬가지로 쓸모가 없습니다. "키가 어디에 있는지, 사용자의 입력에 의존하고 그것을 직접 저장하지 않습니까?"라고 물으면 퍼즐의 정의에 따라 규칙과 리소스가 있다는 것을 기억하십시오. 이 정확한 알고리즘과 리소스는 난독 화 된 상태로 게임에 하드 코딩 한 핵심 생성 알고리즘입니다. 누구나 규칙에 따라 퍼즐을 해결하는 작은 프로그램을 작성하여 "존재하지 않는"키를 검색 할 수 있습니다.


1
그러나 이전에 만들어지지 않은 수수께끼와 같은 컴퓨터로 모든 퍼즐을 쉽게 해결할 수있는 것은 아닙니다. 컴퓨터가 게임의 모든 대화 상자를 읽고 모든 텍스처를 처리하는 것도 어렵습니다. 그래도이 퍼즐과 관련된 내용이 언제 나타 났는지 어떻게 알 수 있습니까? 전체 키는 게임에 저장 될 필요조차 없으며, 키가있는 상자의 뒷면을 읽을 수있는 단서가있을 수 있습니다. 컴퓨터가 그렇게 할 수 없습니다. 퍼즐이 스도쿠와 같이 컴퓨터가 해결할 수있는 것이더라도 최소한 퍼즐을 우회하지 않고 해결하는 것입니다.
Christer

@Christer, 다른 "불분명 한 보안"수제 암호화를 알아내는 것도 다르지 않습니다. "상자에"- 당신은 단지 "용지 커버"리소스 키를 쓴 당신이 사용자에게주는 것을 대신 "파일"자원의 당신이 사용자에게주는 것을 . 큰 거래.
Oleg V. Volkov

@Chriser, 즉 "이전에 만들어지지 않은 수수께끼를 푸는 것"은 "이전에 만들어지지 않은 수제 암호화 알고리즘을 푸는 것" 과 정확히 같습니다 .
Oleg V. Volkov

사용자 입력을 기반으로 암호 해독 키를 생성하는 방법을 모르십니까? 이 사용자 입력이 무엇인지 알 수 없습니까? 올바른 암호 해독 키를 생성하는 올바른 사용자 입력은 무엇입니까? 알다시피, 그것은 모든 종류의 흥미로운 방식으로 게임 전체에 숨겨져 있습니다. 그것이 전체 요점이므로 그것을 찾으시기 바랍니다! 그렇지 않으면 그 내용에 행운을 빕니다.
Christer

정확히 읽기 소스와 어떻게 다릅니 까? 설정된 규칙에 따라 작업을 수행합니다-> 키를 얻습니다. 그게 다야. 단, 실제로 게임을하는 대신 다른 게임 리소스에서 "단서"를 읽으면 바로 가기를 사용할 수 있습니다.
Oleg V. Volkov
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.