로그인 방식
서버를 열기 전에 알맞은 로그인 방식을 고르는 것은 매우 중요하다. 플레이어들의 계정과 재산의 안전뿐 아니라 서버 관리와 안정성에도 영향을 주기 때문이다. 그러니 신중하게 고르자!
로그인 없음
섹션 제목: “로그인 없음”범용 외부 로그인
섹션 제목: “범용 외부 로그인”범용 외부 로그인은 Minecraft 공식 Yggdrasil 인증 서버의 동작을 분석해 정리한 외부 로그인 방식이다.
플레이어는 Minecraft 런처에서만 계정에 로그인하면 되고, 서버에 들어갈 때는 세션 로그인으로 자동으로 접속된다.
이 방식에서는 플레이어의 게임 프로필(스킨과 플레이어 UUID 포함)을 Yggdrasil이 결정한다. 그래서 믿을 수 있는 외부 인증 서버를 고르는 것이 정말, 정말, 정말 중요하다.
정품 로그인
섹션 제목: “정품 로그인”정품 로그인은 대부분의 서버 코어가 기본으로 쓰는 로그인 방식이다. Minecraft Java 정품 사용자만 접속할 수 있고, Mojang의 인증 서버로 플레이어 신원을 확인하고 게임 프로필 데이터를 할당한다.
장점:
- 패킷 통신이 전부 암호화되어 게임 데이터가 안전하다.
- 서버 코어의 기본 설정이라 따로 설정할 필요가 없다.
- 인증 서비스를 신뢰할 수 있다.
- 커스텀 스킨과 닉네임 변경을 지원한다.
단점:
- 인증 서버가 해외에 있어서 네트워크 문제로 세션 인증이 실패할 수 있다.
- 정품 게임을 구매해야 하므로 일부 플레이어는 들어올 수 없다.
Authlib-Injector로 구현하는 외부 로그인
섹션 제목: “Authlib-Injector로 구현하는 외부 로그인”Authlib-Injector는 Minecraft가 커스텀 Yggdrasil 인증 서버를 쓸 수 있게 해 주는 도구다. 정품 로그인과 거의 같은 게임 경험을 제공하지만, 비공식 인증 서버를 사용한다.
장점:
- 정품 로그인의 장점을 일부 물려받는다.
- 서비스 제공자를 직접 고를 수 있다.
단점:
- 지원되는 런처를 써야 한다.
- 설정과 로그인이 비교적 복잡해서 익히는 데 시간이 든다.
- 비정품 외부 로그인을 꺼리는 플레이어도 있다.
- 인증 서비스의 신뢰도를 따져 봐야 한다.
Yggdrasil은 게임 밖에서 계정에 대한 절대적인 관리 권한을 가지므로, 게임 안에서 여러 겹의 보안 조치를 해도 계정 안전을 완전히 보장할 수는 없다. 그러니 믿을 수 있는 서비스 제공자를 고르거나 인증 서버를 직접 구축하자!
극단적인 경우, 경쟁 서버가 여러분이 쓰는 Yggdrasil 서비스 제공자를 매수하면 서버는 끝이다. 가볍게는 모든 유저가 관리자 권한을 얻는 정도(전원 OP)지만, 최악의 경우 서버가 완전히 무너져 헤아릴 수 없는 손실을 입을 수 있다!!!
내부 로그인
섹션 제목: “내부 로그인”내부 로그인은 오프라인 모드라고도 하며, 인증되지 않은 사용자가 원하는 닉네임으로 접속할 수 있게 한다. 이 모드에서는 유효한 게임 ID를 아무거나 입력하면 서버에 들어올 수 있고, 스킨은 무작위로 정해지며, UUID는 서버가 닉네임을 바탕으로 생성한다.
내부 로그인 모드는 보안성이 낮고, 보통 플레이어가 서버에 접속한 뒤에야 인증을 한다. 인증이 끝나기 전까지 플레이어의 게임 내 행동은 서드파티 로그인 플러그인으로만 제한할 수 있다. 악의적인 사용자는 이를 이용해 봇 부하 공격, 방해, 계정 도용을 할 수 있다.
장점:
- 오프라인에서도 플레이할 수 있다.
단점:
- 보안성이 낮다.
- 가입 봇을 막아야 한다.
- 봇 부하 공격을 막아야 한다.
- 스킨을 커스텀할 수 없다.
- 닉네임을 바꿀 수 없다.
커스텀 로그인
섹션 제목: “커스텀 로그인”커스텀 로그인은 보통 클라이언트에 모드를 설치해 로그인을 보조한다. 로그인 시점에 따라 내부 로그인일 수도, 외부 로그인일 수도 있다. 시중에 나와 있는 커스텀 로그인 프로그램이 적고 보안성을 평가하기 어려워서 여기서는 자세히 다루지 않는다.
다중 인증 로그인
섹션 제목: “다중 인증 로그인”다중 인증 로그인은 서버가 두 가지 이상의 인증 방식을 동시에 켜고, 사용자가 모든 인증을 통과해야 로그인할 수 있게 하는 방식이다. 보통 관리자처럼 엄격하게 관리해야 하는 계정에 쓰며, 모든 플레이어에게 적용하면 로그인이 번거롭고 비용이 늘어난다.
혼합 인증 로그인
섹션 제목: “혼합 인증 로그인”혼합 인증 로그인은 서버가 여러 인증 방식을 제공하고 플레이어가 고르게 하는 방식이다.
여러 로그인 방식을 함께 지원해야 할 때 쓰지만, 보통 유지 보수 난이도와 보안 위험이 커진다.
분명한 필요가 없다면 혼합 인증 로그인은 추천하지 않는다. 혼합 로그인을 구현하려는 시도는 무엇이든 유지 보수 비용과 복잡도를 늘리고 보안 허점을 만들 수 있다.
Floodgate (정품 로그인과 베드락(Xbox) 로그인 공존)
섹션 제목: “Floodgate (정품 로그인과 베드락(Xbox) 로그인 공존)”Floodgate는 Minecraft 베드락 에디션 플레이어가 범용 외부 로그인을 우회해 바로 접속할 수 있게 해 주는 대단한 플러그인이다. 정품과 베드락 에디션을 공존시키는 일종의 혼합 인증 로그인 플러그인이라고 할 수 있다.
베드락 에디션 플레이어의 UUID는 Floodgate가 Xbox 계정의 XUID로 생성하므로 UUID 충돌 위험이 매우 낮다.
정품 로그인과 오프라인(내부) 로그인 공존
섹션 제목: “정품 로그인과 오프라인(내부) 로그인 공존”보통 정품 플레이어는 자동 로그인, 오프라인 플레이어는 게임 안에서 로그인하게 해 주는 플러그인을 말한다.
정품 플레이어가 로그인 절차를 건너뛰게 하고 싶다면, 로그인 플러그인과 FastLogin 플러그인을 함께 써 보자.
이런 프로그램은 내장 계정 관리 시스템이 이미 잘 갖춰져 있어서, 제대로 설정하면 프로그램 자체에 문제가 있지 않은 한 UUID 충돌이 일어날 가능성은 낮다.
정품 로그인과 범용 외부 로그인 공존
섹션 제목: “정품 로그인과 범용 외부 로그인 공존”여러 외부 로그인의 공존은 문제가 가장 크다. 잘못 다루면 다음과 같은 결과가 생길 수 있다.
-
닉네임 중복:
여러 외부 로그인이 공존하는 환경에서는 서로 다른 외부 로그인의 플레이어가 같은 이름을 가질 수 있지만, UUID는 다르다. 이런 플레이어들이 동시에 접속하면 서버 시스템 전반에 혼란이 생길 수 있다. 또 악의적인 사용자가 일부러 다른 사람과 같은 이름을 써서 사기를 칠 수도 있다. 이런 중복과 사칭은 보안과 신뢰 문제로 이어져 게임 환경에 잠재적인 위험이 된다.
-
UUID 충돌
여러 외부 로그인이 공존하는 환경에서는 UUID 충돌 확률이 커진다. UUID는 플레이어의 신분증이나 마찬가지라서, 충돌이 생기면 심각한 결과를 낳을 수 있다. 플레이어 데이터가 사라지거나 설정이 뒤섞이고, 문제를 찾아 해결하기도 극도로 어려워 재앙 수준의 손실로 이어진다.
정품 로그인과 오프라인(내부) 로그인 공존이나 Floodgate (정품 로그인과 베드락(Xbox) 로그인 공존)은 보통 전용 계정 관리 시스템이 있어서 플레이어 신원 혼동 같은 문제를 막아 준다. 반면 Yggdrasil은 그 자체로 독립적인 계정 관리 시스템이라, 외부 로그인끼리는 보통 직접 통신하거나 정보를 동기화할 수 없다. 그래서 여러 외부 로그인이 공존하는 환경에서 제대로 된 신원 관리 시스템을 설계하지 않으면 위와 같은 결과가 생길 가능성이 매우 높고, 심각한 보안과 신뢰 문제로 이어진다.
다행히 UUID 충돌 확률은 꽤 낮으니, 일반적인 서버 운영자나 관리자는 닉네임 중복 문제만 신경 쓰면 된다. 그렇지?