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

Canonical page: https://phishdestroy.github.io/TgWitness/th/docs/security/

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

**127.0.0.1**ที่อยู่ panel ตามค่าเริ่มต้น

**256 บิต**token แผงสุ่ม

**0**CDN, ระบบวิเคราะห์ข้อมูล หรือฟอนต์จากระยะไกล

**Ed25519**ลายเซ็นบนทุกบันทึก

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

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

06 / สิ่งที่เครื่องทิ้งไว้การติดตั้งของคุณ

คอมพิวเตอร์หรือเซิร์ฟเวอร์ของคุณ

**Panel**127.0.0.1:8787 · bearer token

**Collector**ใช้ Telegram client หนึ่งตัวต่อพื้นที่ทำงาน

ไดเรกทอรีข้อมูล

**บันทึก**SQLite · hash-chained · signed

**สื่อ**ไฟล์ที่มีชื่อตาม SHA-256

**Vault**Fernet · 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`, แล้วเริ่มใหม่: โทเค็นใหม่ถูกสร้างขึ้น |
| **เซสชัน Telegram** | Vault, เข้ารหัส (`credentials.enc`) | บัญชี Telegram เอง | ปิดเซสชันใน Telegram โดยไปที่ *การตั้งค่า → อุปกรณ์* |
| **กุญแจการลงนาม** | Vault, เข้ารหัส (`signing.enc`) | การลงลายมือชื่อในบันทึกที่สามารถตรวจสอบได้ผ่านลายนิ้วมือของคุณ | จุดตรวจสอบถูกเก็บไว้ที่อื่น โดยพยานและเวลาประทับตราจะแสดงให้เห็นว่าข้อมูลใดเคยมีอยู่ก่อน |
| **กุญแจ Vault** | `vault.key` ข้างข้อมูล หรือกุญแจหลักภายนอกสำหรับไดเรกทอรีข้อมูลใหม่ | การถอดรหัสห้องนิรภัย | ถือว่ากุญแจเซสชันและกุญแจลงนามถูกรั่วไหลด้วย |
| **โทเค็น Witness** | บนเซิร์ฟเวอร์ของ TgWitness | อ่านได้เท่านั้น: จุดตรวจสอบที่ลงนามและสถานะความสมบูรณ์ | ลบมันบนหน้า Witness; สร้างหน้าใหม่ |
| **ข้อความหลักสำหรับใช้ภายนอกเว็บไซต์** | Vault; ดาวน์โหลดเพียงครั้งเดียวเพื่อกู้คืนข้อมูล | การถอดรหัสสำเนาที่เก็บไว้นอกเว็บไซต์ | ผู้ใดก็ตามที่ถือครองข้อมูลที่เก็บไว้สามารถถอดรหัสได้: ให้ถือว่าสำเนานั้นถูกเปิดเผย |

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

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

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

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

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

[แบ่งปันสิทธิ์การเข้าถึงคดี](https://phishdestroy.github.io/TgWitness/th/docs/access/)พร้อมด้วยสิทธิ์การเข้าถึง ระยะเวลาหมดอายุ และข้อจำกัดของเซสชัน โทเค็นพยานยังคงเป็นข้อมูลรับรองที่แยกต่างหาก

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

เสร็จแล้ว 0 จาก 8

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 เพื่อขอช่องสื่อสารส่วนตัว โดยไม่ระบุรายละเอียดการโจมตี
