สิ่งที่เราเห็น
สิ่งที่เราไม่ทำ
นี่ไม่ใช่หน้าการตลาด นี่คือข้อกำหนดทางเทคนิคของข้อมูลที่ City of Hats รวบรวม สิ่งที่เซิร์ฟเวอร์ของเราสามารถเข้าถึงได้และไม่สามารถเข้าถึงได้ และขอบเขตการเข้ารหัสของเราอยู่ที่ไหน
อัปเดตล่าสุด: เมษายน 2026เราเชื่อว่าความปลอดภัยควรได้รับการพิสูจน์ ไม่ใช่การอ้างสิทธิ์
สิ่งที่เราป้องกัน — และสิ่งที่เราไม่ทำ
ออกแบบมาเพื่อป้องกัน
- ✅ การเฝ้าระวังเครือข่ายแบบพาสซีฟ
- ✅ การเข้าถึงข้อมูลฝั่งเซิร์ฟเวอร์ (เราไม่สามารถอ่านข้อความ E2E ได้)
- ✅ ความสัมพันธ์ของข้อมูลประจำตัวผ่านหมายเลขโทรศัพท์หรืออีเมล
- ✅ การโจมตีควอนตัมในอนาคต (การแลกเปลี่ยนคีย์ PQ แบบไฮบริด)
- ✅ การประนีประนอมที่สำคัญในการเปิดเผยข้อความในอดีต (ส่งต่อความลับ)
- ✅ การวิเคราะห์ความยาวของข้อความ (การเติมข้อมูลเมตา)
ยังไม่มีการประเมินอย่างเป็นทางการต่อ
- ⚠ ศัตรูของชาติ-รัฐ
- ⚠ อุปกรณ์ผู้ใช้ที่ถูกบุกรุก (การโจมตีระดับระบบปฏิบัติการ)
- ⚠ การโจมตีแบบกำหนดเป้าหมายขั้นสูง
- ⚠ การวิเคราะห์ทราฟฟิกขนาดใหญ่ (ระยะเวลา รูปแบบความถี่)
สถาปัตยกรรมการเข้ารหัส
Double Ratchet โปรโตคอล
ตระกูลโปรโตคอลเดียวกันกับ Signal ทุกข้อความใช้คีย์เฉพาะ การประนีประนอมกับคีย์เดียวจะไม่เปิดเผยข้อความในอดีตหรือในอนาคต (ความลับส่งต่อ + ความลับในอนาคต)
โพสต์ควอนตัมไฮบริด
การแลกเปลี่ยนคีย์ใช้ X25519 + ML-KEM-768 (Kyber) แม้ว่าคอมพิวเตอร์ควอนตัมจะทำลายการแลกเปลี่ยนคีย์แบบคลาสสิกในอนาคต ข้อความก็ยังคงได้รับการปกป้อง
AES-256-GCM
เพย์โหลดข้อความ เนื้อหาไฟล์ และการส่งสัญญาณการโทรทั้งหมดได้รับการเข้ารหัสด้วยการเข้ารหัสที่ได้รับการรับรองความถูกต้อง AES-256-GCM ส่วนหัวยังได้รับการเข้ารหัสเพื่อป้องกันการรั่วไหลของข้อมูลเมตา
คีย์ผู้ส่งกลุ่ม
ข้อความกลุ่มใช้โปรโตคอลคีย์ผู้ส่งพร้อมวงล้อลูกโซ่ HMAC และลายเซ็น ECDSA ผู้ส่งแต่ละรายจะดูแลรักษาพวงกุญแจของตนเองโดยกระจายผ่านช่องสัญญาณ 1:1 ที่เข้ารหัส
การแลกเปลี่ยนคีย์ → X25519 + ML-KEM-768 (ไฮบริดหลังควอนตัม)
Ratchet → Double Ratchet (Signal ตระกูลโปรโตคอล)
Symmetric Cipher → AES-256-GCM
Key Derivation → HKDF-SHA-256
ตรวจสอบสิทธิ์ข้อความ → HMAC-SHA-256
ลายเซ็น → ECDSA P-256 (กลุ่ม)
วลีรหัสผ่าน KDF → PBKDF2
รันไทม์ → Web Crypto API (เบราว์เซอร์เนทิฟ)
PQ Library → @noble/post-quantum (ML-KEM-768)
github.com/City-of-Hats/coh-crypto-spec →
สิ่งที่เซิร์ฟเวอร์ของเรามองเห็นได้และมองไม่เห็น
| ประเภทข้อมูล | การเข้าถึงเซิร์ฟเวอร์ | รายละเอียด |
|---|---|---|
| เนื้อหาข้อความ | ✕ ไม่สามารถมองเห็นได้ | ข้อความแบบหมวกต่อหมวกทั้งหมดเป็นแบบเข้ารหัสฝั่งไคลเอ็นต์ เซิร์ฟเวอร์จัดเก็บข้อความเข้ารหัสทึบแสงเท่านั้น |
| ไฟล์แนบ | ✕ ไม่สามารถมองเห็นได้ | ไฟล์จะถูกเข้ารหัสฝั่งไคลเอ็นต์ก่อนอัปโหลด เซิร์ฟเวอร์จัดเก็บ Blob ที่เข้ารหัส |
| การโทรด้วยเสียง & | ✕ ไม่สามารถมองเห็นได้ | การโทรใช้ WebRTC แบบเพียร์ทูเพียร์พร้อมการส่งสัญญาณที่เข้ารหัส เซิร์ฟเวอร์อำนวยความสะดวกในการตั้งค่าการเชื่อมต่อเท่านั้น |
| Dead Drops / EchoDropส | ✕ ไม่สามารถมองเห็นได้ | เนื้อหาที่เข้ารหัสฝั่งไคลเอ็นต์ คีย์ถอดรหัสอยู่ในส่วน URL (ไม่เคยส่งไปยังเซิร์ฟเวอร์) หรือได้มาจากข้อความรหัสผ่าน |
| GhostFrame เพย์โหลด | ✕ ไม่สามารถมองเห็นได้ | เนื้อหา Steganographic ที่ฝังและเข้ารหัสฝั่งไคลเอ็นต์ก่อนอัปโหลด |
| คีย์ส่วนตัว | ✕ ไม่สามารถมองเห็นได้ | ECDH และคีย์ส่วนตัวหลังควอนตัมถูกสร้างขึ้นและจัดเก็บไว้ในอุปกรณ์เท่านั้น ไม่เคยส่งไปยังเซิร์ฟเวอร์ |
| รหัสหมวก | ✓ มองเห็นได้ | ตัวระบุหมวกจะถูกจัดเก็บไว้เพื่อกำหนดเส้นทางข้อความ เป็นนามแฝงและไม่เชื่อมโยงกับตัวตนที่แท้จริง |
| รหัสคู่ช่อง | ✓ มองเห็นได้ | บันทึกว่าหมวก A และหมวก B มีช่อง จำเป็นสำหรับการกำหนดเส้นทางข้อความ |
| การประทับเวลา | ✓ มองเห็นได้ | ประทับเวลาส่ง/รับข้อความ จำเป็นสำหรับตรรกะการสั่งซื้อและการหมดอายุ |
| กุญแจสาธารณะ | ✓ มองเห็นได้ | คีย์สาธารณะ ECDH และ ML-KEM ได้รับการเผยแพร่เพื่อเปิดใช้งานการแลกเปลี่ยนคีย์ นี่คือการออกแบบ — กุญแจสาธารณะมีไว้เพื่อเป็นสาธารณะ |
| โทเค็นการแจ้งเตือนแบบพุช | ⚠ ข้อมูลเมตาเท่านั้น | โทเค็นพุชของอุปกรณ์จะถูกเก็บไว้เพื่อส่งการแจ้งเตือน เนื้อหาการแจ้งเตือนใช้ข้อความทั่วไป ไม่ใช่เนื้อหาข้อความ |
เส้นทางการเข้ารหัสสองเส้นทาง — อธิบายอย่างตรงไปตรงมา
E2E ฝั่งไคลเอ็นต์ (ค่าเริ่มต้น)
ใช้สำหรับข้อความแบบหมวกต่อหมวก การโทร การหยดแบบตายตัว GhostFrame และ EchoDrop
- ✅ เข้ารหัสบนอุปกรณ์ของคุณก่อนที่จะส่ง
- ✅ ถอดรหัสบนอุปกรณ์ของผู้รับเท่านั้น
- ✅ เซิร์ฟเวอร์เก็บข้อความเข้ารหัสทึบแสง
- ✅ เราไม่สามารถถอดรหัสได้แม้ว่าจะถูกบังคับก็ตาม
การเข้ารหัสฝั่งเซิร์ฟเวอร์ (จำกัด)
ใช้สำหรับเนื้อหาที่ระบบสร้างขึ้นเท่านั้น: ประกาศของแพลตฟอร์มและบอทอัจฉริยะ CHECK
- ⚠ เซิร์ฟเวอร์สร้างและเข้ารหัสเนื้อหานี้
- ⚠ เซิร์ฟเวอร์เก็บคีย์เข้ารหัสสำหรับเส้นทางเหล่านี้
- ℹ สิ่งนี้ใช้ได้กับข้อความบอท/ระบบเท่านั้น
- ✅ การแชทระหว่างผู้ใช้กับผู้ใช้ไม่เคยอยู่บนเส้นทางนี้
สิ่งที่เราบันทึก
| หมวดหมู่ | สิ่งที่ถูกบันทึกไว้ | การเก็บรักษา |
|---|---|---|
| ที่อยู่ IP (แอป) | การจำกัดอัตราใช้แฮช SHA-256 ทางเดียวของที่อยู่ IP IP ดิบไม่ได้ถูกเก็บไว้ในฐานข้อมูล บันทึกการเข้าถึงเว็บเซิร์ฟเวอร์มาตรฐานอาจมี IP ชั่วคราว | แฮช: ถาวร บันทึกการเข้าถึง: หมุนเวียนเป็นประจำ |
| ที่อยู่ IP (เว็บไซต์) | เว็บไซต์การตลาด (cityofhats.com) รวบรวมการวิเคราะห์ผู้เยี่ยมชม รวมถึง IP และตำแหน่งทางภูมิศาสตร์โดยประมาณ สิ่งนี้แยกจากแอปพลิเคชั่นส่งข้อความ | ไม่เชื่อมโยงกับข้อมูลระบุตัวตนการส่งข้อความ |
| เนื้อหาข้อความ | ไม่ได้เข้าสู่ระบบ ไม่สามารถเข้าถึงได้ ข้อความไซเฟอร์เท็กซ์ E2E จะถูกเก็บไว้เพื่อการจัดส่ง จากนั้นขึ้นอยู่กับการหมดอายุที่ผู้ใช้กำหนด | ควบคุมโดยผู้ใช้ (ตัวจับเวลาเบิร์น, หมดอายุอัตโนมัติ) |
| บันทึกข้อผิดพลาด / ข้อขัดข้อง | บันทึกข้อผิดพลาดฝั่งเซิร์ฟเวอร์สำหรับการดีบัก สิ่งเหล่านี้มีประเภทข้อผิดพลาดและสแต็กเทรซ ไม่ใช่เนื้อหาข้อความ | หมุนเวียนสม่ำเสมอ |
| เหตุการณ์การจำกัดอัตรา | บันทึกด้วยตัวระบุแฮชเพื่อป้องกันการละเมิด ไม่มีเนื้อหาข้อความ | หน้าต่างม้วน. |
| ข้อมูลบัญชี | หากคุณลงชื่อเข้าใช้ด้วย Auth0 (Google/Apple) ผู้ให้บริการตรวจสอบสิทธิ์ของคุณจะแชร์อีเมล บัญชีที่ไม่เปิดเผยตัวตน (เฉพาะหมวก) ไม่มีอีเมลที่เชื่อมโยง | จนกว่าจะมีการลบบัญชี |
กุญแจของคุณอยู่ที่ไหน
| ประเภทคีย์ | สถานที่จัดเก็บ | การเข้าถึงเซิร์ฟเวอร์ |
|---|---|---|
| คีย์ส่วนตัว ECDH | อุปกรณ์เท่านั้น (เบราว์เซอร์ localStorage) | ไม่เคยถ่ายทอด |
| รหัสลับ ML-KEM | อุปกรณ์เท่านั้น (เบราว์เซอร์ localStorage) | ไม่เคยถ่ายทอด |
| Double Ratchet สถานะ | อุปกรณ์เท่านั้น ตัวเลือกการสำรองข้อมูลที่เข้ารหัสไปยังเซิร์ฟเวอร์ (เข้ารหัสด้วยคีย์ที่ได้มาจากคีย์ส่วนตัว) | การสำรองข้อมูลที่เข้ารหัสเท่านั้น |
| คีย์ผู้ส่งกลุ่ม | อุปกรณ์เท่านั้น (เบราว์เซอร์ localStorage) | ไม่เคยถ่ายทอด |
| คีย์สาธารณะ ECDH | เผยแพร่ไปยังเซิร์ฟเวอร์เพื่อการแลกเปลี่ยนคีย์ | มองเห็นได้ (ตามการออกแบบ) |
| กุญแจสาธารณะ ML-KEM | เผยแพร่ไปยังเซิร์ฟเวอร์เพื่อการแลกเปลี่ยนคีย์ | มองเห็นได้ (ตามการออกแบบ) |
การบังคับใช้กฎหมายและการร้องขอทางกฎหมาย
- ✓ เราไม่สามารถจัดเตรียมเนื้อหาข้อความได้ ข้อความที่เข้ารหัส E2E จะถูกจัดเก็บเป็นไซเฟอร์เท็กซ์ เราไม่ถือกุญแจถอดรหัส แม้ว่ากฎหมายจะบังคับก็ตาม เราไม่สามารถถอดรหัสข้อความระหว่างผู้ใช้ได้
- ✓ สิ่งที่เราสามารถให้ได้หากถูกบังคับตามกฎหมาย: รหัสหมวก บันทึกคู่ช่อง การประทับเวลา คีย์สาธารณะ และอีเมลของบัญชี (หากผู้ใช้ลงชื่อเข้าใช้กับผู้ให้บริการ) นี่เป็นข้อมูลเมตาเดียวกับที่บริการส่งข้อความที่เข้ารหัสจัดเก็บไว้
- ✓ บัญชีที่ไม่เปิดเผยตัวตนมีข้อมูลเพียงเล็กน้อย ผู้ใช้ที่สร้างบัญชีเฉพาะหมวกโดยไม่ต้องลงชื่อเข้าใช้ จะไม่มีอีเมล ไม่มีหมายเลขโทรศัพท์ และไม่มีข้อมูลประจำตัวบนเซิร์ฟเวอร์ของเรา รหัสหมวกเป็นเพียงตัวระบุเท่านั้น
- ✓ เราจะเผยแพร่รายงานความโปร่งใส เราตั้งใจที่จะเผยแพร่สถิติรวมเกี่ยวกับคำขอทางกฎหมายที่ได้รับและข้อมูลที่ให้ไว้ โดยสอดคล้องกับกฎหมายที่บังคับใช้
- ✓ รักษานกขมิ้นรับประกัน: City of Hats รักษานกขมิ้นรับประกัน หากมีการลบออก นั่นแสดงว่าเราได้รับคำสั่งทางกฎหมายที่เป็นความลับ
สิ่งที่เรากำลังทำต่อไป
หน้าความโปร่งใสทางเทคนิค
หน้านี้. ข้อกำหนดโดยละเอียดและตรงไปตรงมาเกี่ยวกับสิ่งที่ระบบของเราทำ เผยแพร่เมื่อเดือนเมษายน 2026
เลเยอร์ Crypto แบบโอเพ่นซอร์ส
เราจะเผยแพร่การใช้งานโปรโตคอลการเข้ารหัส (Double Ratchet, ไฮบริดหลังควอนตัม, คีย์ผู้ส่งแบบกลุ่ม) เป็นโอเพ่นซอร์สสำหรับการตรวจสอบโดยอิสระ
การตรวจสอบความปลอดภัยที่เป็นอิสระ
บริษัทบุคคลที่สามที่มีชื่อเสียงจะตรวจสอบการใช้งานการเข้ารหัสของเรา รายงานฉบับเต็มจะถูกเผยแพร่ที่นี่ โดยไม่มีการแก้ไข
รายงานความโปร่งใส
รายงานปกติเกี่ยวกับคำขอทางกฎหมายที่ได้รับ ข้อมูลที่เปิดเผย และเวลาทำงานของระบบ เผยแพร่ในหน้านี้
คุณไม่จำเป็นต้องเชื่อถือเรา
- ✓ หมายเลขความปลอดภัย แต่ละช่องจะแสดงหมายเลขความปลอดภัยที่ไม่ซ้ำกันซึ่งได้มาจากกุญแจสาธารณะของทั้งสองฝ่าย เปรียบเทียบนอกแบนด์เพื่อตรวจสอบว่าไม่มีการโจมตีแบบแทรกกลางเกิดขึ้น
- ✓ การแจ้งเตือนการเปลี่ยนคีย์ หากคีย์การเข้ารหัสของผู้ติดต่อเปลี่ยนแปลง (อุปกรณ์ใหม่ ติดตั้งใหม่) คุณจะได้รับการแจ้งเตือน วิธีนี้จะป้องกันการแทนที่คีย์แบบเงียบ
- ✓ Audit Log Chain. บันทึกการตรวจสอบที่เข้ารหัสใช้แฮชเชนเพื่อให้สามารถตรวจจับการดัดแปลงบันทึกได้
- ✓ E2E Indicator. ทุกช่องที่เข้ารหัสจะแสดงไอคอนล็อคที่มี "E2E" เพื่อยืนยันว่าการเข้ารหัสฝั่งไคลเอ็นต์นั้นใช้งานได้สำหรับการสนทนานั้น
- ✓ เปิดข้อกำหนดการเข้ารหัส การออกแบบโปรโตคอลเต็มรูปแบบของเรา — การแลกเปลี่ยนคีย์, Double Ratchet, ไฮบริดหลังควอนตัม, การเข้ารหัสกลุ่ม — ได้รับการเผยแพร่ต่อสาธารณะ ตรวจสอบด้วยตัวเอง: github.com/City-of-Hats/coh-crypto-spec
คำถามหรือข้อกังวล?
City of Hats Inc. · Torบนโต แคนาดา · ก่อตั้งในออนแทรีโอ