TgWitness / เอกสาร

เอกสาร / 10

รักษาความปลอดภัย

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

127.0.0.1ที่อยู่ panel ตามค่าเริ่มต้น
256 บิตtoken แผงสุ่ม
0CDN, ระบบวิเคราะห์ข้อมูล หรือฟอนต์จากระยะไกล
Ed25519ลายเซ็นบนทุกบันทึก

ที่เก็บรวบรวมทุกสิ่ง

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

06 / สิ่งที่เครื่องทิ้งไว้การติดตั้งของคุณ
คอมพิวเตอร์หรือเซิร์ฟเวอร์ของคุณ
Panel127.0.0.1:8787 · bearer token
Collectorใช้ Telegram client หนึ่งตัวต่อพื้นที่ทำงาน
ไดเรกทอรีข้อมูล
บันทึกSQLite · hash-chained · signed
สื่อไฟล์ที่มีชื่อตาม SHA-256
VaultFernet · session, คู่ API, กุญแจลงนาม, proxy
  • Telegramเสมอ · ผ่านเส้นทางของคุณ

    การเชื่อมต่อ MTProto ของบัญชี: แบบตรง, SOCKS5, HTTP หรือ MTProxy โหมดซ่อน IP จะรอจนกว่าจะมีพร็อกซีที่ทำงานได้ ส่วนการเปลี่ยนไปใช้การเชื่อมต่อแบบตรง (Direct fallback) ต้องใช้โหมดที่อนุญาตอย่างชัดเจน

  • เนื้อหาบนเว็บไซต์อื่นเลือกได้ · ปิดตามค่าเริ่มต้น

    บันทึก ไฟล์ และจุดตรวจสอบถูกเข้ารหัสด้วย AES-GCM ก่อนอัปโหลดไปยังพื้นที่จัดเก็บข้อมูลที่รองรับ S3 กุญแจจะอยู่กับคุณเสมอ; ไฟล์แนบถูกตั้งชื่อด้วยแฮชที่มีกุญแจ ไม่ใช่แฮชของเนื้อหา

  • การแจ้งเตือนเลือกได้ · ปิดตามค่าเริ่มต้น

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

  • ความน่าเชื่อถือของเวลาเลือกได้ · ปิดตามค่าเริ่มต้น

    มีเพียง SHA-256 ของจุดตรวจสอบที่ลงนามและ nonce แบบสุ่มเท่านั้น ไม่มีข้อความหรือชื่อผู้สนทนา

  • Witnessเลือกได้ · ปิดตามค่าเริ่มต้น

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

ค่าเริ่มต้น: มีเพียงการเชื่อมต่อ Telegram เท่านั้นที่ออกจากเครื่องนี้

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

สิ่งที่ความลับแต่ละข้อเปิดเผย

ลับสถานที่จัดเก็บประโยชน์ที่ได้รับหากข้อมูลรั่วไหล
โทเค็นของแผงpanel-token.txt ในไดเรกทอรีข้อมูล; เบราว์เซอร์เก็บไว้สำหรับแท็บนั้นเท่านั้นทุกสิ่งในทุกพื้นที่ทำงาน: อ่านและส่งออกข้อมูล, ปรับเปลี่ยนขอบเขต, เข้าสู่ระบบบัญชีหยุด TgWitness, ลบ panel-token.txt, แล้วเริ่มใหม่: โทเค็นใหม่ถูกสร้างขึ้น
เซสชัน TelegramVault, เข้ารหัส (credentials.enc)บัญชี Telegram เองปิดเซสชันใน Telegram โดยไปที่ การตั้งค่า → อุปกรณ์
กุญแจการลงนามVault, เข้ารหัส (signing.enc)การลงลายมือชื่อในบันทึกที่สามารถตรวจสอบได้ผ่านลายนิ้วมือของคุณจุดตรวจสอบถูกเก็บไว้ที่อื่น โดยพยานและเวลาประทับตราจะแสดงให้เห็นว่าข้อมูลใดเคยมีอยู่ก่อน
กุญแจ Vaultvault.key ข้างข้อมูล หรือกุญแจหลักภายนอกสำหรับไดเรกทอรีข้อมูลใหม่การถอดรหัสห้องนิรภัยถือว่ากุญแจเซสชันและกุญแจลงนามถูกรั่วไหลด้วย
โทเค็น Witnessบนเซิร์ฟเวอร์ของ TgWitnessอ่านได้เท่านั้น: จุดตรวจสอบที่ลงนามและสถานะความสมบูรณ์ลบมันบนหน้า Witness; สร้างหน้าใหม่
ข้อความหลักสำหรับใช้ภายนอกเว็บไซต์Vault; ดาวน์โหลดเพียงครั้งเดียวเพื่อกู้คืนข้อมูลการถอดรหัสสำเนาที่เก็บไว้นอกเว็บไซต์ผู้ใดก็ตามที่ถือครองข้อมูลที่เก็บไว้สามารถถอดรหัสได้: ให้ถือว่าสำเนานั้นถูกเปิดเผย

สิ่งที่การคุ้มครองครอบคลุม

ได้รับการครอบคลุม

  • บันทึกที่ถูกแก้ไข ลบ หรือจัดเรียงใหม่ในไฟล์ที่ส่งออก: ห่วงโซ่แฮชหรือลายเซ็นไม่สามารถตรวจสอบความถูกต้องได้อีกต่อไป
  • บันทึกที่ถูกตัดทอนหรือสร้างขึ้นใหม่หลังจากจุดตรวจสอบ (checkpoint) ถูกเก็บไว้ที่อื่น: จุดตรวจสอบที่เก็บไว้ไม่ตรงกันอีกต่อไป
  • การคาดเดาโทเค็นของแผง: 256 บิตแบบสุ่ม, เปรียบเทียบในเวลาคงที่; หลังจากล้มเหลว 15 ครั้งต่อนาที ที่อยู่จะถูกปฏิเสธ
  • เนื้อหาการสนทนาที่มีลักษณะเป็นภัยคุกคาม: ข้อความจะถูกแทรกเป็นข้อความธรรมดาเท่านั้น ไม่เคยเป็น HTML; ไฟล์แนบจะถูกดาวน์โหลดเป็นไฟล์; แผงควบคุมไม่โหลดเนื้อหาใดๆ จากเว็บไซต์อื่น
  • ไดเรกทอรีข้อมูลที่คัดลอกมาพร้อมกุญแจ vault ภายนอก: กุญแจเซสชันและกุญแจลงนามจะยังคงถูกเข้ารหัสไว้โดยไม่มีกุญแจหลัก

ขึ้นอยู่กับคุณ

  • ผู้ถือโทเค็นของแผงหลักมีสิทธิ์ควบคุมอย่างเต็มที่ ให้สิทธิ์เข้าถึงแบบจำกัดแก่บุคคลอื่นสำหรับบัญชี การสนทนา และกิจกรรมที่พวกเขาต้องการ; และเก็บกุญแจหลักไว้เป็นความลับ
  • ผู้ดูแลระบบสามารถอ่านข้อมูลทั้งหมดได้ รวมถึงแก้ไขและลงนามใหม่ในบันทึกดังกล่าว ควรเก็บลายนิ้วมือและจุดตรวจสอบไว้บนระบบอื่น
  • ข้อความและสื่อในข้อความไม่ได้รับการเข้ารหัสโดย TgWitness โปรดใช้การเข้ารหัสดิสก์และกำหนดสิทธิ์การเข้าถึงอย่างเคร่งครัด
  • การเชื่อมต่อ HTTP แบบธรรมดาที่อยู่นอก localhost จะทำให้โทเค็นปรากฏบนเครือข่าย ให้ใช้ HTTPS หรืออุโมงค์ SSH
  • ลายเซ็นพิสูจน์ว่าข้อมูลที่บันทึกไว้ไม่ถูกเปลี่ยนแปลง ไม่ใช่ว่าทุกเหตุการณ์ใน Telegram ได้ถูกบันทึกไว้

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

เสริมความปลอดภัยให้ระบบติดตั้ง

  1. ใช้บัญชี Telegram ที่จัดไว้เฉพาะ — อย่าใช้บัญชีหลักของคุณเด็ดขาด โทเค็นของแผงควบคุมและเซสชันจะให้คุณควบคุมบัญชีนั้นได้อย่างเต็มที่
  2. ให้แผงควบคุมอยู่ที่ 127.0.0.1 และเข้าถึงจากระยะไกลได้เฉพาะผ่าน HTTPS (การตั้งค่า Caddy ที่มาพร้อม) หรือทางอุโมงค์ SSH เท่านั้น
  3. เข้ารหัสดิสก์ที่เก็บไดเรกทอรีข้อมูล: ข้อความและสื่อจะถูกเก็บไว้ตามสภาพที่รับมา
  4. จำกัดสิทธิ์การเข้าถึงไดเรกทอรีข้อมูลให้เฉพาะบัญชีบริการเท่านั้น สำหรับระบบ Unix ให้ตั้งค่าสิทธิ์ของไดเรกทอรีใหม่เป็น mode 0700 ส่วนใน Windows ให้ตั้งค่าสิทธิ์ของโฟลเดอร์
  5. เก็บกุญแจหลักของ vault ไว้ที่เซิร์ฟเวอร์อื่น: ตั้งค่า TGWITNESS_VAULT_KEY_FILE ก่อนสร้างไดเรกทอรีข้อมูล
  6. เก็บลายนิ้วมือของกุญแจลงนามและจุดตรวจสอบไว้บนระบบอื่น และเพิ่มผู้เป็นพยานบนโฮสต์อื่น
  7. ห้ามอัปโหลดกุญแจdata/, กุญแจเซสชัน, panel-token.txt หรือกุญแจ vault ไปยัง GitHub หรือในห้องแชท
  8. อย่าบันทึกส่วนหัวAuthorization หรือเนื้อหาคำขอที่พร็อกซีแบบย้อนกลับ
สามารถเปลี่ยนโทเค็นของแผงควบคุมได้โดยไม่สูญเสียข้อมูลหรือไม่?

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

ทำไมข้อความจึงไม่ได้รับการเข้ารหัสเมื่ออยู่ในระบบ?

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

รายงานช่องโหว่

ใช้ Security → Report a vulnerability ใน repositori GitHub ให้ระบุเวอร์ชัน ผลกระทบ และขั้นตอนการจำลองปัญหาขั้นต่ำ อย่าส่งข้อมูลรับรองการเข้าสู่ระบบ ไดเรกทอรีบัญชี หรือไฟล์หลักฐานจริง หากไม่สามารถรายงานแบบส่วนตัวได้ ให้เปิด issue เพื่อขอช่องสื่อสารส่วนตัว โดยไม่ระบุรายละเอียดการโจมตี