TgWitness / เอกสาร

เอกสาร / 07

ส่งออกและตรวจสอบ

แบ่งปันบันทึกที่มีลายเซ็นเพื่อให้ผู้อื่นสามารถตรวจสอบได้

เก็บไว้เป็นข้อมูลอ้างอิงส่งออก ZIP ที่มีลายเซ็นผู้รับยืนยัน

ยังไม่คุ้นเคยกับลายเซ็นและจุดตรวจสอบ? ลองแก้ไขบันทึกตัวอย่างและดูว่าการตรวจสอบใดจะตรวจพบการเปลี่ยนแปลงนั้น

ต้องการเก็บสำเนาไว้แยกจากผู้เก็บข้อมูล? ไปที่การตั้งค่า 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 ก่อนการอัปโหลด

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

แผงคัดลอกข้อมูลนอกไซต์แบบครบถ้วน: จุดปลายทาง (endpoint), ภูมิภาค (region), บักเก็ต (bucket), กุญแจเข้าถึง (access keys), ตารางเวลา (schedule), การล็อกวัตถุ (Object Lock) และการควบคุมกุญแจกู้คืน (recovery key controls)
แผงควบคุมแบบเต็มที่มีตัวเลือกขั้นสูงถูกขยายออกแล้ว ไม่แสดงข้อมูลรับรองการเข้าถึงพื้นที่จัดเก็บข้อมูล
การตั้งค่าการเก็บข้อมูลใน Exports → สำเนาภายนอก
Fieldสิ่งที่ต้องกรอก
EndpointURL ของบริการจัดเก็บข้อมูล โดยไม่รวมเส้นทาง 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 ยังคงมีผล
  1. ป้อนปลายทางและข้อมูลรับรองระบบ ปล่อยให้ตัวเลือก “เก็บสำเนาไว้นอกไซต์” ไม่ถูกทำเครื่องหมายขณะเตรียมการ แล้วเลือก “เก็บสำเนาไว้นอกไซต์”
  2. เลือก "Test connection" (ทดสอบการเชื่อมต่อ) เพื่ออัปโหลดวัตถุทดสอบที่เข้ารหัสและตรวจสอบการตอบสนองจากระบบจัดเก็บข้อมูล
  3. เลือก "ดาวน์โหลดกุญแจการเข้ารหัส" (Download encryption key) เก็บไฟล์นั้นแยกจากโปรแกรมเก็บข้อมูล (collector) เพราะจำเป็นต้องใช้สำหรับการกู้คืนข้อมูล
  4. ทำเครื่องหมายในช่อง “เก็บสำเนาไว้นอกเว็บไซต์” และบันทึกอีกครั้ง เลือก “คัดลอกทันที” เพื่อดำเนินการด้วยตนเอง หรือปล่อยให้กำหนดเวลาทำงานต่อไป

ไม่สร้าง 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 ของคำสั่งไว้พร้อมกับข้อมูลที่กู้คืนได้

ไม่ทำ ไม่สร้างใหม่ข้อมูลที่ไม่ได้บันทึกในสมุดบันทึก หรือแทนที่จุดตรวจสอบหรือพยานที่เก็บรักษาไว้อย่างอิสระ