ความปลอดภัย
ภาพรวม
Neotask สร้างขึ้นโดยมีความปลอดภัยเป็นหลักการหลัก ทุกชั้น, ตั้งแต่การเปิดใช้งานใบอนุญาตไปจนถึงการจัดเก็บข้อมูลและการสื่อสารเครือข่าย, ได้รับการออกแบบเพื่อปกป้องข้อมูลของคุณและป้องกันการเข้าถึงที่ไม่ได้รับอนุญาต
ความปลอดภัยของใบอนุญาต
- การผูกอุปกรณ์: ใบอนุญาตแต่ละรายการถูกผูกด้วยการเข้ารหัสกับอุปกรณ์เดียวผ่านลายนิ้วมือ SHA-256
- การเซ็นชื่อคำขอ HMAC-SHA256: คำขอ API ทั้งหมดถูกเซ็นชื่อด้วย secret เฉพาะอุปกรณ์, nonce และเวลาประทับ
- การเปรียบเทียบที่ปลอดภัยด้านเวลา: การเปรียบเทียบ secret ทั้งหมดใช้อัลกอริธึมเวลาคงที่เพื่อป้องกันการโจมตีด้านเวลา
- วงจรชีวิตโทเค็น: การหมดอายุของ access token และ refresh token ถูกควบคุมโดย server ผ่าน signed JWT claims ทำให้สามารถเพิกถอนได้ทันที
- การตรวจสอบใหม่อัตโนมัติ: ใบอนุญาตของคุณถูกตรวจสอบทุก 6 ชั่วโมง
- ระยะเวลาผ่อนผันออฟไลน์: 72 ชั่วโมงของการเข้าถึงออฟไลน์ก่อนที่จะต้องการการตรวจสอบใหม่
- การเพิกถอนระยะไกล: สามารถเพิกถอนใบอนุญาตจาก server ได้ทันที
การยืนยันตัวตนสองปัจจัย (TOTP)
Neotask รองรับการยืนยันตัวตนสองปัจจัยแบบเลือกได้ (แต่แนะนำ) สำหรับการเข้าถึงแดชบอร์ด
- เข้ากันได้กับ Google Authenticator, Authy, 1Password และแอปที่รองรับ TOTP ใดก็ได้
- รหัสสำรองมีให้ในระหว่างการตั้งค่า รหัสเหล่านี้ถูก hash ด้วย SHA-256 และใช้ได้ครั้งเดียวเท่านั้น
- TOTP สามารถเปิดหรือปิดได้ทุกเมื่อจากส่วน Security ในการตั้งค่าแดชบอร์ดของคุณ
การเข้ารหัส
ข้อมูลระหว่างการจัดเก็บ
- AES-256-GCM: โทเค็น, secrets และ API key ทั้งหมดถูกเข้ารหัสระหว่างการจัดเก็บ
- Key ที่มาจากเครื่อง: Key การเข้ารหัสได้มาจาก scrypt จากตัวตนอุปกรณ์ของคุณ
- ไม่มีการจัดเก็บแบบ plaintext: โทเค็นไม่เคยถูกจัดเก็บในรูปแบบ plaintext
ข้อมูลระหว่างการส่ง
- TLS 1.3: การสื่อสาร API ทั้งหมดผ่าน HTTPS
- WebSocket Secure (WSS): การสื่อสาร gateway แบบ real-time ถูกเข้ารหัส
- การเซ็นชื่อ HMAC: ทุกคำขอรวมถึง nonce และลายเซ็นเวลาประทับ
Secrets ของสภาพแวดล้อม
- การเข้ารหัสสองชั้น: การเข้ารหัส environment ในเวลา build ใช้ key แยกต่างหาก
- ไม่มี Secret ที่ hardcode: ไม่มี API key หรือโทเค็นในซอร์สโค้ด
- การแก้ไข log: ข้อมูลที่ละเอียดอ่อนถูกลบออกจาก log โดยอัตโนมัติ
ความปลอดภัยของแอปเดสก์ท็อป
การทำให้ Electron แข็งแกร่งขึ้น
Neotask ใช้การตั้งค่าความปลอดภัย Electron ที่เข้มงวดเพื่อปกป้องแอปพลิเคชันเดสก์ท็อป:
sandbox: true, กระบวนการ renderer ทำงานในสภาพแวดล้อมแบบ sandboxcontextIsolation: true, ไม่มีการเข้าถึงกระบวนการหลักโดยตรงจาก UInodeIntegration: false, ไม่มี Node.js APIs ที่เปิดเผยต่อ UIwebSecurity: true, นโยบาย same-origin ถูกบังคับใช้
นโยบายความปลอดภัยเนื้อหา (CSP)
default-src 'self', โหลดเฉพาะทรัพยากรจากแอปเองเท่านั้นscript-src 'self', ไม่อนุญาตสคริปต์ภายนอก- ป๊อปอัปถูกบล็อก
- การนำทางถูกบล็อกเพื่อป้องกันการโจมตีแบบ redirect
- การโหลดหน้าใหม่ถูกบล็อกเพื่อป้องกันการจัดการสถานะ
ความสมบูรณ์ของแอป
- ความสมบูรณ์ ASAR: การตรวจสอบ hash SHA-256 ของแอปที่แพ็กเกจแล้ว
- การรับรองเวอร์ชัน: manifest ที่เซ็นชื่อโดย server พร้อมความสามารถ kill switch
- การ obfuscate โค้ด: การ obfuscate JavaScript ถูกใช้ใน production builds
- โหมด Hard Fail: แอปบล็อกทั้งหมดในกรณีที่ความสมบูรณ์ล้มเหลว
ความปลอดภัยเครือข่าย
การแยก Gateway
- gateway ทำงานบน loopback เท่านั้น (127.0.0.1) ซึ่งหมายความว่าไม่มีการรับส่งข้อมูลผ่านเครือข่ายภายนอกเลย
- ไม่ยอมรับการเชื่อมต่อขาเข้าจากภายนอกเครื่องของคุณ
- Session grants มีอายุ 10 นาที, ผูกกับอุปกรณ์ และเซ็นชื่อด้วย HMAC
การล็อค 3 ครั้ง
- หลังจาก 3 ครั้งที่ล้มเหลวติดต่อกันของการดำเนินการ gateway การดำเนินการทั้งหมดจะถูกบล็อก
- จำเป็นต้องรีเซ็ตด้วยตนเองเพื่อคืนการเข้าถึง
- กลไกนี้ป้องกันการโจมตีแบบ brute-force
ความปลอดภัย API
วิธีการยืนยันตัวตน
| วิธีการ | ใช้สำหรับ | ระดับความปลอดภัย |
|---|---|---|
| JWT Bearer Token | แดชบอร์ดเว็บ, การเรียก API | มาตรฐาน (หมดอายุ 90 วัน) |
| License HMAC | การดำเนินการแอปเดสก์ท็อป | สูง (secret เฉพาะอุปกรณ์) |
| Session Grants | การดำเนินการ gateway | สูงมาก (10 นาที, เซ็นชื่อ HMAC) |
| TOTP | การเข้าสู่ระบบแดชบอร์ด | ปัจจัยเพิ่มเติม |
การจำกัดอัตรา
| Endpoint | ขีดจำกัด |
|---|---|
| แบบฟอร์มติดต่อ | 5 คำขอต่อ 15 นาที |
| การพยายามเข้าสู่ระบบ | 10 คำขอต่อ 15 นาที |
| การวิเคราะห์/การติดตาม | 30 คำขอต่อ 60 วินาที |
การตรวจสอบอินพุต
- พารามิเตอร์ IPC ทั้งหมดถูกตรวจสอบก่อนประมวลผล
- อินพุต API ทั้งหมดถูก sanitize
- การป้องกัน SQL injection, XSS และการ injection คำสั่งอยู่ในที่
ความปลอดภัย Provider Key (BYOK)
เมื่อใช้โหมด Bring Your Own Key (BYOK) Neotask ใช้มาตรการป้องกันเพิ่มเติมกับ API key ของคุณ:
- API key ถูกเข้ารหัสด้วย AES-256-GCM ก่อนการจัดเก็บ
- Key ไม่เคยถูกบันทึกหรือเปิดเผยในข้อความแสดงข้อผิดพลาด
- Key แสดงในรูปแบบปิดบังในแดชบอร์ด (มองเห็นเพียง 4 ตัวอักษรสุดท้าย)
- การลบอย่างปลอดภัยดำเนินการเมื่อ key ถูกลบ
Safe Mode
Neotask รวมถึงคุณสมบัติ Safe Mode ที่ให้ sandbox การดำเนินการสำหรับเอเจนต์:
- Sandbox การดำเนินการต่อเอเจนต์แยกการดำเนินการของแต่ละเอเจนต์
- การดำเนินการที่ละเอียดอ่อนต้องการการอนุมัติอย่างชัดเจนจากผู้ใช้ก่อนดำเนินการ
- Master toggle ช่วยให้คุณเปิดหรือปิด Safe Mode แบบ global
- การเปิดใช้งาน Safe Mode อัตโนมัติตามกำหนดเวลาทำให้แน่ใจว่า Safe Mode ถูกเปิดใช้งานใหม่หลังจากการเปลี่ยนแปลงชั่วคราว
- การซิงค์นโยบายแบบ real-time รักษาการตั้งค่าให้สอดคล้องกันในทุกการเชื่อมต่อ
การตรวจสอบและการปฏิบัติตามข้อกำหนด
- การเปลี่ยนแปลงการกำหนดค่าทั้งหมดถูกบันทึกพร้อมเวลาประทับ
- การ hash ของการกำหนดค่าตรวจจับการปรับเปลี่ยนที่ไม่ได้รับอนุญาต
- การส่งข้อมูลการใช้งาน (เลือกเข้าร่วม) ช่วยให้การตรวจจับความผิดปกติ
- CORS ถูกจำกัดเฉพาะโดเมนที่ได้รับอนุญาตเท่านั้น
- Helmet security headers ถูกใช้กับการตอบสนองเว็บทั้งหมด
แนวทางปฏิบัติที่ดีที่สุด
- เปิดใช้งาน TOTP บนแดชบอร์ดของคุณสำหรับการยืนยันตัวตนสองปัจจัย
- ดาวน์โหลดรหัสสำรอง และจัดเก็บอย่างปลอดภัย
- ตั้งงบประมาณรายวัน เพื่อป้องกันค่าใช้จ่ายที่ไม่คาดคิด
- ใช้โหมด BYOK หากคุณต้องการการควบคุม API key อย่างเต็มที่
- อัปเดตแอปให้ทันสมัย, การอัปเดตอัตโนมัติรวมถึงแพตช์ความปลอดภัย
- ตรวจสอบสิทธิ์ของเอเจนต์ เป็นระยะๆ ในการตั้งค่า Safe Mode