1 คะแนน โดย GN⁺ 2024-07-10 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

PySkyWiFi: Wi‑Fi บนเที่ยวบินระยะไกลที่ฟรีสนิทและเหลือเชื่อในความพิลึก

  • เมื่อเครื่องบินไต่ถึงระดับความสูง 10,000 ฟุต ผู้เขียนก็หยิบโน้ตบุ๊กออกมาเพื่อใช้อินเทอร์เน็ต
  • เชื่อมต่อกับ Wi‑Fi บนเครื่องแล้วเปิดเบราว์เซอร์ ก็พบว่าหน้าล็อกอินเครือข่ายขอข้อมูลบัตรเครดิต
  • บนหน้าล็อกอินมีข้อความให้ล็อกอินบัญชีสะสมไมล์ฟรี ทำให้พบช่องโหว่ของไฟร์วอลล์
  • ผู้เขียนหาวิธีล็อกอินเข้า JetStreamers Diamond Altitude account เพื่อเข้าถึงอินเทอร์เน็ตได้

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 เพื่อหลบข้อจำกัดด้านความยาวฟิลด์ของบัญชีสะสมไมล์
  • ใช้หลายฟิลด์เพื่อเพิ่มแบนด์วิดท์

บทสรุป

  • ผู้เขียนสามารถโหลดหน้าแรกของบล็อกด้วย curl ผ่าน PySkyWiFi ได้สำเร็จ
  • โปรเจ็กต์นี้เป็นเที่ยวบินที่ทั้งมีประสิทธิผลที่สุดและไร้ประสิทธิผลที่สุดในเวลาเดียวกัน

สรุปโดย GN⁺

  • PySkyWiFi นำเสนอวิธีสุดสร้างสรรค์ในการลดค่าใช้จ่าย Wi‑Fi บนเครื่องบิน
  • วิธีเข้าถึงอินเทอร์เน็ตด้วยการอาศัยช่องโหว่ของบัญชีสะสมไมล์นั้นน่าสนใจมาก
  • โปรเจ็กต์นี้ช่วยให้เข้าใจหลักการพื้นฐานของโปรโตคอลเครือข่ายและการสื่อสาร
  • โปรเจ็กต์ที่มีแนวคิดคล้ายกันมีบริการพร็อกซีอย่าง Tor

1 ความคิดเห็น

 
GN⁺ 2024-07-10
ความคิดเห็นจาก Hacker News
  • เมื่อหลายปีก่อน คู่ของผู้แสดงความคิดเห็นใช้ Google Voice เพื่อส่งข้อความ SMS

    • สะดวกตรงที่สามารถดูและตอบข้อความได้จากกล่องจดหมาย Gmail
    • คู่ของเขาไม่ชอบโทรศัพท์มือถือ แต่พก "Kindle Keyboard" ที่มีอินเทอร์เน็ต 3G แบบไม่จำกัด
    • สามารถโหลดอินเทอร์เฟซ Gmail ผ่านเว็บเบราว์เซอร์แบบเรียบง่ายของ Kindle ได้
    • ปัญหาเดียวคือการแจ้งเตือนข้อความขาเข้า
    • จึงตั้งค่าให้โฮมเซิร์ฟเวอร์ทำ automation กับเว็บเบราว์เซอร์ เพื่ออัปเดตชื่ออุปกรณ์ของ Kindle ในบัญชี Amazon
    • อัปเดตชื่ออุปกรณ์เป็น "My Kindle (x)" เพื่อแสดงจำนวนข้อความ Google Voice ที่ยังไม่ได้อ่าน
    • วิธีนี้ใช้งานได้ดีอยู่หลายปี
  • เคยอยู่บนเรือเฟอร์รี่ 20 ชั่วโมงจากอิตาลีไปกรีซ และไม่อยากใช้อินเทอร์เน็ตผ่านดาวเทียมแบบเสียเงิน

    • สามารถเข้า stripe.com ได้เพื่อใช้ระบบชำระเงิน
    • เข้าถึงคอนเทนต์ทั้งหมดบน stripe.com ได้ และใช้สิ่งนั้นเพื่อเปิดดู reddit
    • เปลี่ยน HTTP headers เพื่อเชื่อมต่อไปยัง reddit.com
    • มองข้ามข้อผิดพลาด TLS แล้วล็อกอินได้
  • เมื่อไม่กี่สัปดาห์ก่อน ตอนพาเด็ก ๆ ไปเรียนที่ห้าง ก็พยายามใช้ Wi‑Fi ฟรี

    • ล็อกอินด้วยโน้ตบุ๊กได้ แต่ไม่มีการเชื่อมต่ออินเทอร์เน็ต
    • ตรวจสอบปัญหาผ่านเครื่องมือวินิจฉัยของ Cisco modem
    • ค้น Google แล้วเจอข้อมูลบัญชีแอดมินเริ่มต้น จึงใช้เข้าถึงโมเด็มได้
    • กดเปิดปุ่มอินเทอร์เน็ต แล้วอีก 15 วินาทีก็เชื่อมต่อได้
    • จากนั้นเปลี่ยนรหัสผ่านของโมเด็ม
  • ไม่นานมานี้พบว่าบนเครื่องบิน global DNS ยังใช้งานได้ดีแม้ไม่จ่ายเงิน

    • ดูเหมือนว่า iodine tunnel แบบทั่วไปก็น่าจะใช้งานได้
  • มีความเห็นว่าบนเครื่องบินมักจะเหนื่อยตลอดและทำอะไรไม่ได้เลย

    • แค่จะหยิบโน้ตบุ๊กหรือหนังสือออกมาก็ยังเหนื่อย
    • เสียงดังมาก และถ้าไม่มีหูฟังตัดเสียงรบกวนก็โฟกัสได้ยาก
    • อาหารไม่ดีต่อสุขภาพในสนามบินก็เป็นปัญหาเหมือนกัน
    • เป้สะพายหลังที่หนักทำให้เหงื่อออก
  • มีคนเล่าว่าเคยลืมชาร์จหูฟังบนเครื่องบิน เลยเปิดเพลงผ่านลำโพงโน้ตบุ๊ก

    • มีความเห็นว่าคนรอบข้างคงรำคาญน่าดู
  • มีคนรำลึกถึงบริการข้อมูลผ่านข้อความ SMS ที่ Google เคยให้บริการ

    • สามารถรับข้อมูลอย่างสภาพอากาศ ราคาหุ้น ฯลฯ ทางข้อความได้
    • มีประโยชน์มากในยุคก่อนสมาร์ตโฟน
  • มีความเห็นว่าแนวคิด TCP-over-shared-editable-fields น่าสนใจ

    • ลองจินตนาการถึงเครื่องมือที่ใช้เป็น SOCKS proxy ได้
  • มีความเห็นว่าการเขียนซอฟต์แวร์ไร้สาระนั้นทั้งสนุกและได้ประโยชน์

    • คิดว่าน่าจะมีโปรเจกต์แบบนี้เพิ่มอีก
  • มีคนเล่าถึงประสบการณ์ในมหาวิทยาลัยเมื่อหลายปีก่อนที่มีการตัดเครือข่าย LAN หลัง 4 ทุ่ม

    • จึงแก้ปัญหาด้วยการสร้างแอปแชต P2P แบบง่าย ๆ โดยใช้ IPv6
    • แม้ต้องแชร์ที่อยู่ IPv6 กับเพื่อน ๆ แต่ก็ใช้งานได้ดี