CH-J Server Managerการจัดการเซิร์ฟเวอร์ผ่าน SSH
เมนู

การยืนยันตัวตนของระบบแบบไม่บังคับและการล็อก Vault

ดาวน์โหลดไฟล์

คำแปลนี้อยู่ระหว่างการตรวจทานด้านภาษา หากส่วนใดไม่ชัดเจน โปรดเทียบกับต้นฉบับภาษาอังกฤษ

ก่อนอื่น ให้สร้างหรือปลดล็อก Vault ด้วยรหัสผ่านหลัก เปิด Settings → Security (การตั้งค่า → ความปลอดภัย) ตรวจสอบสถานะของผู้ให้บริการ และเปิดใช้การปลดล็อกด้วยไบโอเมตริก การลงทะเบียนจะขอการยืนยันตัวตนของระบบใหม่ หลังจากนั้น หน้าจอเข้าสู่ระบบจะมีตัวเลือกปลดล็อกด้วย Touch ID, Windows Hello หรือลายนิ้วมืออยู่ข้างแบบฟอร์มรหัสผ่านหลัก Disable and remove enrollment (ปิดใช้และลบการลงทะเบียน) จะลบคีย์ที่แคชไว้ของแอปพลิเคชันนี้ ไม่ใช่ลายนิ้วมือที่ลงทะเบียนไว้ในระบบปฏิบัติการ

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

แพลตฟอร์ม การยืนยันตัวตนและการจัดเก็บ ข้อกำหนดและข้อจำกัด
macOS Apple Silicon LocalAuthentication / Touch ID แบบเนทีฟ รายการ Keychain ของ Security.framework ที่ใช้ biometryCurrentSet และ WhenUnlockedThisDeviceOnly Touch ID ที่ลงทะเบียนแล้ว เซ็นเซอร์ที่พร้อมใช้งาน และ Keychain สำหรับเข้าสู่ระบบที่ใช้งานได้ การเปลี่ยนลายนิ้วมือจะทำให้รายการใช้ไม่ได้ ให้ใช้การลงนาม Developer ID ที่เสถียรสำหรับการอัปเดตในการผลิต การลงนาม alpha แบบ ad hoc อาจรบกวนความเชื่อถือของ Keychain และการติดตามสิทธิ์เครือข่ายท้องถิ่น
Windows x64 Interop เดสก์ท็อป WinRT Windows Hello แบบเนทีฟที่ผูกกับ HWND หลัก คีย์ที่เข้ารหัสด้วย DPAPI ของผู้ใช้ปัจจุบันใน Windows Credential Manager ลายนิ้วมือ ใบหน้า หรือ PIN ของ Hello ที่กำหนดค่าไว้ นี่คือการปลดล็อกเพื่อความสะดวก แอปเป็นผู้บังคับใช้การอนุมัติของ Hello ขณะที่ DPAPI เองไม่ได้ป้องกันด้วยไบโอเมตริก โค้ดอื่นที่ทำงานในชื่อผู้ใช้เดียวกันอาจถอดรหัสข้อมูลรับรองได้
Ubuntu x64 ลายนิ้วมือที่ลงทะเบียนของผู้ใช้ปัจจุบันผ่าน fprintd D-Bus การจัดเก็บข้อมูลรับรองอย่างชัดแจ้งด้วย libsecret / Secret Service เครื่องอ่านที่รองรับ ลายนิ้วมือที่ลงทะเบียนแล้ว Secret Service ของเดสก์ท็อปที่ทำงานอยู่ และ keyring ค่าเริ่มต้น เป็นการปลดล็อกเพื่อความสะดวก ข้อมูลรับรองใน keyring ไม่ได้ผูกกับการตรวจสอบลายนิ้วมือในเชิงการเข้ารหัส ไม่มีการถอยกลับไปใช้ basic_text หรือไฟล์ข้อความธรรมดา

บน Ubuntu แพ็กเกจรันไทม์แบบไม่บังคับคือ python3-gi, gir1.2-secret-1, gnome-keyring (หรือ Secret Service อื่นที่เข้ากันได้) และ fprintd ติดตั้งแพ็กเกจที่ขาดหายด้วยตัวจัดการแพ็กเกจปกติของระบบปฏิบัติการ แล้วลงทะเบียนลายนิ้วมือในการตั้งค่าของระบบปฏิบัติการ การยืนยันตัวตนใช้ผู้ใช้ปัจจุบัน ไม่ต้องใช้ root และไม่เปลี่ยน PAM เซสชัน SSH แบบไม่มีหน้าจอที่ไม่มี keyring ของเดสก์ท็อปจะรายงานว่าไม่พร้อมใช้งาน และจะไม่แอบจัดเก็บคีย์ไว้ที่อื่น

กฎการล็อก

การล็อกอัตโนมัติปิดอยู่สำหรับการติดตั้งที่มีอยู่แล้ว เมื่อเปิดใช้ ค่าเริ่มต้นคือ 15 นาที ค่าที่รองรับคือ Never (ไม่เลย), 1, 5, 10, 15, 30 และ 60 นาที การป้อนข้อมูลด้วยแป้นพิมพ์และเมาส์ในหน้าต่างแอปพลิเคชันนับเป็นกิจกรรม แต่เอาต์พุต SSH ที่เข้ามาไม่นับ การล็อกเมื่อเสียโฟกัสแบบไม่บังคับจะถือว่าหน้าต่างปลั๊กอินของแอปพลิเคชันเป็นส่วนหนึ่งของแอป และให้ข้อความแจ้งการยืนยันตัวตนของระบบที่กำลังดำเนินอยู่ทำงานจนเสร็จ การเปลี่ยนกฎเหล่านี้ต้องใช้รหัสผ่านหลัก

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

นโยบายแบบไม่บังคับสำหรับการดำเนินการที่ละเอียดอ่อนจะขอการยืนยันตัวตนของระบบใหม่สำหรับการลบโปรไฟล์ การติดตั้ง/ลบปลั๊กอิน การเปิดตัวติดตั้ง และการรีเซ็ต Vault ที่ปลดล็อกอยู่ คำสั่งเทอร์มินัลระยะไกลและการแก้ไขไฟล์โดยปลั๊กอินอยู่นอกนโยบายนี้ นโยบายนี้ไม่ได้แทนที่การอนุญาตของเซิร์ฟเวอร์ SSH หากผู้ให้บริการหยุดทำงาน ให้ปลดล็อกด้วยรหัสผ่านหลักและเปลี่ยนนโยบายโดยใช้รหัสผ่านนั้น การรีเซ็ตยังคงทำได้จากหน้าจอกู้คืนที่ล็อกอยู่หลังการยืนยันที่มีผลทำลายข้อมูล

การออกแบบ Vault และ IPC

Vault v1 ที่มีอยู่ยังคงใช้ AES-256-GCM กับ scrypt การลงทะเบียนไม่ได้เขียนไฟล์ใหม่หรือเปลี่ยนสคีมา มีเพียงสำเนาของ คีย์ที่สร้างขึ้นขนาด 32 ไบต์ ที่ถูกส่งไปยังที่จัดเก็บข้อมูลรับรองของระบบปฏิบัติการ รหัสผ่านหลักแบบข้อความธรรมดาไม่เคยถูกจัดเก็บ เมทาดาทาการลงทะเบียนในเครื่องประกอบด้วย ID ข้อมูลรับรองแบบสุ่ม ผู้ให้บริการ และการผูก SHA-256 กับเมทาดาทาที่เปลี่ยนแปลงไม่ได้ของ Vault คีย์ที่กู้คืนต้องผ่านการถอดรหัสที่มีการยืนยันความถูกต้องก่อนเปิดเซสชัน บัฟเฟอร์ของกระบวนการหลักจะถูกล้างหลังใช้งาน สตริงโปรโตคอลแบบเนทีฟเป็นหน่วยความจำชั่วคราวของกระบวนการ ไม่ใช่การอ้างว่าลบหน่วยความจำได้หมดในรันไทม์ที่มีการจัดการ

Helper สื่อสารผ่านไปป์ stdin/stdout ส่วนตัวที่จำกัดขนาด ไม่รับคำสั่งเชลล์ มีการหมดเวลาในการยืนยันตัวตน และส่งคืนรหัสข้อผิดพลาดที่ผ่านการกรองแล้ว Helper ถูกแพ็กเกจไว้นอก ASAR ใน resources/biometrics และเป็นไฟล์ปฏิบัติการแบบเนทีฟที่ทำงานได้ด้วยตัวเอง จึงไม่ต้องใช้โมดูลเนทีฟตาม ABI ของ Electron Helper สำหรับ Linux ใช้ Python และ GI ของระบบ อ็อบเจ็กต์เนทีฟและคีย์ที่สร้างขึ้นไม่เคยข้ามสะพาน renderer/ปลั๊กอิน IPC ไบโอเมตริกจะตรวจสอบหน้าต่างหลักที่ทำงานอยู่และเฟรมหลัก ปลั๊กอินไม่สามารถเรียกใช้ได้ การล็อกอย่างชัดแจ้งจะยกเลิกงานปลดล็อกด้วยไบโอเมตริกและรหัสผ่านที่ค้างอยู่ เพื่อไม่ให้การอนุมัติที่มาช้าเปิด Vault อีกครั้งได้ การลบการลงทะเบียนจะเพิกถอนการผูกในเครื่องแม้ที่จัดเก็บของระบบปฏิบัติการจะออฟไลน์อยู่ ที่จัดเก็บที่เข้าถึงไม่ได้อาจยังเก็บข้อมูลรับรองกำพร้าที่ใช้งานไม่ได้ไว้

การบิลด์และการตรวจสอบ

npm run biometrics:build จะเตรียม helper สำหรับแพลตฟอร์มของเครื่องโฮสต์ การเริ่มต้นสำหรับการพัฒนาและการเตรียมรุ่นเผยแพร่จะเรียกใช้คำสั่งนี้โดยอัตโนมัติ macOS ต้องใช้ Swift/Apple SDK ที่มี Security และ LocalAuthentication, Windows ต้องใช้ Visual Studio C++ Build Tools, Windows SDK และ C++/WinRT ส่วน Linux จะคัดลอก helper ที่เป็น Python ไม่มีการเพิ่มการพึ่งพา npm ใหม่ ให้บิลด์แบบเนทีฟบนระบบปฏิบัติการเป้าหมายแต่ละระบบ Helper สำหรับ macOS รวมอยู่ในการลงนามบันเดิลแบบเรียกซ้ำ และไม่ต้องใช้ entitlement ของ App Sandbox เพราะแอปบนเดสก์ท็อปนี้ไม่ได้ทำงานในแซนด์บ็อกซ์ การจัดจำหน่าย macOS สำหรับการผลิตยังคงต้องใช้การลงนาม Developer ID และการรับรอง (notarization) โดยไม่ขึ้นกับลายเซ็นรุ่นเผยแพร่ OpenPGP

เรียกใช้ npm test, npm run test:biometrics:ui และ npm run test:diagnostics:ui การทดสอบ Node ด้านไบโอเมตริกและการทดสอบเบื้องต้นของ UI ที่แยกส่วนใช้ อะแดปเตอร์ระบบปฏิบัติการจำลอง เพื่อครอบคลุมความสำเร็จ การปฏิเสธ/การยกเลิก คีย์ที่ผิด ฮาร์ดแวร์/การลงทะเบียนที่ขาดหาย การรีเซ็ต การหมดเวลาและผลลัพธ์ที่มาช้า keyring ของ Linux ที่ไม่พร้อมใช้งาน ความล้มเหลวของข้อมูลรับรองในระบบปฏิบัติการ การตอบกลับของ Windows ที่อนุมัติด้วย PIN การเปลี่ยนแปลงการลงทะเบียนบน macOS ความเข้ากันได้กับ Vault ที่มีอยู่ การแยก IPC และการล้าง SSH สิ่งนี้ไม่ได้พิสูจน์ว่าการยืนยันตัวตนบนฮาร์ดแวร์สำเร็จ

การคอมไพล์แบบเนทีฟได้รับการตรวจสอบบน macOS arm64 และ Windows x64 แล้ว macOS รายงานว่า Touch ID พร้อมใช้งาน ส่วน VM ของ Windows รายงานว่า Hello ไม่พร้อมใช้งาน การลงทะเบียนลายนิ้วมือ/ใบหน้า/PIN การดึงคีย์ที่ป้องกันไว้จริง การยกเลิกกล่องโต้ตอบของระบบปฏิบัติการ และการทำให้ใช้ไม่ได้เมื่อการลงทะเบียนเปลี่ยน ยังต้องทดสอบแบบโต้ตอบบนฮาร์ดแวร์ของแต่ละระบบที่รองรับ Helper ของ Linux ต้องได้รับการทดสอบเพิ่มเติมบนเดสก์ท็อปที่มีเครื่องอ่าน fprintd ที่รองรับ VM แบบไม่มีหน้าจอไม่สามารถพิสูจน์การตรวจสอบนั้นได้

ข้อมูลอ้างอิงแพลตฟอร์ม: การควบคุมการเข้าถึงด้วยไบโอเมตริกของ Apple, Interop ของ Hello บนเดสก์ท็อป Windows, วงจรชีวิตอุปกรณ์ของ fprintd, ข้อกำหนด Secret Service

การเข้าถึงเครือข่ายท้องถิ่นสำหรับ SSH บน macOS

หากโปรไฟล์ SSH ในเครือข่ายท้องถิ่นทุกรายการล้มเหลวด้วย connect EHOSTUNREACH แต่การเชื่อมต่อเดียวกันใช้งานได้ใน Terminal ให้ตรวจสอบ System Settings → Privacy & Security → Local Network → CH-J Server Manager (การตั้งค่าระบบ → ความเป็นส่วนตัวและความปลอดภัย → เครือข่ายท้องถิ่น) อนุญาตการเข้าถึง ออกจากแอปโดยสมบูรณ์ แล้วเปิดใหม่ หากเปิดใช้งานอยู่แล้ว ให้ปิดแล้วเปิดสิทธิ์อีกครั้งและรีสตาร์ต ตรวจสอบการกำหนดเส้นทาง Wi-Fi/Ethernet และ VPN ด้วย ข้อผิดพลาดนี้เพียงอย่างเดียวไม่ได้พิสูจน์ว่าถูกปฏิเสธโดยการตั้งค่าความเป็นส่วนตัว ห้ามรีเซ็ต Vault หรือทิ้งลายนิ้วมือ SSH ที่เชื่อถือได้เพราะข้อผิดพลาดนี้

แอปประกาศ NSLocalNetworkUsageDescription และให้คำแนะนำที่แปลแล้วสำหรับข้อผิดพลาดด้านสิทธิ์/เส้นทางเครือข่ายของ macOS แอปไม่สามารถให้สิทธิ์แก่ตัวเองได้ Apple แนะนำให้ใช้ตัวตนการลงนามที่ออกโดย Apple เพื่อให้ macOS ติดตามความเป็นส่วนตัวของเครือข่ายข้ามบิลด์ได้อย่างน่าเชื่อถือ บิลด์ alpha แบบ ad hoc ในปัจจุบันยังคงมีข้อจำกัดนี้ ดู คำแนะนำของ Apple เกี่ยวกับความเป็นส่วนตัวของเครือข่ายท้องถิ่น

ไอคอนแอปพลิเคชันบน Ubuntu

แพ็กเกจ Debian ติดตั้งไอคอน CH-J ที่มีอยู่ในขนาด hicolor มาตรฐาน (16–512 px) พร้อมรายการเดสก์ท็อปและคลาสหน้าต่าง Electron ที่ตรงกัน หน้าต่างหลักจะได้รับไอคอนเช่นกันเมื่อถูกสร้างใหม่ หลังจากอัปเดตตัวเปิดใช้เก่าที่ปักหมุดไว้แล้ว ให้เลิกปักหมุดแล้วปักหมุดแอปพลิเคชันที่ติดตั้งใหม่ การออกจากระบบแล้วเข้าสู่ระบบเดสก์ท็อปใหม่สามารถรีเฟรชแคชตัวเปิดใช้ของ GNOME ที่ล้าสมัยได้