לדלג לתוכן

Lesson 02: משתמשים, סודות, והזדהות מודרנית - Asset A: Instructor Reference

1. משתמשים ותיקיות

High-Level Theory & History

מערכת ההפעלה macOS, בהיותה מבוססת על ליבת UNIX (Darwin), תוכננה מהיסוד כמערכת מרובת משתמשים (Multi-User). לכל משתמש מוקצה מרחב מבודד ופרטי המכונה תיקיית הבית (Home Folder). macOS תומכת במספר סוגי חשבונות עיקריים:

  • Administrator (מנהל מערכת): המשתמש הראשון שנוצר ב-Setup Assistant. רשאי לבצע שינויים גלובליים, להתקין תוכנות בתיקיית ה-Applications המשותפת, לשנות הגדרות רשת ולהוסיף משתמשים.
  • Standard (משתמש רגיל): רשאי להתקין אפליקציות רק בתיקיית הבית שלו (~/Applications), לשנות הגדרות אישיות ולהריץ תוכנות מותקנות. אינו רשאי לשנות קבצי מערכת קריטיים ללא הקלדת סיסמת מנהל.
  • Guest (אורח): חשבון זמני המוחק את כל תוכן תיקיית הבית שלו מיד עם התנתקותו מהמערכת. יעיל להשאלת המחשב לגורם חיצוני.
  • Sharing Only: משתמש ללא תיקיית בית המיועד אך ורק לגישה מרחוק לתיקיות משותפות ברשת (למשל דרך פרוטוקול SMB), ואינו רשאי להתחבר לממשק הגרפי המקומי.

Deep Technical Architecture

תיקיית הבית ב-macOS ממוקמת תחת נתיב /Users. כל תיקיית בית מוגנת ברמת הרשאות ה-POSIX כך שרק המשתמש (וה-Root) רשאים לקרוא את תוכנה.

  • תיקיית Shared: תחת /Users/Shared נמצאת תיקיה משותפת מיוחדת. היא משמשת כ"אזור מפורז" בו משתמשים יכולים להעביר קבצים אחד לשני, או אזור בו אפליקציות שומרות נתונים המשותפים לכלל המשתמשים במחשב. יש לה הרשאת Sticky Bit מיוחדת, שמונעת ממשתמש אחד למחוק קבצים שנוצרו על ידי משתמש אחר בתוך התיקיה.
  • ניהול מאגר המשתמשים (OpenDirectory): במקום קובץ /etc/passwd מסורתי, macOS מנהלת משתמשים באמצעות שירות ה-Directory Services המובנה (OpenDirectory). הנתונים המקומיים נשמרים במסד נתונים של Plists תחת /var/db/dslocal/nodes/Default/users/.

Terminal Commands, Plists & Logs

  • Terminal Commands:

  • יצירה ועריכת משתמשים מהטרמינל (לקריאה בלבד ללא הרשאות): dscl . -list /Users

  • צפייה במידע מפורט על משתמש ספציפי: dscl . -read /Users/username
  • הצגת הרשאות של תיקיית /Users (לזיהוי ה-Sticky Bit בתיקיית Shared): ls -la /Users
  • Plists:
  • הנתונים הגולמיים של כל משתמש (הכוללים את תמונתו, מיקום תיקיית הבית וה-UID שלו) נשמרים בקבצי XML בנתיב: /var/db/dslocal/nodes/Default/users/username.plist. (קריאה דורשת הרשאות sudo).
  • Logs:

  • צפייה באירועי התחברות והחלפת משתמשים: log show --predicate 'process == "loginwindow"' --info

Edge Cases & Troubleshooting

  • אובדן סיסמת אדמין: במקרה בו המשתמש היחיד במחשב איבד את סיסמתו, לא ניתן לבצע שינויי מערכת. יש לאתחל למצב macOS Recovery, לפתוח טרמינל ולהקליד resetpassword כדי להפעיל את אשף שחזור הסיסמאות המובנה (במחשבי Apple Silicon פעולה זו מצריכה הזדהות חלופית כמו סיסמת Apple Account או אישור של משתמש אחר עם Secure Token).
  • בעיות הרשאות בתיקיית Shared: לעיתים אפליקציות צד-שלישי יכתבו קבצים ל-Shared ללא הרשאות מתאימות, מה שימנע ממשתמש רגיל לגשת אליהם. הפתרון הוא לאפס את ההרשאות בתיקייה זו באמצעות chmod או פונקציית Get Info ב-Finder ולהחיל לכל פריטי הבן (Apply to enclosed items).

2. ניהול סודות

High-Level Theory & History

ניהול סיסמאות וסודות ב-Mac התבסס במשך עשרות שנים על תשתית ה-Keychain (מחזיק המפתחות). מערכת ה-Keychain שומרת סיסמאות אינטרנט, סיסמאות Wi-Fi, ותעודות אבטחה בצורה מוצפנת, ונפתחת אוטומטית כאשר המשתמש מזין את סיסמת ההתחברות שלו ל-Mac (סינכרון סיסמאות).

קצת היסטוריה: מנגנון ה-Keychain החל את דרכו אי שם בשנת 1993 ב-System 7.1.1. תשתית ה-SecKeychain המודרנית הוצגה ב-OS X 10.2 (2002), ורק ב-2013 התבצע קפיצת המדרגה ל-Data Protection Keychain המסנכרן סודות לענן (iCloud Keychain).

החל מ-macOS Sequoia (גרסה 15), ובפרט ב-macOS Tahoe (גרסה 26), אפל פיצלה את חוויית המשתמש ממסכי ה-System Settings הארוכים, ויצרה אפליקציה ייעודית בשם Passwords app. אפליקציה זו משמשת כמנהל סיסמאות מרכזי הכולל: סיסמאות רגילות, Passkeys, קודי אימות דו-שלבי (2FA Authenticator), וסיסמאות Wi-Fi. האפליקציה מאפשרת התראות אבטחה במקרה של זליגת נתונים ומאפשרת ליצור קבוצות לשיתוף סודות (Shared Password Groups) באופן מאובטח.

Deep Technical Architecture

  • Keychain Databases: ארכיטקטורת ה-Keychain מורכבת ממספר מאגרי נתונים:

  • Login Keychain: (~/Library/Keychains/login.keychain-db) - מכיל את הסודות האישיים של המשתמש. נפתח סינכרונית עם סיסמת החשבון המקומית שלו.

  • System Keychain: (/Library/Keychains/System.keychain) - מכיל סודות ברמת המערכת (למשל סיסמאות Wi-Fi שנדרשות טרם חיבור משתמש).
  • iCloud Keychain: למרות שמו, זהו אינו קובץ יחיד אלא מנגנון סנכרון מוצפן מקצה לקצה המוודא שסודות מסוימים מתוך ה-Login Keychain (ופריטי הפלטפורמה החדשים של ה-Passwords app) ישתקפו לכל מכשירי המשתמש.
  • Passwords app Integration: האפליקציה החדשה משמשת כממשק לקוח מתקדם המשלב את מאגר ה-iCloud Keychain. האפליקציה דורשת אימות ביומטרי (Touch ID) או סיסמת מחשב בעת פתיחתה כהגנה נוספת מעבר לבידוד תיקיית הבית.

Terminal Commands, Plists & Logs

  • Terminal Commands:

  • הכלי לשליטה בשורת הפקודה במחזיקי המפתחות: security

  • הצגת רשימת מחזיקי המפתחות במערכת: security list-keychains
  • מציאת תעודה בתוך מחזיק מפתחות ספציפי: security find-certificate -a /Library/Keychains/System.keychain
  • Plists: N/A - הסודות נשמרים במסדי נתונים מוצפנים בסיומת keychain-db ולא כקובצי קריאה פתוחים.
  • Logs:

  • לאיתור שגיאות בתהליך שירות האבטחה ופתיחת סודות: log show --predicate 'subsystem == "com.apple.securityd"'

Edge Cases & Troubleshooting

  • Out of Sync Keychain (The "Constant Prompts" Issue): תרחיש קלאסי המתרחש כאשר סנכרון סיסמת המחשב מול שרת חברה, שירות MDM או תהליך צד-שלישי, משנה את סיסמת המחשב (Login Password) אך נכשל בשינוי הסיסמה בפועל של מאגר ה-login.keychain-db. במצב זה המשתמש יקבל קפיצות חוזרות ונשנות מחלונות מערכת הדורשים את סיסמת ה-Keychain שלו הישנה. הפתרון הוא לגשת ל-Keychain Access app, לשנות את סיסמת ה-Keychain כדי שתתאים שוב לסיסמת ההתחברות, או למחוק ולייצר Keychain חדש במידה והסיסמה הישנה אבדה לחלוטין (משמעות הפעולה - אובדן הסודות הישנים והקמת מאגר נקי).

3. העידן ללא סיסמה ואבטחה

High-Level Theory & History

כחלק ממגמה עולמית של קואליציית FIDO, אפל דוחפת לביטול הסיסמאות המסורתיות באמצעות טכנולוגיית Passkeys. מפתח גישה (Passkey) מחליף את הסיסמה בצמד מפתחות קריפטוגרפיים (ציבורי ופרטי). המפתח הפרטי נותר כלוא במכשיר ואינו משותף לעולם. כדי לאמת את זהותו מול אתר/אפליקציה, המשתמש מבצע אימות ביומטרי בלבד (Touch ID או Face ID).

היסטוריה וארכיטקטורה: ה-Secure Enclave ששומר על מפתחות אלו הוצג לראשונה ב-2013 באייפון 5s (עבור ה-Touch ID) והגיע למחשבי ה-Mac ב-2017 עם שבב ה-T2. הרעיון הוא שבידוד אמיתי דורש מעבד וסביבה נפרדים לחלוטין מהמעבד הראשי.

ברמת הקבצים המקומית של מערכת ההפעלה, אבטחת הנתונים בנויה על שילוב של הרשאות POSIX קלאסיות מתקופת ה-UNIX, ושכבה מתקדמת יותר בשם ACL (Access Control Lists) המאפשרת הגדרת הרשאות גרגולריות (למשל לתת לעמית א' זכות קריאה ולעמית ב' זכות כתיבה על אותו הקובץ בדיוק).

Deep Technical Architecture

  • Passkeys: ב-macOS, ה-Passkeys נשמרים קריפטוגרפית ומגובים ישירות על ידי שבב ה-Secure Enclave. ברגע שנוצר Passkey לאתר מסוים, המפתח הציבורי נשלח לשרת של האתר. בהתחברות עתידית, השרת שולח "אתגר" ל-Mac, וה-Secure Enclave, לאחר אימות ביומטרי מוצלח של המשתמש, "חותם" על האתגר באמצעות המפתח הפרטי שברשותו. מכיוון שמערכת זו מגובה ב-iCloud Keychain, ה-Passkey מסונכרן בצורה מוצפנת (End-to-End) בין מכשירי המשתמש (למשל iPhone ו-Mac), מה שמאפשר מעבר חלק ביניהם. מפתחות Passkey מנוהלים לא ניתן לשתף באמצעות AirDrop בהתאם למדיניות אבטחה ארגונית.
  • POSIX & ACL:
  • הרשאות POSIX מגדירות אך ורק שלושה גורמים לכל קובץ: הבעלים (Owner), הקבוצה (Group) ושאר העולם (Everyone), ולכל אחד יש הרשאות צירוף של קריאה (Read), כתיבה (Write) וביצוע (Execute).
  • כאשר POSIX אינו מספיק (למשל, יש צורך בהרשאות ליותר מקבוצה אחת), מערכת הקבצים מוסיפה רשומות ACL. זהו מערך מתקדם הניתן לעריכה על ידי חלון Get Info (בפקודת Sharing & Permissions) ב-Finder או בטרמינל.

Terminal Commands, Plists & Logs

  • Terminal Commands (POSIX & ACL):

  • צפייה בהרשאות קבצים הכוללות ACL (מזוהה על ידי סיומת + בשורת ההרשאה הראשונה): ls -le /path/to/file

  • שינוי בעלים וקבוצה של קובץ: sudo chown root:admin /path/to/file
  • שינוי הרשאות POSIX קלאסיות (פורמט אוקטלי): chmod 755 /path/to/file
  • הוספת רשומת ACL מתקדמת באמצעות הטרמינל: chmod +a "user:omer:allow read,write,append" /path/to/file
  • Plists: N/A - הרשאות קבצים נרשמות כ-Extended Attributes ומטא-דאטה במערכת הקבצים (APFS) ולא ב-Plists.
  • Logs:

  • לבחינת תהליך אימות WebAuthn ו-Passkey: log show --predicate 'subsystem == "com.apple.AuthenticationServices"'

Edge Cases & Troubleshooting

  • שלילת הרשאות בטעות: משתמש אדמין שלל לעצמו את הרשאת הקריאה לקובץ חשוב באמצעות ACL ב-Finder (סיומת No Access). מכיוון שהוא עדיין אדמין, עליו להשתמש בתיבת הדו-שיח של Get Info, ללחוץ על המנעול להזדהות מוגברת, ולהחזיר לעצמו את הרשאות ה-Read/Write, או להריץ chmod עם sudo.
  • מעבר מכשירים ו-Passkey חסר: משתמש החליף Mac ואינו יכול להתחבר לאתר ארגוני למרות שה-Passkey קיים באייפון שלו. הסיבה לרוב היא כי סנכרון iCloud Keychain מושהה או כבוי ב-Mac החדש (או שמדובר ב-Managed Apple Account שאינו תומך בהעברת AirDrop של סודות). הפעלת הסינכרון מתוך הגדרות ה-Apple Account תחזיר את ה-Passkeys.

4. תיבול ארגוני

High-Level Theory & History

בסביבה ארגונית מודרנית, חברות רוצות לנהל את המשתמשים ולדאוג לסנכרון זהויות רציף. הפתרונות לכך הם:

  • Managed Apple Accounts (MAID): אלו הם חשבונות Apple הנשלטים לחלוטין על ידי הארגון (דרך Apple Business Manager / Apple School Manager). הארגון שומר בעלות מלאה על הנתונים וקובע אילו שירותי ענן מאופשרים לעובד. לדוגמה, הארגון יכול לחסום שירותים כמו iCloud Mail, Private Relay, ו-Find My מתוך ה-MAID כדי לשמור על בטיחות מידע מסחרי, תוך כדי אישור שירותים חיוניים כמו iCloud Drive וסנכרון Passkeys ארגוניים.
  • Platform SSO (Single Sign-On): מחליף את חוויית ה-Active Directory Binding המסורתית (בה המחשב מחובר ישירות לדומיין מקומי כפי שנעשה בעבר). Platform SSO ב-macOS מאפשר אינטגרציה עמוקה בה מסך ההתחברות המקומי של ה-Mac (ה-Login Window) מתקשר ישירות עם שרתי זיהוי ענן (IdP) כדוגמת Microsoft Entra ID. כך העובד משתמש בסיסמת הארגון (או נטול סיסמה לחלוטין באמצעות Secure Enclave המגבה Platform SSO) כדי לפתוח את המחשב עצמו ואת יישומיו בבת אחת.

Deep Technical Architecture

  • Managed Apple Accounts limitations: ה-MAIDs אינם מאפשרים רכישות בחנויות ה-App Store מכיוון שניהול רישיונות צריך להתבצע דרך VPP (נלמד בהמשך הקורס) על ידי ה-MDM הארגוני. כאשר הארגון מפעיל פיצ'ר הנקרא Federated Authentication, בכל פעם שעובד מקליד את כתובת האימייל הארגונית שלו במסך ההגדרות, Apple מזהה את הדומיין ומעבירה את בקשת ההזדהות היישר לשירות ה-IdP הארגוני ב-SAML/OIDC. בכך נחסך מהעובד לזכור שתי סיסמאות - זהותו הארגונית זהה לחשבון האפל שלו.
  • Platform SSO Extension: הארכיטקטורה מחייבת את מערכת ה-MDM להתקין קובץ פרופיל תצורה במחשב המכיל פיילוד מסוג Extensible Enterprise SSO. הפרופיל מגדיר לאיזו תוכנה צד-שלישי מותר לשמש כתוסף ה-SSO (לדוגמה Company Portal עבור מיקרוסופט). כשהתוסף נטען, ה-Mac מזרים את הזדהות מסך הנעילה (Lock Screen) אליו. במידה ונעשה שימוש ב-Password Sync, תוסף ה-SSO מוודא שהסיסמה המקומית של החשבון זהה לסיסמת הענן בכל שלב ומונע סנכרון כושל מול ה-Keychain.

Terminal Commands, Plists & Logs

  • Terminal Commands:

  • אבחון תצורת הרחבות SSO המותקנות במערכת ובדיקה שהפיילוד קיים: system_profiler SPConfigurationProfileDataType | grep -i SSO

  • פקודת עזר לאימות מנוע ה-Extensible SSO (לבדוק פוליסות פרופילים): profiles show -type configuration
  • Plists:
  • ניתן לאתר נתוני העדפות של תוספי ה-SSO במסלול /Library/Managed Preferences/com.apple.ExtensibleEnterpriseSSO.plist (תלוי בצורת ההפצה של ה-MDM).
  • Logs:

  • אבחון בעיות התחברות וניסיונות תקשורת של Platform SSO מול שרת הענן (Entra ID ודומיו): log show --predicate 'subsystem == "com.apple.PlatformSSO"'

Edge Cases & Troubleshooting

  • Platform SSO Offline Behavior: בעיה מוכרת מתרחשת כאשר עובד משנה את סיסמת הענן שלו (בטלפון הנייד או במחשב אחר), ולאחר מכן פותח את המחשב הנייד שלו (ה-Mac) במקום בו אין כלל קליטת אינטרנט (טיסה, חוסר קליטה). מכיוון שה-Mac מתופעל על ידי Platform SSO אך ללא יכולת תשאול שרת, העובד יאלץ להזין את הסיסמה הישנה שלו כיוון שהיא נשמרה ב-Local Cache המקומי של ה-Mac. כשהמחשב יתחבר מחדש לרשת האינטרנט, ה-SSO Extension יזהה את חוסר הסנכרון ויקפיץ חלונית המבקשת לעדכן לסיסמה החדשה, ואז יעדכן את מסד ה-Keychain המקומי.
  • התנגשות Managed Apple Accounts (Domain Conflict): לעיתים עובד פתח בעברו חשבון פרטי של Apple באמצעות אימייל של העבודה. כשהארגון מפעיל Federated Authentication על דומיין זה, החשבון הפרטי נכנס ל"קונפליקט". העובד מקבל אימייל התראה שעליו לשנות את האימייל לחשבון הפרטי (למשל לג'ימייל) תוך 60 יום. לאחר 60 יום, הכתובת הארגונית תשתחרר באופן בלעדי עבור ה-MAID שמנוהל על ידי הארגון.

Tahoe UI Reference: Tahoe UI Reference

Tahoe UI Reference: Tahoe UI Reference

Tahoe UI Reference: Tahoe UI Reference