ช่องทางสองทิศทางในทั้งโปรโตคอลการขนส่ง Layer Security (TLS) และ Secure Shell (SSH) จัดการการเข้ารหัสข้อมูลและการถอดรหัสผ่านการรวมกันของการแลกเปลี่ยนคีย์อัลกอริทึมการเข้ารหัสและเทคนิคการจัดการเซสชันที่มั่นใจได้ว่าการสื่อสารที่ปลอดภัยทั้งสองทิศทางระหว่างไคลเอนต์และเซิร์ฟเวอร์
TLS การเข้ารหัสช่องทางและการถอดรหัสแบบสองทิศทาง
TLS ได้รับการออกแบบมาเพื่อให้ความลับและความสมบูรณ์ของการแลกเปลี่ยนข้อมูลระหว่างสองฝ่ายสื่อสารผ่านเครือข่ายเช่นไคลเอนต์และเซิร์ฟเวอร์ ช่องทางสองทิศทางช่วยให้ข้อมูลสามารถแลกเปลี่ยนได้อย่างปลอดภัยทั้งสองทิศทางพร้อมกันโดยใช้ประโยชน์จากกระบวนการเข้ารหัสหลายกระบวนการ:
- การแลกเปลี่ยนคีย์และการรับรองความถูกต้อง: การจับมือ TLS เริ่มต้นด้วยทั้งสองฝ่ายเจรจาพารามิเตอร์การเข้ารหัสลับเพื่อสร้างคีย์ที่ใช้ร่วมกันโดยไม่ส่งสัญญาณโดยตรง อัลกอริทึมการเข้ารหัสกุญแจสาธารณะเช่น RSA, Diffieâ Hellman (DH), Ephemeral Diffieâ Hellman (DHE), รูปไข่-เส้นโค้งDiffieâ Hellman (ECDHE) และอื่น ๆ ที่ใช้เพื่อสร้างคีย์ลับที่ใช้ร่วมกันอย่างปลอดภัย คีย์นี้ไม่ได้ส่งผ่านเครือข่ายโดยตรง แต่ได้มาอย่างอิสระจากทั้งสองฝ่ายหลังจากแลกเปลี่ยนค่านิยมสาธารณะที่จำเป็น ในระหว่างการจับมือกันนี้เซิร์ฟเวอร์มักจะรับรองความถูกต้องกับไคลเอนต์ผ่านใบรับรองการตรวจสอบความถูกต้องซึ่งกันและกันจะเสร็จสิ้น การจับมือยังเห็นด้วยกับชุดรหัสที่กำหนดอัลกอริทึมการเข้ารหัสที่ใช้สำหรับการเข้ารหัสข้อมูลจำนวนมาก กระบวนการนี้ให้ทั้งการรับรองความถูกต้องและความลับในขั้นตอนข้อตกลงสำคัญ
- การเข้ารหัสแบบสมมาตรสำหรับการถ่ายโอนข้อมูล: หลังจากคีย์ลับที่ใช้ร่วมกันถูกสร้างขึ้นผ่านการจับมือกัน TLS จะเปลี่ยนเป็นการเข้ารหัสแบบสมมาตรเพื่อป้องกันข้อความจริงที่แลกเปลี่ยนในเซสชัน เนื่องจากอัลกอริทึมการเข้ารหัสแบบสมมาตรมีประสิทธิภาพในการคำนวณจึงอนุญาตให้มีการเข้ารหัสแบบเรียลไทม์และถอดรหัสทั้งสองทิศทาง อัลกอริธึมการเข้ารหัสแบบสมมาตรทั่วไปที่ใช้ใน TLS ได้แก่ AES (มาตรฐานการเข้ารหัสขั้นสูง), Chacha20 และอื่น ๆ ทั้งสองฝ่ายใช้คีย์เซสชันเดียวกันเพื่อเข้ารหัสขาออกและถอดรหัสสตรีมข้อมูลที่เข้ามาเพื่อให้มั่นใจว่าการรักษาความลับแบบสองทิศทาง
- ความสมบูรณ์ของข้อมูลและการรับรองความถูกต้อง: TLS รวมรหัสการรับรองความถูกต้องของข้อความ (MACs) หรือโหมดการเข้ารหัสที่ผ่านการรับรองความถูกต้องเช่น AES-GCM (โหมด Galois/Counter) เพื่อให้แน่ใจว่ามีความสมบูรณ์ของข้อความและความถูกต้อง สิ่งนี้รับประกันได้ว่าจะตรวจพบการดัดแปลงข้อความใด ๆ ในทิศทางใดทิศทางหนึ่ง
- ลักษณะสองทิศทาง: ช่อง TLS เป็นแบบสองทิศทางโดยเนื้อแท้ซึ่งหมายความว่าจุดปลายทั้งสองสามารถส่งและรับข้อมูลที่เข้ารหัสพร้อมกัน กระบวนการเข้ารหัสและถอดรหัสจะถูกสะท้อนที่ปลายทั้งสองโดยใช้คีย์สมมาตรที่กำหนดไว้ทำให้การสื่อสารแบบสองทางที่ราบรื่นและราบรื่น
- Forward Secrecy: รูปแบบที่ทันสมัยของ TLS ใช้คีย์ชั่วคราวกับ DHE หรือ ECDHE ซึ่งสร้างคีย์ต่อเซสชั่นที่ให้ความลับไปข้างหน้า ซึ่งหมายความว่าแม้ว่าคีย์ระยะยาวจะถูกบุกรุก แต่ช่วงการสื่อสารที่ผ่านมาก็ยังคงปลอดภัย
- การเริ่มต้นเซสชัน: เพื่อปรับปรุงประสิทธิภาพมากกว่าเซสชันซ้ำ TLS สนับสนุนการเริ่มต้นเซสชันใหม่ซึ่งคีย์เซสชันหรือตัวระบุก่อนหน้านี้จะถูกนำกลับมาใช้ใหม่เพื่อหลีกเลี่ยงการจับมือกันอย่างเต็มรูปแบบในขณะที่รักษาความปลอดภัยซึ่งใช้กับการไหลของข้อมูลที่เข้ารหัสแบบสองทิศทาง
การเข้ารหัสช่องทางและการถอดรหัสแบบสองทิศทาง SSH
SSH ให้บริการการเข้าสู่ระบบระยะไกลที่ปลอดภัยและบริการเครือข่ายที่ปลอดภัยอื่น ๆ ผ่านเครือข่ายที่ไม่ปลอดภัย ช่องทางสองทิศทางยังช่วยให้มั่นใจว่าข้อมูลจะถูกเข้ารหัสและถอดรหัสอย่างปลอดภัยทั้งเมื่อส่งและรับ:
- โปรโตคอลการแลกเปลี่ยนคีย์: คล้ายกับ TLS, SSH เริ่มต้นด้วยกลไกการแลกเปลี่ยนคีย์เพื่อสร้างคีย์ลับที่ใช้ร่วมกันที่ใช้สำหรับการเข้ารหัสเซสชัน โดยทั่วไปจะใช้อัลกอริทึมการแลกเปลี่ยนคีย์ Diffie-Hellman เซิร์ฟเวอร์แสดงคีย์โฮสต์สาธารณะซึ่งไคลเอนต์ตรวจสอบเพื่อตรวจสอบความถูกต้องของเซิร์ฟเวอร์ก่อนดำเนินการต่อ ทั้งสองฝ่ายใช้อัลกอริทึมที่ตกลงกันไว้เพื่อสร้างคีย์ลับที่ใช้ร่วมกันอย่างอิสระ
- การเข้ารหัสแบบอสมมาตรสำหรับการตรวจสอบความถูกต้อง: แตกต่างจากการเข้ารหัสแบบสมมาตรที่ใช้สำหรับข้อมูลจำนวนมากปุ่มไม่สมมาตรใน SSH ให้บริการการตรวจสอบโดยเฉพาะ คีย์ส่วนตัวในคู่อสมมาตรเหล่านี้ยังคงเป็นความลับและใช้เพื่อพิสูจน์ตัวตน แต่การเข้ารหัสข้อมูลจำนวนมากใช้คีย์สมมาตร
- การเข้ารหัสแบบสมมาตรของการสื่อสาร: หลังจากขั้นตอนการแลกเปลี่ยนคีย์และเฟสการตรวจสอบสิทธิ์ SSH สลับเป็นอัลกอริทึมการเข้ารหัสแบบสมมาตรสำหรับการส่งข้อมูลที่ปลอดภัยผ่านช่องทางสองทิศทาง SSH รองรับ ciphers แบบสมมาตรหลายตัวเช่น AES, 3DES, Blowfish, Cast128 และ Arcfour ทั้งไคลเอนต์และเซิร์ฟเวอร์ใช้คีย์เดียวกันเพื่อเข้ารหัสข้อมูลขาออกและถอดรหัสข้อมูลที่เข้ามาทำให้การสื่อสารที่ปลอดภัยเต็มรูปแบบ
- ความสมบูรณ์และการบีบอัด: เพื่อให้แน่ใจว่าข้อความจะไม่ถูกดัดแปลงด้วยการขนส่ง SSH ใช้ฟังก์ชั่นแฮช cryptographic เพื่อสร้างรหัสการรับรองความถูกต้องข้อความ (MACs) หรือใช้โหมดการเข้ารหัสที่ผ่านการรับรองความถูกต้อง นอกจากนี้อาจมีการบีบอัดเพื่อเพิ่มประสิทธิภาพการส่งผ่าน
- ฟังก์ชั่นช่องทางแบบสองทิศทาง: การเชื่อมต่อ SSH สร้างอุโมงค์หรือช่องทางที่ปลอดภัยซึ่งเป็นแบบสองทิศทางรองรับการส่งและรับข้อมูลพร้อมการเข้ารหัสและถอดรหัสที่เกิดขึ้นพร้อมกันทั้งในด้านไคลเอนต์และเซิร์ฟเวอร์ สิ่งนี้อนุญาตให้ดำเนินการคำสั่งที่ปลอดภัยการถ่ายโอนไฟล์ (ผ่าน SFTP) และการส่งต่อพอร์ตทั้งหมดดำเนินการผ่านช่องทางที่เข้ารหัส
- การควบคุมการไหลและการจัดการข้อผิดพลาด: ช่อง SSH รวมถึงกลไกการควบคุมการไหลที่จัดการอัตราการส่งข้อมูลในทั้งสองทิศทางการปรับสำหรับเงื่อนไขเครือข่ายและสร้างความมั่นใจในการสื่อสารที่เชื่อถือได้
ลักษณะที่ใช้ร่วมกันของช่องทางสองทิศทาง TLS และ SSH
- ทั้งสองใช้การจับมือกันเริ่มต้นเพื่อสร้างปุ่มเซสชันที่เข้ารหัสอย่างปลอดภัยโดยไม่เปิดเผยพวกเขาไปยังผู้ดักฟังที่มีศักยภาพ
- การเข้ารหัสแบบสมมาตรใช้เพื่อประสิทธิภาพในการเข้ารหัสและถอดรหัสข้อมูลการสื่อสารจำนวนมากเมื่อมีการสร้างคีย์เซสชัน
- ทั้งสองใช้เทคนิคการรับรองความถูกต้องของข้อความเพื่อให้แน่ใจว่าการรักษาความลับความสมบูรณ์และความถูกต้องของข้อมูลทั้งสองทิศทาง
-พวกเขารองรับการไหลของข้อมูลแบบสองทางเต็มรูปแบบพร้อมกันภายในอุโมงค์เข้ารหัสที่เข้ารหัสที่ปลอดภัย
- การใช้อัลกอริทึมที่สามารถให้ความลับไปข้างหน้าเพื่อให้มั่นใจว่าการสื่อสารที่ผ่านมายังคงปลอดภัยแม้ว่าคีย์ระยะยาวจะถูกบุกรุก
- ทั้งโปรโตคอลเจรจาและเห็นด้วยกับอัลกอริทึมการเข้ารหัสและความยาวคีย์ในช่วงเริ่มต้นของเซสชัน
- ลักษณะสองทิศทางของโปรโตคอลเหล่านี้ทำให้มั่นใจได้ว่าการจัดการข้อผิดพลาดการส่งสัญญาณและข้อความควบคุมการไหลสามารถแลกเปลี่ยนได้อย่างปลอดภัย