การจัดเส้นทางแบบหัวหอม (อังกฤษ: onion routing) เป็นเทคนิคการสื่อสารแบบนิรนามผ่านเครือข่ายคอมพิวเตอร์ ในเครือข่ายหัวหอม ข้อความจะเข้ารหัสลับเป็นชั้น ๆ จึงอุปมาเหมือนกับชั้นหัวหอม ข้อมูลที่เข้ารหัสจะส่งผ่านโหนด/สถานีรีเลย์ในเครือข่ายที่เรียกว่า เราเตอร์หัวหอม (onion router) โดยแต่ละสถานีจะ ปอก ชั้นหนึ่งออกเพื่อเปิดเอาข้อมูลที่จะส่งต่อไป เมื่อชั้นสุดท้ายได้ถอดรหัสแล้ว ข้อความเดิมก็จะส่งไปยังระบบเป้าหมายจริง ๆ ผู้ส่งได้สภาวะนิรนามก็เพราะสถานีในระหว่าง ๆ จะรู้ที่อยู่/ตำแหน่งของโหนดก่อนหน้าและโหนดที่ส่งต่อไปเท่านั้น โดยไม่มีสถานีไหน ๆ ที่รู้ที่อยู่ของทั้งระบบต้นสายและระบบปลายทางทั้งสอง แม้ระบบปลายทางเองก็รู้เพียงแต่ที่อยู่ของสถานีสุดท้ายในเครือข่ายเท่านั้น แต่ก็มีวิธีที่สามารถทำลายสภาวะนิรนามของเทคนิคเช่นนี้ได้ เช่น การวิเคราะห์เวลา ถ้าสามารถดักฟังข้อมูลทั้งขาเข้าขาออกจากเครือข่ายได้
การจัดเส้นทางแบบหัวหอมได้พัฒนาขึ้นในกลางคริสต์ทศวรรษ 1990 ณ แล็บวิจัยกองทัพเรือสหรัฐโดยเจ้าหน้าที่คือ Paul Syverson, Michael G. Reed, และ David Goldschlag เพื่อป้องกันการสื่อสารราชการลับของสหรัฐออนไลน์ แล้วต่อมาจึงพัฒนายิ่งขึ้นโดยสำนักงานโปรเจ็กต์งานวิจัยก้าวหน้ากระทรวงกลาโหม (DARPA) แล้วจดสิทธิบัตรโดยกองทัพเรือในปี 1998
ต่อมาในปี 2002 นักวิทยาการคอมพิวเตอร์ รอเจอร์ ดิงเกิลไดน์ (Roger Dingledine) และนิก แม็ทธิวสัน (Nick Mathewson) จึงร่วมมือกับ Syverson เพื่อพัฒนาซอฟต์แวร์การจัดเส้นทางแบบหัวหอมในรูปแบบที่รู้จักกันดีที่สุด คือ ทอร์ (Tor) ซึ่งในเวลานั้นเรียกว่า The Onion Routing project หรือ TOR project (โปรเจ็กต์ทอร์) แล้วต่อมาในปี 2004 จึงได้ตีพิมพ์เอกสารการออกแบบของทอร์รุ่นสองในงานประชุม USENIX Security ครั้งที่ 13 ซึ่งกลายเป็นมูลฐานของการทำให้เกิดผลต่อมา
หลังจากที่แล็บวิจัยกองทัพเรือสหรัฐได้อนุญาตให้ใช้รหัสคำสั่งของทอร์ตามสัญญาเสรี ดิงเกิลไดน์ แม็ทธิวสัน และบุคลากรอื่น ๆ อีก 5 ท่านก็ได้จัดตั้งโปรเจ็กต์ทอร์เป็นองค์การไม่แสวงหาผลกำไรในปี 2006 โดยได้รับการสนับสนุนทางการเงินจากมูลนิธิชายแดนอิเล็กทรอนิก (EFF) และองค์กรอื่น ๆ
ให้สังเกตว่า การจัดเส้นทางแบบหัวหอมเป็นโพรโทคอลที่ดำเนินการและพัฒนาการขึ้นเรื่อย ๆ โดยโปรเจ็กต์ทอร์เป็นหลัก เนื่องจากไม่มีเอกสารที่รวมสรุปการทำให้เกิดผลดังที่ใช้ในปัจจุบันแบบง่าย ๆ นอกเหนือจากเอกสารกำหนดคุณลักษณะทางเทคนิกต่าง ๆ ข้อมูลในบทความนี้จึงมาจากบทความต่าง ๆ เริ่มตั้งแต่เอกสารแสดงแบบของโพรโทรคอลรุ่นสองของทอร์ในปี 2004 เนื้อความในบทความอาจจะจับใจความสำคัญต่าง ๆ ได้ แต่รายละเอียดบางอย่างอาจเคลื่อนคลาดจากดังที่ทำให้เกิดผลในปัจจุบัน
ศัพท์ | อังกฤษ | หมายเหตุ |
---|---|---|
พร็อกซีหัวหอม, ระบบผู้ใช้, ระบบต้นทาง, ระบบต้นสาย | onion proxy (OP) | ตัวต่อประสานโปรแกรมแบบ SOCKS ของผู้ใช้กับเครือข่าย ปฏิบัติการเพื่อให้โปรแกรมผู้ใช้สามารถสื่อสารอย่างนิรนามผ่านเครือข่ายได้ |
โหนด, สถานี | node | สถานีคือระบบบริการในเครือข่ายเพื่อให้สื่อสารได้อย่างนิรนาม เช่น สถานีส่งต่อเป็นต้น |
สถานีรีเลย์, รีเลย์, สถานีส่งต่อ, เราเตอร์, เราเตอร์หัวหอม | relay, onion router (OR) | สถานีส่งต่อในระหว่าง ๆ ในเครือข่ายเพื่อส่งข้อมูลไปยังระบบปลายทาง |
สถานีขาเข้า, สถานีแรก, สถานีหนึ่ง | entry node | สถานีส่งต่อที่ระบบผู้ใช้ติดต่อเป็นอันดับแรกในเครือข่าย เพื่อตั้งวงจรการสื่อสารและเพื่อสื่อสารผ่านเครือข่าย เป็นสถานีเดียวที่รู้ที่อยู่ไอพีของระบบผู้ใช้ |
สถานีกลาง, สถานีสอง | middle node | สถานีส่งต่อที่ระบบผู้ใช้เลือกเพื่อส่งต่อข้อมูลระหว่างสถานีขาเข้าและสถานีขาออก ปกติมีสถานีเดียว สถานีรู้ที่อยู่ไอพีของสถานีที่เชื่อมกันโดยตรงคือที่อยู่ก่อนและหลังตนเองในวงจรเท่านั้น |
สถานีขาออก, สถานีสาม | exit node | สถานีส่งต่อสุดท้ายภายในเครือข่าย ที่ทำหน้าที่ถอดรหัสลับชั้นสุดท้ายแล้วส่งข้อความเดิมไปยังระบบปลายทาง เป็นสถานีเดียวที่รู้ที่อยู่ของระบบปลายทางและสามารถเข้าถึงข้อมูลดั้งเดิมที่ส่งระหว่างระบบผู้ใช้กับระบบปลายทาง |
สถานียาม | entry guard | เซตย่อยของสถานีขาเข้าของเครือข่ายที่ระบบผู้ใช้เลือกโดยสุ่มแล้วใช้เป็นชั่วระยะเวลาหนึ่ง โดยปกติจะเปลี่ยนชุดทุก ๆ 30-60 วัน |
สถานีสะพาน | bridge relay, bridge | สถานีส่งต่อที่ไม่แสดงในสารบบ ปกติใช้ในการเชื่อมต่อกับเครือข่ายเมื่อสถานีส่งต่อที่ระบุในสารบบถูกบล็อกเนื่องกับการตรวจพิจารณาทางอินเทอร์เน็ต และสามารถใช้เพื่ออำพรางการใช้เครือข่าย |
โหนดสารบบ, ระบบบริการสารบบ | directory node/server | โหนดที่ได้ความเชื่อถือเพิ่มขึ้นและให้บริการทางสารบบคือแสดงรายการสถานีส่งต่อต่าง ๆ ภายในเครือข่ายพร้อมทั้งสถานะปัจจุบันของสถานีในรายการ โดยปี 2012 เครือข่ายมีโหนดสารบบ 8 สถานี ระบบผู้ใช้จะแจกจ่ายพร้อมกับรายการโหนดสารบบและกุญแจระบุตัว |
ระบบปลายทาง | ระบบบริการที่ผู้ใช้ต้องการสื่อสารด้วย เช่น ระบบบริการเว็บ เสิร์ชเอนจิน เป็นต้น | |
บริการซ่อน | hidden service/server (HS) | ระบบบริการภายในเครือข่ายที่ให้บริการแก่ผู้ใช้โดยไม่ต้องเปิดเผยที่อยู่ไอพีของตน สำหรับระบบบริการนี้ ระบบผู้ใช้ไม่ต้องสร้างวงจรการสื่อสารที่มีสถานีขาออกเพราะระบบอยู่ในเครือข่าย |
วงจร, วงจรการสื่อสาร, วงจรเสมือน | circuit | วงจรการสื่อสารคือลำดับโหนดในการส่งต่อข้อมูลระหว่างระบบผู้ใช้กับระบบปลายทาง ปกติจะมีสถานีส่งต่อในระหว่าง 3 สถานี วงจรการสื่อสารเป็นแบบสื่อได้สองทาง คือเมื่อตั้งขึ้นแล้ว สถานีแต่ละสถานีจะรู้ว่า ข้อมูลที่มาจากด้านหนึ่งต้องส่งไปยังอีกด้านหนึ่งโดยอาจต้องเข้าหรือถอดรหัสลับ และในนัยกลับกันก็เช่นกัน วงจรหนึ่ง ๆ อาจมีกระแสข้อมูลทีซีพีหลายกระแส ที่อาจต่อกับระบบบริการเดียวกันหรือหลายระบบ โดยเป็นกระแสข้อมูลของโปรแกรมอันเดียวกันหรือต่าง ๆ กัน ระบบผู้ใช้จะสร้างวงจรใหม่เพื่อกระแสทีซีพีใหม่ทุก ๆ 10 นาที |
เซลล์ | cell | หน่วยข้อมูลพื้นฐานที่ส่งภายในวงจร แต่ละหน่วยมีขนาดเท่ากันคือ 512 ไบต์ เซลล์ทั้งหมดจะเข้ารหัสลับด้วยกุญแจทีแอลเอสเมื่อสื่อสารผ่านการเชื่อมต่อแบบทีแอลเอสระหว่างระบบต่าง ๆ เริ่มตั้งแต่ระบบต้นทางจนถึงสถานีสุดท้ายในเครือข่าย |
เซลล์ควบคุม | control cell, link cell | เซลล์ที่ใช้สื่อสารกับสถานีที่อยู่ต่อกันเพื่อสร้างวงจรและยุติวงจรเป็นต้น |
เซลล์ส่งต่อ, เซลล์รีเลย์ | relay cell | เซลล์ที่ใช้เพื่อส่งข้อมูลการสื่อสารจากต้นจนถึงปลาย ส่วนข้อมูลของเซลล์จะเข้ารหัสด้วยกุญแจอายุสั้นเป็นชั้น ๆ |
ส่วนหัวของเซลล์ | cell header | ข้อมูลระบุวงจรและคำสั่งควบคุมเซลล์ |
ส่วนหัวรีเลย์ | relay header | ส่วนหัวที่มีเพิ่มขึ้นสำหรับเซลล์รีเลย์ (นอกเหนือจากส่วนหัวของเซลล์) ซึ่งแสดงสายข้อมูล ค่าแฮชเพื่อตรวจสอบบูรณภาพของข้อมูล ขนาดข้อมูล และคำสั่งรีเลย์ อยู่ต่อจากส่วนหัวของเซลล์ |
ข้อมูลรีเลย์ | relay data | ส่วนข้อมูลของเซลล์รีเลย์ อยู่ต่อจากส่วนหัวรีเลย์ |
ส่วนรีเลย์, ส่วนข้อมูล (ของเซลล์) | cell data | ข้อมูลที่ต่อจากส่วนหัวของเซลล์ซึ่งประกอบด้วยส่วนหัวรีเลย์และข้อมูลรีเลย์ เป็นส่วนที่เข้ารหัสเป็นชั้น ๆ คล้ายหัวหอม |
กุญแจทีแอลเอส | session key, TLS session key, connection key | กุญแจแบบสมมาตรที่ตั้งขึ้นเมื่อสร้างการเชื่อมต่อแบบทีแอลเอสระหว่างระบบต่าง ๆ เริ่มตั้งแต่ระบบผู้ใช้จนถึงสถานีขาออก เป็นกุญแจที่รู้กันในระหว่างระบบที่เชื่อมต่อกันโดยตรงภายในวงจร โดยระบบทั้งสองจะทิ้งกุญแจเมื่อการเชื่อมต่อสิ้นสุดลง การเข้ารหัสโดยใช้กุญแจนี้จะป้องกันการตรวจดูหรือเปลี่ยนข้อมูล ป้องกันการปลอมตัวของระบบอื่น ๆ ว่าเป็นระบบภายในวงจร และป้องกันไม่ให้ถอดรหัสข้อมูลในวงจรที่ดักเก็บไว้เพื่อถอดรหัสในอนาคต (เพราะกุญแจทิ้งไปแล้ว) |
กุญแจช่วงเวลา, กุญแจอายุสั้น | ephemeral key, session key, circuit session key | กุญแจแบบสมมาตรที่ตั้งขึ้นเมื่อสร้างวงจรเสมือนระหว่างระบบผู้ใช้กับสถานีส่งต่อในระหว่าง ๆ แต่ละสถานี โดยระบบทั้งสองจะทิ้งกุญแจเมื่อยุติการเชื่อมต่อในวงจร เป็นกุญแจที่ใช้เข้ารหัสส่วนข้อมูลของเซลล์เป็นชั้น ๆ เหมือนหัวหอม กุญแจนี้จะป้องกันไม่ให้ถอดรหัสข้อมูลในวงจรที่ดักเก็บไว้เพื่อถอดรหัสในอนาคต (เพราะกุญแจทิ้งไปแล้ว) ป้องกันไม่ให้สถานีส่งต่อยกเว้นสถานีท้ายสุด รู้ข้อมูลที่ส่งระหว่างต้นสายหรือปลายทางได้ |
กุญแจหัวหอม | onion key | กุญแจแบบอสมมาตรที่สถานีส่งต่อจะเปลี่ยนทุก ๆ อาทิตย์ เป็นกุญแจที่ใช้ถอดรหัสคำขอตั้งวงจรจากระบบผู้ใช้และเพื่อต่อรองสร้างกุญแจอายุสั้น |
กุญแจระบุตัว, กุญแจระบุสถานี, กุญแจระบุตัวระยะกลาง | identity key | กุญแจแบบอสมมาตรที่ใช้ระบุสถานีต่าง ๆ ในเครือข่ายรวมทั้งสถานีรีเลย์และโหนดสารบบ เป็นกุญแจที่ใช้ในระยะยาว สำหรับรีเลย์ นี่ใช้ระบุตัวและต่อรองสร้างกุญแจทีแอลเอส เมื่อระบบสองระบบเริ่มเชื่อมต่อกัน และใช้เซ็นข้อมูลเกี่ยวกับสถานีนั้น ๆ ในสารบบ สำหรับโหนดสารบบ นี่เป็นกุญแจที่เก็บออฟไลน์ (authority key) ที่ใช้เพื่อเซ็นกุญแจระบุตัวระยะกลาง (directory signing key) ซึ่งจะเปลี่ยนเป็นระยะ ๆ |
ปฏิปักษ์, ผู้โจมตี, ศัตรู | adversary, attacker | ผู้ทำการเพื่อเปิดเผยระบบต้นสายและปลายทางของวงจร หรือเปิดเผยข้อมูลในวงจรของเครือข่าย |
การจัดเส้นทางแบบหัวหอม (onion routing) ทำให้เกิดผลโดยการเข้ารหัสลับในชั้นโปรแกรมประยุกต์ของโพรโทคอลสแตกทีซีพีที่ใช้ในการสื่อสาร โดยทำเป็นชั้น ๆ เหมือนกับของหัวหอม คือระบบผู้ใช้จะสร้างวงจรการสื่อสารเสมือนผ่านสถานี/โหนดส่งต่อต่าง ๆ 3 สถานีซึ่งเลือกโดยสุ่มเป็นลำดับ ๆ การสร้างจะเพิ่มสถานีทีละสถานี ๆ เข้าในวงจรด้วยการสื่อสารที่เข้ารหัสลับ โดยสถานีส่งต่อแต่ละสถานี จะรู้แต่เลขที่อยู่ไอพีขาเข้าและขาออกของตน ๆ เท่านั้น และไม่มีสถานีไหนในระหว่าง ที่รู้ทั้งที่อยู่ของต้นสายและของปลายทางทั้งสอง แม้ในมุมมองของระบบปลายทาง ก็จะดูเหมือนว่าการสื่อสารเริ่มมาจากสถานีขาออกของเครือข่าย เมื่อกำลังสร้างวงจร ระบบผู้ใช้จะแลกเปลี่ยนกุญแจเข้ารหัสลับแบบสมมาตรโดยเฉพาะ ๆ กับโหนดส่งต่อแต่ละสถานี เพื่อเมื่อส่งข้อมูลไปยังปลายทาง ระบบผู้ใช้ก็จะเข้ารหัสข้อมูลเป็นชั้น ๆ ด้วยกุญแจที่แลกเปลี่ยนเริ่มตั้งแต่สถานีขาออก (สถานีสุดท้าย) ย้อนลำดับกลับมาจะถึงสถานีขาเข้า เมื่อข้อมูลส่งไปถึงแต่ละสถานี ๆ สถานีก็จะสามารถถอดรหัสชั้นที่เข้ากุญแจซึ่งตนได้แลกเปลี่ยน แล้วทำการที่สมควรเช่นส่งข้อมูลนั้นต่อไปได้ โดยที่ไม่สามารถรู้ข้อมูลที่ส่งต่อเพราะเข้ารหัสด้วยกุญแจที่ตนไม่มี สถานีขาออกจะเป็นผู้ถอดรหัสชั้นสุดท้ายแล้วส่งข้อมูลดั้งเดิมไปยังระบบปลายทางต่อไป
เมื่อระบบปลายทางส่งข้อมูลกลับไปยังระบบผู้ใช้ ข้อมูลก็จะวิ่งผ่านวงจรการสื่อสารเดียวกันโดยกลับลำดับคือจากสถานีขาออกจนไปถึงสถานีขาเข้า โดยสถานีส่งต่อแต่ละสถานี ๆ จะเข้ารหัสลับข้อมูลด้วยกุญแจที่ตนใช้ร่วมกับระบบผู้ใช้ ดังนั้น เมื่อสถานีขาเข้าส่งข้อมูลกลับไปถึงระบบต้นทาง ข้อมูลเซลล์จะเข้ารหัสไว้เป็นสามชั้น ซึ่งระบบผู้ใช้จะถอดรหัสด้วยกุญแจที่ตนใช้ร่วมกันสถานีส่งต่อต่าง ๆ
เราเตอร์หัวหอมสื่อสารกับกันและกัน และกับระบบผู้ใช้ ผ่านการเชื่อมต่อกันด้วยทีแอลเอสและการเข้ารหัสด้วยกุญแจอายุสั้น ทีแอลเอสช่วยปกปิดข้อมูลในสายเชื่อมต่อให้เป็นความลับที่แม้เมื่อดักเก็บข้อมูลไว้ได้ ก็จะไม่สามารถถอดรหัสข้อมูลได้ในอนาคต (perfect forward secrecy) และป้องกันผู้โจมตีไม่ให้เปลี่ยนข้อมูลในสาย หรือปลอมตัวว่าเป็นเราเตอร์หัวหอม
ข้อมูลส่งผ่านเครือข่ายโดยมีหน่วยเป็นเซลล์ ซึ่งมีขนาดตายตัวคือ 512 ไบต์ และเมื่อเซลล์แต่ละเซลล์วิ่งผ่านวงจรเริ่มตั้งแต่ระบบผู้ใช้ เซลล์จะเข้ารหัสลับด้วยกุญแจทีแอลเอสของการเชื่อมต่อแบบทีแอลเอสในระหว่างระบบที่อยู่ต่อกันโดยตรง ส่วนหัวของแต่ละเซลล์มีข้อมูลคือ
เซลล์ควบคุมสามารถมีคำสั่งรวมทั้ง
สำหรับเซลล์ส่งต่อ ส่วนที่เป็นข้อมูลภายในเซลล์จะเข้ารหัสลับด้วยกุญแจอายุสั้นที่ร่วมใช้ระหว่างระบบผู้ใช้กับสถานีแต่ละสถานี ส่วนนี้ยังมีส่วนหัวรีเลย์ (relay header) ซึ่งอยู่ในลำดับต่อไปจากส่วนหัวของเซลล์ รวมทั้ง
เซลล์ส่งต่อสามารถมีคำสั่งดังต่อไปนี้คือ
เพื่อสร้างวงจรเสมือนหนึ่ง ๆ ระบบผู้ใช้จะขอรายการสถานีส่งต่อจากโหนดสารบบ รายการที่ได้จะเซ็นชื่อโดยกุญแจระบุตัวระยะกลางของโหนดสารบบ และข้อมูลเกี่ยวกับสถานีจะเซ็นชื่อโดยกุญแจระบุตัวของสถานีที่สัมพันธ์กัน ระบบผู้ใช้ปกติจะเลือกสถานี 3 สถานีจากรายการเพื่อสร้างวงจร โดยมีการเลือกโหนดขาเข้าจากรายการสุ่มที่เลือกใช้นานเป็นพิเศษที่เรียกว่า สถานียาม (entry guards)
โหนดที่เลือกจะจับเรียงลำดับเป็น "โซ่" หรือ "วงจร" ที่จะส่งผ่านข้อมูล เพื่อรักษาสภาพนิรนามของผู้ส่ง ไม่มีโหนดไหนในวงจรที่รู้ทั้งที่อยู่ของต้นสายและของปลายทางทั้งสอง แม้ในมุมมองของระบบปลายทาง ก็จะดูเหมือนว่าการสื่อสารเริ่มมาจากสถานีขาออกของเครือข่าย เช่นกัน ไม่มีโหนดไหนในวงจรที่สามารถบอกว่ามีโหนดจำนวนเท่าไรในวงจรหรือรู้เส้นทางการส่งข้อมูลทั้งหมดภายในวงจร และโหนดสุดท้ายเท่านั้น ซึ่งเรียกว่าโหนดขาออก (exit node) จะสามารถกำหนดตำแหน่งตัวเองภายในลูกโซ่
เมื่อสร้างวงจร ระบบผู้ใช้จะต่อสถานีรีเลย์เข้ากับวงจรทีละสถานี ๆ ต่อ ๆ กัน โดยที่การสื่อสารระหว่างระบบต่าง ๆ จะทำผ่านทีแอลเอสอาศัยกุญแจระบุสถานีระยะยาวที่พบในสารบบ การต่อสถานีมีรายละเอียดคือคือ (ดูประกอบรูป)
ตัวอย่างนี้ เป็นการสร้างวงจรที่มีโหนดส่งต่อเพียงแค่สองสถานีเท่านั้น การสร้างวงจรเพิ่มเพื่อให้มีโหนดส่งต่อ 3 สถานีก็ทำได้โดยนัยเดียวกัน คือระบบผู้ใช้สามารถส่งคำขอการต่อวงจร (Extend) เชื่อมกับสถานีสามไปยังสถานีสองโดยส่งผ่านสถานีหนึ่ง คล้ายกับลำดับ 3 ที่กล่าวมาแล้ว แต่เข้ารหัสลับส่วนข้อมูลของเซลล์สองครั้งด้วยกุญแจอายุสั้นที่ใช้ร่วมกับสถานีสอง (g^x2y2) แล้วด้วยกุญแจอายุสั้นที่ใช้ร่วมกับสถานีหนึ่ง (g^x1y1)
เพื่อความกระจ่าง อาจกล่าวโดยอีกวิธีหนึ่งก็คือ
เมื่อสร้างวงจรเสร็จแล้ว ระบบผู้ใช้ก็จะสามารถส่งข้อมูลผ่านอินเทอร์เน็ตไปยังระบบปลายทางอย่างนิรนามได้ สำหรับโปรแกรมผู้ใช้ที่ตั้งให้สื่อสารผ่านเครือข่ายหัวหอม ไม่ว่าจะเป็นโปรแกรมเดียว (เช่นทอร์เบราว์เซอร์) หรือหลายโปรแกรม สายข้อมูลทีซีพีต่าง ๆ ที่โปรแกรมผู้ใช้สร้างก็จะส่งผ่านวงจรเดียวกัน แต่ระบบผู้ใช้จะตั้งวงจรใหม่ทุก ๆ 10 นาที ดังนั้น สายข้อมูลใหม่ที่ตั้งขึ้นก็จะใช้วงจรใหม่ ส่วนสายข้อมูลเก่าที่ยังดำเนินการอยู่ก็จะคงอยู่ในวงจรเดิมจนกว่าจะเสร็จ ดังนั้น ในระบบผู้ใช้ อาจมีการส่งข้อมูลผ่านเครือข่ายหัวหอมเป็นหลายวงจร แต่ละวงจรอาจมีสายข้อมูลหลายสาย โดยอาจเป็นสายข้อมูลจากโปรแกรมชุดเดียวหรือหลายโปรแกรม การเปลี่ยนวงจรการสื่อสารเช่นนี้ โดยมีสถานีขาออกที่ต่าง ๆ กัน จะทำให้ระบบปลายทางสัมพันธ์การกระทำของผู้ใช้ที่เกิดในเวลาต่าง ๆ ได้ยากขึ้น
เมื่อวงจรสร้างขึ้นแล้ว ระบบผู้ใช้สามารถเริ่มส่งรับข้อมูลผ่านเครือข่ายนิรนามที่เข้ารหัสลับด้วยกุญแจสองตัวคือ กุญแจอายุสั้นที่ใช้เข้ารหัสเพียงส่วนข้อมูลของเซลล์เป็นชั้น ๆ และกุญแจทีแอลเอสที่ใช้เข้ารหัสเซลล์ทั้งหมดเมื่อส่งผ่านเครือข่ายอินเทอร์เน็ตระหว่างสถานี ๆ โดยที่ไม่มีสถานีส่งต่อใด ๆ รวมทั้งระบบปลายทาง ที่สามารถรู้ทั้งที่อยู่ไอพีของระบบผู้ใช้และของระบบปลายทางทั้งสอง และมีสถานีทางออกเท่านั้น ที่สามารถเข้าถึงข้อมูลดั้งเดิมที่ส่งในระหว่างต้นสายและปลายทาง ยกเว้นถ้าผู้ใช้ใช้โปรแกรมที่เข้ารหัสข้อมูลจากต้นจนถึงปลาย เช่น ทอร์เบราว์เซอร์เมื่อสื่อสารผ่านเอชทีทีพีเอสเป็นต้น อนึ่ง เพราะกุญแจที่ใช้เข้ารหัสลับเป็นกุญแจชั่วคราว จึงหมายความว่า แม้ถ้ามีใครดักเก็บข้อมูลที่ส่งผ่านระหว่างระบบต่าง ๆ แล้วโจมตีเข้าถึงระบบเหล่านั้นได้ในภายหลัง ก็จะไม่สามารถถอดรหัสข้อมูลเหล่านั้นได้เพราะระบบได้ทิ้งกุญแจไปแล้ว
การรับส่งข้อมูลมีรายละเอียดคือ (ดูรูป)
ผู้ออกแบบการจัดเส้นทางแบบหัวหอมได้พิจารณาการโจมตีและผลต่อระบบหลายอย่าง (ปี 2004) รวมทั้งที่จัดว่าเป็นการดักฟังเฉย ๆ (passive attack) และแบบต้องทำการอย่างแอ๊กถีฟ (active attack) ต่อไปนี้เป็นตัวอย่างของการโจมตีที่ได้พิจารณา
การโจมตีแบบดักฟังเฉย ๆ (passive attack) รวมทั้ง
การโจมตีแบบแอ๊กถีฟ (active attack) รวมทั้ง
เหตุผลหนึ่งที่การเชื่อมต่ออินเทอร์เน็ตปกติจะไม่ได้สภาวะนิรนาม ก็เพราะผู้ให้บริการสามารถติดตามและลงบันทึกการเชื่อมต่อกันระหว่างคอมพิวเตอร์ ยกตัวอย่างเช่น เมื่อผู้ใช้เยี่ยมชมเว็บไซต์ ข้อมูลเองอาจจะปลอดภัยเพราะเชื่อมต่อด้วยเอชทีทีพีเอส ดังนั้น คนพวกอื่นจะไม่สามารถรู้รหัสผ่าน อีเมล และเนื้อความอื่น ๆ แต่ก็ยังมีบันทึกเกี่ยวกับการเชื่อมต่อเอง เช่น ต่อเมื่อไร มีข้อมูลส่งผ่านแค่ไหน
การจัดเส้นทางแบบหัวหอมจะสร้างทางที่คลุมเครือระหว่างคอมพิวเตอร์สองเครื่อง เพื่อไม่ให้ระบบผู้ใช้เชื่อมต่อกับเว็บไซต์โดยตรง แม้จะยังมีบันทึกการเชื่อมต่อกันระหว่างคอมพิวเตอร์และก็ยังสามารถวิเคราะห์การสื่อสารเนื่องกับบันทึกการเชื่อมต่อเช่นนั้น แล้วพยายามเชื่อมเวลาและการส่งข้อมูลกับการเชื่อมต่อไปยังผู้รับหนึ่ง ๆ ยกตัวอย่างเช่น อาจจะเห็นบุคคลส่งข้อมูล 51 กิโลไบต์ถ้วนไปยังคอมพิวเตอร์ที่ไม่รู้จัก 3 วินาทีก่อนคอมพิวเตอร์อีกเครื่องที่ไม่รู้จักก็ส่งข้อมูล 51 กิโลไบต์ถ้วนเช่นกันไปยังเว็บไซต์หนึ่งโดยเฉพาะ
ปัจจัยที่อาจช่วยให้วิเคราะห์การสื่อสารได้รวมทั้งโหนดขัดข้องแล้วออกจากเครือข่าย และโหนดส่งต่อที่ถูกแฮ็กให้เก็บบันทึกการเชื่อมต่อทุก ๆ ครั้งที่มีการสร้างวงจรใหม่
การจัดเส้นทางแบบกระเทียม (Garlic routing) เป็นการจัดเส้นทางแบบหัวหอมอีกอย่างหนึ่งที่ใช้ในเครือข่ายไอทูพี และเข้ารหัสลับข้อความหลายข้อความเข้าด้วยกันเพื่อทำการวิเคราะห์การสื่อสารเช่นนี้ให้ยากขึ้น และเพื่อเพิ่มความเร็วในการถ่ายโอนข้อมูล
แม้ข้อความที่ส่งจะเข้ารหัสลับเป็นชั้น ๆ แต่หน้าที่ของโหนดขาออก (exit node) ที่เป็นโหนดท้ายสุดในโซ่ ก็คือการถอดรหัสลับชั้นสุดท้ายแล้วส่งข้อความไปให้ผู้รับ ดังนั้น โหนดขาออกที่ถูกแก้ก็อาจจะเก็บข้อมูลที่ส่ง ซึ่งอาจมีรหัสผ่าน ข้อความส่วนตัว เลขบัญชีธนาคาร หรือข้อมูลส่วนตัวอื่น ๆ ในปี 2007 นักวิจัยชาวสวีเดนได้ใช้การโจมตีคล้าย ๆ กันนี้แล้วสามารถเก็บรหัสผ่านของบัญชีอีเมลกว่า 100 บัญชีของสถานทูตประเทศต่าง ๆ
จุดอ่อนโหนดขาออกจะคล้ายกับที่พบในเครือข่ายไร้สายที่ไม่ได้ทำให้ปลอดภัย คือข้อมูลที่ส่งโดยผู้ใช้เครือข่ายอาจถูกดักฟังโดยผู้ใช้อีกคนหนึ่งหรือโดยผู้ดำเนินการเราเตอร์ โดยปัญหาทั้งสองนี้สามารถแก้ได้โดยใช้การเชื่อมต่อที่เข้ารหัสลับจากต้นถึงปลาย เช่น เอสเอสแอลหรือเอชทีทีพีเอส ซึ่งทำให้แม้แต่ผู้ส่งต่อลำดับสุดท้ายก็ไม่สามารถรู้ข้อความดั้งเดิมได้
This article uses material from the Wikipedia ไทย article การจัดเส้นทางแบบหัวหอม, which is released under the Creative Commons Attribution-ShareAlike 3.0 license ("CC BY-SA 3.0"); additional terms may apply (view authors). เนื้อหาอนุญาตให้เผยแพร่ภายใต้ CC BY-SA 4.0 เว้นแต่ระบุไว้เป็นอื่น Images, videos and audio are available under their respective licenses.
®Wikipedia is a registered trademark of the Wiki Foundation, Inc. Wiki ไทย (DUHOCTRUNGQUOC.VN) is an independent company and has no affiliation with Wiki Foundation.