เอกสาร / 07
ส่งออกและตรวจสอบ
แบ่งปันบันทึกที่มีลายเซ็นเพื่อให้ผู้อื่นสามารถตรวจสอบได้
ยังไม่คุ้นเคยกับลายเซ็นและจุดตรวจสอบ? ลองแก้ไขบันทึกตัวอย่างและดูว่าการตรวจสอบใดจะตรวจพบการเปลี่ยนแปลงนั้น
ต้องการเก็บสำเนาไว้แยกจากผู้เก็บข้อมูล? ไปที่การตั้งค่า S3, Object Lock หรือการกู้คืนที่ได้รับการยืนยัน
เก็บรักษาแหล่งอ้างอิงที่น่าเชื่อถือ
บันทึกลายนิ้วมือของกุญแจสาธารณะของพื้นที่ทำงานไว้ภายนอกตัวเก็บข้อมูล ระหว่างการเก็บข้อมูล ให้เก็บจุดตรวจสอบที่ลงนามไว้ที่อื่น หรือใช้พยานอิสระ การอ้างอิงเหล่านี้ช่วยให้ผู้รับสามารถตรวจสอบกุญแจและขอบเขตของบันทึกก่อนหน้านี้
ดาวน์โหลดไฟล์ ZIP ที่ลงนามแล้ว
คลิก "Open Exports" (ส่งออก) และสร้างไฟล์ ZIP ของหลักฐานที่ลงนามแล้ว ซึ่งรวมถึงบันทึกพื้นที่ทำงานและไฟล์ manifest ที่ลงนามแล้ว ตัวกรองในแผงควบคุมไม่จำกัดการส่งออกบันทึกฉบับเต็มนี้: โปรดตรวจสอบเนื้อหาให้ละเอียดก่อนที่จะแบ่งปัน
ไฟล์ HTML และ CSV ที่ดาวน์โหลดมาแบบแยกส่วนมีประโยชน์สำหรับการอ่านและวิเคราะห์ ให้เก็บไฟล์ ZIP ที่มีลายเซ็นไว้เป็นต้นฉบับที่ตรวจสอบได้; ส่วนไฟล์ HTML หรือ CSV ที่แยกออกมาไม่มีลายเซ็นแบบแยกส่วน
ตรวจสอบด้วยสำเนา TgWitness ที่เชื่อถือได้
ในสภาพแวดล้อมโครงการที่ติดตั้งแล้ว ให้เปลี่ยนลายนิ้วมือตัวอย่างและเส้นทางไฟล์:
python -m tgwitness.verify evidence.zip --fingerprint TRUSTED_PUBLIC_KEY_SHA256 --checkpoint retained-checkpoint.json
เมื่อการอ้างอิงทั้งสองผ่านแล้ว ผลลัพธ์จะรายงาน key_pinned: true และ checkpoint_checked: true ให้เก็บผลการตรวจสอบไว้พร้อมกับไฟล์เก็บถาวรต้นฉบับ จุดตรวจสอบที่เก็บไว้ต้องอยู่ ณ หรือก่อนขอบเขตของการส่งออก
เข้าใจผลลัพธ์
- ความสมบูรณ์: ประวัติที่บันทึกไว้และไฟล์ที่ส่งออกตรงกับลายเซ็นของพวกมัน
- ข้อสังเกตก่อนหน้านี้: จุดตรวจสอบภายนอกช่วยให้คุณสามารถเปรียบเทียบข้อมูลที่ส่งออกกับส่วนต้นของบันทึกที่เก็บไว้ก่อนหน้านี้
- วิธีการดำเนินการ: การทดสอบแบบควบคุม (ส่ง → แก้ไข → ลบ) เพื่อตรวจสอบเหตุการณ์เฉพาะกับบันทึกที่เก็บไว้
ลายเซ็นที่ถูกต้องไม่ได้เป็นหลักฐานว่าทุกเหตุการณ์ใน Telegram ได้ส่งถึงผู้รับแล้ว ว่าแหล่งข้อมูลได้พูดความจริง หรือว่านาฬิกาของผู้เก็บข้อมูลถูกต้อง
ตั้งค่าสำเนาสำรอง S3 นอกสถานที่
ในพื้นที่ทำงานของคุณ ให้เปิด Exports → Off-site copy (ส่งออก → สำเนาภายนอกระบบ) คุณสมบัตินี้เป็นตัวเลือกเสริมที่ทำงานร่วมกับ AWS S3 และบริการอื่น ๆ ที่รองรับ S3 มันจะคัดลอกส่วนต่าง ๆ ของบันทึก รูปภาพและไฟล์ที่เก็บรักษาไว้ จุดตรวจสอบพร้อมข้อมูลเวลาตอบสนอง และไฟล์ส่งออกการสนทนาที่เสร็จสมบูรณ์ ทุกวัตถุจะถูกเข้ารหัสบนเครื่องเก็บข้อมูลด้วยAES-256-GCM ก่อนการอัปโหลด
การสาธิตออนไลน์แสดงปุ่มควบคุมเดียวกัน แต่ปิดฟังก์ชันการอัปโหลดไว้ โปรดป้อนข้อมูลรับรองการเข้าถึงพื้นที่จัดเก็บข้อมูลเฉพาะในพื้นที่ทำงานของคุณเองเท่านั้น

| Field | สิ่งที่ต้องกรอก |
|---|---|
| Endpoint | URL ของบริการจัดเก็บข้อมูล โดยไม่รวมเส้นทาง bucket หรือข้อมูลรับรอง ตัวอย่างสมมติ: https://s3.example.invalid. |
| ภูมิภาค | ภูมิภาคที่ผู้ให้บริการของคุณกำหนด ค่าเริ่มต้นของแอปพลิเคชันคือ us-east-1 |
| Bucket | บัคเก็ตที่มีอยู่แล้วที่คุณสามารถเข้าถึงได้ ตัวอย่างสมมติ: example-case-backup. |
| โฟลเดอร์ใน bucket | คำนำหน้าของวัตถุ; ค่าเริ่มต้นคือtgwitness แอปพลิเคชันจะเพิ่มคำนำหน้าที่สร้างขึ้นจากลายนิ้วมือของกุญแจลงนามของพื้นที่ทำงานนี้ |
| ID กุญแจการเข้าถึง / กุญแจการเข้าถึงลับ | ป้อนข้อมูลรับรองการเข้าถึงพื้นที่จัดเก็บทั้งสองรายการพร้อมกัน ข้อมูลเหล่านี้จะถูกเก็บไว้ใน vault ของพื้นที่ทำงาน เมื่อบันทึกข้อมูลในครั้งต่อไป ให้ปล่อยทั้งสองช่องว่างไว้เพื่อรักษาคู่ข้อมูลที่บันทึกไว้ |
| ที่อยู่แบบ Path | ใช้ endpoint/bucket เมื่อเปิดใช้งาน หรือ bucket.endpoint เมื่อปิดใช้งาน ตามที่ผู้ให้บริการกำหนด |
| ช่วงเวลาการคัดลอก | ตั้งแต่ 1 ถึง 1,440 นาที; ค่าเริ่มต้นคือ 5 นาที แอปพลิเคชันต้องกำลังทำงานอยู่เพื่อดำเนินการคัดลอกตามกำหนดเวลา |
| การเก็บรักษาข้อมูลตามหลัก Object Lock | จำนวนวันและวิธีการเก็บรักษาข้อมูลสำหรับ bucket ที่สนับสนุน Object Lock หากตั้งค่าเป็น Zero days จะทำให้การเก็บรักษาข้อมูลตามค่าเริ่มต้นของ bucket ยังคงมีผล |
- ป้อนปลายทางและข้อมูลรับรองระบบ ปล่อยให้ตัวเลือก “เก็บสำเนาไว้นอกไซต์” ไม่ถูกทำเครื่องหมายขณะเตรียมการ แล้วเลือก “เก็บสำเนาไว้นอกไซต์”
- เลือก "Test connection" (ทดสอบการเชื่อมต่อ) เพื่ออัปโหลดวัตถุทดสอบที่เข้ารหัสและตรวจสอบการตอบสนองจากระบบจัดเก็บข้อมูล
- เลือก "ดาวน์โหลดกุญแจการเข้ารหัส" (Download encryption key) เก็บไฟล์นั้นแยกจากโปรแกรมเก็บข้อมูล (collector) เพราะจำเป็นต้องใช้สำหรับการกู้คืนข้อมูล
- ทำเครื่องหมายในช่อง “เก็บสำเนาไว้นอกเว็บไซต์” และบันทึกอีกครั้ง เลือก “คัดลอกทันที” เพื่อดำเนินการด้วยตนเอง หรือปล่อยให้กำหนดเวลาทำงานต่อไป
ไม่สร้าง bucket เก็บข้อมูล การอัปโหลดตามกำหนดเวลาจะหยุดลงเมื่อแอปพลิเคชันหยุดทำงาน
ตรวจสอบระยะเวลาการเก็บรักษาข้อมูลและสถานะการคัดลอก
ในส่วน “More options” (ตัวเลือกเพิ่มเติม) ให้เลือกจำนวนวันเก็บรักษา และเลือก GOVERNANCE หรือ COMPLIANCE หาก bucket ของคุณสนับสนุน Object Lock TgWitness จะอ่านกลับโหมดการเก็บรักษาและวันหมดอายุของวัตถุที่อัปโหลดมา รายงานสถานะจะยืนยันการเก็บรักษา การเก็บรักษาที่ขาดหายไป หรือการตรวจสอบล้มเหลว; การอัปโหลดที่สำเร็จเพียงอย่างเดียวไม่ถือเป็นการยืนยันการเก็บรักษา
แผงควบคุมจะรายงานรอบการประมวลผลครั้งล่าสุด จำนวนวัตถุ ไบต์ที่ถ่ายโอน ขอบเขตของบันทึกที่คัดลอก และข้อผิดพลาดใดๆ สื่อท้องถิ่นที่ขาดหายไปหรือถูกเปลี่ยนแปลงจะถูกรายงานและระบบจะลองใหม่ในรอบการประมวลผลครั้งถัดไป ไฟล์ จุดตรวจสอบ และการส่งออกที่อยู่ในคิวหลังจากสื่อดังกล่าวนั้นยังสามารถคัดลอกได้
การอัปโหลดใช้เส้นทาง Direct, SOCKS5 หรือ HTTP ของพื้นที่ทำงาน การคัดลอกไปยัง S3 ไม่สามารถใช้งานได้ผ่าน MTProxy; แอปพลิเคชันจะไม่เปลี่ยนไปใช้การเชื่อมต่อโดยตรง
ไม่บังคับผู้ให้บริการให้บังคับใช้ Object Lock เพียงเพราะการอัปโหลดได้รับการยอมรับ
เก็บกุญแจกู้คืนไว้แยกต่างหาก
ไฟล์ JSON ที่ดาวน์โหลดมาประกอบด้วยกุญแจถอดรหัส การตั้งค่าปลายทาง คำนำหน้าของอ็อบเจ็กต์พื้นที่ทำงาน และลายนิ้วมือของกุญแจลงนาม แต่ไม่รวมถึงข้อมูลรับรองการเข้าถึง S3: การกู้คืนข้อมูลจำเป็นต้องใช้ข้อมูลรับรองแยกต่างหากที่มีสิทธิ์อ่านใน bucket
หากเปลี่ยนจุดปลายทาง (endpoint), บักเก็ต (bucket) หรือคำนำหน้าโฟลเดอร์ (folder prefix) ให้ดาวน์โหลดไฟล์กุญแจใหม่เพื่อให้การตั้งค่าจุดหมายปลายทางตรงกัน แอปพลิเคชันจะสร้างสำเนาใหม่ของบันทึก ไฟล์ และจุดตรวจสอบ (checkpoints) ที่เก็บไว้ท้องถิ่นไปยังจุดหมายปลายทางใหม่ ส่วนการส่งออกการสนทนาที่เสร็จสิ้นแล้วและถูกลบออกจากคิวอัปโหลดท้องถิ่นจะยังคงอยู่ที่จุดหมายปลายทางเดิม
ไม่ทำ ไม่ถอดรหัสสำเนาหากไม่มีกุญแจที่ส่งออก ข้อมูลรับรองการเข้าถึงระบบจัดเก็บข้อมูลไม่สามารถแทนที่กุญแจดังกล่าวได้
กู้คืนและตรวจสอบบนเครื่องอื่น
ใช้การติดตั้ง TgWitness ที่เชื่อถือได้, ไฟล์ JSON ของกุญแจที่ดาวน์โหลดมา, ข้อมูลการเข้าสู่ระบบของพื้นที่จัดเก็บที่มีสิทธิ์อ่าน, และไดเรกทอรีผลลัพธ์ที่ว่างเปล่า ให้แทนที่ข้อมูลการเข้าสู่ระบบตัวอย่างที่สมมติไว้ด้านล่าง
Windows PowerShell
$env:TGWITNESS_S3_ACCESS_KEY = 'YOUR_READ_ACCESS_KEY'
$env:TGWITNESS_S3_SECRET_KEY = 'YOUR_READ_SECRET_KEY'
python -m tgwitness.replica restore --key-file tgwitness-replica-key.json --out restored-evidence
Linux / macOS
export TGWITNESS_S3_ACCESS_KEY='YOUR_READ_ACCESS_KEY'
export TGWITNESS_S3_SECRET_KEY='YOUR_READ_SECRET_KEY'
python -m tgwitness.replica restore --key-file tgwitness-replica-key.json --out restored-evidence
ไฟล์ที่ดาวน์โหลดและไฟล์ที่ถอดรหัสแล้วจะถูกเก็บไว้ในพื้นที่จัดเก็บชั่วคราวส่วนตัว ในขณะที่บันทึกทั้งหมด จุดตรวจสอบที่เก็บไว้ รวมถึงค่าแฮชและขนาดของสื่อที่เก็บรักษาไว้จะถูกตรวจสอบ เส้นทางที่ไม่ปลอดภัย ส่วนบันทึกที่ขัดแย้งกัน และบันทึกที่มีขนาดสั้นกว่าจุดตรวจสอบจะถูกปฏิเสธ หากการตรวจสอบล้มเหลว ไฟล์ที่กู้คืนมาจะไม่ถูกเผยแพร่
การกู้ข้อมูลที่สำเร็จจะให้ผลลัพธ์เป็น events.jsonl, media/, checkpoints/ และ exports/ สำหรับข้อมูลที่มีอยู่ในสำเนา เก็บผลลัพธ์ JSON ของคำสั่งไว้พร้อมกับข้อมูลที่กู้คืนได้
ไม่ทำ ไม่สร้างใหม่ข้อมูลที่ไม่ได้บันทึกในสมุดบันทึก หรือแทนที่จุดตรวจสอบหรือพยานที่เก็บรักษาไว้อย่างอิสระ