# PySkyWiFi: 장거리 비행에서 무료로 제공되는 저속 와이파이

> Clean Markdown view of GeekNews topic #15769. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=15769](https://news.hada.io/topic?id=15769)
- GeekNews Markdown: [https://news.hada.io/topic/15769.md](https://news.hada.io/topic/15769.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2024-07-10T09:42:55+09:00
- Updated: 2024-07-10T09:42:55+09:00
- Original source: [robertheaton.com](https://robertheaton.com/pyskywifi/)
- Points: 1
- Comments: 1

## Topic Body

#### PySkyWiFi: 완전히 무료이면서 믿을 수 없을 정도로 어리석은 장거리 비행 와이파이

- 비행기가 10,000피트에 도달했을 때, 필자는 인터넷을 사용하려고 노트북을 꺼냈음
- 기내 와이파이에 연결하고 브라우저를 열었더니 네트워크 로그인 페이지가 신용카드 정보를 요구했음
- 로그인 페이지에서 무료로 에어마일 계정에 로그인하라는 메시지를 보고, 방화벽의 허점을 발견했음
- JetStreamers Diamond Altitude 계정에 로그인하여 인터넷에 접근할 수 있는 방법을 찾았음

##### Prototype 1: 인스턴트 메시징

- 에어마일 계정의 이름 필드를 통해 메시지를 주고받는 방법을 고안했음
- 두 컴퓨터에서 동일한 에어마일 계정에 로그인하여 이름 필드를 업데이트하고 읽는 방식으로 간단한 채팅을 구현했음
- 이 과정을 자동화하기 위해 커맨드 라인 도구를 작성했음

##### Prototype 2: 실시간 헤드라인, 주식 가격, 축구 점수

- 에어마일 계정을 통해 실시간 정보를 전송하는 프로그램을 작성했음
- 지상에 있는 컴퓨터가 주기적으로 에어마일 계정의 이름 필드를 확인하고, 요청된 정보를 다시 비행기로 전송하는 방식으로 동작함

##### 실제 구현: PySkyWiFi

- PySkyWiFi는 TCP/IP 프로토콜을 단순화하여 HTTP 요청을 에어마일 계정을 통해 전송하는 도구임
- 지상 컴퓨터에서 HTTP 요청을 처리하고 응답을 다시 에어마일 계정을 통해 비행기로 전송함

##### PySkyWiFi 작동 원리

- PySkyWiFi는 두 가지 구성 요소로 이루어짐:
  - **Sky Proxy**: 비행기에서 노트북에 실행되는 프록시
  - **Ground Daemon**: 지상에서 인터넷에 연결된 컴퓨터에 실행되는 데몬

- Sky Proxy는 HTTP 요청을 작은 청크로 나누어 에어마일 계정의 이름 필드에 기록함
- Ground Daemon은 이 청크를 읽고, HTTP 요청을 처리한 후 응답을 다시 작은 청크로 나누어 에어마일 계정에 기록함
- Sky Proxy는 이 응답 청크를 읽고 원래의 HTTP 응답으로 재구성함

##### PySkyWiFi의 통신 논리

- PySkyWiFi의 통신 논리는 두 개의 레이어로 나뉨:
  - **Transport Layer**: 데이터를 작은 청크로 나누고, 송신 및 수신 모드를 관리함
  - **Network Layer**: 데이터를 실제로 전송하는 역할을 함

- Transport Layer는 데이터를 작은 청크로 나누어 송신하고, 수신자가 이를 확인하면 다음 청크를 전송함
- Network Layer는 에어마일 계정의 이름 필드를 사용하여 데이터를 송수신함

##### 최적화 및 개선 사항

- 에어마일 계정의 필드 길이 제한을 극복하기 위해 base26 인코딩을 사용함
- 여러 필드를 사용하여 대역폭을 증가시킴

##### 결론

- PySkyWiFi를 사용하여 블로그 홈페이지를 `curl`로 로드하는 데 성공했음
- 이 프로젝트는 가장 생산적이면서도 비생산적인 비행이었음

### GN⁺의 정리

- PySkyWiFi는 기내 와이파이 비용을 절감하기 위한 창의적인 방법을 제시함
- 에어마일 계정의 허점을 이용하여 인터넷에 접근하는 방식이 흥미로움
- 이 프로젝트는 네트워크 프로토콜과 통신의 기본 원리를 이해하는 데 도움이 됨
- 비슷한 기능을 가진 프로젝트로는 `Tor`와 같은 프록시 서비스가 있음

## Comments



### Comment 27121

- Author: neo
- Created: 2024-07-10T09:42:55+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=40915082) 
- 몇 년 전, 파트너가 Google Voice를 사용해 문자 메시지를 보냈음. Gmail 인박스에서 메시지를 확인하고 답장할 수 있어 편리했음
  - 파트너는 휴대폰을 좋아하지 않았지만, 무제한 3G 데이터가 있는 "Kindle Keyboard" 모델을 가지고 다녔음
  - Kindle의 간단한 웹 브라우저를 통해 Gmail 인터페이스를 로드할 수 있었음
  - 유일한 문제는 수신 문자 알림이었음
  - 홈 서버에서 웹 브라우저를 자동화하여 Amazon 계정에서 Kindle의 장치 이름을 업데이트하도록 설정했음
  - 장치 이름을 "My Kindle (x)"로 업데이트하여 읽지 않은 Google Voice 문자 수를 표시했음
  - 이 방법은 몇 년 동안 잘 작동했음

- 이탈리아에서 그리스로 가는 20시간 페리에서 유료 위성을 통한 인터넷을 사용하지 않으려고 했음
  - 결제 시스템을 위해 stripe.com에 접근할 수 있었음
  - stripe.com의 모든 콘텐츠에 접근할 수 있었고, 이를 통해 reddit을 탐색할 수 있었음
  - HTTP 헤더를 변경하여 reddit.com에 연결했음
  - TLS 오류를 무시하고 로그인할 수 있었음

- 몇 주 전, 아이들을 몰에 있는 수업에 데려갔을 때 무료 와이파이를 사용하려 했음
  - 노트북으로 로그인했지만 인터넷 연결이 없었음
  - Cisco 모뎀의 진단 도구를 통해 문제를 확인했음
  - 구글링을 통해 기본 관리자 계정 정보를 찾았고, 이를 통해 모뎀에 접속했음
  - 인터넷 버튼을 켜고 15초 후에 연결됨
  - 모뎀의 비밀번호를 변경했음

- 최근에 비행기에서 글로벌 DNS가 결제 없이도 잘 작동하는 것을 확인했음
  - 일반적인 iodine 터널이 작동할 것 같음

- 비행기에서 항상 피곤하고 아무것도 할 수 없다는 의견
  - 노트북이나 책을 꺼내는 것도 피곤함
  - 소음이 많고 소음 제거 헤드폰이 없어 집중하기 어려움
  - 공항의 건강에 좋지 않은 음식도 문제임
  - 무거운 배낭 때문에 땀이 남

- 비행기에서 헤드폰을 충전하지 않아 노트북 스피커로 음악을 틀었던 경험
  - 주변 사람들이 불편해했을 것이라는 의견

- Google이 제공했던 문자 메시지를 통한 정보 제공 서비스에 대한 추억
  - 날씨, 주식 정보 등을 문자로 받을 수 있었음
  - 스마트폰이 나오기 전 유용했음

- TCP-over-shared-editable-fields라는 개념이 흥미롭다는 의견
  - SOCKS 프록시로 사용할 수 있는 도구를 상상해봄

- 쓸모없는 소프트웨어를 작성하는 것이 재미있고 유익하다는 의견
  - 더 많은 이런 프로젝트를 만들어야 한다고 생각함

- 몇 년 전 대학에서 10시 이후 LAN 네트워크를 차단했던 경험
  - IPv6를 이용한 간단한 P2P 채팅 애플리케이션을 만들어 해결했음
  - 친구들과 IPv6 주소를 공유해야 했지만 잘 작동했음
