כשמתחילים לעבוד עם Tink בפעם הראשונה, יש כמה מושגי יסוד שכדאי להכיר לפני שמתחילים. המושגים האלה מוסברים בקטעים הבאים.
פרימיטיבים
Tink משתמש בפרימיטיבים כבלוקים קריפטוגרפיים שיוצרים אלגוריתם בסיסי, כדי שהמשתמשים יוכלו לבצע משימות קריפטוגרפיות בצורה בטוחה. פרימיטיב מגדיר את הפרטים של אלגוריתם קריפטוגרפי ואת סוג המפתח.
- במאמר בחירת פרימיטיב מופיע סקירה כללית של הפרימיטיבים הנתמכים והתרחישים לדוגמה לשימוש בהם.
מידע על תאימות זמין במאמר פרימיטיבים נתמכים לפי שפה.
מידע מפורט על הרקע מופיע במאמר בנושא עיצוב פרימיטיבי.
סוגי מפתחות
סוג מפתח מטמיע פרימיטיב ספציפי. לרוב הפרימיטיבים יש כמה סוגי מפתחות שאפשר לבחור מתוכם, בהתאם לדרישות שלכם לגבי אבטחה, זמן ריצה ושטח. לדוגמה, AES128_GCM הוא AEAD שפועל במהירות ויעיל לרוב הצרכים. מידע נוסף זמין במאמר סוגי מפתחות נתמכים לפי שפה.
סטים של מפתחות וידיות לסטים של מפתחות
Tink משתמש בקבוצות מפתחות לניהול מפתחות. קבוצת מפתחות היא בעצם קבוצה של מפתחות שמקלים על רוטציית מפתחות. מאפיינים חשובים של קבוצת מפתחות:
- לכל מפתח בערכת מפתחות יש מזהה ייחודי, שהוא ייחודי בתוך ערכת המפתחות. המזהה הזה בדרך כלל מתווסף כקידומת לכל טקסט מוצפן, חתימה או תג שנוצרו, כדי לציין באיזה מפתח נעשה שימוש (מידע נוסף על תיוג טקסטים מוצפנים ב-Tink).
- רק מפתח אחד בכל קבוצת מפתחות יכול להיות ראשי. מפתח ראשי בערכת מפתחות הוא המפתח שנמצא בשימוש באותו רגע.
- כל המפתחות בערכת מפתחות חייבים להיות יישומים של אותו פרימיטיב (למשל, AEAD), אבל יכולים להיות להם סוגי מפתחות שונים (לדוגמה, מפתח AES-GCM ומפתח XCHACHA20-POLY1305).
כל הטמעה של Tink מספקת ממשקי API ליצירה או לעריכה של קבוצות מפתחות. עם זאת, מומלץ להשתמש ב-Tinkey, כלי ה-CLI שלנו.
המשתמשים פועלים על קבוצת מקשים באמצעות ידיות של קבוצת מקשים. השימוש ב-keyset handle מצמצם את החשיפה של חומר המפתח הרגיש בפועל. היא גם מבצעת הפשטה של קבוצת מפתחות, ומאפשרת למשתמשים לקבל פרימיטיב שעוטף את קבוצת המפתחות כולה. לדוגמה, אפשר לקבל פרימיטיב AEAD של קבוצת מפתחות עם N מפתחות. הצפנה ופענוח באמצעות הפרימיטיב שהתקבל משתמשים במפתח הראשי בקבוצת המפתחות.
מידע נוסף זמין במאמר בנושא עיצוב של קבוצת מפתחות.