การดำเนินงาน ของ ทอร์_(เครือข่ายนิรนาม)

ภาพแสดงการดำเนินงานของทอร์ โดย EFF

ทอร์มุ่งซ่อนการระบุตัวผู้ใช้และกิจกรรมออนไลน์ของพวกเขา จากการสอดแนมและการวิเคราะห์การสื่อสาร โดยจำกัดข้อมูลระบุตัวและข้อมูลการจัดเส้นทางเป็นการทำให้เกิดผลของระบบการจัดเส้นทางแบบหัวหอม (onion routing) ซึ่งเข้ารหัสลับและส่งการสื่อสารผ่านเครือข่ายสถานีรีเลย์อย่างสุ่ม ๆ เป็นสถานีที่ดำเนินการโดยจิตอาสารอบโลกสถานีรีเลย์เหล่านี้ใช้การเข้ารหัสลับแบบทำเป็นชั้น ๆ (จึงอุปมาเหมือนหัวหอม) เพื่อรักษาความลับของเนื้อหาและต้นสายปลายทางของการสื่อสารในระหว่างสถานี ดังนั้น เป็นการให้สภาวะนิรนามในเรื่องตำแหน่งภายในเครือข่ายของผู้ใช้ความเป็นนิรนามยังขยายให้ผู้ให้บริการโดยระบบบริการซ่อนของทอร์ (hidden service)[5]อนึ่ง ทอร์มีสถานีขาเข้าแบบพิเศษ (bridge relay) ที่ไม่เปิดเผยโดยทั่วไป โดยผู้ใช้แต่ละคนสามารถรับที่อยู่สถานีได้จากโปรเจ็กต์เพียงไม่กี่สถานีเท่านั้นผู้ใช้จึงสามารถหลีกเลี่ยงการตรวจพิจารณาอินเทอร์เน็ตที่ใช้วิธีขัดขวางไม่ให้เข้าถึงสถานีรีเลย์ที่เปิดเผยของทอร์[80]

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

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

การสื่อสาร

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

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

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

บริการซ่อน (hidden service)

ทอร์ยังสามารถให้สภาพนิรนามแก่เว็บไซต์และระบบบริการอื่น ๆ ด้วยเซิร์ฟเวอร์ที่ตั้งให้รับการเชื่อมต่อขาเข้าจากเครือข่ายทอร์เท่านั้นเรียกว่า บริการซ่อน (hidden services)แทนที่จะเปิดที่อยู่ไอพีของเซิร์ฟเวอร์ (และดังนั้น ที่อยู่ของมันจริง ๆ ในเครือข่าย) บริการซ่อนจะเข้าถึงได้ผ่านที่อยู่หัวหอม (ลงท้ายด้วย .onion) ปกติโดยใช้ทอร์เบราว์เซอร์เครือข่ายทอร์จะแปลที่อยู่เช่นนั้นโดยค้นหากุญแจสาธารณะที่คู่กับที่อยู่ และหา "จุดแนะนำตัว" จากตารางแฮชแบบกระจาย (DHT) ภายในเครือข่ายแล้วจึงสามารถจัดเส้นทางส่งข้อมูลไปถึงและจากบริการซ่อน แม้ที่โฮสต์อยู่หลังไฟร์วอลล์หรือเครื่องแปลที่อยู่เครือข่าย (NAT) ในขณะที่รักษาสภาวะนิรนามของทั้งต้นสายปลายทางแต่การเข้าถึงบริการซ่อนได้ก็จะต้องอาศัยทอร์[82]

บริการซ่อนได้ระบุเป็นครั้งแรกในปี 2003[83]แล้วจึงนำมาใช้ในเครือข่ายตั้งแต่ปี 2004[84]ยกเว้นฐานข้อมูลที่เก็บตัวบอกบริการซ่อน (hidden-service descriptor)[85]ทอร์ได้ออกแบบให้ไม่มีศูนย์และไม่มีรายการบริการซ่อนที่หาได้จากเครือข่ายโดยตรง แม้จะมีผู้ทำรายการบริการซ่อนพร้อมกับที่อยู่หัวหอมในเว็บไซต์ต่าง ๆ

เพราะบริการซ่อนไม่จำเป็นต้องใช้สถานีขาออก การสื่อสารกับบริการซ่อนจึงเข้ารหัสลับตั้งแต่ต้นสายจนถึงปลายทางโดยไม่สามารถดักฟังได้แต่ก็ยังมีประเด็นทางความปลอดภัยเกี่ยวกับบริการซ่อนยกตัวอย่างเช่น บริการที่เข้าถึงได้ทั้งโดยผ่านระบบบริการซ่อนของทอร์ และผ่านอินเทอร์เน็ต จะเสี่ยงต่อการโจมตีแบบเชื่อมความสัมพันธ์ (correlation attack) และดังนั้น จึงไม่เป็นการซ่อนที่สมบูรณ์ปัญหาอื่น ๆ รวมทั้งการตั้งค่าระบบบริการผิด (เช่น ค่าตั้งโดยปริยายที่แสดงข้อมูลระบุตนเองเมื่อตอบสนองว่ามีความผิดพลาด), ข้อมูลสถิติเกี่ยวกับช่วงเวลาให้บริการและช่วงเวลาเครื่องไม่ทำงาน, intersection attack, และความผิดพลาดของผู้ใช้[85][86]มีโปรแกรมโอเพนซอร์ซคือ OnionScan ซึ่งพัฒนาโดยนักวิจัยความปลอดภัยคอมพิวเตอร์ต่างหาก ที่สามารถตรวจสอบบริการซ่อนเพื่อหาปัญหาและจุดอ่อนต่าง ๆ[87]

บริการซ่อนยังสามารถเข้าถึงได้ผ่านเบราว์เซอร์ธรรมดาที่ไม่ได้เชื่อมกับเครือข่ายทอร์โดยตรง ด้วยระบบบริการเช่น Tor2web[88]ส่วนแหล่งข้อมูลยอดนิยมที่แสดงลิงก์ของบริการซ่อนในตลาดมืดรวมทั้ง Pastebin, ทวิตเตอร์, Reddit, และกลุ่มประชุมอินเทอร์เน็ต (Internet forum) อื่น ๆ[89]

โปรแกรมเฝ้าสังเกตสถานะ "อาร์ม"

โลโก้ของโปรแกรมอาร์ม แผงส่วนหัวและกราฟแสดงอัตราการส่งถ่ายข้อมูลของอาร์ม

anonymizing relay monitor (Arm) เป็นโปรแกรมเฝ้าสังเกตสถานะที่ใช้ส่วนต่อประสานรายคำสั่ง (command-line interface) เป็นโปรแกรมเขียนด้วยภาษาไพทอนเพื่อใช้ร่วมกับทอร์[90][91][92]โดยทำงานคล้าย ๆ โปรแกรมยูนิกซ์ คือ Top ที่ตรวจสอบการใช้ระบบ โดยให้ข้อมูลทางสถิติในเวลาจริงสำหรับ

  • การใช้ทรัพยากร (อัตราการส่งถ่ายข้อมูล ซีพียู และหน่วยความจำ)
  • ข้อมูลการส่งต่อแพ็กเกตทั่วไป (nickname, fingerprint, flags, or/dir/controlports)
  • บันทึกเหตุการณ์ที่อาจกรองด้วย regex หรือรวมข้อมูลที่ซ้ำ ๆ
  • การเชื่อมต่อที่สัมพันธ์กับข้อมูลความเห็นพ้องของทอร์ (เช่น ip, connection types, relay details)
  • ไฟล์ตั้งค่า คือ torrc configuration file โดยสามารถเน้น (syntax highlighting) หรือตรวจความถูกต้องของวากยสัมพันธ์ (syntax validation)

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

โปรเจ็กต์นี้เริ่มขึ้นในปี 2009[93][94]และได้กลายเป็นส่วนของโปรเจ็กต์ทอร์ตั้งแต่วันที่ 18 กรกฎาคม 2010เป็นซอฟต์แวร์เสรีภายใต้สัญญาอนุญาตสาธารณะทั่วไปของกนู

แหล่งที่มา

WikiPedia: ทอร์_(เครือข่ายนิรนาม) http://50.21.181.236/congress/2015/h264-sd/32c3-73... http://www.gq.com.au/entertainment/tech/the+new+ma... http://www.scmagazine.com.au/News/246707,egyptians... http://www.smh.com.au/news/security/the-hack-of-th... http://www.fims.uwo.ca/news/2016/library_in_fims_j... http://pro.01net.com/editorial/544024/des-chercheu... http://arstechnica.com/security/2014/04/tor-networ... http://arstechnica.com/security/2014/07/russia-pub... http://arstechnica.com/security/2014/07/tor-develo... http://arstechnica.com/security/2016/08/building-a...