Chrome VPN API: ใช้ได้เฉพาะ ChromeOS ไม่ใช่ทันเนลสำหรับเดสก์ท็อป
chrome.vpnProvider เป็น API ของ ChromeOS พร็อกซีในเบราว์เซอร์กับส่วนขยายที่ควบคุมไคลเอนต์ VPN บนเดสก์ท็อปเป็นผลิตภัณฑ์คนละแบบและมีขอบเขตต่างกัน
ผลิตภัณฑ์สามอย่างเรียกตัวเองว่า Chrome VPN และมีเพียงอย่างเดียวที่เป็นสิ่งที่เอกสารของ vpnProvider อธิบาย API นั้นมีใน ChromeOS ซึ่งส่วนขยายสามารถทำงานฝั่งไคลเอนต์ของการเชื่อมต่อ VPN ได้แทนที่จะคุยกับไคลเอนต์ที่ติดตั้งไว้ ส่วนขยายพร็อกซีของเบราว์เซอร์เปลี่ยนตำแหน่งที่ Chrome ส่งคำขอ ส่วนขยายที่ควบคุมไคลเอนต์เดสก์ท็อปแยกต่างหากคือแผงควบคุมของซอฟต์แวร์ที่ทำงานนอกเบราว์เซอร์ การรู้ว่าคุณกำลังดูตัวไหนในสามตัวนี้ตอบคำถามส่วนใหญ่ที่ผู้คนนำมาสู่การเปรียบเทียบนี้
หมายเหตุเรื่องแพลตฟอร์มคือตัวกรองแรก
เอกสารอ้างอิง vpnProvider อย่างเป็นทางการ ระบุข้อจำกัดด้านความพร้อมใช้งานไว้ในเนื้อหาของตัวเอง และสิทธิ์ที่ระบุไว้ที่นั่นเป็นของสัญญานั้น การเพิ่ม vpnProvider ลงในไฟล์ manifest บน Windows ไม่ได้สร้างอินเทอร์เฟซนั้น
อ่านบรรทัดเรื่องแพลตฟอร์มก่อนรายการสิทธิ์ เพราะสิทธิ์มีความหมายเฉพาะที่ซึ่ง API มีอยู่
ส่วนขยายพร็อกซี: เบราว์เซอร์คือขอบเขต
ส่วนขยายพร็อกซีใช้การตั้งค่าพร็อกซีของเบราว์เซอร์เพื่อส่งคำขอของ Chrome ผ่านเซิร์ฟเวอร์ ทำงานได้ทุกแพลตฟอร์มและซื่อตรงเกี่ยวกับขอบเขตของมัน แอปอื่นยังคงมีการเชื่อมต่อของตัวเอง และทราฟฟิกเบราว์เซอร์บางส่วนอาจยังไม่ไปตามเส้นทางที่กำหนด นั่นคือการเปลี่ยนแปลงระดับเบราว์เซอร์ ไม่ใช่ทันเนลระดับระบบ
ถ้าความต้องการคือ “เว็บไซต์เดียวนี้ ในเบราว์เซอร์เดียวนี้” มันคือเครื่องมือที่ถูกต้อง
ส่วนขยายกับแอปคู่หู: ทันเนลเป็นของแอป
ไคลเอนต์ VPN บนเดสก์ท็อปมักติดตั้งบริการและอะแดปเตอร์เสมือน และส่วนขยายของมันคือรีโมทที่เรียกเข้าไปในแอป ทันเนลอยู่ที่ระดับระบบปฏิบัติการ ดังนั้น มันจึงครอบคลุมแอปที่เบราว์เซอร์ไม่เคยเห็น สิทธิ์ของส่วนขยายอธิบายช่องทางควบคุม ไม่ใช่การเข้ารหัส การถอดส่วนขยายออกทำให้ทันเนลยังอยู่ครบ ขณะที่การถอดแอปออกทำให้ส่วนขยายใช้ไม่ได้
ความไม่สมมาตรนั้นคือการทดสอบที่เร็วที่สุด ปิดส่วนขยายแล้วดูว่าแอปอื่นยังใช้ VPN อยู่หรือไม่
ผู้ให้บริการ ChromeOS: ส่วนขยายเป็นผู้ทำงานฝั่งไคลเอนต์
บน ChromeOS โมเดลผู้ให้บริการต่างกันโดยธรรมชาติ ส่วนขยายรับข้อความการตั้งค่าและข้อความจากแพลตฟอร์ม สร้างออบเจกต์การตั้งค่า รายงานสถานะการเชื่อมต่อกลับไปยังแพลตฟอร์ม และจัดส่งทราฟฟิกผ่าน API แทนที่จะผ่านไคลเอนต์ที่ติดตั้งแยกไว้ นี่ใกล้เคียงกับการเขียนไคลเอนต์ VPN มากกว่าการตั้งค่าไคลเอนต์ API ยังถือว่าคุณมีปลายทางที่คุณดูแลอยู่แล้ว มันจึงไม่ได้ให้บริการ
นั่นคือเหตุผลที่เอกสารอ้างอิงพูดถึงการทำให้ไคลเอนต์ทำงาน ไม่ใช่การเชื่อมต่อไปยังไคลเอนต์
การอ่านคำกล่าวอ้างของผลิตภัณฑ์เทียบกับสามตัวนี้
ถามว่าระบบปฏิบัติการใดรองรับ แล้วถามว่าองค์ประกอบใดเป็นเจ้าของการเชื่อมต่อ ถ้าคำตอบคือพร็อกซีในเบราว์เซอร์ ให้คาดหวังขอบเขตระดับเบราว์เซอร์ ถ้าคำตอบคือแอปคู่หู ให้คาดหวังขอบเขตระดับระบบตราบเท่าที่แอปนั้นทำงานอยู่ ถ้าคำตอบคือผู้ให้บริการ ChromeOS ให้คาดหวังว่ามันจะทำงานบน ChromeOS และที่อื่นไม่ได้ หน้าผลิตภัณฑ์ที่บอกว่า “Chrome VPN” โดยไม่ตอบสองคำถามนั้นยังไม่ได้บอกคุณว่ามันทำอะไร
ตรวจสอบสิทธิ์เทียบกับงานที่โฆษณาไว้ด้วย การเข้าถึงเว็บไซต์และการควบคุมพร็อกซีเป็นสิทธิ์คนละอย่าง และไม่มีอย่างใดชอบธรรมขึ้นมาเพราะ API ของอีกแพลตฟอร์มบังเอิญชื่อเดียวกัน
สิ่งที่ไม่มีตัวไหนบอกคุณ
อินเทอร์เฟซไม่ได้บอกอะไรเกี่ยวกับใครเป็นผู้ดูแลปลายทาง มันบันทึกอะไร หรือบริการมีให้ใช้ในที่ที่คุณอยู่หรือไม่ นั่นเป็นคุณสมบัติของผู้ให้บริการ ไม่ใช่ของ API ทันเนลที่มีอยู่ไม่ได้แปลว่าควรเชื่อถือโดยอัตโนมัติ และสิทธิ์ที่มีอยู่ไม่ใช่ความสามารถบนแพลตฟอร์มของคุณ แยกการตัดสินสองอย่างนี้ออกจากกัน
จากนั้นทดสอบคำกล่าวอ้างบนอุปกรณ์ที่คุณใช้จริง ด้วยแอปที่ไม่ใช่เบราว์เซอร์