상용화를 위한 서버 프로젝트 이슈 정리
옛날에 팀장 할 때 작성했던 보고서. 책으로는 배울 수 없는 것들이니 읽어보시면 도움 될 것 같습니다. 생각보다 양이 많네요. 1. Protocol 설계와 분석 1.1. Keep Alive의 직접 구현과 암호화 처리를 해야 하는 이유 프로토콜 분석을 위한 Keep Alive Packet 조작을 예방 하는 방법 WinSock에서 제공하는 Keep Alive 검사의 경우 외부 조작이 상대적으로 쉽게 되어 보안에 취약해 질 수가 있습니다. 좀더 안전한 구현을 위해서는 Keep Alive 역시 RC5 등으로 암호화 한 Packet을 전송 하는 것이 보다 안전한 방법이 될 것 입니다. Keep Alive 구현과 서버 기준의 연결 검사 Tick 검사 후 연결 지속 또는 종료 처리를 하는 순서 1.2. Speed Hack 검사를 위한 적용 위치 Speed Hack의 작동 원리 Speed Gear 참고 화면 Cheat Engine 참고 화면 스피드 핵은 시스템의 시간을 배속에 의해 느리거나 빠르게 작동 하도록 매번 설정해 주는 단순한 기능을 가지고 있습니다. 하지만 이로 인해 시스템의 시간 값을 응용한 Tick 간격 처리 프로그램 들은 실행 타이밍이 느리거나 빠르게 작동 될 수 있습니다. 특히 게임 프로그램 에서의 속력 계산 식은 대부분 V = S / T 식에만 근거 하고 있어 이에 영향이 심각해 지게 됩니다. PING/PONG에 구현된 현재 방식의 문제점 분석 DoS 공격으로 잘못 된 용어를 사용 중인 Speed Hack 검사 코드는 실제 PING Packet을 Client에서 보내지 않도록 조작 할 경우 무력화 시킬 수 있게 됩니다. Speed Hack 검사 코드의 위치는 Packet Reader의 조립 완성 분기 코드에 있어야 하며 검사 시간은 서버 Tick을 기준으로 최소(0.n or 0.0n) 보다 작거나 최대(Keep Alive Interval+지연 예상 시간) 보다 클 경우를 감지 하여 강제 접속 종료를 시켜야 합니다. 1.3. 보안 강화를 위한 Rando...