เครือข่ายส่วนตัวเสมือน (VPN) เข้ารหัสข้อมูลทั้งหมดในขณะที่เดินทางระหว่างคอมพิวเตอร์ของคุณและเซิร์ฟเวอร์ VPN ในคู่มือการเข้ารหัส VPN ฉบับสมบูรณ์นี้เราจะพิจารณารายละเอียดว่าการเข้ารหัสคืออะไรและใช้ในการเชื่อมต่อ VPN อย่างไร.

บางทีที่สำคัญที่สุดคือเราจะอธิบายชุดคำศัพท์การเข้ารหัสที่ใช้โดยบริการ VPN เราหวังว่าหลังจากอ่านเอกสารนี้แล้วคุณจะมีความเข้าใจมากขึ้นในเรื่องที่ซับซ้อนนี้และคุณจะสามารถประเมินการอ้างสิทธิ์ด้านความปลอดภัยของผู้ให้บริการ VPN ได้ดียิ่งขึ้น.

รอบคัดเลือกโซน

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

เป้าหมายของเราคือการนำเสนอคุณสมบัติที่สำคัญของการเข้ารหัส VPN ในแง่ง่ายที่สุด แม้ว่าจะไม่มีทางหนีจากความจริงที่ว่าการเข้ารหัสเป็นเรื่องที่ซับซ้อน.

หากแม้แต่การเข้ารหัสคำทำให้สายตาของคุณเริ่มมองเห็น แต่คุณยังอยากรู้ว่าต้องระวังอะไรในบริการ VPN ที่ดีคุณสามารถข้ามไปยังบทสรุปได้โดยตรง.


การเข้ารหัสคืออะไร?

เริ่มต้นที่จุดเริ่มต้น," กษัตริย์พูดอย่างเคร่งขรึมมาก, "และไปจนกว่าคุณจะมาถึงจุดสิ้นสุด: จากนั้นหยุด”

Lewis Carroll, Alice ในแดนมหัศจรรย์

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

ในลักษณะเดียวกับที่ล็อคการรักษาความปลอดภัยของตู้เซฟของธนาคารจะแข็งแกร่งกว่ากระเป๋าที่รักษาความปลอดภัยการเข้ารหัสบางอย่างจะดีกว่าการเข้ารหัสอื่น ๆ.

พื้นฐาน

เมื่อคุณยังเป็นเด็กคุณเล่นเกมที่คุณสร้าง“ ข้อความลับ” โดยการเปลี่ยนตัวอักษรตัวอักษรหนึ่งกับอีกข้อความหนึ่งหรือไม่? การทดแทนทำขึ้นตามสูตรที่คุณเลือก.

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

ในศัพท์แสงการเข้ารหัสสิ่งที่คุณทำคือ“ เข้ารหัส” ข้อความ (ข้อมูล) ตามอัลกอริทึมทางคณิตศาสตร์ที่ง่ายมาก Cryptographers อ้างถึงอัลกอริทึมนี้ว่า "รหัส" ในการถอดรหัสคุณต้องใช้รหัส นี่คือพารามิเตอร์ตัวแปรที่กำหนดเอาท์พุทสุดท้ายของการเข้ารหัส หากไม่มีพารามิเตอร์นี้จะไม่สามารถถอดรหัสรหัสได้.

หากมีคนต้องการอ่านข้อความที่เข้ารหัส แต่ไม่มีคีย์พวกเขาจะต้องพยายาม "ถอดรหัส" รหัสลับ เมื่อการเข้ารหัสใช้รหัสแทนตัวอักษรแบบง่ายการแคร็กมันเป็นเรื่องง่าย การเข้ารหัสสามารถทำให้มีความปลอดภัยมากขึ้นอย่างไรก็ตามโดยการทำให้อัลกอริทึมทางคณิตศาสตร์ (ตัวเลข) ซับซ้อนมากขึ้น.

ตัวอย่างเช่นคุณสามารถแทนที่ตัวอักษรทุกตัวที่สามของข้อความด้วยตัวเลขที่สอดคล้องกับตัวอักษร.

ความยาวคีย์การเข้ารหัส

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

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

คอมพิวเตอร์ทำการคำนวณทั้งหมดโดยใช้เลขฐานสอง: ศูนย์และเลข ความซับซ้อนของตัวเลขขึ้นอยู่กับขนาดของคีย์เป็นบิต - จำนวนดิบและเลขศูนย์ที่จำเป็นในการแสดงอัลกอริทึมของมันโดยที่แต่ละศูนย์หรือหนึ่งแสดงด้วยบิตเดียว.

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

จำนวนชุดค่าผสมที่เป็นไปได้ (และความยากลำบากในการเดรัจฉานบังคับพวกเขา) เพิ่มขึ้นชี้แจงกับขนาดคีย์ ใช้รหัส AES (ดูภายหลัง):

ขนาดคีย์ผสม

หากต้องการนำสิ่งนี้ไปใช้ในมุมมอง:

  • ในปี 2011 ซูเปอร์คอมพิวเตอร์ที่เร็วที่สุดในคำนี้คือฟูจิตสึเคซึ่งสามารถใช้ความเร็วสูงสุด Rmax ที่ 10.51 petaflops จากตัวเลขนี้จะใช้เวลาฟูจิตสึ K 1.02 x 10 ^ 18 - ประมาณหนึ่งพันล้านพันล้าน (หนึ่งล้านล้าน) - ปีเพื่อถอดรหัสคีย์ AES 128 บิต (มาตรฐานการเข้ารหัสขั้นสูง) แบบบังคับ นี่เก่ากว่าอายุของจักรวาล (13.75 พันล้านปี).
  • ซุปเปอร์คอมพิวเตอร์ที่ทรงพลังที่สุดในโลกในขณะนี้ (2017) คือ Sunway TaihuLight ในจีน สัตว์ร้ายตัวนี้มีความสามารถในความเร็วสูงสุด 93.02 petaflops ซึ่งหมายความว่าคอมพิวเตอร์ที่ทรงพลังที่สุดในโลกยังคงใช้เวลา 885 ล้านล้านปีในการบังคับใช้คีย์ AES 128 บิต.
  • จำนวนของการดำเนินการที่จำเป็นในการเดรัจฉานบังคับให้เข้ารหัสตัวเลข 256 บิตคือ 3.31 x 10 ^ 56 นี่เท่ากับจำนวนอะตอมในจักรวาลโดยประมาณ!

คอมพิวเตอร์ Ciphers

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

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

ยกตัวอย่างเช่นเลขศูนย์ Blowfish มีความเสี่ยงต่อการโจมตีที่ใช้ประโยชน์จากคณิตศาสตร์ที่อยู่เบื้องหลังปัญหาวันเกิดในทฤษฎีความน่าจะเป็น การศึกษาจุดอ่อนในอัลกอริธึมการเข้ารหัสเรียกว่าการเข้ารหัสลับ.

ความยาวของคีย์ที่ยาวขึ้นช่วยชดเชยจุดอ่อนดังกล่าวเนื่องจากจะเพิ่มจำนวนผลลัพธ์ที่เป็นไปได้อย่างมาก.

แทนที่จะโจมตีรหัสลับฝ่ายตรงข้ามสามารถโจมตีคีย์ได้ สิ่งนี้อาจส่งผลกระทบต่อไซต์เฉพาะหรือผลิตภัณฑ์ซอฟต์แวร์บางอย่าง แต่ความปลอดภัยของอัลกอริธึมการเข้ารหัสยังคงไม่เปลี่ยนแปลงและระบบอื่น ๆ ที่ใช้อัลกอริทึมเดียวกัน แต่การสร้างคีย์ที่ปลอดภัยนั้นไม่ได้รับผลกระทบจากการแตก.

ความยาวคีย์ของรหัส

ความแข็งแกร่งของตัวเลขนั้นขึ้นอยู่กับคณิตศาสตร์ของตัวเลขนั้นบวกกับความยาวของคีย์ตามที่แสดงในหน่วยบิต ด้วยเหตุนี้เองยันต์มักจะอธิบายพร้อมกับความยาวคีย์ที่ใช้.

ดังนั้น AES-256 (รหัส AES ที่มีความยาวคีย์ 256 บิต) จึงถือว่าแข็งแรงกว่า AES-128 โปรดทราบว่าฉันพูดปกติเพราะเรากำลังเผชิญกับคณิตศาสตร์ที่ซับซ้อนมากที่นี่ (ดูบันทึกของฉันใน AES ในภายหลัง).

หมายเหตุ Icon2 01 150X150

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

การเปรียบเทียบขนาดของคีย์

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

หมายเหตุ Icon2 01 150X150

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

เราจะพูดถึง ciphers หลักที่ใช้โดยโปรโตคอล VPN ต่าง ๆ ในภายหลังเล็กน้อย แต่ ciphers ที่พบบ่อยที่สุดที่คุณน่าจะพบคือ Blowfish และ AES นอกจากนี้ RSA ยังใช้ในการเข้ารหัสและถอดรหัสคีย์ของรหัสและ SHA-1 หรือ SHA-2 ใช้เป็นฟังก์ชันแฮชเพื่อตรวจสอบข้อมูล.

การเข้ารหัสแบบอสมมาตรการเข้ารหัส Asymmestric

Perfect Forward Secrecy

Perfect Forward Secrecy (PFS) ยังเรียกว่าการใช้คีย์การเข้ารหัสชั่วคราวหรือเพียงแค่ส่งต่อความลับ (FS) โดยผู้ที่ไม่สบายใจกับการใช้คำว่า“ สมบูรณ์แบบ”

การสื่อสารออนไลน์ที่ปลอดภัยที่ทันสมัยที่สุดอาศัย SSL / TLS มันถูกใช้โดยเว็บไซต์ HTTPS และโปรโตคอล OpenVPN TLS (Transport Layer Security) เป็นโปรโตคอลการเข้ารหัสแบบอสมมาตร การใช้การเข้ารหัสแบบอสมมาตรหมายความว่าข้อมูลมีความปลอดภัยโดยใช้กุญแจสาธารณะซึ่งทุกคนสามารถใช้งานได้ มันสามารถถอดรหัสได้ แต่โดยผู้รับที่ตั้งใจที่ถือกุญแจส่วนตัวที่ถูกต้อง.

คีย์ส่วนตัวนี้จะต้องถูกเก็บเป็นความลับ หากถูกขโมยหรือแตกโดยฝ่ายตรงข้ามฝ่ายตรงข้ามสามารถขัดขวางและอ่านการสื่อสารใด ๆ.

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

คีย์การเข้ารหัสลับส่วนตัวนี้จึงกลายเป็น“ คีย์หลัก” ที่สามารถใช้เพื่อปลดล็อกการสื่อสารทั้งหมดกับเซิร์ฟเวอร์หรือ บริษัท เป็นที่รู้กันว่าเอ็นเอสเอใช้ประโยชน์จากจุดอ่อนนี้เพื่อรวบรวมรีมที่ปลอดภัยของข้อมูลที่คาดคะเน.

การแก้ปัญหาคือ Perfect Forward Secrecy นี่คือระบบที่สร้างคีย์การเข้ารหัสส่วนตัวใหม่ที่ไม่ซ้ำใครสำหรับแต่ละเซสชัน มันเป็นความคิดที่เรียบง่ายแม้ว่าคณิตศาสตร์การแลกเปลี่ยนของ Diffie-Hellman นั้นซับซ้อน หมายความว่าแต่ละเซสชัน TLS มีชุดคีย์ของตนเอง ดังนั้นคำว่า "กุญแจชั่วคราว" - มันถูกใช้เพียงครั้งเดียวแล้วหายไป.

ดังนั้นจึงไม่มี "คีย์หลัก" ที่สามารถใช้ประโยชน์ได้ แม้ว่าเซสชั่นจะถูกทำลายมันเป็นเพียงเซสชั่นที่เป็นอันตราย - ไม่ช่วงอื่น ๆ ทั้งหมดที่มีกับเซิร์ฟเวอร์หรือ บริษัท นั้น!

แม้ว่าจะผิดปกติ แต่ก็เป็นไปได้ที่จะรีเฟรชคีย์ PFS ภายในเซสชัน (ตัวอย่างเช่นทุกชั่วโมง) วิธีนี้จะ จำกัด จำนวนข้อมูลที่ฝ่ายตรงข้ามสามารถดักจับแม้ว่าคีย์ส่วนตัวจะถูกบุกรุก.

เมื่อฉันเขียนบทความเกี่ยวกับเรื่องนี้เมื่อไม่กี่ปีที่ผ่านมาการใช้ Perfect Forward Secrecy สำหรับทั้งเว็บไซต์ HTTPS และการเชื่อมต่อ OpenVPN นั้นหาได้ยากมาก โชคดีที่สถานการณ์นี้มีการเปลี่ยนแปลงบ้าง แม้ว่าจะไม่เป็นสากล แต่การใช้กุญแจชั่วคราวได้เพิ่มขึ้นอย่างมากในช่วงปลายปี.

โปรโตคอลการเข้ารหัส VPN

โปรโตคอล VPN เป็นชุดคำสั่ง (กลไก) ที่ใช้ในการเจรจาการเชื่อมต่อที่เข้ารหัสลับอย่างปลอดภัยระหว่างคอมพิวเตอร์สองเครื่อง จำนวนโปรโตคอล VPN ดังกล่าวมักได้รับการสนับสนุนโดยบริการ VPN เชิงพาณิชย์ สิ่งที่น่าสังเกตมากที่สุดคือ PPTP, L2TP / IPSec, OpenVPN, SSTP และ IKEv2.

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

PPTP

ข้อดี

  • ลูกค้าสร้างขึ้นเพื่อเกือบทุกแพลตฟอร์ม
  • ติดตั้งง่ายมาก

ข้อเสีย

  • ไม่ปลอดภัยมาก
  • ทำลายโดย NSA อย่างแน่นอน
  • บล็อกได้ง่าย

PPTP คืออะไร?

มันเป็นโปรโตคอล VPN เท่านั้นและอาศัยวิธีการตรวจสอบความถูกต้องต่างๆเพื่อให้ความปลอดภัย ในบรรดาผู้ให้บริการ VPN เชิงพาณิชย์นี่เป็น MS-CHAP v2 เกือบจะตลอดไป โปรโตคอลการเข้ารหัส (คล้ายกับรหัสมาตรฐาน) ที่ PPTP ใช้คือ Microsoft การเข้ารหัสแบบจุดต่อจุด (MPPE).

โปรโตคอลแบบจุดต่อจุด (PPTP) ได้รับการพัฒนาโดยกิจการร่วมค้าที่ก่อตั้งโดย Microsoft สำหรับการสร้าง VPN ผ่านเครือข่ายผ่านสายโทรศัพท์ ดังนั้น PPTP จึงเป็นโปรโตคอลมาตรฐานสำหรับเครือข่าย VPN ในองค์กรมายาวนาน.

PPTP มีให้บริการตามมาตรฐานบนทุกแพลตฟอร์มและอุปกรณ์ที่รองรับ VPN ง่ายต่อการติดตั้งโดยไม่จำเป็นต้องติดตั้งซอฟต์แวร์เพิ่มเติม สิ่งนี้ทำให้มั่นใจได้ว่า PPTP ยังคงเป็นตัวเลือกยอดนิยมทั้งสำหรับ VPN ธุรกิจและบริการ VPN เชิงพาณิชย์.

นอกจากนี้ยังมีข้อได้เปรียบในการกำหนดค่าใช้จ่ายในการคำนวณที่ต่ำในการติดตั้ง ... ดังนั้นจึงรวดเร็ว!

น่าเสียดายที่ PPTP ไม่ปลอดภัย เลย แม้ว่าตอนนี้มักจะพบเพียงการใช้คีย์เข้ารหัส 128 บิต แต่ในปีที่ผ่านมานับเป็นครั้งแรกที่มาพร้อมกับ Windows 95 OSR2 ย้อนกลับไปในปี 1999 มีช่องโหว่ด้านความปลอดภัยจำนวนหนึ่งปรากฏขึ้น.

สิ่งที่ร้ายแรงที่สุดคือความเป็นไปได้ของการตรวจสอบสิทธิ์ MS-CHAP v2 แบบไม่มีการห่อหุ้ม การใช้ประโยชน์จากวิธีนี้ทำให้ PPTP ได้รับการถอดรหัสภายในสองวัน Microsoft ได้ทำการแก้ไขข้อบกพร่องแล้ว แต่ได้ออกคำแนะนำให้ใช้ L2TP / IPsec หรือ SSTP แทน.

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

PPTP ต้องการทั้งพอร์ต TCP 1723 และโปรโตคอล GRE มันง่ายต่อการไฟร์วอลล์ GRE ซึ่งทำให้ง่ายต่อการบล็อกการเชื่อมต่อ PPTP.

L2TP / IPsec

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

L2TP และ IPsec คืออะไร?

Layer 2 Tunneling Protocol (L2TP) สร้างขึ้นในเกือบทุกระบบปฏิบัติการที่ทันสมัยและอุปกรณ์ที่รองรับ VPN ดังนั้นจึงเป็นเรื่องง่ายและรวดเร็วในการตั้งค่าเป็น PPTP.

ด้วยตัวเอง L2TP ไม่ได้ให้การเข้ารหัสหรือการรักษาความลับกับการรับส่งข้อมูลที่ผ่านมันจึงมักจะดำเนินการกับชุดตรวจสอบ IPsec (L2TP / IPsec) แม้ว่าผู้ให้บริการจะอ้างถึง L2TP หรือ IPsec (อย่างใดอย่างหนึ่ง) แต่ก็หมายถึง L2TP / IPSec.

L2TP / IPsec สามารถใช้ 3DES หรือ AES ciphers 3DES มีความเสี่ยงที่จะพบการโจมตีแบบปะทะตรงกลางและ Sweet32 ดังนั้นในทางปฏิบัติคุณไม่น่าจะพบเจอในวันนี้.

ปัญหาอาจเกิดขึ้นเนื่องจากโปรโตคอล L2TP / IPSec ใช้พอร์ตจำนวน จำกัด เท่านั้น สิ่งนี้สามารถทำให้เกิดปัญหาแทรกซ้อนเมื่อใช้งานหลังไฟร์วอลล์ NAT การพึ่งพาพอร์ตคงที่นี้ทำให้โปรโตคอลค่อนข้างง่ายต่อการบล็อก.

L2TP / IPsec สรุปข้อมูลสองครั้งซึ่งทำให้ช้าลง นี่คือการชดเชยด้วยความจริงที่ว่าการเข้ารหัส / ถอดรหัสเกิดขึ้นในเคอร์เนลและ L2TP / IPsec ช่วยให้หลายเธรด OpenVPN ไม่ได้ ผลลัพธ์คือ L2TP / IPsec เร็วกว่าในทางทฤษฎีมากกว่า OpenVPN.

L2TP / IPsec ที่ใช้การเข้ารหัส AES ไม่มีช่องโหว่ที่สำคัญที่ทราบกันอยู่และหากการติดตั้งอย่างถูกต้องอาจยังคงปลอดภัย อย่างไรก็ตามการเปิดเผยของ Edward Snowden ได้บอกใบ้อย่างชัดเจนถึงมาตรฐานที่ NSA ประนีประนอม.

John Gilmore เป็นผู้เชี่ยวชาญด้านความปลอดภัยและเป็นสมาชิกผู้ก่อตั้งมูลนิธิ Electronic Frontier Foundation เขาอธิบายว่ามีโอกาสที่ IPSec จะอ่อนตัวลงอย่างจงใจระหว่างขั้นตอนการออกแบบ.

ปัญหาที่ใหญ่กว่านั้นคือบริการ VPN จำนวนมากใช้ L2TP / IPsec ไม่ดี โดยเฉพาะพวกเขาใช้คีย์ที่แชร์ล่วงหน้า (PSKs) ที่สามารถดาวน์โหลดได้อย่างอิสระจากเว็บไซต์ของพวกเขา.

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

หมายเหตุ Icon2 01 150X150

สรุป

แม้จะมีปัญหาทางทฤษฎีส่วนใหญ่ L2TP / IPsec โดยทั่วไปถือว่าปลอดภัยหากไม่ได้ใช้คีย์ที่แบ่งปันล่วงหน้าที่เผยแพร่อย่างเปิดเผย ความเข้ากันได้ในตัวกับอุปกรณ์จำนวนมากสามารถทำให้เป็นตัวเลือกที่ดีมาก.

ข้อดี

  • ปลอดภัยมาก
  • รวมเข้ากับ Windows อย่างสมบูรณ์
  • ฝ่ายสนับสนุนของ Microsoft
  • สามารถข้ามไฟร์วอลล์ส่วนใหญ่ได้

ข้อเสีย

  • มาตรฐานที่เป็นกรรมสิทธิ์ของ Microsoft

SSTP คืออะไร?

SSTP เป็นประเภทของการเข้ารหัสที่ใช้ SSL 3.0 และมีข้อได้เปรียบคล้ายกับ OpenVPN ซึ่งรวมถึงความสามารถในการใช้ TCP พอร์ต 443 เพื่อหลบเลี่ยงการเซ็นเซอร์ การผสานอย่างแน่นหนากับ Windows สามารถทำให้ใช้งานง่ายขึ้นและมีเสถียรภาพมากกว่า OpenVPN บนแพลตฟอร์มนั้น.

ต่างจาก OpenVPN อย่างไรก็ตาม SSTP เป็นมาตรฐานที่เป็นกรรมสิทธิ์ของ Microsoft ซึ่งหมายความว่ารหัสไม่ได้เปิดให้มีการตรวจสอบสาธารณะ ประวัติความเป็นมาของ Microsoft ในการร่วมมือกับ NSA และการเก็งกำไรเกี่ยวกับแบ็คดอร์ที่เป็นไปได้ในระบบปฏิบัติการ Windows ไม่ได้สร้างแรงบันดาลใจให้เกิดความมั่นใจในมาตรฐาน.

Secure Socket Tunneling Protocol (SSTP) เปิดตัวโดย Microsoft ใน Windows Vista SP1 แม้ว่าตอนนี้จะใช้งานได้กับ Linux และแม้แต่ Mac OS X แต่ก็ยังคงเป็นแพลตฟอร์มสำหรับ Windows เท่านั้น.

ปัญหาอื่นคือ SSL v3.0 มีความเสี่ยงต่อสิ่งที่เรียกว่าการโจมตี POODLE ดังนั้นจึงไม่แนะนำในขณะนี้ ไม่ว่าปัญหานี้จะส่งผลกระทบต่อ SSTP หรือไม่ แต่ก็เป็นอีกครั้งที่สร้างความมั่นใจ.

หมายเหตุ Icon2 01 150X150

สรุป

บนกระดาษ SSTP นำเสนอข้อดีมากมายของ OpenVPN อย่างไรก็ตามการเป็นมาตรฐาน Microsoft ที่เป็นกรรมสิทธิ์นั้นได้ทำลายความน่าเชื่อถือของตนอย่างรุนแรง.

IKEv2

ข้อดี

  • รวดเร็ว
  • มีเสถียรภาพ - โดยเฉพาะเมื่อเปลี่ยนเครือข่ายหรือเชื่อมต่อใหม่หลังจากการเชื่อมต่ออินเทอร์เน็ตขาดหาย
  • ปลอดภัย (ถ้าใช้ AES)
  • ติดตั้งง่าย (อย่างน้อยตอนท้ายผู้ใช้!)
  • รองรับโปรโตคอลบนอุปกรณ์ Blackberry

ข้อเสีย

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

IKEv2 คืออะไร?

Internet Key Exchange เวอร์ชัน 2 (IKEv2) ได้รับการพัฒนาร่วมกันโดย Microsoft และ Cisco ได้รับการสนับสนุนโดยอุปกรณ์ Windows 7+, Blackberry และ iOS นี่คือเหตุผลที่บริการ iOS VPN จำนวนมากใช้ IKEv2 แทน OpenVPN.

IKEv2 เวอร์ชันที่พัฒนาขึ้นอย่างอิสระได้รับการพัฒนาสำหรับ Linux และระบบปฏิบัติการอื่น ๆ การทำซ้ำเหล่านี้จำนวนมากเป็นโอเพนซอร์ส เช่นเคยฉันขอแนะนำให้ระมัดระวังสิ่งที่ Microsoft พัฒนาขึ้น อย่างไรก็ตามเวอร์ชันโอเพนซอร์สของ IKEv2 ไม่ควรมีปัญหาใด ๆ.

IKEv2 เป็นส่วนหนึ่งของชุดโปรโตคอล IPsec ช่วยให้มั่นใจได้ว่าทราฟฟิกจะปลอดภัยโดยการส่งมอบแอตทริบิวต์ SA (Security Association) ภายใน IPsec และปรับปรุง IKEv1 ในหลาย ๆ ด้าน IKEv2 จึงบางครั้งเรียกว่า IKEv2 / IPsec ในทางกลับกัน IKEv1 มักถูกเรียกง่ายๆว่า IPsec.

VPN ที่ถูกขนานนามโดย Microsoft นั้น IKEv2 นั้นดีเป็นพิเศษในการสร้างการเชื่อมต่อ VPN อีกครั้งโดยอัตโนมัติเมื่อผู้ใช้ขาดการเชื่อมต่ออินเทอร์เน็ตชั่วคราว ตัวอย่างเช่นเมื่อเข้าหรือออกจากอุโมงค์รถไฟ.

เนื่องจากรองรับโปรโตคอล Mobility และ Multihoming (MOBIKE), IKEv2 จึงมีความยืดหยุ่นสูงต่อการเปลี่ยนเครือข่าย สิ่งนี้ทำให้ IKEv2 เป็นตัวเลือกที่ยอดเยี่ยมสำหรับผู้ใช้โทรศัพท์มือถือที่สลับไปมาระหว่าง WiFi ที่บ้านและการเชื่อมต่อมือถือเป็นประจำหรือผู้ที่ย้ายฮอตสปอตเป็นประจำ.

IKEv2 นั้นไม่ธรรมดาเท่ากับ L2TP / IPSec เนื่องจากรองรับบนแพลตฟอร์มที่น้อยกว่า (แม้ว่าสถานการณ์นี้กำลังเปลี่ยนแปลงอย่างรวดเร็ว) อย่างไรก็ตามอย่างน้อยก็ถือว่าดีถ้าไม่ดีกว่า L2TP / IPsec ในแง่ของความปลอดภัยประสิทธิภาพ (ความเร็ว) ความเสถียรและความสามารถในการสร้างการเชื่อมต่อ (และสร้างใหม่).

OpenVPN

ข้อดี

  • ปลอดภัยมาก (ถ้าใช้ PFS)
  • กำหนดสูง
  • โอเพ่นซอร์ส
  • สามารถข้ามไฟร์วอลล์ได้
  • ต้องการซอฟต์แวร์ของบุคคลที่สาม

OpenVPN คืออะไร?

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

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

นักพัฒนาและผู้สนับสนุนหลายคนในโครงการ OpenVPN ยังทำงานให้กับ OpenVPN Technologies Inc. ซึ่งดูแลโครงการ.

OpenVPN ทำงานได้ดีที่สุดบนพอร์ต UDP แต่สามารถตั้งค่าให้ทำงานบนพอร์ตใดก็ได้ (ดูบันทึกย่อในภายหลัง) ซึ่งรวมถึง TCP พอร์ต 443 ซึ่งใช้โดยทราฟฟิก HTTPS ปกติ การใช้ OpenVPN ผ่านพอร์ต TCP 443 ทำให้ยากที่จะบอกการเชื่อมต่อ VPN นอกเหนือจากการเชื่อมต่อที่ปลอดภัยที่ใช้โดยธนาคารบริการอีเมลและผู้ค้าปลีกออนไลน์ สิ่งนี้ทำให้ OpenVPN บล็อกยากมาก.

ข้อดีอีกอย่างของ OpenVPN ก็คือไลบรารี OpenSSL ที่ใช้ในการจัดเตรียมการเข้ารหัสรองรับตัวเลขจำนวนหนึ่ง อย่างไรก็ตามในทางปฏิบัติมีเพียง Blowfish และ AES เท่านั้นที่ใช้กันโดยบริการ VPN เชิงพาณิชย์ ฉันพูดถึงเหล่านี้ด้านล่าง.

ในแง่ของข้อมูลที่ได้รับจาก Edward Snowden ดูเหมือนว่าตราบใดที่มีการใช้ Perfect Forward Secrecy ดังนั้น OpenVPN จะไม่ถูกทำลายหรือถูกทำให้อ่อนแอโดย NSA.

การตรวจสอบ crowdsourced เมื่อเร็ว ๆ นี้ของ OpenVPN เสร็จสมบูรณ์แล้วและอีกรายการหนึ่งได้รับทุนจาก Private Internet Access ไม่พบช่องโหว่ร้ายแรงที่ส่งผลต่อความเป็นส่วนตัวของผู้ใช้ มีการค้นพบช่องโหว่สองแห่งที่ทำให้เซิร์ฟเวอร์ OpenVPN อาจเปิดเพื่อโจมตี Denial of Service (DoS) แต่สิ่งเหล่านี้ได้รับการแก้ไขใน OpenVPN 2.4.2.

OpenVPN มักจะถือเป็นโปรโตคอล VPN ที่ปลอดภัยที่สุดที่มีอยู่และได้รับการสนับสนุนอย่างกว้างขวางทั่วทั้งอุตสาหกรรม VPN ดังนั้นฉันจะหารือเกี่ยวกับการเข้ารหัส OpenVPN ในรายละเอียดด้านล่าง.

การเข้ารหัส OpenVPN

การเข้ารหัส OpenVPN ประกอบด้วยสองส่วน ได้แก่ การเข้ารหัสช่องสัญญาณข้อมูลและการเข้ารหัสช่องสัญญาณควบคุม การเข้ารหัสช่องสัญญาณข้อมูลใช้เพื่อรักษาความปลอดภัยข้อมูลของคุณ การเข้ารหัสช่องสัญญาณควบคุมทำให้การเชื่อมต่อระหว่างคอมพิวเตอร์ของคุณกับเซิร์ฟเวอร์ VPN ปลอดภัย.

การป้องกันใด ๆ นั้นแข็งแกร่งพอ ๆ กับจุดที่อ่อนแอที่สุดดังนั้นจึงเป็นเรื่องน่าเสียดายที่ผู้ให้บริการ VPN บางรายใช้การเข้ารหัสที่แข็งแกร่งกว่าในช่องสัญญาณหนึ่งมากกว่าอีกช่องสัญญาณหนึ่ง (โดยปกติจะแข็งแกร่งกว่าบนช่องสัญญาณควบคุม).

ยกตัวอย่างเช่นไม่ใช่เรื่องแปลกที่จะเห็นบริการ VPN ที่โฆษณาว่าใช้รหัส AES-256 พร้อมการเข้ารหัส handshake RSA-4096 และการรับรองความถูกต้องแฮช SHA-512 สิ่งนี้ฟังดูน่าประทับใจมากจนกระทั่งคุณรู้ว่ามันอ้างถึงการควบคุมการเข้ารหัสช่องเท่านั้นไม่ใช่ช่องข้อมูลซึ่งถูกเข้ารหัสด้วยเพียง Blowfish-128 พร้อมการรับรองความถูกต้องแฮช SHA1 สิ่งนี้ทำเพื่อเหตุผลทางการตลาดเท่านั้น.

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

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

การเข้ารหัสช่องสัญญาณควบคุมนั้นเรียกว่าการเข้ารหัส TLS เนื่องจาก TLS เป็นเทคโนโลยีที่ใช้ในการเจรจาการเชื่อมต่อระหว่างคอมพิวเตอร์ของคุณกับเซิร์ฟเวอร์ VPN อย่างปลอดภัย นี่เป็นเทคโนโลยีเดียวกับที่เบราว์เซอร์ของคุณใช้เพื่อเจรจาการเชื่อมต่อกับเว็บไซต์ที่เข้ารหัสด้วย HTTPS อย่างปลอดภัย.

  • การเข้ารหัสช่องสัญญาณควบคุมประกอบด้วยรหัสเข้ารหัสการจับมือกันและการรับรองความถูกต้องของแฮช.
  • การเข้ารหัสช่องสัญญาณข้อมูลประกอบด้วยการตรวจสอบรหัสและแฮช.

ผู้ให้บริการ VPN มักใช้การเข้ารหัสในระดับเดียวกันสำหรับทั้งช่องควบคุมและข้อมูล ในการตรวจสอบและตาราง "สัญญาณไฟจราจร" ของเราเราจะแสดงรายการแยกต่างหากหากมีการใช้ค่าต่างกันสำหรับแต่ละช่อง.

หากเราระบุว่าผู้ให้บริการใช้รหัส AES-256 นั่นหมายความว่ารหัส AES-256 จะใช้สำหรับทั้งช่องสัญญาณควบคุมและข้อมูล *

(* ควรเป็นกรณีนี้อย่างน้อยความเห็นดั้งเดิมบางอย่างไม่เป็นไปตามแนวทางปฏิบัติในปัจจุบันของเรา.

ยันต์

OpenVPN สามารถใช้รหัสยันต์จำนวนหนึ่งเพื่อรักษาความปลอดภัยข้อมูลทั้งในส่วนควบคุมและช่องสัญญาณข้อมูล ในทางปฏิบัติผู้ให้บริการ VPN ที่ใช้ในเชิงพาณิชย์เพียงคนเดียวคือ Blowfish, AES และ Camellia (ไม่ค่อยมี).

ปักเป้า

Blowfish-128 เป็นรหัสลับเริ่มต้นที่ใช้โดย OpenVPN ขนาดคีย์สามารถในช่วงทฤษฎีจาก 32 บิตถึง 448 บิต แต่ Blowfish-128 เป็นรุ่นเดียวที่คุณมีแนวโน้มที่จะพบในป่า.

ปักเป้ามักจะถือว่าปลอดภัยเพียงพอสำหรับการใช้งานทั่วไป แต่ก็มีจุดอ่อนที่รู้จัก มันถูกสร้างขึ้นโดยผู้เขียนรหัสที่มีชื่อเสียง Bruce Schneier ซึ่งในปี 2550 กล่าวว่า“ ถึงจุดนี้ แต่ฉันก็ยังประหลาดใจที่มันยังถูกใช้อยู่”

ในมุมมองของเราการใช้ Blowfish-128 นั้นเป็นที่ยอมรับในการป้องกันแนวที่สองในช่องข้อมูลของ OpenVPN อย่างไรก็ตามไม่ควรถือว่าปลอดภัยเมื่อใช้กับช่องสัญญาณควบคุม.

AES

AES ได้กลายเป็นรหัสมาตรฐาน symmetric-key“ รหัสมาตรฐานทองคำ” ทั่วทั้งอุตสาหกรรม AES ได้รับการรับรองจาก NIST และมีความปลอดภัยในระดับสากล รัฐบาลสหรัฐอเมริกาใช้ AES-256 เพื่อปกป้องข้อมูล "ปลอดภัย".

ความจริงที่ว่ามันมีขนาดบล็อก 128- บิตมากกว่าขนาดบล็อก 64- บิตของ Blowfish ก็หมายความว่ามันสามารถจัดการไฟล์ขนาดใหญ่ (มากกว่า 4 GB) ได้ดีกว่า Blowfish นอกจากนี้ชุดคำสั่ง AES ยังได้รับประโยชน์จากการเร่งความเร็วฮาร์ดแวร์ในตัวบนแพลตฟอร์มส่วนใหญ่.

โดยทั่วไปแล้ว AES นั้นมีให้เลือกในขนาดคีย์ 128- บิตและ 256 บิต (AES 192- บิตนั้นยังมีอยู่) AES-128 ยังคงปลอดภัยเท่าที่ทุกคนทราบ เมื่อพิจารณาถึงสิ่งที่เรารู้เกี่ยวกับขอบเขตของมาตรฐานการเข้ารหัสของ NSA อย่างไรก็ตามผู้เชี่ยวชาญส่วนใหญ่ยอมรับว่า AES-256 ให้ความปลอดภัยที่สูงขึ้น.

เพียงเพื่อให้แน่ใจว่าไม่มีใครเคยพบเรื่องนี้ง่ายเกินไป แต่มีการถกเถียงกันเรื่องนี้ AES-128 มีกำหนดการสำคัญที่แข็งแกร่งกว่า AES-256 ซึ่งนำผู้เชี่ยวชาญที่มีชื่อเสียงบางคนให้เหตุผลว่า AES-128 นั้นแข็งแกร่งกว่า AES-256 จริง ๆ.

อย่างไรก็ตามฉันทามติทั่วไปคือ AES-256 นั้นแข็งแกร่งกว่า.

ดอกเคมีเลีย

Camellia เป็นรหัสลับที่ทันสมัยและอย่างน้อยก็ปลอดภัยและรวดเร็วเท่ากับ AES มันมีอยู่ในขนาดที่สำคัญของ 128, 192 และ 256 บิต ต้องขอบคุณการรับรอง NIST และการใช้งานโดยรัฐบาลสหรัฐอเมริกาอย่างไรก็ตาม AES มักถูกนำมาใช้แทน Camellia.

แต่เมื่อฉันพูดถึงด้านล่างมีเหตุผลที่จะไม่ไว้วางใจยันต์ที่ได้รับการรับรองโดย NIST ความจริงที่ว่า Camellia เป็นตัวเลขที่ไม่ใช่ NIST เป็นเหตุผลหลักในการเลือก AES อย่างไรก็ตามตัวเลือกนี้มีให้บริการน้อยมาก.

นอกจากนี้ยังเป็นที่น่าสังเกตว่า Camellia นั้นไม่ได้รับการทดสอบอย่างดีสำหรับความอ่อนแอเหมือน AES.

การเข้ารหัส Handshake

เพื่อเจรจาการเชื่อมต่อระหว่างอุปกรณ์ของคุณกับเซิร์ฟเวอร์ VPN อย่างปลอดภัย OpenVPN ใช้การจับมือ TLS สิ่งนี้ช่วยให้ไคลเอนต์ OpenVPN และเซิร์ฟเวอร์ VPN สามารถสร้างคีย์ลับที่ใช้สื่อสาร.

เพื่อป้องกันการจับมือกันนี้โดยปกติ TLS จะใช้ระบบเข้ารหัสสาธารณะกุญแจ RSA นี่เป็นอัลกอริธึมการเข้ารหัสและลายเซ็นดิจิทัลที่ใช้เพื่อระบุใบรับรอง TLS / SSL อย่างไรก็ตามสามารถใช้การแลกเปลี่ยนคีย์ Diffie-Hellman หรือ ECDH แทนได้.

อาร์เอส

RSA เป็นระบบเข้ารหัสแบบไม่สมมาตร - ใช้พับลิกคีย์เพื่อเข้ารหัสข้อมูล แต่ใช้ไพรเวตคีย์อื่นเพื่อถอดรหัส มันเป็นพื้นฐานของความปลอดภัยบนอินเทอร์เน็ตในช่วง 20 ปีที่ผ่านมา.

ตอนนี้เป็นที่ยอมรับแล้วว่า RSA ที่มีความยาวคีย์ 1024- บิต (RSA-1024) หรือน้อยกว่านั้นไม่ปลอดภัยและเกือบจะแน่นอนโดย NSA ดังนั้นจึงมีการเคลื่อนไหวร่วมกันระหว่าง บริษัท อินเทอร์เน็ตที่จะย้ายออกจาก RSA-1024.

น่าเสียดายที่เรายังพบว่าบริการ VPN บางอย่างยังคงใช้ RSA-1024 เพื่อป้องกันการจับมือกัน มันไม่ดี.

RSA-2048 และสูงกว่านั้นยังถือว่าปลอดภัย ด้วยตัวของมันเอง RSA ไม่ได้ให้บริการ Perfect Forward Secrecy (PFS) อย่างไรก็ตามสามารถดำเนินการได้โดยการรวมการแลกเปลี่ยนคีย์ Diffie-Hellman (DH) หรือ Elliptic curve Diffie-Hellman (ECDH) ในชุดรหัส.

ในกรณีนี้ความแข็งแรงของคีย์ DH หรือ ECDH ไม่สำคัญเท่าที่มีการใช้เพื่อมอบความลับการส่งต่อที่สมบูรณ์แบบเท่านั้น การเชื่อมต่อนั้นปลอดภัยโดยใช้ RSA.

เนื่องจากอาจทำให้เกิดความสับสนฉันจะทราบด้วยว่าระบบเข้ารหัส RSA ไม่มีส่วนเกี่ยวข้องกับ บริษัท ด้านเทคนิคที่น่าเชื่อถือของสหรัฐอเมริกา RSA Security LLC บริษัท นี้จงใจทำให้ผลิตภัณฑ์การเข้ารหัส BSAFE ลดลงอย่างจงใจหลังจากถูก NSA ติดสินบน $ 10 ล้าน.

Diffie-Hellman และ ECDH

การเข้ารหัสการจับมือกัน (คู่แข่ง) ทางเลือกที่บางครั้งใช้โดย OpenVPN คือการแลกเปลี่ยนคีย์การเข้ารหัสคีย์ Diffie-Hellman (DH) ซึ่งมักจะมีความยาวคีย์ของ 2048 บิตหรือ 4096 บิต โปรดทราบว่าควรหลีกเลี่ยงสิ่งที่น้อยกว่า DH-2048 เนื่องจากความไวต่อการโจมตีของ logjam.

ข้อได้เปรียบที่สำคัญของการจับมือ Diffie-Hellman เหนือ RSA คือมันให้ความลับการส่งต่อที่สมบูรณ์แบบ ตามที่ระบุไว้แล้วอย่างไรก็ตามเพียงแค่เพิ่มการแลกเปลี่ยนคีย์ DH ในการจับมือ RSA ทำให้ได้ผลลัพธ์ที่ใกล้เคียงกัน.

Diffie-Hellman ทำให้เกิดข้อโต้แย้งอย่างมากเกี่ยวกับการใช้หมายเลขเฉพาะจำนวน จำกัด สิ่งนี้ทำให้มีความเสี่ยงที่จะถูกฝ่ายตรงข้ามโจมตีเช่น NSA Diffie-Hellman ด้วยตัวเองดังนั้นจึงไม่ได้ทำเพื่อการเข้ารหัสการจับมือกันอย่างปลอดภัย อย่างไรก็ตามเมื่อใช้เป็นส่วนหนึ่งของชุดรหัส RSA.

รูปไข่รูปโค้ง Diffie-Hellman (ECDH) เป็นรูปแบบใหม่ของการเข้ารหัสที่ไม่เสี่ยงต่อการโจมตีนี้ นี่เป็นเพราะมันใช้คุณสมบัติของเส้นโค้งพีชคณิตชนิดหนึ่งโดยเฉพาะแทนที่จะเป็นจำนวนเฉพาะจำนวนมากเพื่อเข้ารหัสการเชื่อมต่อ.

ECDH สามารถใช้เป็นส่วนหนึ่งของ RSA handshake เพื่อให้ Perfect Forward Secrecy หรือสามารถเข้ารหัส handshake ด้วยตัวเองอย่างปลอดภัย (ด้วยลายเซ็น ECDSA) สิ่งนี้ยังให้ PFS.

ความยาวของคีย์ ECDH เริ่มต้นที่ 384 บิต สิ่งนี้ถือว่าปลอดภัย แต่เมื่อใช้ด้วยตัวเองเพื่อรักษาความปลอดภัยการจับมือ TLS ยิ่งมีความปลอดภัยมากขึ้น (ในแง่ของความปลอดภัย).

การพิสูจน์ตัวตนแฮช SHA

สิ่งนี้เรียกว่าการรับรองความถูกต้องของข้อมูลหรือรหัสการพิสูจน์ตัวตนข้อความแฮช (HMAC).

Secure Hash Algorithm (SHA) เป็นฟังก์ชั่นแฮชเข้ารหัสที่ใช้ (เหนือสิ่งอื่นใด) ในการตรวจสอบข้อมูลและการเชื่อมต่อ SSL / TLS ซึ่งรวมถึงการเชื่อมต่อ OpenVPN.

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

สิ่งนี้มีความสำคัญในการป้องกันการจู่โจมแบบ Man-in-the-middle (MitM) ซึ่งความพยายามในการเบี่ยงเบนการเชื่อมต่อ OpenVPN ของคุณไปยังเซิร์ฟเวอร์ตัวใดตัวหนึ่งแทนที่จะเป็นผู้ให้บริการ VPN ของคุณ มันสามารถทำได้เช่นโดยแฮ็คเราเตอร์ของคุณ.

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

SHA ปลอดภัยหรือไม่?

เมื่อใช้เพื่อปกป้องเว็บไซต์ HTTPS SHA-1 จะใช้งานไม่ได้ เรื่องนี้เป็นที่รู้กันมานานแล้ว ยังสามารถพบเว็บไซต์ SHA-1 ได้ แต่กำลังจะถูกเลิกใช้งาน เบราว์เซอร์ส่วนใหญ่จะออกคำเตือนเมื่อคุณพยายามเชื่อมต่อกับเว็บไซต์ที่ปลอดภัยด้วย SHA-1.

ตอนนี้แนะนำให้ใช้ฟังก์ชันแฮช SHA-2 และ SHA-3 แทนและปลอดภัย SHA-2 ประกอบด้วย SHA-256, SHA-384 และ SHA-512 อย่างไรก็ตาม ...

OpenVPN ใช้ SHA สำหรับ HMAC เท่านั้น ฉันคิดว่ามันไม่มีประโยชน์ที่จะอธิบายรายละเอียดมากเกินไป แต่การพิสูจน์ตัวตนแฮช SHA เป็นส่วนหนึ่งของอัลกอริทึม HMAC การโจมตี HMAC ที่ฝังตัวกับ SHA-1 นั้นยากกว่าการโจมตีเพียงแค่ฟังก์ชั่นแฮช SHA-1 เท่านั้นเอง.

กล่าวอีกนัยหนึ่ง HMAC SHA-1 ที่ใช้โดย OpenVPN ถือว่าปลอดภัยและมีข้อพิสูจน์ทางคณิตศาสตร์ของเรื่องนี้ แน่นอนว่า HMAC SHA-2 และ HMAC SHA-3 นั้นปลอดภัยยิ่งกว่า! ที่จริงแล้วการตรวจสอบ OpenVPN เมื่อเร็ว ๆ นี้ยอมรับว่า HMAC SHA-1 มีความปลอดภัย แต่แนะนำให้เปลี่ยนไปใช้ HMAC SHA-2 หรือ HMAC SHA-3 แทน.

หมายเหตุ

NIST

AES, RSA, SHA-1 และ SHA-2 ได้รับการพัฒนาและ / หรือรับรองโดยสถาบันมาตรฐานและเทคโนโลยีแห่งชาติสหรัฐอเมริกา (NIST) นี่คือร่างที่เข้าชมอย่างใกล้ชิดกับ NSA ในการพัฒนายันต์ของมัน.

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

แน่นอนว่า NIST ได้ปฏิเสธข้อกล่าวหาดังกล่าวอย่างยิ่ง:

“ NIST จะไม่ทำให้มาตรฐานการเข้ารหัสอ่อนแอลงโดยเจตนา”

นอกจากนี้ยังได้เชิญการมีส่วนร่วมของสาธารณชนในมาตรฐานการเข้ารหัสที่จะเกิดขึ้นอีกจำนวนหนึ่งซึ่งเป็นการเคลื่อนไหวที่ออกแบบมาเพื่อเสริมสร้างความเชื่อมั่นของประชาชน.

อย่างไรก็ตามหนังสือพิมพ์เดอะนิวยอร์กไทมส์กล่าวหาว่า NSA ของการหลีกเลี่ยงมาตรฐานการเข้ารหัสที่ได้รับการรับรองจาก NIST โดยการแนะนำแบ็คดอร์ที่ไม่สามารถตรวจจับได้หรือทำลายกระบวนการพัฒนาสาธารณะเพื่อลดขั้นตอนวิธี.

ความไม่ไว้วางใจนี้ได้รับการสนับสนุนเพิ่มเติมเมื่อ RSA Security (แผนกหนึ่งของ EMC) บอกกับลูกค้าเป็นการส่วนตัวว่าให้หยุดใช้อัลกอริทึมการเข้ารหัสซึ่งมีรายงานว่ามีข้อบกพร่องด้านวิศวกรรมที่ NSA กำหนดไว้ อัลกอริทึมนี้ได้รับการรับรองโดย NIST.

นอกจากนี้ Dual_EC_DRBG (เครื่องกำเนิดบิตแบบสุ่มกำหนดวงรีแบบ Dual Elliptic Curve) เป็นมาตรฐานการเข้ารหัสที่ออกแบบโดย NIST เป็นที่ทราบกันดีว่าไม่ปลอดภัยมานานหลายปี.

ในปี 2549 Eindhoven University of Technology ในเนเธอร์แลนด์กล่าวว่าการโจมตีมันง่ายพอที่จะเปิดตัว“ พีซีธรรมดา” วิศวกรของ Microsoft ยังตั้งค่าลับๆที่น่าสงสัยในอัลกอริทึม.

แม้จะมีข้อกังวลเหล่านี้ซึ่ง NIST เป็นผู้นำอุตสาหกรรมดังต่อไปนี้ Microsoft, Cisco, Symantec และ RSA ทั้งหมดรวมถึงอัลกอริทึมในไลบรารีการเข้ารหัสลับของผลิตภัณฑ์ นี่เป็นส่วนใหญ่เนื่องจากการปฏิบัติตามมาตรฐาน NIST เป็นข้อกำหนดเบื้องต้นในการรับสัญญาของรัฐบาลสหรัฐอเมริกา.

มาตรฐานการเข้ารหัสลับที่ได้รับการรับรองโดย NIST นั้นแพร่หลายไปทั่วโลกในทุกภาคส่วนของอุตสาหกรรมและธุรกิจที่ต้องพึ่งพาความเป็นส่วนตัว ทำให้สถานการณ์ทั้งหมดค่อนข้างหนาว.

อาจเป็นเพราะการใช้มาตรฐานเหล่านี้เป็นอย่างมากผู้เชี่ยวชาญด้านการเข้ารหัสจึงไม่เต็มใจที่จะเผชิญหน้ากับปัญหา.

AES-CBC กับ AES-GCM

จนกระทั่งเมื่อเร็ว ๆ นี้รหัสลับเฉพาะ AES ที่คุณน่าจะพบในโลก VPN คือ AES-CBC (Cipher Block Chaining) นี่หมายถึงโหมดบล็อกตัวเลขซึ่งเป็นวัตถุที่ซับซ้อนซึ่งไม่คุ้มที่จะเข้าไปที่นี่ แม้ว่า CBC ในทางทฤษฎีอาจมีช่องโหว่บางประการ แต่ฉันทามติทั่วไปคือ CBC นั้นมีความปลอดภัย แนะนำให้ใช้ CBC ในคู่มือ OpenVPN.

ตอนนี้ OpenVPN รองรับ AES-GCM (โหมด Galios / Counter).

  • GCM ให้การตรวจสอบความถูกต้องโดยไม่จำเป็นต้องใช้ฟังก์ชันแฮช HMAC SHA.
  • นอกจากนี้ยังเร็วกว่า CBC เล็กน้อยเนื่องจากใช้การเร่งความเร็วฮาร์ดแวร์ (โดยการทำเธรดไปที่โปรเซสเซอร์หลายคอร์).

AES-CBC ยังคงเป็นโหมดที่พบบ่อยที่สุดในการใช้งานทั่วไป แต่ตอนนี้เราเริ่มที่จะพบ AES-GCM "ในป่า." เมื่อพิจารณาถึงข้อดีของ GCM แนวโน้มนี้มีแนวโน้มที่จะดำเนินต่อไปเท่านั้น จากมุมมองการเข้ารหัส tho9ugh ทั้ง AES-CBC และ AES-GCM นั้นมีความปลอดภัยมาก.

OpenVPN UDP กับ OpenVPN TCP

OpenVPN สามารถเรียกใช้ผ่าน TCP (Transmission Control Protocol) หรือ UDP (User Datagram Protocol).

  • TCP = เชื่อถือได้ เมื่อใดก็ตามที่คอมพิวเตอร์ส่งแพ็คเก็ตเครือข่ายโดยใช้ TCP มันจะรอการยืนยันว่าแพ็คเก็ตมาถึงก่อนที่จะส่งแพ็คเก็ตต่อไป หากไม่ได้รับการยืนยันก็จะส่งแพ็กเก็ตอีกครั้ง สิ่งนี้เรียกว่าการแก้ไขข้อผิดพลาด มี "การจัดส่งที่รับประกัน" ของข้อมูลทั้งหมด แต่มันค่อนข้างช้า.
  • UDP = เร็ว การใช้ UDP จะไม่มีการแก้ไขข้อผิดพลาดดังกล่าว แพ็กเก็ตจะถูกส่งและรับโดยไม่มีการตอบรับหรือการลองซ้ำ ทำให้ UDP เร็วกว่า TCP มาก แต่เชื่อถือได้น้อยกว่า.

หากได้รับตัวเลือกฉันขอแนะนำให้ใช้โปรโตคอล UDP ที่เร็วกว่าเว้นแต่คุณจะประสบปัญหาการเชื่อมต่อ นี่เป็นกลยุทธ์เริ่มต้นที่ผู้ให้บริการ VPN ส่วนใหญ่นำมาใช้.

กำจัดการเซ็นเซอร์ด้วย OpenVPN บนพอร์ต TCP 443

ข้อดีอย่างหนึ่งของ OpenVPN ก็คือมันสามารถเรียกใช้ผ่านพอร์ตใดก็ได้รวมถึงพอร์ต TCP 443 นี่คือพอร์ตที่ใช้โดย HTTPS ซึ่งเป็นโปรโตคอลที่เข้ารหัสซึ่งช่วยรักษาความปลอดภัยของเว็บไซต์ที่ปลอดภัยทั้งหมด.

หากไม่มี HTTPS จะไม่มีรูปแบบของการพาณิชย์ออนไลน์เช่นการช็อปปิ้งหรือการธนาคาร ดังนั้นจึงเป็นเรื่องยากมากที่พอร์ตนี้จะถูกบล็อก.

โบนัสการรับส่งข้อมูล VPN บนพอร์ต TCP 443 สามารถกำหนดเส้นทางภายในการเข้ารหัส TLS ในลักษณะเดียวกับที่ใช้โดย HTTPS สิ่งนี้ทำให้การตรวจจับโดยใช้เทคนิค Deep Packet Inspection ขั้นสูงทำได้ยากยิ่งขึ้น ดังนั้นพอร์ต TCP 443 จึงเป็นพอร์ตที่ได้รับความนิยมสำหรับหลบเลี่ยงบล็อก VPN.

ผู้ให้บริการ VPN หลายคนเสนอความสามารถในการเปลี่ยนหมายเลขพอร์ตที่ใช้โดย OpenVPN โดยใช้ซอฟต์แวร์ที่กำหนดเอง.

แม้ว่าคุณจะไม่ได้ก็ตามผู้ให้บริการ VPN หลายรายสนับสนุน OpenVPN จริง ๆ โดยใช้พอร์ต TCP 443 ที่ระดับเซิร์ฟเวอร์ คุณสามารถสลับไปใช้งานได้ด้วยการแก้ไขไฟล์ OpenVPN (.ovpn) ของคุณ ดังนั้นจึงควรถามผู้ให้บริการ VPN เกี่ยวกับเรื่องนี้.

เป็นที่น่าสังเกตว่าวิศวกรเครือข่ายไม่ชอบวิธีการนี้เนื่องจาก TCP บน TCP ไม่มีประสิทธิภาพมากนัก อย่างไรก็ตามเมื่อพูดถึงการเอาชนะการเซ็นเซอร์.

SSTP ใช้พอร์ต TCP 443 ตามค่าเริ่มต้น.

สรุป

โปรโตคอล VPN

  • PPTP ไม่ปลอดภัยมากและควรหลีกเลี่ยง ในขณะที่ความง่ายในการติดตั้งและความเข้ากันได้ข้ามแพลตฟอร์มนั้นน่าสนใจ L2TP / IPsec มีข้อดีเหมือนกันและมีความปลอดภัยมากกว่า.
  • L2TP / IPsec เป็นโซลูชั่น VPN ที่ดีสำหรับการใช้ที่ไม่สำคัญ สิ่งนี้เป็นจริงอย่างยิ่งกับอุปกรณ์ดั้งเดิมที่ไม่รองรับ OpenVPN อย่างไรก็ตาม NSA ถูกประนีประนอมอย่างรุนแรง.
  • SSTP เสนอข้อดีส่วนใหญ่ของ OpenVPN แต่ส่วนใหญ่เป็นเพียงโปรโตคอล Windows นี่หมายความว่ามันรวมเข้ากับระบบปฏิบัติการได้ดีขึ้น แต่ผู้ให้บริการ VPN ได้รับการสนับสนุนไม่ดีเนื่องจากข้อ จำกัด นี้ นอกจากนี้ลักษณะที่เป็นกรรมสิทธิ์และความจริงที่ถูกสร้างขึ้นโดย Microsoft หมายความว่าฉันไม่เชื่อถือ.
  • IKEv2 เป็นโปรโตคอลที่ดีมาก (ปลอดภัยและรวดเร็ว) โดยเฉพาะอย่างยิ่งผู้ใช้มือถืออาจต้องการ OpenVPN เนื่องจากความสามารถในการเชื่อมต่อที่ดีขึ้นเมื่อการเชื่อมต่ออินเทอร์เน็ตหยุดชะงัก สำหรับผู้ใช้ Blackberry มันเป็นตัวเลือกเดียวที่มีอยู่ ใช้รุ่นโอเพ่นซอร์สที่เป็นไปได้.
  • OpenVPN เป็นโปรโตคอล VPN ที่แนะนำในสถานการณ์ส่วนใหญ่ มันรวดเร็วเชื่อถือได้ปลอดภัยและโอเพนซอร์ส ไม่มีข้อเสียจริง ๆ ต่อ แต่เพื่อความปลอดภัยอย่างแท้จริงมันเป็นสิ่งสำคัญที่จะดำเนินการได้ดี นี่หมายถึงการเข้ารหัสที่แข็งแกร่งพร้อม Perfect Forward Secrecy.

การเข้ารหัส OpenVPN

เมื่อพูดถึงการเข้ารหัสปีศาจอยู่ในรายละเอียด เป็นเรื่องปกติที่จะเห็นผู้ให้บริการ VPN กล่าวว่าพวกเขาใช้การเข้ารหัส AES OpenVPN แบบ "แข็งแกร่งพิเศษ 256 บิต" แต่ในความเป็นจริงแล้วสิ่งนี้ไม่ได้บอกเรามากนัก AES-256 นั้นเป็นตัวเลขที่แข็งแกร่ง แต่ถ้าแง่มุมอื่น ๆ ของชุดการเข้ารหัสที่ใช้อ่อนแอข้อมูลของคุณจะไม่ปลอดภัย.

  • ตัวเลข - สิ่งนี้ปกป้องข้อมูลจริงของคุณ AES-256 เป็นมาตรฐานอุตสาหกรรมและได้รับการแนะนำ.
  • การจับมือกัน - เป็นการรักษาความปลอดภัยการเชื่อมต่อของคุณไปยังเซิร์ฟเวอร์ VPN RSA-2048 + หรือ ECDH-384 + นั้นปลอดภัย ที่สำคัญคือการจับมือ RSA-1024 และ Diffie-Hellman ไม่.
  • การพิสูจน์ตัวจริงของแฮช - สร้างลายนิ้วมือที่ไม่ซ้ำกันซึ่งใช้ในการตรวจสอบข้อมูลและใบรับรอง TLS (นั่นคือเพื่อตรวจสอบว่าเซิร์ฟเวอร์ที่คุณกำลังเชื่อมต่ออยู่นั้นเป็นสิ่งที่คุณคิดว่าคุณกำลังเชื่อมต่อ) HMAC SHA-1 ไม่เป็นไร แต่ HMAC SHA-2 (SHA-256, SHA-384 และ SHA-512) และ HMAC SHA-3 นั้นมีความปลอดภัยมากกว่า! โปรดทราบว่าไม่จำเป็นต้องมีการตรวจสอบสิทธิ์แฮชหากใช้รหัสลับ AES-GCM.
  • Perfect Forward Secrecy (PFS) - สิ่งนี้ทำให้มั่นใจได้ว่าจะมีการสร้างคีย์การเข้ารหัสใหม่สำหรับแต่ละเซสชัน OpenVPN ไม่ควรได้รับการพิจารณาว่าปลอดภัยเว้นแต่จะมีการใช้ PFS สิ่งนี้สามารถทำได้โดยรวมการแลกเปลี่ยนคีย์ Diffie-Hellman หรือ ECDH ในการจับมือ RSA หรือการจับมือ DH หรือ ECDH.
  • การเข้ารหัสมีความปลอดภัยเท่ากับจุดอ่อนที่สุดเท่านั้น ซึ่งหมายความว่าการตั้งค่าการเข้ารหัสควรมีทั้งข้อมูลและช่องสัญญาณควบคุม.
  • การใช้ความยาวบิตที่สูงขึ้นสำหรับ ciphers และคีย์นั้นเกือบจะปลอดภัยกว่าเสมอ แต่สิ่งนี้มีค่าใช้จ่ายด้วยความเร็ว.

OpenVPN จะต่อรองรหัสระหว่างไคลเอนต์และเซิร์ฟเวอร์ตามความประสงค์ ยกเว้นว่ามีการกำหนดพารามิเตอร์ที่เฉพาะเจาะจงมาก OpenVPN อาจตั้งค่าเริ่มต้นเป็นค่าที่อ่อนแอ อย่างน้อยที่สุด OpenVPN จะกำหนดค่าเริ่มต้นเป็น Blowfish-128 cipher, RSA-1024 handshake ที่ไม่มี PFS และ HMAC SHA-1 hash authentication.

ข้อสรุป

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

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับเรื่องนี้โปรดดูคู่มือฉบับสมบูรณ์เกี่ยวกับการรั่วไหลของ IP.

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me