ไคลเอนต์ WireGuard ไฟร์วอลล์ที่ได้รับแรงบันดาลใจจาก OpenSnitch และตัวตรวจสอบเครือข่าย + DNS ที่ได้รับแรงบันดาลใจจาก pi-hole ผ่านไคลเอนต์ HTTPS พร้อมรายการบล็อก
กล่าวอีกนัยหนึ่ง Rethink DNS + Firewall มีโหมดหลักสามโหมด ได้แก่ VPN, DNS และไฟร์วอลล์ โหมด VPN (พร็อกซิฟายเออร์) รองรับอัปสตรีม WireGuard หลายรายการในการกำหนดค่าช่องสัญญาณแยก โหมด DNS จะกำหนดเส้นทางการรับส่งข้อมูล DNS ทั้งหมดที่สร้างโดยแอปไปยังผู้ใช้ ที่ เลือก DNS-over-HTTPS หรือ DNSCrypt Resolver โหมดไฟร์วอลล์ช่วยให้ผู้ใช้ปฏิเสธการเข้าถึงอินเทอร์เน็ตสำหรับแอปพลิเคชันทั้งหมดตามเหตุการณ์ต่างๆ เช่น การเปิดหน้าจอ / ปิดหน้าจอ เบื้องหน้าของแอป / พื้นหลังของแอป การเชื่อมต่อแบบไม่มีมิเตอร์ / การเชื่อมต่อแบบมิเตอร์ หรือตามหมวดหมู่ที่กำหนดใน Play Store เช่น โซเชียล เกม ยูทิลิตี้ ประสิทธิภาพการทำงาน หรือเพิ่มเติมตามรายการปฏิเสธที่ผู้ใช้กำหนด
คิดใหม่รองรับการส่งต่อการเชื่อมต่อ TCP และ UDP ผ่าน SOCKS5, HTTP CONNECT และอุโมงค์ WireGuard การแยกอุโมงค์ยังช่วยเรียกใช้อุโมงค์ดังกล่าวหลายช่องในเวลาเดียวกัน และช่วยให้ผู้ใช้กำหนดเส้นทางแอปที่แตกต่างกันผ่านอุโมงค์ที่ต่างกันได้ ตัวอย่างเช่น เราสามารถกำหนดเส้นทาง Firefox ผ่าน SOCKS5 ที่เชื่อมต่อกับ Tor, Netflix ผ่าน WireGuard ที่เชื่อมต่อผ่านผู้ให้บริการ VPN ยอดนิยม และ Telegram หรือ WhatsApp ผ่านจุดสิ้นสุด HTTP CONNECT ที่ป้องกันการเซ็นเซอร์ในเวลาเดียวกัน
ไฟร์วอลล์ไม่สนใจเกี่ยวกับการเชื่อมต่อต่อการเชื่อมต่อมากกว่าสิ่งที่ทำให้เกิดการเชื่อมต่อเหล่านั้น สิ่งนี้แตกต่างจากไฟร์วอลล์แบบเดิม แต่สอดคล้องกับ Little Snitch, LuLu, Glasswire และอื่นๆ
ปัจจุบัน การแมปการเชื่อมต่อต่อแอปถูกนำมาใช้โดยจับการเชื่อมต่อ udp
และ tcp
ที่จัดการโดย firestack
(เขียนด้วยภาษา golang) และขอ ConnectivityService สำหรับเจ้าของ ซึ่งเป็น API ที่ใช้งานได้บน Android 10 หรือสูงกว่าเท่านั้น procfs
( /proc/net/tcp
และ /proc/net/udp
) อ่านตามความต้องการเพื่อติดตามการเชื่อมต่อต่อแอป เช่น NetGuard หรือ OpenSnitch บน Android 9 และเวอร์ชันต่ำกว่า
การตรวจสอบเครือข่ายคือการ์ดรายงานต่อแอปที่ระบุว่ามีการเชื่อมต่อเมื่อใด จำนวนเท่าใด และไปยังที่ใด การติดตาม TCP กลายเป็นเรื่องตรงไปตรงมามาก แพ็กเก็ต DNS นั้นยากกว่าในการติดตาม ดังนั้นจึงมีการใช้การวิเคราะห์พฤติกรรมแบบคร่าว ๆ ในตอนนี้ ซึ่งอาจไม่ดีในทุกกรณี
โค้ดที่เกี่ยวข้องกับเครือข่ายเกือบทั้งหมด ( firestack
) รวมถึง DNS ผ่านอุโมงค์แยก HTTPS นั้นเป็นฮาร์ดฟอร์กของ Jigsaw-Code/outline-go-tun2socks ที่เขียนด้วย golang UI นั้นแตกต่างอย่างมาก แต่ยืมมาจาก Jigsaw-Code/Intra เพียงเล็กน้อย คำขอกับดักแบบแยกอุโมงค์ที่ส่งไปยังจุดสิ้นสุด DNS ของ VPN และส่งต่อไปยังจุดสิ้นสุด DNS-over-HTTPS / DNSCrypt ที่ผู้ใช้เลือก บันทึกเวลาแฝงจากต้นทางถึงปลายทาง เวลาของการร้องขอ การสืบค้นคำขอ DNS เองและ คำตอบ.
มัลแวร์และ DNS การบล็อกโฆษณาผ่านตัวแก้ไข HTTPS ที่ https://sky.rethinkdns.com/1:IAAgAA==
(ปรับใช้กับสถานที่มากกว่า 300 แห่งทั่วโลกผ่าน Cloudflare Workers) เป็นจุดสิ้นสุด DNS เริ่มต้นบนแอป แม้ว่า ผู้ใช้มีอิสระที่จะเปลี่ยนแปลงสิ่งนั้น ตัวแก้ไข DNS ที่กำหนดค่าได้ซึ่งช่วยให้ผู้ใช้สามารถเพิ่มหรือลบรายการที่ถูกปฏิเสธและรายการที่อนุญาต เพิ่มการเขียนใหม่ วิเคราะห์คำขอ DNS จะเปิดตัวในช่วงปลายปี 2023 ขณะนี้ คุณสามารถตั้งค่า DNS ฟรีบนตำแหน่งข้อมูล HTTPS พร้อมรายการบล็อกแบบกำหนดเองได้ที่นี่: rethinkdns.com/ กำหนดค่า
ตัวแก้ไขจะถูกปรับใช้กับ Fly.io ที่ max.rethinkdns.com
และ Deno Deploy ที่ rdns.deno.dev
ด้วยเช่นกัน นอกเหนือจากการปรับใช้งานเริ่มต้นบน Cloudflare Workers
ตัวแก้ไขเป็นซอฟต์แวร์โอเพ่นซอร์ส: serverless-dns
การกำหนดเส้นทางการเชื่อมต่อ TCP ผ่านพร็อกซีแบบไร้เซิร์ฟเวอร์ (โฮสต์บน Cloudflare Workers) จะเป็นส่วนหนึ่งของ Rethink เร็วๆ นี้ ผู้ใช้จะสามารถโฮสต์สิ่งเหล่านี้ได้เอง หรือใช้อันที่เราดำเนินการด้วยแบนด์วิธไม่จำกัดมูลค่า 1 ดอลลาร์ต่อเดือน คาดว่าบริการนี้จะเปิดตัวในช่วงปลายปี 2023
พร็อกซีเป็นซอฟต์แวร์โอเพ่นซอร์ส: serverless-proxy
ช่วยแปลคิดใหม่ DNS + ไฟร์วอลล์บน Weblate:
คิดใหม่ไม่ใช่เครื่องมือในการไม่เปิดเผยตัวตน: ช่วยให้ผู้ใช้รับมือกับการเซ็นเซอร์และการเฝ้าระวังที่ไม่ลดน้อยลง แต่ไม่ได้อ้างสิทธิ์ในการปกป้องตัวตนของผู้ใช้ตลอดเวลา (หากเคย)
การคิดใหม่ไม่ได้มุ่งหวังที่จะเป็นไฟร์วอลล์แบบเดิมที่มีคุณสมบัติหลากหลาย แต่จะสอดคล้องกับ Little Snitch มากกว่าตาราง IP
การคิดใหม่ไม่ใช่การป้องกันไวรัส: การคิดใหม่อาจหยุดผู้ใช้จากการโจมตีแบบฟิชชิ่ง มัลแวร์ เว็บไซต์สแคร์แวร์ผ่านรายการบล็อกที่ใช้ DNS แต่ไม่ได้บรรเทาภัยคุกคามอย่างจริงจัง หรือแม้แต่ค้นหาหรือดำเนินการกับภัยคุกคามเหล่านั้น
วิธีเปลี่ยนอุปกรณ์ Android ให้เป็นตัวแทนผู้ใช้: สิ่งที่ผู้ใช้สามารถควบคุมได้ตามต้องการโดยไม่ต้องมีการเข้าถึงรูท ส่วนสำคัญของสิ่งนี้สำหรับอุปกรณ์ที่เปิดตลอดเวลาและเชื่อมต่อตลอดเวลาคือการจับภาพการรับส่งข้อมูลเครือข่ายและรายงานในลักษณะที่เหมาะสมกับผู้ใช้ปลายทางซึ่งสามารถดำเนินการหลายอย่างเพื่อจำกัดการเปิดเผยของพวกเขา แต่ไม่จำเป็น กำจัดมัน ยกตัวอย่าง DNS สำหรับการเชื่อมต่อส่วนใหญ่หรือทั้งหมด แอปจะส่งคำขอ DNS ก่อน และการติดตามเฉพาะการเชื่อมต่อเหล่านั้นสามารถรวบรวมข้อมูลได้มากมายเกี่ยวกับสิ่งที่เกิดขึ้นกับโทรศัพท์และแอปใดที่รับผิดชอบ
เพื่อส่งมอบคำมั่นสัญญาของอินเทอร์เน็ตแบบเปิดสำหรับทุกคน: ด้วยมาตรฐาน ESNI ที่หลีกเลี่ยงไม่ได้และการนำ DNS ผ่าน HTTPS และ DNS ผ่าน TLS ทั่วทั้งระบบปฏิบัติการที่ใกล้เข้ามา เราเข้าใกล้อินเทอร์เน็ตแบบเปิดมากขึ้นมาก แน่นอนว่า Deep Packet Inspection ยังคงเป็นภัยคุกคามที่น่าเชื่อถือซึ่งไม่สามารถบรรเทาลงได้ แต่นี่เป็นตัวอย่างหนึ่งของการส่งผลกระทบสูงสุด (หลีกเลี่ยงการเซ็นเซอร์อินเทอร์เน็ตในประเทศส่วนใหญ่) โดยใช้ความพยายามเพียงเล็กน้อย (ไม่จำเป็นต้องใช้ VPN หรือการเข้าถึงผ่าน IPFS , ตัวอย่างเช่น). การคิดใหม่จะทำให้เทคโนโลยีเหล่านี้สามารถเข้าถึงได้ด้วยวิธีที่ง่ายที่สุดเท่าที่จะเป็นไปได้ โดยเฉพาะอย่างยิ่งเทคโนโลยีที่เข้าถึงได้ 90% ด้วยความพยายาม 10%
เรายังไปไม่ถึงหรืออาจจะไม่มีวันไป แต่นี่คือหลักคำสอนบางประการสำหรับโครงการนี้ในอนาคตอันใกล้
การเซ็นเซอร์อินเทอร์เน็ต (บางครั้งบังคับใช้กับ ISP และบ่อยครั้งเป็นการบังคับใช้โดยรัฐบาล) การเฝ้าระวังแบบลากอวนที่ไม่ลดน้อยลง (โดยบริษัทและแอปแทบทุกแห่ง) กระตุ้นให้เราเดินไปตามเส้นทางนี้ พวกเราสามคนในมหาวิทยาลัย ได้แก่ Mohammed, Murtaza, Santhosh มารวมตัวกันเมื่อปลายปี 2019 ในเมือง Coimbatore อันเงียบสงบ ประเทศอินเดีย เพื่อทำอะไรบางอย่างเกี่ยวกับเรื่องนี้ ประเด็นหลักของเราคือมีเครื่องมือที่ยอดเยี่ยมเหล่านี้ที่ผู้คนสามารถใช้ได้แต่ทำไม่ได้ เนื่องจากต้นทุนหรือเนื่องจากไม่สามารถใช้ศัพท์เฉพาะทางคอมพิวเตอร์ได้ มีหลายสิ่งหลายอย่างเกิดขึ้นตั้งแต่เราเริ่มต้นและมีอะไรเปลี่ยนแปลงไปมากมาย แต่เรามุ่งเน้นไปที่ Android และผู้ใช้ที่ไม่สงสัยมากกว่า 2 พันล้านคนมาโดยตลอด แนวคิดปัจจุบันนี้เริ่มดำเนินการตั้งแต่เดือนพฤษภาคม 2020 โดยการแพร่ระบาดทำให้ความคืบหน้าเล็กน้อย และเป็นเรื่องไร้สาระเล็กน้อยด้วยการละทิ้งเวอร์ชันก่อนหน้าของเราและหันไปใช้ Fork ในปัจจุบัน ซึ่งเรายังไม่ภาคภูมิใจ คือการเริ่มต้น ตอนนี้ทุกอย่างเป็นไปด้วยดีที่เราได้รับทุนจากโปรแกรม Mozilla Builders MVP เพื่อดำเนินการต่อและสร้างสิ่งที่เราต้องการ... ทำได้เร็วขึ้น... และไม่ใช่แค่เพียงหลับใหลผ่านการประหารชีวิตเท่านั้น ฉันหวังว่าคุณจะตื่นเต้นแต่ไม่มากเท่ากับพวกเราที่คุณลาออกจากงานเพราะเหตุนี้