Shadowsocks กับ VPN: ต่างกันจริง ๆ ตรงไหน?
Shadowsocks ครองมุมแปลก ๆ มุมหนึ่งในประวัติศาสตร์อินเทอร์เน็ต: พร็อกซีที่เขียนโดยนักพัฒนาคนเดียวในจีนเมื่อปี 2012 ปล่อยออกมาเป็นโอเพนซอร์ส และถูกผู้คนหลายล้านนำไปใช้อย่างเงียบ ๆ ในฐานะม้างานของการหลบเลี่ยงไฟร์วอลล์ มันถูกนำไปเทียบกับ VPN อยู่ตลอด มักด้วยคำถามที่ผิด คือ "อันไหนดีกว่ากัน?" ทั้งที่ทั้งสองไม่ได้พยายามทำงานเดียวกันจริง ๆ
คำตอบสั้น ๆ: Shadowsocks คือพร็อกซีเข้ารหัสที่ออกแบบมาเพื่อขนทราฟฟิกข้ามไฟร์วอลล์ระดับชาติโดยไม่ถูกจดจำ ส่วน VPN คือทันเนลเข้ารหัสสำหรับทั้งอุปกรณ์ของคุณ ออกแบบมาเพื่อความเป็นส่วนตัวจากเครือข่ายที่คุณใช้อยู่ ทั้งสองทับซ้อนกัน แต่ตอบโจทย์ภัยคุกคามต่างกัน และตัวเลือกที่ถูกต้องก็ขึ้นอยู่กับว่าภัยคุกคามใดคือของคุณจริง ๆ
ประเด็นสำคัญ
- Shadowsocks คือพร็อกซี SOCKS5 แบบเข้ารหัสที่สร้างมาเพื่อข้ามการเซ็นเซอร์ มันไม่เคยถูกออกแบบมาเป็นผลิตภัณฑ์เพื่อความเป็นส่วนตัว
- กลเม็ดของมันคือการดูเหมือนไม่เป็นอะไรเลย: ไม่มีลายเซ็นการจับมือ ไม่มีป้ายบอกโปรโตคอล มีแต่ไบต์เข้ารหัสที่ไร้รูปลักษณ์
- VPN ครอบคลุมทุกแอปบนอุปกรณ์ ด้วยพฤติกรรมที่เป็นมาตรฐานรอบ ๆ การรั่วไหลและการเชื่อมต่อที่หลุด ส่วนการตั้งค่าพร็อกซีนั้นแตกต่างกันมาก
- ไฟร์วอลล์สมัยใหม่เรียนรู้ที่จะทำเครื่องหมายทราฟฟิกที่ "ดูเหมือนไม่เป็นอะไรเลย" แล้ว Shadowsocks แบบดั้งเดิมจึงไม่ใช่บัตรผ่านฟรีอีกต่อไป
- เลือกตามโมเดลภัยคุกคาม: การต้านการเซ็นเซอร์ ความเป็นส่วนตัวทั้งอุปกรณ์ หรือซึ่งพบบ่อยขึ้นเรื่อย ๆ คือทั้งสองอย่างในแอปเดียว
Shadowsocks คืออะไรกันแน่
ในปี 2012 นักพัฒนาที่เขียนภายใต้ชื่อ clowwindy เผยแพร่เครื่องมือเล็ก ๆ สำหรับพาทราฟฟิกส่วนตัวผ่านไฟร์วอลล์ระดับชาติของจีน ในปี 2015 หลังถูกกดดันจากทางการ เขาลบโค้ดทิ้งและถอนตัวออกไป โครงการอยู่รอดมาได้ในรูปการพัฒนาที่ดูแลโดยชุมชน และมีการพัฒนาอย่างต่อเนื่องตั้งแต่นั้นมา มันยังเป็นรากฐานของเครื่องมืออย่าง Outline ด้วย เรื่องราวต้นกำเนิดนั้นอธิบายการออกแบบได้อย่างครบถ้วน: Shadowsocks ถูกสร้างโดยคนที่ปัญหาของเขาคือไฟร์วอลล์ ไม่ใช่ผู้โฆษณา
ในเชิงกลไก Shadowsocks เป็นคู่: ไคลเอนต์บนอุปกรณ์ของคุณ กับเซิร์ฟเวอร์ที่อยู่นอกเครือข่ายที่ถูกกรองสักแห่ง ไคลเอนต์รับทราฟฟิกของแอปพลิเคชันผ่าน SOCKS5 ซึ่งเป็นอินเทอร์เฟซพร็อกซีมาตรฐาน เข้ารหัสมันด้วยไซเฟอร์สมัยใหม่ที่มีการพิสูจน์ตัวตน และส่งต่อผ่านเซิร์ฟเวอร์ ซึ่งจากนั้นจะส่งมันไปยังปลายทางจริง
ส่วนที่ชาญฉลาดคือสิ่งที่หายไป การเชื่อมต่อเข้ารหัสปกติจะประกาศตัวเอง: TLS เปิดด้วยข้อความทักทายที่จดจำได้ และโปรโตคอล VPN ก็เปิดด้วยการจับมือที่จดจำได้ ส่วนการเชื่อมต่อพร็อกซีของ Shadowsocks เปิดขึ้นโดยไม่มีอะไรเลย ตั้งแต่ไบต์แรก กระแสข้อมูลก็เป็นข้อความเข้ารหัสเอนโทรปีสูงที่ไม่มีส่วนหัว ไม่มีป้ายบอก และไม่มีขนาดแพ็กเก็ตที่ตายตัว ไม่มีลายเซ็นให้จับคู่เพราะไม่มีโครงสร้างให้มองเห็น
มันต่างจาก VPN อย่างไร
ความต่างเริ่มที่ชั้นซึ่งแต่ละอย่างทำงานอยู่ และแผ่ออกไปจากตรงนั้น
ความครอบคลุม VPN สร้างอินเทอร์เฟซเครือข่ายในระดับระบบปฏิบัติการ และกำหนดเส้นทางทั้งอุปกรณ์ผ่านมัน ทุกแอป รวมถึงแอปที่ไม่มีการตั้งค่าพร็อกซีเลย ส่วน Shadowsocks เป็นพร็อกซี: ตามแบบดั้งเดิม มันขนเฉพาะแอปพลิเคชันที่ถูกชี้มาที่มัน ไคลเอนต์บนมือถือทำให้เส้นแบ่งนี้พร่าเลือนด้วยการกำหนดเส้นทางทั้งระบบผ่านอินเทอร์เฟซทันเนลในเครื่อง แต่นั่นเป็นฟีเจอร์ของไคลเอนต์ที่คุณติดตั้ง ไม่ใช่การรับประกันของตัวโปรโตคอล
พฤติกรรมเมื่อล้มเหลว แอป VPN ที่สมบูรณ์มีคำตอบที่เป็นมาตรฐานต่อคำถามที่น่าเกลียด: เกิดอะไรขึ้นกับทราฟฟิกในวินาทีที่ทันเนลหลุด คำขอ DNS ไปที่ไหน มีอะไรเล็ดลอดออกไปทางขอบหรือไม่ ส่วน Shadowsocks คำตอบขึ้นอยู่กับว่าคุณเลือกไคลเอนต์ตัวใดและตั้งค่าอย่างไรทั้งหมด ไม่มีอะไรในนั้นถูกรับประกันโดยตัวโปรโตคอล
ความไว้วางใจ ผู้ให้บริการ VPN คือบริษัทที่คุณประเมินได้จากนโยบายการเก็บบันทึกและประวัติที่ผ่านมา ซึ่งเป็นสิ่งที่เราพิจารณาใน ความหมายที่แท้จริงของนโยบายไม่เก็บบันทึก ส่วนเซิร์ฟเวอร์ Shadowsocks มักเป็นแบบโฮสต์เองหรือซื้อมาจากผู้ขายต่อรายเล็ก ๆ ที่มักไม่ระบุตัวตน ไม่ว่าทางใด ก็มีคนดูแลปลายอีกฝั่งและสังเกตได้ว่าทราฟฟิกของคุณไปที่ไหน พร็อกซีไม่ได้ลบความจำเป็นที่จะต้องไว้ใจปลายทาง มันเปลี่ยนว่าคุณกำลังไว้ใจใคร และกับผู้ขายต่อ คุณมักไม่รู้อะไรเกี่ยวกับพวกเขาเลย
ถ้าคุณอยากได้เวอร์ชันทั่วไปของการเปรียบเทียบนี้ พร็อกซีเทียบกับ VPN ที่กว้างกว่าเรื่องการเซ็นเซอร์ นั่นคือ VPN กับพร็อกซี
ทำไมมันถึงใช้ได้มาเป็นทศวรรษ
การตรวจสอบแพ็กเก็ตเชิงลึก ที่แก่นของมันคือการจับคู่ลายเซ็น: จดจำโปรโตคอลให้ได้ แล้วจึงตัดสินนโยบาย Shadowsocks ไม่ได้ให้อะไรให้มันจดจำ นั่นทำให้ผู้เซ็นเซอร์เหลือทางเลือกที่ไม่น่าพอใจสองทาง บล็อกที่อยู่ปลายทางทีละอันซึ่งเป็นเกมตีตัวตุ่นกับเซิร์ฟเวอร์เช่าราคาถูก หรือบล็อกทุกอย่างที่จำแนกไม่ได้และยอมรับความเสียหายข้างเคียงที่ตกกับทราฟฟิกเข้ารหัสทั่วไป
เป็นเวลาหลายปีที่ความเสียหายข้างเคียงนั้นไม่คุ้ม และ Shadowsocks ก็เล็ดลอดผ่านช่องว่างนั้นไป ช่องว่างนั้นกำลังปิดลง
ทำไม "มันยังใช้ได้อยู่ไหม" จึงเป็นคำถามจริงจังในตอนนี้
มาตรการตอบโต้สองอย่างเปลี่ยนภาพไป อย่างแรกคือการหยั่งเชิงรุก: เมื่อระบบเซ็นเซอร์สังเกตเห็นการเชื่อมต่อที่น่าสงสัย มันจะเชื่อมต่อไปยังเซิร์ฟเวอร์เดียวกันด้วยตัวเองและทดสอบว่ามันตอบสนองอย่างไร โดยมองหาพฤติกรรมแบบพร็อกซี อย่างที่สองตรงไปตรงมากว่า นักวิจัยบันทึกไว้ที่ USENIX Security 2023ว่านับตั้งแต่ปลายปี 2021 ไฟร์วอลล์ของจีนได้ทิ้งการเชื่อมต่อที่แพ็กเก็ตแรกดูเหมือนข้อมูลเอนโทรปีสูงไร้รูปลักษณ์ไปเฉย ๆ เป็นบางครั้ง ซึ่งก็คือการไร้โครงสร้างที่ทำให้ Shadowsocks ล่องหนได้พอดี เมื่อผู้เซ็นเซอร์ตัดสินว่าทราฟฟิกที่ดูเหมือนไม่เป็นอะไรเลยคือสัญญาณในตัวมันเอง การดูเหมือนไม่เป็นอะไรเลยก็เลิกเป็นการพรางตัว
ชุมชนตอบโต้กลับในสองทิศทาง หนึ่ง: ห่อ Shadowsocks ไว้ในช่องทางรับส่งที่ดูธรรมดาจริง ๆ ทั้งเซสชัน TLS ของจริง และการเชื่อมต่อ WebSocket สอง: เลียนแบบโปรโตคอลจริงไปเลย เครื่องมือรุ่นต่อ ๆ มาในตระกูล trojan และ REALITY แสดงตัวเป็น HTTPS ปกติแม้เมื่อถูกหยั่ง ข้อกำหนด Shadowsocks รุ่นใหม่ ๆ ก็เสริมความแข็งแกร่งให้โปรโตคอลต้านกลวิธีหยั่งที่จับรุ่นเก่าได้ด้วย เกมแมวจับหนูยังดำเนินต่อไป ยุคที่เครื่องมือง่าย ๆ ตัวเดียวทำงานเงียบ ๆ ได้ทุกที่นั้นจบลงแล้ว
การหันมาหา QUIC
บทล่าสุดเดินผ่าน QUIC ซึ่งเป็นช่องทางรับส่ง UDP แบบเข้ารหัสที่อยู่ใต้ HTTP/3 ทราฟฟิกเว็บทั่วไปสัดส่วนใหญ่เป็น QUIC แล้วในตอนนี้ ซึ่งทำให้มันเป็นที่กำบังที่ยอดเยี่ยม: ทันเนลที่แสดงตัวเป็น HTTP/3 ดูเหมือนการท่องเว็บประจำวันมากกว่าเป็นสัญญาณรบกวน นั่นคือสิ่งที่การค้นหา "QUIC VPN" พูดถึงจริง ๆ เครื่องมือหลบเลี่ยงรุ่นใหม่อย่าง Hysteria2 และ TUIC ใช้ QUIC เพื่อเป็นที่กำบังและเพื่อประสิทธิภาพบนเส้นทางยาวที่มีการสูญเสียข้อมูลมาก และงาน MASQUE ของ IETF ก็กำลังทำให้การพร็อกซีผ่าน HTTP/3 เป็นมาตรฐาน Apple สร้าง iCloud Private Relay จากตระกูลแนวคิดเดียวกัน iCloud Private Relay กับ VPN ครอบคลุมว่ามันเทียบกันอย่างไร
QUIC ก็ไม่ใช่บทสรุปสุดท้ายเช่นกัน ผู้เซ็นเซอร์หน่วงหรือบล็อก UDP ทั้งหมดได้และก็ทำในช่วงเวลาที่อ่อนไหว ซึ่งผลักทราฟฟิกกลับไปหาการพรางตัวแบบ TCP-และ-TLS ไม่มีช่องทางรับส่งใดที่ชนะได้ทุกที่ นั่นคือเหตุผลที่เครื่องมือหลบเลี่ยงยังคงกระจายความหลากหลายต่อไป และเหตุผลที่คำถามที่อยู่ทนคือไม่ใช่ "โปรโตคอลไหน" แต่เป็นว่าเครื่องมือของคุณเปลี่ยนเสื้อผ้าได้หรือไม่
คุณต้องการตัวไหน?
จัดเรียงมันตามปัญหาที่อยู่ตรงหน้าคุณจริง ๆ:
- เครือข่ายไม่ยอมให้คุณออกไป ที่ใดที่โปรโตคอล VPN ถูกระบุและถูกทิ้ง การอำพรางคือปัจจัยชี้ขาด และโปรโตคอล VPN มาตรฐานบนการตั้งค่าเริ่มต้นก็อาจเชื่อมต่อไม่ได้เลย นี่คือถิ่นของ Shadowsocks และความต้องการเดียวกันนี้ก็ก่อให้เกิดฟอร์ก WireGuard แบบอำพราง ซึ่งเราครอบคลุมไว้ใน AmneziaWG กับ WireGuard
- คุณอยากได้ความเป็นส่วนตัวจากเครือข่ายและผู้ให้บริการอินเทอร์เน็ตของคุณ ความครอบคลุมทั้งอุปกรณ์ การจัดการ DNS ที่คาดเดาได้ และพฤติกรรมที่สมเหตุสมผลเมื่อทันเนลหลุด สำคัญกว่าช่องทางรับส่งแปลกใหม่ นั่นคือคอลัมน์ของ VPN และเป็นการใช้งานประจำวันส่วนใหญ่: Wi-Fi โรงแรม การทำโปรไฟล์โดยผู้ให้บริการอินเทอร์เน็ต เครือข่ายที่ไม่น่าไว้ใจ VPN ข้ามการเซ็นเซอร์ได้อย่างไร ลากเส้นแบ่งระหว่างสองโลกนี้ไว้อย่างละเอียดกว่า
- ทั้งสองอย่าง คนที่อยู่บนเครือข่ายที่ถูกกรองหนักมักต้องการทั้งสองอย่างพร้อมกัน: ความครอบคลุมของ VPN พร้อมทราฟฟิกที่ไม่ประกาศตัวเอง ในอดีตนั่นหมายถึงการประกอบการตั้งค่าขึ้นเองจากชิ้นส่วนต่าง ๆ แต่นับวันมันหมายถึง VPN ที่การเชื่อมต่อถูกอำพรางมาให้พร้อมใช้
Snap VPN เข้าหาเรื่องนี้จากฝั่ง VPN: WireGuard อยู่ข้างใต้ พร้อมเทคนิคอำพรางของเราเองที่ใช้กับการเชื่อมต่อเพื่อไม่ให้มันยื่นลายเซ็น VPN แบบตำราให้ระบบตรวจสอบ เราไม่เผยแพร่รายละเอียดระดับสาย เพราะการพรางตัวเสื่อมเร็วเมื่อถูกบันทึกไว้ แต่เป้าหมายก็คือสิ่งที่การเปรียบเทียบทั้งหมดนี้ชี้ไป: ความเป็นส่วนตัวทั้งอุปกรณ์ที่ยังเชื่อมต่อได้บนเครือข่ายที่ทราฟฟิก VPN ถูกไล่ล่า
คำถามที่พบบ่อย
Shadowsocks เป็น VPN ไหม? ไม่ใช่ มันคือพร็อกซีเข้ารหัส ไคลเอนต์บนมือถือกำหนดเส้นทางทั้งอุปกรณ์ผ่านมันได้ ซึ่งทำให้มันรู้สึกเหมือน VPN แต่การรับประกันที่แอป VPN ทำให้เป็นมาตรฐาน ทั้งการกำหนดเส้นทางทั้งอุปกรณ์ การจัดการการรั่วไหล พฤติกรรมเมื่อทันเนลหลุด ไม่ได้เป็นส่วนหนึ่งของตัวโปรโตคอล Shadowsocks เอง
Shadowsocks ยังใช้ได้อยู่ไหม? ในหลายที่ ส่วนใหญ่ของเวลา ใช่ แต่ Shadowsocks แบบดั้งเดิมไม่ได้บัตรผ่านฟรีอีกต่อไป ระบบเซ็นเซอร์สมัยใหม่ทำเครื่องหมายทราฟฟิกที่ "ไร้โครงสร้าง" ซึ่งเข้ารหัสเต็มที่ และหยั่งเซิร์ฟเวอร์ต้องสงสัยอย่างจริงจัง การตั้งค่าในปัจจุบันจึงพึ่งพาข้อกำหนดที่เสริมความแข็งแกร่ง การห่อด้วย TLS หรือโปรโตคอลรุ่นต่อ
อะไรดีกว่า Shadowsocks? ขึ้นอยู่กับว่า "ดีกว่า" ต้องหมายความว่าอะไร สำหรับการเลี่ยงการตรวจจับในวันนี้ รุ่นต่อที่เลียนแบบ HTTPS จริงหรือใช้ QUIC มีความได้เปรียบ ส่วนความเป็นส่วนตัวประจำวันบนเครือข่ายทั่วไป VPN แบบไม่เก็บบันทึกคือเครื่องมือที่ง่ายกว่าและครบถ้วนกว่า
Shadowsocks ปลอดภัยไหม? การเข้ารหัสนั้นมั่นคง ไซเฟอร์สมัยใหม่ที่มีการพิสูจน์ตัวตน ระบุไว้อย่างเปิดเผย ความเสี่ยงในทางปฏิบัติอยู่ที่อื่น: ใครก็ตามที่ดูแลเซิร์ฟเวอร์ของคุณเห็นได้ว่าทราฟฟิกของคุณไปที่ไหน และไคลเอนต์ที่ดาวน์โหลดจากแหล่งสุ่มก็อาจถูกดัดแปลง การโฮสต์เองแก้ข้อแรก การติดตั้งเฉพาะรุ่นที่เป็นทางการแก้ข้อสอง
สรุป
- Shadowsocks คือพร็อกซีหลบการเซ็นเซอร์ที่ทำงานด้วยการไม่มีรูปร่างที่จดจำได้ ส่วน VPN คือทันเนลเพื่อความเป็นส่วนตัวทั้งอุปกรณ์
- มันตอบโจทย์ภัยคุกคามต่างกัน และ "ดีกว่า" ก็มีความหมายเฉพาะเมื่อเทียบกับภัยคุกคามของคุณเท่านั้น
- ผู้เซ็นเซอร์ไล่ทัน "การดูเหมือนไม่เป็นอะไรเลย" แล้ว สนามจึงขยับไปสู่การดูเหมือนอะไรบางอย่างที่เป็นของจริง ทั้ง TLS, WebSocket, QUIC
- สำหรับคนส่วนใหญ่ ในเวลาส่วนใหญ่ คำตอบที่ใช้ได้จริงคือ VPN ในอุดมคติคือตัวที่ไม่ประกาศตัวเองต่อฮาร์ดแวร์ตรวจสอบ
ถ้าคุณอยู่บน iPhone และอยากได้ VPN ที่รัน WireGuard อำพรางการเชื่อมต่อของตัวเอง และไม่ถามว่าคุณเป็นใคร ไม่มีอีเมล ไม่มีบัญชี ไม่มีบันทึกทราฟฟิก Snap VPN อยู่บน App Store