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

สองบทสนทนาในซองเดียว

ลองคิดว่าเซสชันคือสองบทสนทนาที่ใช้ซองเดียวกัน อันหนึ่งตรวจสอบใบรับรองและสร้างวัสดุกุญแจ อีกอันเข้ารหัสสิ่งที่คุณส่งจริง โดยใช้สิ่งที่อันแรกสร้างขึ้น

ซองคือโปรโตคอล ทุกแพ็กเก็ตเริ่มด้วยส่วนหัวเล็ก ๆ ที่บอกชนิดของมัน และส่วนหัวนั้นมาถึงก่อนสิ่งอื่นใด

สิ่งที่มาถึงก่อนจริง ๆ

เพราะลำดับนั้น สิ่งแรกบนสายจึงไม่ใช่เรกคอร์ด TLS แต่เป็นส่วนหัวของ OpenVPN ตามด้วยเนื้อหาของช่องที่ส่วนหัวประกาศ มี ClientHello อยู่ข้างใน เพียงแต่ไม่อยู่ที่ไบต์ศูนย์ ไม่ต้องถอดรหัสใด ๆ เพื่อสังเกตความต่าง เพราะรูปทรงเพียงอย่างเดียวก็บอกได้

ค่าเริ่มต้นก็สำคัญตรงนี้ การไหลเป็น UDP ไปยัง 1194 เว้นแต่โปรไฟล์จะเลือก TCP ทั้งสองกรณีรูปลักษณ์ภายนอกคือทันเนล ไม่ใช่คำขอเว็บ

สามวิธีที่ซื่อสัตย์ในการเปลี่ยนรูปทรง

ตัวสิ้นสุด TLS อย่าง stunnel รับ TLS บนพอร์ตที่ปลายทั้งสองและส่งสตรีมที่ถอดรหัสแล้วให้ OpenVPN ในเครื่อง เครือข่ายจึงเห็น TLS ไปยังพอร์ตนั้น โปรโตคอลที่เป็น TLS ตั้งแต่ไบต์แรกมีพฤติกรรมอีกแบบ การแลกเปลี่ยนที่เข้ากันได้กับ AnyConnect ซึ่ง ocserv นำมาใช้ดูคล้ายการเข้าถึงระยะไกลขององค์กรที่หลายเครือข่ายคาดหวังอยู่แล้ว SSTP ที่มากับ Windows มีคุณสมบัติเดียวกันในผลิตภัณฑ์อื่น

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

สิ่งที่ไม่มีตัวใดเปลี่ยน

ไม่มีตัวใดเปลี่ยนสิ่งที่ทันเนลเข้าถึงได้ พวกมันไม่ได้ทำให้ที่อยู่ที่ถูกบล็อกเข้าถึงได้ ไม่ได้ยืนยันตัวตนใคร และไม่ได้ตัดสินเส้นทาง

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

วินิจฉัยก่อน แล้วจึงเลือก

ดังนั้นจงวินิจฉัยก่อน UDP ที่ถูกทิ้งตอบด้วยโหมด TCP และลายเซ็นที่รู้จักตอบด้วยโปรโตคอลอื่นหรือตัวห่อ การเลือกเครื่องมือก่อนรู้ว่าติดบล็อกที่ใดคือวิธีที่ผู้คนลงเอยด้วยการดูแลสามชั้นที่ล้มเหลวด้วยเหตุผลเดียวกัน

เครือข่ายที่อนุญาตเฉพาะพอร์ตเว็บทำให้ตัวเลือกแคบลงเหลือโปรโตคอลที่อิง TLS บน 443 การใช้ทั้งสามพร้อมกันให้สแต็กที่ไม่มีใครดีบักได้ ดังนั้นจงเปลี่ยนทีละอย่างและทดสอบการไหลเดิมซ้ำ

หากไม่มีตัวใดใช้ได้ คำตอบที่แม่นยำคือเครือข่ายนี้จะไม่พาทันเนลให้คุณ นั่นคือข้อค้นพบไม่ใช่ความล้มเหลวของความพยายาม การวนดูตัวเลือกเพิ่มขึ้นไม่ได้พลิกกลับการตัดสินใจเชิงนโยบายที่ทำไว้ข้างบน

มีเส้นแบ่งหนึ่งอยู่ข้างหน้าทั้งหมดนี้ การอนุญาตให้รันทันเนลบนเครือข่ายของคนอื่นเป็นเรื่องนโยบาย ตัดสินแยกจากการที่กลไกทำงานหรือไม่ ข้อเท็จจริงเหล่านี้อธิบายสิ่งที่ผู้สังเกตเห็น และไม่ได้ให้อนุญาต

บทความที่เกี่ยวข้อง