Globally Unique Identifier
במחשבים Universal Unique Identifier (מזהה ייחודי אוניברסלי) או Globally Unique Identifier (מזהה ייחודי גלובלי), ובקיצור UUID או GUID הוא מספר פסאודו אקראי המשמש לזיהוי ייחודי של אובייקט בכל הקשר בו הוא עשוי להופיע[1]. קיימים מזהים כאלה כך שאף על פי שייתכן שמזהה מסוים יוגרל פעמיים הסבירות לכך נמוכה מאד. הסבירות ששני מזהים זהים שהוגרלו יופיעו באותו הקשר קטנה אף יותר.
המונח UUID נטבע על ידי קבוצת Open Software foundation[2]. המונח GUID הומצא לראשונה על ידי חברת מיקרוסופט לשימוש בשיטה במערכות חלונות. כיום, השימוש בשני המונחים הוא כמילים נרדפות למרות שהשם GUID נפוץ יותר. האלגוריתמים מוגדרים בתקן ISO/IEC 11578:1996 ובתקן ISO/IEC 9834-8:2005
מבנה
GUID הוא מספר באורך 16 בתים (128 סיביות). נהוג לכתוב את המזהה בבסיס הקסדצימלי מוקף בסוגריים מסולסלים (לדוגמה:
{3F2504E0-4F89-11D3-9A0C-0305E82C3301})[3] המזהה מורכב ממספר הגרסה שלו, מהזמן בו נוצר ומזהה ייחודי כלשהו.
- גרסה 1: בגרסתו הראשונה של האלגוריתם המזהה הייחודי היה כתובת ה-MAC של המחשב עליו נוצר. שימוש בגרסה זו מאפשר לאתר את המחשב עליו נוצר ה-GUID. משיקולים של שמירת הפרטיות נזנח השימוש בגרסה זו לטובת גרסאות חדשות יותר.
- גרסה 2: בגרסה זו מחושב המזהה הייחודי באמצעות שימוש בכתובת ה-MAC ומזהה הקשור לדומיין אליו משתייך המחשב.
- גרסה 3: בגרסה זו מחושב ה-GUID באמצעות שימוש בפונקציית הגיבוב MD5 על מזהה ייחודי כלשהו של המחשב (למשל: URI, FQDN, OID).
- גרסה 4: בגרסה זו מחושב המזהה הייחודי על ידי שימוש במחולל מספרים פסאודו-אקראים כלשהו.
- גרסה 5: אופן השימוש בגרסה 5 זהה לאופן השימוש בגרסה 3 פרט לשימוש בפונקציה SHA1 במקום הפונקציה MD5.
שימושים
כיוון שמספר המזהים האפשריים הוא עצום ניתן לזהות באופן ייחודי אובייקטים דומים אך לא זהים באמצעות GUID[4]. כך למשל, גרסאות שונות של אובייקטי COM יכולות לקבל שם זהה אך יבדלו ביניהן באמצעות ה-GUID שלהן[5][6][7]. GUID יכול גם לשמש כמפתח בבסיסי נתונים או בטבלאות גיבוב ללא צורך בפתרון התנגשויות. קבצים של מערכת ההפעלה חלונות (כגון קובצי Word ,Excel וקובצי ASF) מזוהים על ידי GUID.
בטיחות
כיוון שבעת חישוב ה-GUID מוגרלות 122 סיביות מתוך 128 הסיביות באופן פסאודו-אקראי הסיכוי ליצירת שני מזהים זהים הוא . כדי להעריך גודל זה ניתן להשתמש בחישוב מפרדוקס יום ההולדת הקובע כי הסיכוי להתנגשות לאחר יצירה של n מזהים הוא: . אם נחשב את ההסתברות להתנגשות לאחר יצירת מזהים (מספר הכוכבים ביקום המוכר מוערך ב ) נקבל כי ההסתברות היא כ .
על אף שהסיכוי להגריל באופן אקראי את אותו מזהה נמוכה מאד, אין הדבר מגן על המערכת מפני האקר המנסה לנחש את המספר הבא. למעשה בהינתן סדרה של מספרים ואת נוסחת החישוב בה משתמשים, קל לנחש מה יהיה המזהה הבא שיתקבל. משום כך, אין להשתמש ב-GUID בישומים קריפטוגרפיים.
מחוללי מזהים ברשת
- Online random GUID מחולל מזהים באתר randomguid.com
- תוסף לiGoogle המאפשר לחולל מזהים ייחודיים
- Online מחולל מזהים באתר GuidGen.com
לקריאה נוספת
- The Quick Guide to GUIDs Better explained website.
קישורים חיצוניים
- A Universally Unique IDentifier (UUID) URN Namespace (IETF RFC 4122)
- International Standard "Generation and registration of Universally Unique Identifiers (UUIDs) and their use as ASN.1 Object Identifier components" (ITU-T Rec. X.667 | ISO/IEC 9834-8, freely available)
- Syntax and semantics of the DCE variant of Universal Unique Identifiers (UUIDs)
הערות שוליים
- ^ Globally Unique Identifiers (GUIDs) באתר מיקרוסופט
- ^ Universal Unique Identifier באתר The Open Group
- ^ מבנה GUID באתר MSDN
- ^ ייחודיות מזהים באתר מיקרוסופט
- ^ תיאור של שיטת המספור עבור מזהים ייחודיים כלליים (GUID) של קוד המוצר ב-Office 2003
- ^ Description of the numbering scheme for the product code GUIDs in Office 2000
- ^ Description of the numbering scheme for product code GUIDs for Office XP programs