게임 서버 프로그래밍
패킷핸들링, 패킷암호화
NHN NEXT
Packet Handling
• 패킷 직렬화/역직렬화
– 왜 하는가?
– 관련 라이브러리 없이 한다면 어떻게?
– 관련 라이브러리에는 어떤 것이 있는가?
• 각각의 장/단점
• Google Protobuf
– 패킷으로 활용하려면 어떻게?
• 패킷 헤더용 데이터를 삽입/추출 가능한가?
– MyPacket.proto 샘플 제공
– 게임 서버용으로 바로 쓰기에는 치명적인 단점이 있다던데!!
• 그 단점이 무엇이고 어떻게 해결 가능할까?
Diffie-Hellman 키 교환 프로토콜
• 이건 무엇이고, 게임 서버에서 어떻게 쓰이나?
• 동작 원리는?
Packet Cryptography
• 대칭키 방식의 암호화와 비대칭키 방식의 암호화
– 개념과 동작 원리
– 각각 게임 서버에서 어떻게 쓰일까?
• 스트림 방식의 암호화란?
– 개념은?
– 왜 사용?
– RC4, AES256의 경우 C++에서 사용 방법
끝
• 구현과제
– Google protobuf를 활용한 패킷 핸들링
• https://github.com/zeliard/GSP/tree/master/Homework7
– 암호화 구현 과제 (추가 보너스)
• DH로 서버-클라이언트간 키를 교환하고 RC4로 패킷 암호화
• 덤프분석 과제 #2
– https://github.com/zeliard/GSP/tree/master/CrashDumpFixHom
ework

게임서버프로그래밍 #7 - 패킷핸들링 및 암호화

  • 1.
  • 2.
    Packet Handling • 패킷직렬화/역직렬화 – 왜 하는가? – 관련 라이브러리 없이 한다면 어떻게? – 관련 라이브러리에는 어떤 것이 있는가? • 각각의 장/단점 • Google Protobuf – 패킷으로 활용하려면 어떻게? • 패킷 헤더용 데이터를 삽입/추출 가능한가? – MyPacket.proto 샘플 제공 – 게임 서버용으로 바로 쓰기에는 치명적인 단점이 있다던데!! • 그 단점이 무엇이고 어떻게 해결 가능할까?
  • 3.
    Diffie-Hellman 키 교환프로토콜 • 이건 무엇이고, 게임 서버에서 어떻게 쓰이나? • 동작 원리는?
  • 4.
    Packet Cryptography • 대칭키방식의 암호화와 비대칭키 방식의 암호화 – 개념과 동작 원리 – 각각 게임 서버에서 어떻게 쓰일까? • 스트림 방식의 암호화란? – 개념은? – 왜 사용? – RC4, AES256의 경우 C++에서 사용 방법
  • 5.
    끝 • 구현과제 – Googleprotobuf를 활용한 패킷 핸들링 • https://github.com/zeliard/GSP/tree/master/Homework7 – 암호화 구현 과제 (추가 보너스) • DH로 서버-클라이언트간 키를 교환하고 RC4로 패킷 암호화 • 덤프분석 과제 #2 – https://github.com/zeliard/GSP/tree/master/CrashDumpFixHom ework