การจัดเส้นทางแบบหัวหอม

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

การจัดเส้นทางแบบหัวหอม
เมื่อส่งข้อมูลไปยังปลายทาง ระบบผู้ใช้/พร็อกซีหัวหอม (onion proxy, OP) จะเข้ารหัสลับข้อมูลเป็นชั้น ๆ โดยใช้กุญแจเข้ารหัสแบบสมมาตรที่ได้แลกเปลี่ยนกับสถานีรีเลย์แต่ละสถานีในวงจรการสื่อสารเสมือนที่ได้สร้างขึ้นก่อนส่งข้อมูล เป็นกุญแจที่สัมพันธ์กับสถานีต่าง ๆ เริ่มตั้งแต่สถานีขาออก (สถานีสุดท้าย) ย้อนลำดับกลับมาจนถึงสถานีขาเข้า เมื่อข้อมูลส่งไปถึงแต่ละสถานี ๆ สถานีก็จะสามารถถอดรหัสชั้นที่เข้ากุญแจซึ่งตนได้แลกเปลี่ยน แล้วทำการที่สมควรเช่นส่งข้อมูลนั้นต่อไปได้ โดยที่ไม่สามารถรู้ข้อมูลที่ส่งต่อเพราะเข้ารหัสด้วยกุญแจที่ตนไม่มี สถานีขาออกจะเป็นผู้ถอดรหัสชั้นสุดท้ายแล้วส่งข้อมูลดั้งเดิมไปยังระบบปลายทางต่อไป ในตัวอย่างนี้ ระบบผู้ใช้จะส่งข้อมูลผ่านสถานี A ไปยัง B ไปสุดที่ C แล้ว C ก็จะส่งต่อข้อมูลเดิมไปยังระบบปลายทาง ดังนั้น ระบบผู้ใช้จึงเข้ารหัสข้อมูลที่ส่งโดยใช้กุญแจที่สัมพันธ์กับ C แล้วเข้ารหัสด้วยกุญแจที่สัมพันธ์กับ B และในที่สุดเข้ารหัสด้วยกุญแจที่สัมพันธ์กับ A ดังนั้น เมื่อ A ได้รับข้อมูล ก็จะสามารถถอดรหัสชั้นแรกโดยใช้กุญแจที่ได้แลกเปลี่ยนกันเมื่อสร้างวงจร และสถานีต่อ ๆ ไปคือ B และ C ก็เช่นกัน นอกจากจะอุปมาเหมือนกับหัวหอมที่เป็นชั้น ๆ การส่งข้อมูลแบบนี้ยังเหมือนกับขุดอุโมงค์ภายในอุโมงค์ (tunneling) เพื่อส่งข้อมูล ซึ่งมีส่วนคล้ายกับการใช้อุโมงค์ของเครือข่ายส่วนตัวเสมือน (VPN) เพื่อส่งข้อมูลไปยังระบบอื่น ๆ แต่ต่างโดยหลักเพราะเป็นอุโมงค์หลายชั้น

พัฒนาการและการทำให้เกิดผล

การจัดเส้นทางแบบหัวหอมได้พัฒนาขึ้นในกลางคริสต์ทศวรรษ 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 ผู้ทำการเพื่อเปิดเผยระบบต้นสายและปลายทางของวงจร หรือเปิดเผยข้อมูลในวงจรของเครือข่าย

คำอธิบายคร่าว ๆ

การจัดเส้นทางแบบหัวหอม 
การสื่อสารอย่างนิรนามผ่านเครือข่ายหัวหอม คำแปล (Origen=โปรแกรมผู้ใช้, OP=พร็อกซีหัวหอม/ระบบผู้ใช้, Destino=ระบบปลายทาง, ที่เหลือ=ดูศัพท์) เส้นทางการสื่อสาร (น้ำเงิน=สายข้อมูลทีซีพีผ่านตัวต่อประสาน SOCKS, แดงทึบ=การส่งเซลล์แบบสองทางผ่านทีแอลเอสซึ่งเข้ารหัสลับโดยเครือข่าย, ดำ=การสื่อสารผ่านทีซีพีซึ่งไม่ได้เข้ารหัสลับโดยเครือข่าย)

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

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

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

เซลล์

เราเตอร์หัวหอมสื่อสารกับกันและกัน และกับระบบผู้ใช้ ผ่านการเชื่อมต่อกันด้วยทีแอลเอสและการเข้ารหัสด้วยกุญแจอายุสั้น ทีแอลเอสช่วยปกปิดข้อมูลในสายเชื่อมต่อให้เป็นความลับที่แม้เมื่อดักเก็บข้อมูลไว้ได้ ก็จะไม่สามารถถอดรหัสข้อมูลได้ในอนาคต (perfect forward secrecy) และป้องกันผู้โจมตีไม่ให้เปลี่ยนข้อมูลในสาย หรือปลอมตัวว่าเป็นเราเตอร์หัวหอม

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

  • cirID บอกว่าเซลล์นี้สำหรับวงจรการสื่อสารไหน เพราะระบบสามารถมีวงจรวิ่งผ่านการเชื่อมต่อแบบทีแอลเอสเดียวกันหลายวงจร
  • CMD เป็นคำสั่งว่าสถานีส่งต่อควรทำอะไรต่อเซลล์ เพราะเซลล์แบ่งเป็นสามอย่างคือ เซลล์ควบคุม (control cell) หรือเซลล์ส่งต่อ/เซลล์รีเลย์ (relay cell) หรือเซลล์ส่งต่อเบื้องต้น (early relay cell) เซลล์ควบคุมอาจใช้เพื่อขอให้สถานีต่อกันตั้งวงจรหรือยุติวงจรเป็นต้น เซลล์ส่งต่อจะใช้สำหรับส่งข้อมูลการสื่อสารผ่านวงจรโดยมีข้อมูลต่อจากส่วนหัวของเซลล์ และเซลล์ส่งต่อเบื้องต้น ซึ่งเพิ่มขึ้นในปี 2008 ใช้ป้องกันไม่ให้ระบบผู้ใช้สร้างวงจรยาวเกินเพราะสร้างปัญหาการติดขัดในเครือข่ายและสามารถช่วยทำลายสภาพนิรนามได้

เซลล์ควบคุมสามารถมีคำสั่งรวมทั้ง

  • padding
  • create หรือ created ที่ใช้ในการสร้างวงจร
  • relay เพื่อกำหนดว่าเป็นเซลล์ส่งต่อ
  • destroy เพื่อรื้อวงจร
  • create fast หรือ created fast
  • netinfo
  • relay early เพื่อกำหนดเป็นเซลล์ส่งต่อที่อาจร่วมใช้กับ relay extend เพื่อป้องกันไม่ให้ระบบผู้ใช้สร้างวงจรยาวเกิน รีเลย์รุ่นหลังจาก 0.2.3.11-alpha จะปฏิเสธเซลล์ส่งต่อแบบ relay extend ที่ไม่มีคำสั่งเซลล์เป็น relay early ระบบผู้ใช้อาจส่งเซลล์ relay early ที่ไม่ใช่เซลล์ส่งต่อแบบ relay extend ในการส่งข้อมูลภายในเซลล์ต้น ๆ ของวงจรเพื่ออำพรางความยาวของวงจร
  • create2 หรือ created2
  • padding negotiate

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

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

เซลล์ส่งต่อสามารถมีคำสั่งดังต่อไปนี้คือ

  • relay data - ให้ส่งข้อมูล
  • relay begin - ให้เปิดสายข้อมูล (stream)
  • relay end - ให้ปิดสายข้อมูลโดยเรียบร้อย
  • relay teardown - ให้ปิดสายข้อมูลที่เสีย
  • relay connected - เพื่อแจ้งระบบผู้ใช้ว่า คำสั่ง relay begin ได้ทำสำเร็จแล้ว
  • relay extend และ relay extended - ให้ต่อวงจรไปอีกหนึ่งสถานี และเพื่อแจ้งว่าต่อสำเร็จแล้ว
  • relay truncate และ relay truncated - ให้รื้อส่วนหนึ่งของวงจร และเพื่อแจ้งว่ารื้อสำเร็จแล้ว
  • relay sendme - ใช้ในการควบคุมสายข้อมูลที่ติดขัด (congestion)
  • relay drop
การจัดเส้นทางแบบหัวหอม 
ระบบผู้ใช้ (Alice) ติดต่อกับโหนดสารบบ (Dave) ผ่านการเชื่อมต่อที่เข้ารหัสลับ เพื่อรับรายการสถานีส่งต่อของทอร์ (Tor node) โดยมุ่งหมายสื่อสารกับระบบปลายทางคือ Jane และ Bob
การจัดเส้นทางแบบหัวหอม 
(เหนือเส้นประ) ผังแสดงการสื่อสารระหว่างระบบผู้ใช้ (Alice) กับสถานีหนึ่ง (OR1) และสถานีสอง (OR2) เพื่อตั้งวงจรการสื่อสารผ่าน 2 สถานีส่งต่อไปยังปลายทาง (ใต้เส้นประ) ผังแสดงการสื่อสารระหว่างระบบผู้ใช้กับระบบปลายทางผ่านสถานีส่งต่อ 2 สถานี (คำอธิบายสัญลักษณ์) E(x)=การเข้ารหัสลับด้วย RSA, {x}=การเข้ารหัสลับด้วย AES, H(x)=ค่าแฮชด้วย SHA1 ให้สังเกตว่า เซลล์แบบ Relay บางส่วนปัจจุบันอาจทำให้เกิดผลโดยเป็นเซลล์ Relay early (ดูข้อมูลเกี่ยวกับเซลล์ควบคุมดังที่กล่าวแล้ว)

การสร้างวงจรเสมือน

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

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

เมื่อสร้างวงจร ระบบผู้ใช้จะต่อสถานีรีเลย์เข้ากับวงจรทีละสถานี ๆ ต่อ ๆ กัน โดยที่การสื่อสารระหว่างระบบต่าง ๆ จะทำผ่านทีแอลเอสอาศัยกุญแจระบุสถานีระยะยาวที่พบในสารบบ การต่อสถานีมีรายละเอียดคือคือ (ดูประกอบรูป)

  1. สำหรับสถานีแรก (OR1) ระบบผู้ใช้ขอให้สถานีสร้างวงจร (Create c1) โดยส่งข้อมูล (g^x1) ที่เข้ารหัสลับด้วยกุญแจหัวหอมของสถานีแรก ซึ่งเป็นส่วนแรกของโพรโทคอลต่อรองเพื่อกุญแจสมมาตรคือกุญแจอายุสั้น (ให้สังเกตว่า สถานีแรกรู้ที่อยู่ไอพีของระบบผู้ใช้ และสถานีแรกจะตอบสนองต่อคำขอได้ก็ต่อเมื่อรู้กุญแจหัวหอมส่วนตัวของตน)
  2. สถานีแรกส่งคำตอบยอมรับการสร้างวงจร (Created c1) พร้อมข้อมูลที่กำหนดกุญแจอายุสั้น (g^y1 เป็นต้น) ที่จะใช้เพื่อเข้ารหัสข้อมูลเซลล์ระหว่างระบบผู้ใช้กับสถานีแรก
  3. สำหรับสถานีสอง (OR2) ระบบผู้ใช้จะส่งคำขอให้ต่อวงจรเชื่อมกับสถานีที่สองไปยังสถานีแรก โดยรวมข้อมูลที่เข้ารหัสลับด้วยกุญแจหัวหอมของสถานีที่สอง (g^x2) ซึ่งเป็นส่วนแรกของโพรโทคอลต่อรองเพื่อกุญแจอายุสั้น พร้อมกับคำขอการต่อวงจร (Extend) ซึ่งระบุสถานีที่สองโดยเฉพาะ เข้าเป็นส่วนข้อมูลของเซลล์ แล้วเข้ารหัสลับส่วนข้อมูลด้วยกุญแจอายุสั้นที่ใช้ร่วมกับสถานีแรก (g^x1y1) ต่อจากนั้นจึงส่งคำขอให้ส่ง (Relay/Relay early) ไปยังสถานีแรก (ให้สังเกตว่า ถ้ามีใครสามารถถอดรหัสลับการสื่อสารโดยใช้ทีแอลเอสได้ แต่ไม่มีกุญแจอายุสั้นของสถานีแรก ก็จะไม่สามารถกำหนดได้ว่า เซลล์มีข้อมูลที่จะส่งต่อ หรือเป็นคำขอ/คำตอบรับ คือไม่สามารถรู้ว่าใครกำลังเดินเนินงานกิจกรรมอะไรจริง ๆ)
  4. สถานีแรกถอดรหัสส่วนข้อมูลของเซลล์ด้วยรหัสอายุสั้นที่ใช้ร่วมกับระบบผู้ใช้ (g^x1y1) แล้วพบคำขอให้ต่อวงจร (Extend) จึงขอให้สถานีสองสร้างวงจร (Create c2) โดยส่งคำขอพร้อมกับข้อมูลเข้ารหัสลับ (g^x2) ที่มาจากระบบผู้ใช้ ให้สังเกตว่า สถานีแรกรู้ที่อยู่ไอพีของสถานีสอง แต่ไม่รู้ส่วนข้อมูลที่เข้ารหัสลับด้วยกุญแจหัวหอมของสถานีสองจากระบบผู้ใช้ ข้อมูลซึ่งเป็นส่วนแรกของโพรโทคอลต่อรองเพื่อกุญแจสมมาตรคือกุญแจอายุสั้น สถานีสองจะตอบสนองต่อคำขอได้ก็ต่อเมื่อรู้กุญแจหัวหอมส่วนตัวของตน และจากมุมมองของสถานีสอง คำขอการสร้างวงจรเหมือนกับมาจากสถานีแรก จึงไม่สามารถบอกได้ว่า เป็นการเพิ่มต่อวงจรจากระบบผู้ใช้
  5. สถานีสองส่งคำตอบยอมรับการสร้างวงจร (Created c2) พร้อมข้อมูลที่กำหนดกุญแจอายุสั้น (g^y2 เป็นต้น) ที่จะใช้เพื่อเข้ารหัสส่วนข้อมูลของเซลล์ระหว่างระบบผู้ใช้และสถานีสอง โดยส่งไปยังสถานีหนึ่ง
  6. สถานีแรกรวมการยอมรับการต่อวงจร (Extended) พร้อมกับข้อมูลที่กำหนดกุญแจอายุสั้น (g^y2 เป็นต้น) เข้าในส่วนข้อมูลของเซลล์ แล้วเข้ารหัสลับด้วยกุญแจอายุสั้นที่ใช้ร่วมกับระบบผู้ใช้ ต่อจากนั้นจึงส่งข้อมูลกลับไปยังระบบผู้ใช้โดยเป็นคำขอให้ส่ง (Relay) (ให้สังเกตว่า ถ้ามีใครสามารถถอดรหัสลับการสื่อสารโดยใช้ทีแอลเอสได้ แต่ไม่มีกุญแจอายุสั้นของสถานีแรก ก็จะไม่สามารถกำหนดได้ว่า เซลล์มีข้อมูลที่จะส่งต่อ หรือเป็นคำขอ/คำตอบรับ คือไม่สามารถรู้ว่าใครกำลังเดินเนินงานกิจกรรมอะไรจริง ๆ)

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

เพื่อความกระจ่าง อาจกล่าวโดยอีกวิธีหนึ่งก็คือ

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

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

การส่งข้อมูล

การจัดเส้นทางแบบหัวหอม 
ระบบผู้ใช้ (Alice) ได้สร้างวงจรผ่านสถานีส่งต่อ 3 สถานี (Tor node) เพื่อสื่อสารกับระบบปลายทาง (Bob) เส้นสีเขียวเป็นการเชื่อมต่อที่เข้ารหัสลับโดยเครือข่าย ส่วนเส้นสีแดงประไม่ได้เข้ารหัสลับโดยเครือข่าย

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

การรับส่งข้อมูลมีรายละเอียดคือ (ดูรูป)

  1. ระบบผู้ใช้สร้างเซลล์ส่งต่อพร้อมคำสั่งรีเลย์ relay begin โดยมีระบบปลายทางพร้อมหมายเลขช่องทาง (website:80) เป็นข้อมูลรีเลย์ แล้วเข้ารหัสส่วนข้อมูลของเซลล์ด้วยกุญแจอายุสั้นที่ใข้กับสถานีส่งต่อต่าง ๆ เริ่มจากสถานีขาออกกลับมาถึงสถานีขาเข้า แล้วส่งเซลล์รีเลย์ผ่านการเชื่อมต่อทีแอลเอส (และดังนั้นเข้ารหัสลับด้วยกุญแจทีแอลเอส) ไปยังสถานีขาเข้า
  2. สถานีขาเข้าถอดรหัสส่วนข้อมูลของเซลล์ที่ได้รับด้วยกุญแจอายุสั้นที่ตนใช้ร่วมกันระบบผู้รับ แล้วส่งข้อมูลต่อผ่านเซลล์ที่ตนสร้างผ่านการเชื่อมต่อแบบทีแอลเอสไปยังสถานีขาออก
  3. สถานีขาออกถอดรหัสส่วนข้อมูลของเซลล์ที่ได้รับด้วยกุญแจอายุสั้นที่ตนใช้ร่วมกันระบบผู้รับ แล้วพบคำสั่งรีเลย์ relay begin จึงเริ่มการเชื่อมต่อแบบทีซีพีกับระบบปลายทางผ่านช่องทาง 80 แล้วสร้างเซลล์ระบุคำตอบรับการเชื่อมต่อที่สำเร็จโดยเข้ารหัสลับส่วนข้อมูลด้วยกุญแจอายุสั้น แล้วส่งกลับไปยังสถานีขาเข้าผ่านทีแอลเอส
  4. สถานีขาเข้าสร้างเซลล์ส่งต่อโดยเข้ารหัสส่วนข้อมูลที่มาจากสถานีขาออกด้วยกุญแจอายุสั้นของตน แล้วส่งผ่านทีแอลเอสไปยังระบบผู้รับ
  5. ระบบผู้รับถอดรหัสส่วนข้อมูลเซลล์ที่ได้รับด้วยกุญแจสองตัวที่ใช้ร่วมกันสถานีส่งต่อทั้งสอง แล้วพบว่า การเชื่อมต่อแบบทีซีพีกับระบบปลายทางสำเร็จแล้ว และจึงดำเนินการสื่อสารกับระบบปลายทางในนัยเดียวกันต่อไป

วิธีการโจมตี

ผู้ออกแบบการจัดเส้นทางแบบหัวหอมได้พิจารณาการโจมตีและผลต่อระบบหลายอย่าง (ปี 2004) รวมทั้งที่จัดว่าเป็นการดักฟังเฉย ๆ (passive attack) และแบบต้องทำการอย่างแอ๊กถีฟ (active attack) ต่อไปนี้เป็นตัวอย่างของการโจมตีที่ได้พิจารณา

แบบดักฟังเฉย ๆ

การโจมตีแบบดักฟังเฉย ๆ (passive attack) รวมทั้ง

  • การเฝ้าดูรูปแบบการสื่อสาร (observing user traffic patterns) เพราะข้อมูลการสื่อสารของวงจรเข้ารหัสลับอยู่ จึงไม่สามารถตรวจดูโดยตรงภายในวงจรได้ แต่สามารถวิเคราะห์รูปแบบการสื่อสารได้ ทั้งในการรับและส่งข้อมูล
  • การตรวจดูข้อมูล (observing user content) แม้ข้อมูลทางด้านระบบผู้ใช้จะเข้ารหัสลับ แต่การสื่อสารจากสถานีขาออกกับระบบปลายทางอาจจะไม่ได้เข้ารหัส ถึงแม้การกรองข้อมูลที่ส่งเข้าเครือข่ายอาจไม่ใช่เป้าหมายของโปรเจ็กต์โดยตรง แต่ผู้ใช้อาจใช้โปรแกรมเสริมเช่น Prixvoxy ที่ช่วยกรองข้อมูล ไม่ให้ส่งข้อความซึ่งไม่ได้เข้ารหัสลับที่เปิดเผยตนได้
  • รูปแบบการสื่อสารต่างกันเนื่องจากตั้งค่าไม่เหมือนกัน (option distinguishability) เนื่องจากพร็อกซีหัวหอมสามารถตั้งค่าต่าง ๆ กันได้ ผู้ใช้การตั้งค่าแบบที่มีจำนวนน้อยอาจเสียสภาพนิรนาม
  • การสัมพันธ์เวลาระหว่างต้นกับปลาย (end-to-end timing correlation) ระบบสามารถปิดบังข้อมูลทางเวลาได้เพียงเล็กน้อยเท่านั้น ปฏิปักษ์ที่สามารถดูรูปแบบการสื่อสารทั้งที่ต้นสายและปลายทาง จะมีโอกาสยืนยันการสื่อสารระหว่างต้นสายปลายทางได้สูงมาก วิธีป้องกันดีสุดก็คือปิดบังการเชื่อมต่อกันระหว่างระบบผู้ใช้กับสถานีขาเข้า ซึ่งอาจทำได้โดยดำเนินการระบบผู้ใช้และสถานีรีเลย์ในคอมพิวเตอร์เดียวกัน หรือในคอมพิวเตอร์ต่างกันแต่อยู่หลังไฟร์วอลล์เดียวกัน ซึ่งทำให้การโจมตีระบบได้จะต้องแยกแยะการสื่อสารที่เริ่มมาจากที่อื่นหรือเริ่มมาจากระบบผู้ใช้ โดยผู้โจมตีซึ่งจะทำได้ก็คือผู้ที่สามารถทำการได้ทั่วโลก (เช่น หน่วยจารกรรมที่มีทรัพยากรมาก) แต่ผู้ที่มีทรัพยากรจำกัดไม่สามารถทำได้
  • การสัมพันธ์ขนาดข้อมูลระหว่างต้นกับปลาย (end-to-end size correlation) คือการนับเพียงแค่แพ็กเกต (กลุ่มข้อมูล) ซึ่งส่งที่ต้นสายและรับ ที่ปลายทางก็อาจสามารถสัมพันธ์การสื่อสารได้แล้ว แต่การที่ระบบผู้ใช้สามารถสื่อสารออกนอกวงจรก่อนจะถึงสถานีสุดท้ายอาจช่วยลดระดับปัญหานี้ วิธีการป้องกันและลักษณะผู้โจมตีจะคล้ายกับในปัญหาการสัมพันธ์เวลาระหว่างต้นกับปลาย
  • การระบุลักษณะเฉพาะของเว็บไซต์ (website fingerprinting) ผู้โจมตีอาจสร้างฐานข้อมูลของเว็บไซต์ต่าง ๆ ที่ระบุขนาดไฟล์ที่เข้าถึง และรูปแบบการสื่อสารเพื่อเข้าถึงไฟล์ แล้วสามารถยืนยันการสื่อสารกับเว็บไซต์ของระบบผู้ใช้โดยใช้ข้อมูลนั้น ๆ โดยมีผู้ชำนาญบางพวกที่วิเคราะห์ว่า ทำได้ยากเนื่องจากในโลกจริง ๆ ผู้โจมตีจะต้องสามารถแยกแยะหน้าเว็บเป็นจำนวนมากโดยอาศัยเพียงแค่รูปแบบการสื่อสาร

แบบแอ๊กถีฟ

การโจมตีแบบแอ๊กถีฟ (active attack) รวมทั้ง

  • การได้กุญแจ (compromise key) ผู้โจมตีที่ได้กุญแจทีแอลเอสสามารถมองเห็นเซลล์ควบคุมและเซลล์รีเลย์ที่ยังเข้ารหัสลับอีกชั้นสำหรับวงจรทุก ๆ วงจรที่วิ่งผ่านการเชื่อมต่อแบบทีแอลเอสนั้น ๆ แต่จะดูข้อมูลที่เข้ารหัสในเซลล์รีเลย์ได้ก็จะต้องรู้กุญแจอายุสั้นต่าง ๆ ที่สมควรด้วย ซึ่งอาจเป็นเรื่องทำได้ยากโดยเฉพาะเมื่อกุญแจชั่วคราวเหล่านี้จะทิ้งไปเมื่อการเชื่อมต่อหรือวงจรยุติลง
  • iterated compromise - ผู้โจมตีที่ทำการต่อระบบต่าง ๆ ต่อ ๆ กันได้ อาจเอาชนะการป้องกันของสถานีส่งต่อ ไม่ว่าจะโดยการแฮ็ก โดยกฎหมาย หรือโดยวิธีการนอกกฎหมาย ต่อ ๆ กันจนถึงระบบผู้ใช้ แต่ก็จะต้องทำการให้สำเร็จก่อนวงจรจะยุติลง ไม่เช่นนั้นแล้ว กุญแจที่เข้ารหัสการสื่อสารก็จะทิ้งไปหมดแล้ว นอกจากนั้น การสร้างวงจรเพื่อให้มีสถานีส่งต่อที่อยู่ในเขตกฎหมายต่าง ๆ กันก็จะทำให้การบังคับตามกฎหมายทำได้ยากขึ้น
  • การดำเนินการระบบปลายทาง - ผู้โจมตีที่ดำเนินการระบบบริการเว็บไซต์สามารถรู้รูปแบบการสื่อสารกับระบบต้นทางได้ง่าย ๆ หรือสามารถตอบสนองโดยมีรูปแบบโดยเฉพาะ ๆ ซึ่งทำให้การโจมตีแบบจากต้นสายจนถึงปลายทางทำได้ง่ายขึ้น นอกจากนั้น ระบบอาจจะชักจูงให้ระบบต้นสายไม่ว่าจะโดยโพรโทคอลหรือผ่านการทำงานโปรแกรม ให้ส่งข้อมูลเปิดเผยตนเองได้ วิธีการป้องกันและลักษณะผู้โจมตีจะคล้ายกับในปัญหาการสัมพันธ์เวลาระหว่างต้นกับปลาย
  • การดำเนินงานพร็อกซีหัวหอม - ในสถานการณ์ที่สถาบันต้องการควบคุมการใช้การจัดเส้นทางแบบหัวหอม แล้วให้ใช้พร็อกซีซึ่งดำเนินการในคอมพิวเตอร์ต่างหาก (แทนที่จะดำเนินการแบบปกติในคอมพิวเตอร์ของผู้ใช้) การแฮ็กระบบที่ดำเนินการพร็อกซีได้จะทำให้สามารถทำการต่าง ๆ ต่อการเชื่อมต่อผ่านพร็อกซีในอนาคตทั้งหมด
  • การโจมตีสถานีที่ลอบฟังไม่ได้เพื่อให้บริการไม่ได้ (DoS non-observed nodes) ผู้โจมตีที่สามารถตรวจดูเครือข่ายเป็นบางส่วนจะได้ข้อมูลเพิ่มขึ้นถ้าโจมตีสถานีส่งต่ออื่น ๆ เพื่อไม่ให้ให้บริการได้ ทำให้ผู้ใช้มีโอกาสเพิ่มในการสร้างวงจรผ่านสถานีที่ผู้โจมตีควบคุมหรือสามารถตรวจดูการใช้ได้
  • การดำเนินงานสถานีส่งต่อ - นอกจากจะสามารถตรวจดูข้อมูลที่ส่งผ่านสถานีของตน ผู้โจมตียังสามารถเปลี่ยนรูปแบบการสื่อสารผ่านสถานีอื่น ๆ แต่จะสามารถทำลายสภาพนิรนามได้ก็ต่อเมื่อเป็นสถานีส่งต่อแรกสุดและสุดท้าย โดยอาจเพิ่มโอกาสการเชื่อมต่อกับสถานีของตนโดยดำเนินการสถานีขาออกที่ให้บริการอย่างมีข้อจำกัดน้อย หรือทำลายความน่าเชื่อถือของสถานีอื่น ๆ
  • การส่งเซลล์ต่อโดยมีกำหนดเวลาโดยเฉพาะ ๆ - เป็นการเพิ่มสมรรถภาพวิธีการตรวจดูเวลาของการส่งข้อมูลแบบดักฟังเฉย ๆ ดังที่ได้กล่าวมาแล้ว
  • การโจมตีโดยการติดป้าย - สถานีโจมตีอาจติดป้ายเซลล์โดยเปลี่ยนข้อมูล แต่การตรวจดูบูรณภาพของข้อมูลก็จะป้องกันการโจมตีเยี่ยงนี้ได้
  • การเปลี่ยนข้อมูลสำหรับโพรโทคอลที่ไม่พิสูจน์ตัวจริง - คือ สถานีขาออกที่อยู่ใต้การควบคุมของผู้โจมตีสามารถปลอมตัวเป็นระบบบริการปลายทาง ดังนั้น ผู้ใช้ควรเลือกใช้โพรโทคอลที่มีการพิสูจน์ตัวจริง (เช่น เอชทีทีพีเอสแทนที่จะใช้เอชทีทีพี)
  • การโจมตีด้วยการเล่นซ้ำ (replay attack) - สำหรับโพรโทคอลของทอร์ การเริ่มจับมือโดยการเล่นซ้ำข้อมูลที่ดักเก็บมาก่อนจะมีผลให้สร้างกุญแจอายุสั้นที่ต่างกัน ทำให้ข้อมูลที่ได้ดักเก็บที่เหลือไม่สามารถใช้อีก
  • การโจมตีทำลายชื่อเสียง - ผู้โจมตีสามารถใช้เครือข่ายทำการที่ไม่ชอบ เป็นการทำลายชื่อเสียง เพื่อบังคับให้ผู้ดำเนินงานหยุดปฏิบัติการ นโยบายของสถานีขาออกจะช่วยลดปัญหานี้ แต่โดยที่สุดแล้ว เครือข่ายต้องมีอาสาสมัครที่สามารถอดทนต่อความกดดันทางการเมือง/ทางกฎหมายได้
  • การกระจายโปรแกรมที่ถูกบ่อนทำลาย - ผู้โจมตีสามารถหลอกให้ผู้ใช้หรือสถานีใช้ซอฟต์แวร์ที่ถูกแก้ไขไม่ให้รักษาสภาพนิรนาม ทอร์ใช้วิธีเซ็นชื่อซอฟต์แวร์ที่แจกจ่าย โดยมีรายการจากโหนดสารบบที่แสดงรุ่นของซอฟต์แวร์ที่เชื่อว่าปลอดภัย นอกจากนั้นเพื่อกันปัญหาจากภายในโปรเจ็กต์ทอร์เอง ยังเปิดให้ดูรหัสต้นทางทั้งหมด สนับสนุนให้มีการตรวจรหัสต้นทางบ่อย ๆ และเตือนผู้ใช้ไม่ให้เชื่อใจซอฟต์แวร์ที่ไม่เปิดเผยรหัสต้นทาง

จุดอ่อน

การวิเคราะห์เวลา

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

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

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

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

โหนดขาออก (Exit node)

แม้ข้อความที่ส่งจะเข้ารหัสลับเป็นชั้น ๆ แต่หน้าที่ของโหนดขาออก (exit node) ที่เป็นโหนดท้ายสุดในโซ่ ก็คือการถอดรหัสลับชั้นสุดท้ายแล้วส่งข้อความไปให้ผู้รับ ดังนั้น โหนดขาออกที่ถูกแก้ก็อาจจะเก็บข้อมูลที่ส่ง ซึ่งอาจมีรหัสผ่าน ข้อความส่วนตัว เลขบัญชีธนาคาร หรือข้อมูลส่วนตัวอื่น ๆ ในปี 2007 นักวิจัยชาวสวีเดนได้ใช้การโจมตีคล้าย ๆ กันนี้แล้วสามารถเก็บรหัสผ่านของบัญชีอีเมลกว่า 100 บัญชีของสถานทูตประเทศต่าง ๆ

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

ดูเพิ่ม

เชิงอรรถและอ้างอิง

แหล่งข้อมูลอื่น

Tags:

การจัดเส้นทางแบบหัวหอม พัฒนาการและการทำให้เกิดผลการจัดเส้นทางแบบหัวหอม การดำเนินงานการจัดเส้นทางแบบหัวหอม การสร้างวงจรเสมือนการจัดเส้นทางแบบหัวหอม วิธีการโจมตีการจัดเส้นทางแบบหัวหอม จุดอ่อนการจัดเส้นทางแบบหัวหอม ดูเพิ่มการจัดเส้นทางแบบหัวหอม เชิงอรรถและอ้างอิงการจัดเส้นทางแบบหัวหอม แหล่งข้อมูลอื่นการจัดเส้นทางแบบหัวหอมการวิเคราะห์การใช้การสื่อสารภาษาอังกฤษหัวหอมเข้ารหัสลับเครือข่ายคอมพิวเตอร์

🔥 Trending searches on Wiki ไทย:

เอก อังสนานนท์ปานวาด เหมมณีราชินีแห่งน้ำตาจ้าว ลี่อิ่งจำนวนเฉพาะเอ็งดรีกี เฟลีปีพ่อขุนรามคำแหงมหาราชไทยลีกราชมังคลากีฬาสถานการรถไฟแห่งประเทศไทยภัทรเดช สงวนความดีสามเหลี่ยมเบอร์มิวดาโรงเรียนเตรียมอุดมศึกษาน้อมเกล้ารายชื่อตัวละครในวันพีซซน ฮึง-มินจังหวัดหนองบัวลำภูประเทศเกาหลีใต้ชาคริต แย้มนามไทยบาปเจ็ดประการมหาวิทยาลัยขอนแก่นไททานิค (ภาพยนตร์)ฟุตบอลทีมชาติอังกฤษโรงเรียนฤทธิยะวรรณาลัยภาษาในประเทศไทยพระศรีอริยเมตไตรยกรมราชเลขานุการในพระองค์เครื่องราชอิสริยาภรณ์อันมีเกียรติยศยิ่งมงกุฎไทยจักรภพ เพ็ญแขจังหวัดกาฬสินธุ์เอสเธอร์ สุปรีย์ลีลาจ้าว ลู่ซือ27 มีนาคมเกียรติศักดิ์ เสนาเมือง69 (ท่วงท่าเพศสัมพันธ์)โมเสสเด่นคุณ งามเนตรภรภัทร ศรีขจรเดชารายชื่อท่าอากาศยานในประเทศไทยสภาผู้แทนราษฎรไทยพ.ศ. 2567ตี๋ เหรินเจี๋ยนพเก้า เดชาพัฒนคุณกีบ (สกุลเงิน)คาราบาวชวน หลีกภัยประเทศบรูไนนักเตะแข้งสายฟ้าป๊อกเด้งสงครามเย็นรายพระนามและชื่ออธิบดีกรมตำรวจและผู้บัญชาการตำรวจแห่งชาติของไทยชาลิดา วิจิตรวงศ์ทองจังหวัดบึงกาฬเอกซ์เอกซ์เอกซ์เทนเทสซิยอนศุภนันท์ บุรีรัตน์งานฟุตบอลประเพณีจุฬาฯ–ธรรมศาสตร์บรรดาศักดิ์ไทยพรรคภูมิใจไทยตารางธาตุรายชื่อประเทศและเขตการปกครองเรียงตามขนาดพื้นที่ทั้งหมดกังฟูแพนด้า 4ฟุตบอลโลก 2026 รอบคัดเลือก โซนเอเชีย – รอบที่ 2โรงเรียนเตรียมอุดมศึกษาพงศกร เมตตาริกานนท์กีลียาน อึมบาเปคิม จี-ว็อน (นักแสดง)พระบาทสมเด็จพระพุทธเลิศหล้านภาลัยจังหวัดมหาสารคามสุลักษณ์ ศิวรักษ์จีเอ็มเอ็มทีวีมัธยมศึกษาฮันเตอร์ x ฮันเตอร์ชาริล ชับปุยส์ฟุตบอลโลก 2026 รอบคัดเลือกกรณ์นภัส เศรษฐรัตนพงศ์บัญญัติ 10 ประการสืบคดีปริศนา หมอยาตำรับโคมแดง🡆 More