비디오 게임 콘솔 웹 브라우저의 진화와 보안 위험
콘솔 브라우저: 주요 공격 벡터
게임 콘솔의 웹 브라우저는 인터넷으로부터 임의의 코드를 실행할 수 있게 해주기 때문에 시스템 모딩 및 탈옥(jailbreaking)을 위한 가장 접근하기 쉬운 진입점으로 자주 활용됩니다. 이러한 취약점은 여러 세대의 하드웨어에서 커스텀 펌웨어와 홈브류(homebrew) 애플리케이션을 설치하는 데 악용되어 왔습니다.
- Nintendo Wii U: 내장된 브라우저는 수명 기간의 상당 부분 동안 시스템 모딩을 위한 주요 진입점이었습니다.
- Nintendo Wii: 이후의 익스플로잇(exploit)에는 Internet Channel의 Flash 플레이어를 대상으로 한 "FlashHax" (2017)와, HTTP를 통해 로드되는 HTML 기반 EULA를 악용하여 Wiimmfi 교체 서비스를 위한 패처를 배포한 "str2hax" (2018)가 포함됩니다.
- Nintendo 3DS: 브라우저는 탈옥을 위한 중요한 벡터로 주목받았으며, 때로는 Nintendo 서버로부터 검증 없이 게임을 직접 다운로드할 수 있게 하기도 했습니다.
현대적 시대: 높은 성능 vs 극단적인 폐쇄성
현대적 콘솔 브라우저는 두 가지 극단적인 모습을 보여줍니다: 고성능 Chromium 기반 엔진과 숨겨져 있고 엄격하게 통제되는 환경입니다.
고성능 브라우저
Xbox 콘솔은 데스크톱 버전과 거의 동일한 Chromium 기반 Microsoft Edge 브라우저를 사용합니다. 이 구현체는 WebAssembly (Wasm), Gamepad API, 그리고 다양한 비디오 코덱(MP4/MKV with H264+AAC/AC3/MP3)을 포함한 고급 웹 표준을 지원합니다. 이러한 기능 덕분에 사용자는 게임패드를 사용하여 RetroArch 웹 에뮬레이터를 비롯한 복잡한 복잡한 애플리케이션을 브라우저를 통해 직접 실행할 수 있습니다.
제한된 환경
이와 대조적으로, Sony는 PlayStation 5에서 웹 접근을 크게 제한했습니다. 메시지 내의 URL을 클릭하여 접근할 수 있는 숨겨진 브라우저가 존재하지만, Sony는 이 방법을 차단하는 데 주력하고 있는 것으로 알려졌습니다. 브라우저를 트리거하기 위해 자신에게 링크를 보내려는 사용자는 PlayStation Network 계정 경고를 받거나 계정 정지 위협을 받을 수 있습니다.
역사적 구현 및 하드웨어 통합
초기 콘솔 브라우저는 하드웨어의 한계로 인해 창의적인 입력 방식과 특수 소프트웨어 번들을 활용해야 했습니다.
Dreamcast 시대
Sega Dreamcast는 WWW, Email, IRC를 포함하는 소형 패키지(~10MiB)인 Planetweb 브라우저 (Web Browser 2.0)를 탑재했습니다. 이는 JavaScript, Macromedia Flash, 그리고 세이브 게임 및 MP3를 업로드/다운로드하는 기능을 지원했습니다.
독특한 하드웨어 통합 사례는 다음과 같습니다:
- 입력 주변기기: 키보드 및 마우스 주변기기 지원.
- Light Gun Navigation: Dreamkey 브라우저는 Dreamcast light gun을 지원하여, 사용자가 d-pad로 스크롤하고 링크를 "쏘아서" 탐색할 수 있게 했습니다.
- 게임 통합: 많은 게임들이 메인 메뉴를 통해 공식 게임 웹사이트에 접근할 수 있도록 브라우저를 번들로 포함했습니다. 이는 전역적으로 저장된 연결 설정을 사용했습니다.
기타 주목할 만한 초기 시도들
- Nintendo Wii: 브라우저는 스케일링 기능으로 주목받았으며, 일부 게임은 JavaScript 또는 Flash를 통해 Wiimote를 네이티브로 지원했습니다.
- Nintendo 64DD: Randnet Browser를 탑재했습니다.
- Game Boy Color/GBA: Mobile Trainer GB는 제한된 HTML 서브셋을 제공했으며 임의의 URL 입력은 허용하지 않았습니다.
- Sega Channel: 원격 컴퓨터에서 렌더링을 수행하고 Genesis용 이미지 데이터로 변환하여 표시하는 방식의 계획된 브라우저가 있었으나, 공식적으로 출시되지는 않았습니다.
사용자 경험 및 입력 제한
전통적인 웹 탐색을 컨트롤러 기반 인터페이스에 통합하는 것은 종종 심각한 사용성 문제를 야기했습니다.
예를 들어, Wii U의 경우 Nintendo는 버튼, 아날로그 스틱, 그리고 터치스크린의 상태를 값을 가져오는 API를를 제공했습니다. 하지만 preventDefault() 솔루션의 부재는 시스템 수준의 단략(shortcut)이 웹 앱 입력을 덮어쓰는 결과를 초래했습니다. 예를 들어, 웹 개발자가 해당 버튼을 게임 내 동작을 수행하도록 의도를했더라도, "B" 버튼을 누르면 브라우저의 "뒤로 가기" 기능이 실행되어 복잡한 브라우저 기반 게임 경험의 잠재력을 심각하게 제한했습니다.