ก่อนจะแทน IPsec ด้วย Shadowsocks จงเขียนงานที่หายไปให้ครบ
เปรียบเทียบการส่งต่อ การเข้าถึงภายใน การอนุญาต และการดำเนินงาน ก่อนจะถือว่า Shadowsocks เป็นตัวแทนของ IPsec สำหรับทีมเล็ก
สามบริการกับอุโมงค์เดียว ได้แก่ เว็บแอป ฐานข้อมูล และการแชร์ไฟล์ มีคนเสนอให้เปลี่ยน IPsec เป็น Shadowsocks เพราะดูแลง่ายกว่า การถกเถียงเรื่องการเข้ารหัสที่ตามมาพลาดประเด็น เพราะอุโมงค์ทำงานหลายอย่างพร้อมกัน และมีเพียงอย่างเดียวที่เกี่ยวกับรหัสลับ เขียนงานเหล่านั้นลงก่อนเปรียบเทียบสินค้า รายการนั้นสั้น และข้อใดข้อหนึ่งเพียงข้อเดียวก็ทำให้การเปลี่ยนนั้นใช้ไม่ได้
เริ่มจากวิธีที่ทราฟฟิกถูกดัก
โปรโตคอลมีสองส่วน ส่วนท้องถิ่นรับการเชื่อมต่อ เข้ารหัสสตรีมที่เริ่มด้วยที่อยู่ปลายทาง แล้วส่งไปยังส่วนปลายทางไกล ส่วนปลายทางไกลเปิดการเชื่อมต่อไปยังปลายทางนั้นและส่งต่อไบต์ UDP ใช้รูปแบบเดียวกันกับเดตาแกรม นี่คือการส่งต่อสำหรับโฟลว์ที่มันดักได้ และไม่ได้บอกอะไรเกี่ยวกับโฟลว์ที่มันไม่ได้ดัก แอปที่พูดพร็อกซี่อย่างชัดเจนนั้นง่าย ส่วนอื่นทั้งหมดต้องมีอะแดปเตอร์หรือกฎเส้นทางจึงจะถูกดักได้
บันทึกวิธีการดักต่อแอปก่อนจะเปรียบเทียบสิ่งอื่นใด ทราฟฟิกที่ไม่ได้ถูกดักจะออกไปตามเส้นทางปกติ และไม่มีใครสังเกตจนกว่าบริการบางอย่างจะทำงานต่างออกไปนอกสำนักงาน
ระบุชื่อทุกปลายทางและทุกโปรโตคอล
ส่วนปลายทางไกลต้องไปถึงทุกบริการภายใน เซสชันที่เข้ารหัสและใช้งานได้ไปยังโฮสต์นั้นไม่ได้เพิ่มเส้นทางจากโฮสต์ไปยังฐานข้อมูล และไม่ได้ทำให้ชื่อภายในถูกแปลงที่ไคลเอนต์ จงระบุที่อยู่ พอร์ต และโปรโตคอล แทนที่จะเขียนว่าเครือข่ายภายในถูกรวมไว้
เพิ่มกรณีที่ทำให้การออกแบบเรียบร้อยพัง ได้แก่ DNS ภายใน แอปที่ไม่สนใจการตั้งค่าพร็อกซี่ และโฟลว์ใดก็ตามที่ต้องเริ่มจากเซิร์ฟเวอร์ไปยังไคลเอนต์ แต่ละอย่างต้องมีข้อตกลงชัดเจน ไม่ใช่การสันนิษฐาน
การเข้ารหัสไม่ใช่การอนุญาต
วิธี AEAD ที่มีเอกสารใน Shadowsocks ให้การเข้ารหัสที่พิสูจน์ตัวตนได้ ดังนั้นการปฏิเสธทั้งตระกูลว่าไม่ปลอดภัยจึงผิด การปล่อยให้ข้อเท็จจริงนั้นตอบคำถามเรื่องการเข้าถึงก็ผิดพอ ๆ กัน ต้องมีคนตัดสินว่าใครเข้าถึงบริการใด การเข้าถึงถูกถอนอย่างไรเมื่อมีคนออกไป ความลับถูกเก็บที่ใด และส่วนใดบังคับใช้เส้นแบ่ง ความลับร่วมชุดเดียวมอบขอบเขตเดียวกันให้ผู้ถือทุกคน และการให้คนหนึ่งออกไปกลายเป็นการหมุนเวียนสำหรับทุกคน
วัดการตั้งค่า IPsec ปัจจุบันด้วยไม้บรรทัดเดียวกัน ป้ายชื่อไม่ได้พิสูจน์ว่ากฎนั้นถูกต้อง และการนำการออกแบบหนึ่งที่ขัดเกลาแล้วไปเทียบกับการออกแบบอีกอันที่คลุมเครือก็ไม่ได้ตัดสินอะไร
ระบุมาตรการควบคุมที่มีอยู่ทั้งสองด้านในวันนี้ แล้วตัดสินว่าช่องว่างใดที่คุณอยู่ด้วยได้
นับงานดำเนินงาน
ทุกการเปลี่ยนแทนต้องมีเจ้าภาพสำหรับแพ็กเกจไคลเอนต์ การอัปเดตเซิร์ฟเวอร์ การหมุนเวียนข้อมูลรับรอง และการรับมือความล้มเหลว สังเกตว่าแต่ละแอปทำอะไรเมื่ออุโมงค์ไม่พร้อมใช้งาน คือล้มเหลว ลองใหม่ผ่านเส้นทางท้องถิ่น หรือรอ พฤติกรรมนั้นมาจากการติดตั้ง ไม่ใช่จากชื่อโปรโตคอล
สำหรับเว็บแอปเดียว พร็อกซี่แคบ ๆ อาจเพียงพอ สำหรับการเข้าถึงทั้งเครือข่ายพร้อมสิทธิ์รายบุคคล ชิ้นส่วนเพิ่มเติมมักมีต้นทุนสูงกว่าอุโมงค์ที่มันเข้าแทน
การตัดสินใจไม่ใช่ว่าสินค้าใดฟังดูปลอดภัยกว่า แต่เป็นการออกแบบใดที่ทำงานตามรายการให้เสร็จด้วยมาตรการควบคุมที่ทีมจะดูแลจริง