인프런 커뮤니티 질문&답변

쏘씩오브럽송님의 프로필 이미지
쏘씩오브럽송

작성한 질문수

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

서버 보안 관련 질문 드립니다!

작성

·

499

1

안녕하세요, 항상 강의 정말 재미있게 수강하고 있습니다! 서버의 구조가 어떤지, 어떻게 동작하는지 전반적으로 알 수 있게 되어서 루키스님께 정말 감사할 따름입니다. 강의를 듣고나서 추가적으로 궁금한 점이 생겨서 질문 드립니다!
강의에서 만든 TCP 서버(게임 서버)와 클라이언트가 패킷을 주고 받을 때 현업에서는 어떻게 보안 처리를 하는지 궁금합니다. 현재 서버 구조는 패킷 전체를 암호화한다면 패킷 헤더에 있는 내용을 읽을 수 없어서 ReadBuffer에서 몇 바이트를 읽어와야 하는지 알 수 없게 될텐데 게임 서버 구조가 이러한 구조라면 헤더는 빼고 암호화를 하여 보안처리를 해야 복호화 후에 데이터를 읽어올 수 있을 것 같아서요. 아니면 다른 방법을 사용하는 것인지 궁금합니다!

답변 1

2

Rookiss님의 프로필 이미지
Rookiss
지식공유자

패킷 헤더를 제외한 나머지 부분을 간단한 대칭키 암호를 이용해 암호화하는게 일반적입니다.
간단한 XOR, shift를 이용해 성능 부담없이 자체적으로 만드는게 좋다고 생각합니다.
어차피 클라는 얼마든지 조작이 가능하고 클라에 저장된 키값도 어떻게든 추출이 가능하니,
개인적으로 암호화에 엄청 힘쓰는건 정말 무의미하다고 봅니다.
그러나 경우에 따라 (ex. MS의 엑박) AES와 같은 더 강력한 알고리즘의 암호화를 요구하는 경우도 있긴 합니다.

아하 어떻게든 해커가 뚫으려 한다면 뚫릴테니 간단하게만 해주는 것이군요! 강의에서 배운 내용에 보안을 더하려면 어떻게 해야 하는지 고민 중이었는데 복잡하게 생각 안 하는 게 정답이었네요ㅎㅎ 감사합니다!

쏘씩오브럽송님의 프로필 이미지
쏘씩오브럽송

작성한 질문수

질문하기