อ่าน 4 นาที
พวงกุญแจ (ซอฟต์แวร์)
Keychain คือ ระบบจัดการรหัสผ่าน ที่พัฒนาโดย Apple สำหรับ macOS เปิดตัวครั้งแรกใน Mac OS 8.
พวงกุญแจ (ซอฟต์แวร์)
| พวงกุญแจ | |
|---|---|
| นักพัฒนา | แอปเปิล |
| ปล่อย | 1999 |
| ระบบปฏิบัติการ | Mac OS 9 , macOS |
| ผู้สืบทอด | รหัสผ่าน |
| พิมพ์ | ยูทิลิตี้ระบบ |
| ใบอนุญาต | เอพีเอสแอล-2.0 |
| เว็บไซต์ | บริการพวงกุญแจ |
| การเข้าถึงพวงกุญแจ | |
|---|---|
ภาพหน้าจอแสดงการเข้าถึง Keychain บนmacOS 12 | |
| นักพัฒนา | บริษัท แอปเปิล อิงค์ |
| เวอร์ชันเสถียร | 11.0 (55314) / 2022 |
| ระบบปฏิบัติการ | Mac OS 9 , macOS |
| ผู้สืบทอด | รหัสผ่าน |
| พิมพ์ | โปรแกรมจัดการรหัสผ่าน |
| เว็บไซต์ | ความช่วยเหลือเกี่ยวกับการเข้าถึง Keychain |
Keychainคือระบบจัดการรหัสผ่านที่พัฒนาโดยAppleสำหรับmacOSเปิดตัวครั้งแรกในMac OS 8.6และรวมอยู่ในเวอร์ชันต่อๆ มาของระบบปฏิบัติการ รวมถึงiOS ด้วย Keychain สามารถเก็บข้อมูลได้หลายประเภท เช่นรหัสผ่าน (สำหรับเว็บไซต์เซิร์ฟเวอร์ FTPบัญชีSSH แชร์เครือข่าย เครือข่ายไร้สาย แอปพลิเค ชันกลุ่มงานรูปภาพดิสก์ที่เข้ารหัส ) คีย์ส่วนตัวใบรับรองและบันทึกย่อที่ปลอดภัย ข้อมูลบางส่วน โดยเฉพาะรหัสผ่าน ใน Keychain สามารถมองเห็นและแก้ไขได้โดยใช้ส่วนติดต่อผู้ใช้ที่เป็นมิตรใน แอ ป Passwordsซึ่งเป็นแอปในตัวของmacOS SequoiaและiOS 18และมีอยู่ในการตั้งค่าระบบ / การตั้งค่าในเวอร์ชันก่อนหน้าของระบบปฏิบัติการของ Apple
ประวัติศาสตร์
ระบบคีย์เชนถูกพัฒนาขึ้นครั้งแรกสำหรับระบบอีเมลPowerTalk ของ Apple ในช่วงต้นทศวรรษ 1990 PowerTalk มีคุณสมบัติมากมาย รวมถึงปลั๊กอินที่ช่วยให้สามารถดึงอีเมลจากเซิร์ฟเวอร์อีเมลและบริการออนไลน์ต่างๆ ได้มากมาย แนวคิดเรื่องคีย์เชนจึงเกิดขึ้นเองตามธรรมชาติจากโค้ดนี้ และถูกนำมาใช้ใน PowerTalk เพื่อจัดการข้อมูลประจำตัวการเข้าสู่ระบบต่างๆ ของผู้ใช้สำหรับระบบอีเมลต่างๆ ที่ PowerTalk สามารถเชื่อมต่อได้
รหัสผ่านนั้นกู้คืนได้ยากเนื่องจากการเข้ารหัส แต่ความเรียบง่ายของอินเทอร์เฟซทำให้ผู้ใช้สามารถเลือกใช้รหัสผ่านที่แตกต่างกันสำหรับแต่ละระบบได้โดยไม่ต้องกังวลว่าจะลืม เพราะรหัสผ่านเดียวจะสามารถเปิดไฟล์และแสดงรหัสผ่านทั้งหมดได้ ในขณะนั้น แนวคิดนี้ยังไม่มีให้บริการในแพลตฟอร์มอื่น Keychain เป็นหนึ่งในส่วนไม่กี่ส่วนของ PowerTalk ที่มีประโยชน์อย่างเห็นได้ชัด "ด้วยตัวมันเอง" ซึ่งบ่งชี้ว่าควรได้รับการส่งเสริมให้เป็นส่วนหนึ่งของระบบปฏิบัติการ Mac OS พื้นฐาน แต่เนื่องจากนโยบายภายใน จึงถูกเก็บไว้ภายในระบบ PowerTalk และด้วยเหตุนี้จึงมีผู้ใช้ Mac เพียงไม่กี่รายเท่านั้นที่สามารถใช้งานได้
จนกระทั่งการกลับมาของสตีฟ จ็อบส์ในปี 1997 แนวคิด Keychain จึงได้รับการฟื้นฟูขึ้นมาอีกครั้งจาก PowerTalk ที่เลิกผลิตไปแล้ว ในเวลานั้น แนวคิดนี้ไม่ได้แปลกใหม่มากนัก แต่ก็ยังหาได้ยากที่จะเห็นระบบ Keychain ที่ไม่ได้เชื่อมโยงกับซอฟต์แวร์แอปพลิเคชันใดโดยเฉพาะ ซึ่งโดยทั่วไปแล้วมักจะเป็นเว็บเบราว์เซอร์ Keychain ต่อมาได้กลายเป็นส่วนหนึ่งของ Mac OS 9 และถูกรวมอยู่ในMac OS Xในเวอร์ชันเชิงพาณิชย์แรกๆ
พื้นที่จัดเก็บและการเข้าถึง
ใน macOS ไฟล์ Keychain จะถูกจัดเก็บไว้ใน~/Library/Keychains/(และไดเร็กทอรีย่อย) /Library/Keychains/และ/Network/Library/Keychains/และแอปพลิเคชัน Keychain Access GUI จะอยู่ในโฟลเดอร์ Utilities ในโฟลเดอร์ Applications [ 1 ] [ 2 ] เป็นซอฟต์แวร์ โอ เพนซอร์สฟรีที่เผยแพร่ภายใต้เงื่อนไขของAPSL-2.0 [ 3 ] คำสั่งบรรทัดคำสั่งที่เทียบเท่ากับ Keychain Access คือ /usr/bin/security
ฐานข้อมูลพวงกุญแจจะถูกเข้ารหัสต่อตารางและต่อแถวด้วยAES-256-GCMเวลาที่ข้อมูลประจำตัวแต่ละรายการจะถูกถอดรหัส ระยะเวลาที่ข้อมูลประจำตัวจะยังคงถูกถอดรหัส และการซิงค์ข้อมูลประจำตัวที่เข้ารหัสไปยัง iCloud จะแตกต่างกันไปตามประเภทของข้อมูลที่จัดเก็บ และมีเอกสารอยู่ในเว็บไซต์สนับสนุนของ Apple [ 4 ]
การล็อกและการปลดล็อก
ไฟล์คีย์เชนเริ่มต้นคือloginคีย์เชน ซึ่งโดยทั่วไปจะปลดล็อกเมื่อเข้าสู่ระบบโดยใช้รหัสผ่านเข้าสู่ระบบของผู้ใช้ แม้ว่ารหัสผ่านสำหรับคีย์เชนนี้อาจแตกต่างจากรหัสผ่านเข้าสู่ระบบของผู้ใช้ ซึ่งจะเพิ่มความปลอดภัยแต่ก็แลกมาด้วยความสะดวกที่ลดลง[ 5 ] แอปพลิเคชัน Keychain Access ไม่อนุญาตให้ตั้งรหัสผ่านว่างเปล่าบนคีย์เชน
พวงกุญแจอาจถูกตั้งค่าให้ "ล็อก" โดยอัตโนมัติหากคอมพิวเตอร์ไม่ได้ใช้งานเป็นระยะเวลาหนึ่ง[ 6 ]และสามารถล็อกด้วยตนเองได้จากแอปพลิเคชัน Keychain Access เมื่อล็อกแล้ว จะต้องป้อนรหัสผ่านอีกครั้งในครั้งถัดไปที่เข้าถึงพวงกุญแจเพื่อปลดล็อก การเขียนทับไฟล์~/Library/Keychains/ด้วยไฟล์ใหม่ (เช่น เป็นส่วนหนึ่งของการดำเนินการกู้คืน) จะทำให้พวงกุญแจล็อกและต้องป้อนรหัสผ่านในการเข้าถึงครั้งถัดไปเช่นกัน
การซิงโครไนซ์รหัสผ่าน
หากคีย์เชนสำหรับการเข้าสู่ระบบได้รับการป้องกันด้วยรหัสผ่านเข้าสู่ระบบ รหัสผ่านของคีย์เชนจะถูกเปลี่ยนทุกครั้งที่มีการเปลี่ยนรหัสผ่านเข้าสู่ระบบจากภายในเซสชันการเข้าสู่ระบบบน macOS ในเครือข่าย Mac/ไม่ใช่ Mac ที่ใช้ร่วมกัน รหัสผ่านของคีย์เชนสำหรับการเข้าสู่ระบบอาจไม่ตรงกันหากรหัสผ่านเข้าสู่ระบบของผู้ใช้ถูกเปลี่ยนจากระบบที่ไม่ใช่ Mac นอกจากนี้ หากมีการเปลี่ยนรหัสผ่านจากบริการไดเร็กทอรี เช่น Active Directory หรือ Open Directory หรือหากมีการเปลี่ยนรหัสผ่านจากบัญชีผู้ดูแลระบบอื่น เช่น การใช้การตั้งค่าระบบ ผู้ดูแลระบบเครือข่ายบางรายแก้ปัญหานี้โดยการลบไฟล์คีย์เชนเมื่อออกจากระบบ เพื่อให้มีการสร้างไฟล์ใหม่ในครั้งต่อไปที่ผู้ใช้เข้าสู่ระบบ ซึ่งหมายความว่ารหัสผ่านคีย์เชนจะไม่ถูกจดจำจากเซสชันหนึ่งไปยังอีกเซสชันหนึ่ง แม้ว่ารหัสผ่านเข้าสู่ระบบจะไม่ได้ถูกเปลี่ยนก็ตาม หากเกิดเหตุการณ์นี้ขึ้น ผู้ใช้สามารถกู้คืนไฟล์คีย์เชน~/Library/Keychains/จากข้อมูลสำรองได้ แต่การทำเช่นนั้นจะล็อกคีย์เชน ซึ่งจะต้องปลดล็อกในครั้งต่อไปที่ใช้งาน
ซอฟต์แวร์จากผู้พัฒนาภายนอกสำหรับการซิงโครไนซ์พวงกุญแจ
มีการพัฒนาแอปพลิเคชันซอฟต์แวร์ของบุคคลที่สาม ซึ่งช่วยให้สามารถซิงโครไนซ์คีย์เชนส่วนบุคคลที่สร้างขึ้นโดยใช้ Keychain Access ในMac OS Xได้ จากนั้นคีย์เชนของผู้ใช้ที่สร้างขึ้นโดยใช้ Keychain Access มาตรฐานเหล่านี้สามารถซิงโครไนซ์ระหว่างอุปกรณ์ต่างๆ (iPhone - คอมพิวเตอร์เดสก์ท็อปของ Apple) โดยใช้แอปซิงโครไนซ์คีย์เชนสองตัวที่พัฒนาโดย Patrick Stein จาก Jinx Software ตัวหนึ่งสำหรับMac OS Xและอีกตัวสำหรับ iOS ที่เรียกว่า Keychain2Go Keychain2Go ไม่สามารถอัปเดตได้สำเร็จโดยนักพัฒนาเพื่อให้สอดคล้องกับข้อจำกัดที่ Apple กำหนดไว้สำหรับ Keychain และการเข้าถึง Keychain ในMac OS X Sierra 10.12 [ 7 ]
ความปลอดภัย
Keychain มาพร้อมกับทั้ง iOS และ macOS เวอร์ชัน iOS นั้นเรียบง่ายกว่า เนื่องจากแอปพลิเคชันที่ทำงานบนอุปกรณ์พกพามักต้องการเพียงคุณสมบัติพื้นฐานของ Keychain เท่านั้น ตัวอย่างเช่น คุณสมบัติเช่น ACLs (Access Control Lists) และการแชร์รายการ Keychain ระหว่างแอปต่างๆ จะไม่มีอยู่ ดังนั้น รายการ Keychain ใน iOS จึงสามารถเข้าถึงได้เฉพาะแอปที่สร้างรายการนั้นขึ้นมาเท่านั้น
เนื่องจาก Keychain เป็นที่เก็บข้อมูลสำคัญเริ่มต้นของผู้ใช้ Mac จึงเป็นเป้าหมายหลักของการโจมตีด้านความปลอดภัย
ในปี 2019 Linus Henze นักวิจัยด้านความปลอดภัยชาวเยอรมันวัย 18 ปี ได้สาธิตการแฮ็กของเขา ซึ่งตั้งชื่อว่า KeySteal ที่สามารถดึงรหัสผ่านจาก Keychain ได้ ในตอนแรก เขาได้ปกปิดรายละเอียดของการแฮ็ก โดยเรียกร้องให้ Apple ตั้งรางวัลสำหรับการค้นพบช่องโหว่ใน macOS อย่างไรก็ตาม Apple ยังไม่ได้ทำเช่นนั้นเมื่อ Henze เปิดเผยการแฮ็กในภายหลัง การแฮ็กนี้ใช้การเข้าถึงบริการด้านความปลอดภัยของ Safari ซึ่งปลอมตัวเป็นยูทิลิตี้ใน macOS ที่ช่วยให้ผู้ดูแลระบบไอทีสามารถจัดการ Keychain ได้[ 8 ]