1 điểm bởi GN⁺ 2024-07-10 | 1 bình luận | Chia sẻ qua WhatsApp

PySkyWiFi: Wi‑Fi trên chuyến bay đường dài hoàn toàn miễn phí nhưng ngớ ngẩn đến khó tin

  • Khi máy bay đạt độ cao 10.000 feet, tác giả mở laptop ra để dùng Internet
  • Sau khi kết nối với Wi‑Fi trên máy bay và mở trình duyệt, trang đăng nhập mạng yêu cầu thông tin thẻ tín dụng
  • Khi thấy trên trang đăng nhập có thông báo đăng nhập miễn phí vào tài khoản tích lũy dặm bay, tác giả đã phát hiện ra một lỗ hổng của tường lửa
  • Tác giả đã tìm ra cách đăng nhập vào tài khoản JetStreamers Diamond Altitude để truy cập Internet

Prototype 1: Nhắn tin tức thời

  • Tác giả nghĩ ra cách gửi và nhận tin nhắn thông qua trường tên của tài khoản tích lũy dặm bay
  • Bằng cách đăng nhập cùng một tài khoản tích lũy dặm bay trên hai máy tính rồi cập nhật và đọc trường tên, tác giả đã triển khai một ứng dụng chat đơn giản
  • Để tự động hóa quá trình này, tác giả đã viết một công cụ dòng lệnh

Prototype 2: Tiêu đề tin tức thời gian thực, giá cổ phiếu, tỷ số bóng đá

  • Tác giả đã viết một chương trình truyền thông tin thời gian thực qua tài khoản tích lũy dặm bay
  • Chương trình hoạt động bằng cách để một máy tính dưới mặt đất định kỳ kiểm tra trường tên của tài khoản tích lũy dặm bay, rồi gửi ngược thông tin được yêu cầu trở lại máy bay

Triển khai thực tế: PySkyWiFi

  • PySkyWiFi là một công cụ đơn giản hóa giao thức TCP/IP để truyền các yêu cầu HTTP thông qua tài khoản tích lũy dặm bay
  • Trên máy tính dưới mặt đất, chương trình xử lý các yêu cầu HTTP rồi gửi lại phản hồi cho máy bay thông qua tài khoản tích lũy dặm bay

Cách PySkyWiFi hoạt động

  • PySkyWiFi gồm hai thành phần:

    • Sky Proxy: proxy chạy trên laptop ở trên máy bay
    • Ground Daemon: daemon chạy trên máy tính có kết nối Internet ở dưới mặt đất
  • Sky Proxy chia các yêu cầu HTTP thành những mảnh nhỏ và ghi chúng vào trường tên của tài khoản tích lũy dặm bay

  • Ground Daemon đọc các mảnh này, xử lý yêu cầu HTTP, sau đó lại chia phản hồi thành các mảnh nhỏ và ghi vào tài khoản tích lũy dặm bay

  • Sky Proxy đọc các mảnh phản hồi đó và ghép chúng lại thành phản hồi HTTP ban đầu

Logic giao tiếp của PySkyWiFi

  • Logic giao tiếp của PySkyWiFi được chia thành hai lớp:

    • Transport Layer: chia dữ liệu thành các mảnh nhỏ và quản lý chế độ gửi/nhận
    • Network Layer: đảm nhiệm việc truyền dữ liệu thực tế
  • Transport Layer chia dữ liệu thành các mảnh nhỏ để gửi đi, và khi bên nhận xác nhận thì mới gửi mảnh tiếp theo

  • Network Layer dùng trường tên của tài khoản tích lũy dặm bay để gửi và nhận dữ liệu

Tối ưu hóa và cải tiến

  • Để vượt qua giới hạn độ dài trường của tài khoản tích lũy dặm bay, tác giả sử dụng mã hóa base26
  • Tác giả dùng nhiều trường để tăng băng thông

Kết luận

  • Tác giả đã thành công tải trang chủ blog bằng curl với PySkyWiFi
  • Đây là chuyến bay vừa hiệu quả nhất vừa kém hiệu quả nhất của tác giả

Tóm tắt của GN⁺

  • PySkyWiFi đưa ra một cách sáng tạo để giảm chi phí Wi‑Fi trên máy bay
  • Cách truy cập Internet bằng cách khai thác lỗ hổng trong tài khoản tích lũy dặm bay là một ý tưởng thú vị
  • Dự án này giúp hiểu rõ hơn về các nguyên lý cơ bản của giao thức mạng và truyền thông
  • Một dự án có chức năng tương tự là các dịch vụ proxy như Tor

1 bình luận

 
GN⁺ 2024-07-10
Ý kiến Hacker News
  • Vài năm trước, người bạn đời của tôi dùng Google Voice để gửi tin nhắn SMS. Rất tiện vì có thể xem và trả lời tin nhắn ngay trong hộp thư đến Gmail

    • Người ấy không thích điện thoại di động, nhưng luôn mang theo mẫu "Kindle Keyboard" có dữ liệu 3G không giới hạn
    • Có thể tải giao diện Gmail qua trình duyệt web đơn giản của Kindle
    • Vấn đề duy nhất là thông báo khi có tin nhắn đến
    • Tôi đã thiết lập tự động hóa trình duyệt web trên máy chủ tại nhà để cập nhật tên thiết bị Kindle trong tài khoản Amazon
    • Tôi cập nhật tên thiết bị thành "My Kindle (x)" để hiển thị số tin nhắn Google Voice chưa đọc
    • Cách này hoạt động tốt trong nhiều năm
  • Trên chuyến phà 20 giờ từ Ý sang Hy Lạp, tôi không muốn dùng Internet vệ tinh trả phí

    • Tôi có thể truy cập stripe.com vì hệ thống thanh toán
    • Tôi có thể truy cập toàn bộ nội dung trên stripe.com, và từ đó duyệt reddit
    • Tôi đã thay đổi HTTP header để kết nối tới reddit.com
    • Tôi bỏ qua lỗi TLS và vẫn đăng nhập được
  • Vài tuần trước, khi đưa bọn trẻ đến một lớp học trong trung tâm thương mại, tôi đã thử dùng Wi‑Fi miễn phí

    • Tôi đăng nhập bằng laptop nhưng không có kết nối Internet
    • Tôi kiểm tra sự cố bằng công cụ chẩn đoán của modem Cisco
    • Sau khi tìm trên Google, tôi thấy thông tin tài khoản quản trị mặc định và dùng nó để truy cập modem
    • Tôi bật nút Internet và sau 15 giây thì kết nối được
    • Tôi đã đổi mật khẩu của modem
  • Gần đây, tôi nhận ra DNS toàn cục trên máy bay vẫn hoạt động tốt ngay cả khi chưa thanh toán

    • Có vẻ một đường hầm iodine thông thường sẽ hoạt động
  • Có ý kiến cho rằng lúc nào ở trên máy bay cũng mệt và không làm được gì

    • Ngay cả việc lấy laptop hay sách ra cũng thấy mệt
    • Có quá nhiều tiếng ồn, và không có tai nghe chống ồn nên khó tập trung
    • Đồ ăn không tốt cho sức khỏe ở sân bay cũng là một vấn đề
    • Ba lô nặng khiến tôi đổ mồ hôi
  • Có người kể lại trải nghiệm quên sạc tai nghe trên máy bay nên phải mở nhạc bằng loa laptop

    • Có ý kiến cho rằng điều đó hẳn đã làm những người xung quanh khó chịu
  • Gợi nhớ về dịch vụ cung cấp thông tin qua tin nhắn SMS mà Google từng có

    • Có thể nhận thời tiết, thông tin chứng khoán, v.v. qua tin nhắn
    • Rất hữu ích trước khi smartphone xuất hiện
  • Có ý kiến cho rằng khái niệm TCP-over-shared-editable-fields rất thú vị

    • Họ hình dung ra một công cụ có thể dùng như SOCKS proxy
  • Có ý kiến cho rằng viết phần mềm vô dụng vừa vui vừa có ích

    • Nghĩ rằng nên có thêm nhiều dự án như thế này
  • Có người kể lại trải nghiệm hồi đại học khi mạng LAN bị chặn sau 10 giờ tối

    • Đã giải quyết bằng cách tạo một ứng dụng chat P2P đơn giản dùng IPv6
    • Phải chia sẻ địa chỉ IPv6 với bạn bè, nhưng nó hoạt động tốt