chrome.platformKeys

refresh date: 2026-09-25 robots: noindex

תיאור

משתמשים ב-API של chrome.platformKeys כדי לגשת לאישורי לקוח שמנוהלים על ידי הפלטפורמה. אם המשתמש או המדיניות מעניקים את ההרשאה, תוסף יכול להשתמש באישור כזה בפרוטוקול האימות המותאם אישית שלו. לדוגמה, המדיניות הזו מאפשרת שימוש באישורים שמנוהלים על ידי הפלטפורמה ברשתות VPN של צד שלישי (ראו chrome.vpnProvider).

הרשאות

platformKeys

זמינות

Chrome 45 ואילך ChromeOS בלבד

סוגים

ClientCertificateRequest

מאפיינים

  • certificateAuthorities

    ArrayBuffer[]‎

    רשימה של שמות ייחודיים של רשויות אישורים שהשרת מאפשר. כל רשומה חייבת להיות DistinguishedName מסוג X.509 בקידוד DER.

  • certificateTypes

    השדה הזה הוא רשימה של סוגי האישורים המבוקשים, ממוינים לפי העדפת השרת. המערכת תאחזר רק אישורים מהסוגים שכלולים ברשימה הזו. עם זאת, אם certificateTypes היא הרשימה הריקה, יוחזרו אישורים מכל סוג.

ClientCertificateType

טיפוסים בני מנייה (enum)

"rsaSign"

"ecdsaSign"

Match

מאפיינים

  • אישור

    ArrayBuffer

    קידוד DER של אישור X.509.

  • keyAlgorithm

    אובייקט

    ה-KeyAlgorithm של המפתח המאומת. הוא מכיל פרמטרים של אלגוריתם שקשורים למפתח של האישור (למשל, אורך המפתח). פרמטרים אחרים, כמו פונקציית הגיבוב (hash) שמשמשת את פונקציית החתימה, לא נכללים.

SelectDetails

מאפיינים

  • clientCerts

    ‫ArrayBuffer[] אופציונלי

    אם הוא מוגדר, selectClientCertificates פועל ברשימה הזו. אחרת, מתקבלת רשימה של כל האישורים ממאגרי האישורים של הפלטפורמה שזמינים לתוספים האלה. רשומות שלתוסף אין הרשאה לגשת אליהן או שלא תואמות לבקשה יוסרו.

  • אינטראקטיבי

    בוליאני

    אם הערך הוא True, הרשימה המסוננת מוצגת למשתמש כדי שיבחר אישור באופן ידני, וכך יעניק לתוסף גישה לאישורים ולמפתחות. יוחזרו רק האישורים שנבחרו. אם הערך הוא False, הרשימה מצטמצמת לכל האישורים שהתוסף קיבל גישה אליהם (באופן אוטומטי או ידני).

  • יוחזרו רק אישורים שתואמים לבקשה הזו.

VerificationDetails

מאפיינים

  • hostname

    מחרוזת

    שם המארח של השרת שצריך לאמת את האישור שלו, למשל השרת שהציג את serverCertificateChain.

  • serverCertificateChain

    ArrayBuffer[]‎

    כל רשומה בשרשרת חייבת להיות קידוד DER של אישור X.509, הרשומה הראשונה חייבת להיות אישור השרת וכל רשומה חייבת לאשר את הרשומה שלפניה.

VerificationResult

מאפיינים

  • debug_errors

    string[]‎

    אם אימות האמון נכשל, המערך הזה מכיל את השגיאות שדווחו על ידי שכבת הרשת הבסיסית. אחרת, המערך הזה ריק.

    הערה: הרשימה הזו מיועדת לניפוי באגים בלבד, ויכול להיות שהיא לא מכילה את כל השגיאות הרלוונטיות. יכול להיות שהשגיאות שיוחזרו ישתנו בגרסאות עתידיות של ה-API הזה, ואין הבטחה שהן יהיו תואמות לדורות קודמים או לדורות הבאים.

  • מהימן

    בוליאני

    תוצאת אימות האמינות: true אם אפשר לאמת את האמינות של פרטי האימות שצוינו, ו-false אם האמינות נדחתה מסיבה כלשהי.

Methods

getKeyPair()

chrome.platformKeys.getKeyPair(
  certificate: ArrayBuffer,
  parameters: object,
  callback: function,
)
: void

מעביר את זוג המפתחות של certificate לשימוש עם platformKeys.subtleCrypto אל callback.

פרמטרים

  • אישור

    ArrayBuffer

    האישור של Match שהוחזר על ידי selectClientCertificates.

  • פרמטרים

    אובייקט

    קובעת את הפרמטרים של אלגוריתם החתימה/הגיבוב (hash) בנוסף לפרמטרים שנקבעו על ידי המפתח עצמו. מתקבלים אותם פרמטרים כמו בפונקציה importKey של WebCrypto, למשל RsaHashedImportParams למפתח RSASSA-PKCS1-v1_5 ו-EcKeyImportParams למפתח EC. בנוסף, במפתחות RSASSA-PKCS1-v1_5, אפשר לציין את הפרמטר של שם אלגוריתם הגיבוב עם אחד מהערכים הבאים: "none",‏ "SHA-1",‏ "SHA-256", ‏ "SHA-384" או "SHA-512", למשל {"hash": { "name": "none" } }. לאחר מכן, פונקציית החתימה תחיל ריפוד PKCS#1 v1.5, אבל לא תבצע גיבוב (hash) של הנתונים שניתנו.

    בשלב הזה, השיטה הזו תומכת רק באלגוריתמים RSASSA-PKCS1-v1_5 ו-ECDSA.

  • callback

    פונקציה

    הפרמטר callback נראה כך:

    (publicKey: object, privateKey?: object) => void

    • publicKey

      אובייקט

    • privateKey

      object optional

      יכול להיות שהערך יהיה null אם לתוסף הזה אין גישה אליו.

getKeyPairBySpki()

‫Chrome מגרסה 85 ואילך
chrome.platformKeys.getKeyPairBySpki(
  publicKeySpkiDer: ArrayBuffer,
  parameters: object,
  callback: function,
)
: void

מעביר את זוג המפתחות שזוהה על ידי publicKeySpkiDer לשימוש עם platformKeys.subtleCrypto אל callback.

פרמטרים

  • publicKeySpkiDer

    ArrayBuffer

    ‫SubjectPublicKeyInfo בקידוד DER מסוג X.509, שמתקבל, למשל, על ידי קריאה לפונקציה exportKey של WebCrypto עם format="spki".

  • פרמטרים

    אובייקט

    מספק פרמטרים של אלגוריתם חתימה וגיבוב (hash), בנוסף לאלה שנקבעו על ידי המפתח עצמו. הפרמטרים שמתקבלים זהים לאלה של הפונקציה importKey של WebCrypto, למשל RsaHashedImportParams למפתח RSASSA-PKCS1-v1_5. למפתחות RSASSA-PKCS1-v1_5, צריך להעביר גם פרמטר "hash"‏ { "hash": { "name": string } }. הפרמטר "hash" מייצג את השם של אלגוריתם הגיבוב שבו צריך להשתמש בפעולת התקציר לפני החתימה. אפשר להעביר את הערך "none" בתור שם הגיבוב, ובמקרה כזה פונקציית החתימה תחיל ריפוד PKCS#1 v1.5 אבל לא תגבב את הנתונים שניתנו.

    נכון לעכשיו, השיטה הזו תומכת באלגוריתם ECDSA עם עקומה בעלת שם P-256 ובאלגוריתם RSASSA-PKCS1-v1_5 עם אחד מאלגוריתמי הגיבוב none,‏ SHA-1,‏ SHA-256,‏ SHA-384 ו-SHA-512.

  • callback

    פונקציה

    הפרמטר callback נראה כך:

    (publicKey: object, privateKey?: object) => void

    • publicKey

      אובייקט

    • privateKey

      object optional

      יכול להיות שהערך יהיה null אם לתוסף הזה אין גישה אליו.

selectClientCertificates()

Promise
chrome.platformKeys.selectClientCertificates(
  details: SelectDetails,
  callback?: function,
)
: Promise<Match[]>

השיטה הזו מסננת מרשימה של אישורי לקוח את האישורים שמוכרים לפלטפורמה, תואמים ל-request ולתוסף יש הרשאה לגשת לאישור ולמפתח הפרטי שלו. אם המדיניות interactive מוגדרת כ-True, תוצג למשתמש תיבת דו-שיח שבה הוא יוכל לבחור מבין האישורים התואמים ולהעניק לתוסף גישה לאישור. אישורי הלקוח שנבחרו או סוננו יועברו אל callback.

פרמטרים

  • פרטים
  • callback

    function optional

    הפרמטר callback נראה כך:

    (matches: Match[]) => void

    • תואם את:

      רשימת האישורים שתואמים לבקשה, שלתוסף יש הרשאה לגשת אליהם, ואם הערך של interactive הוא True, שהמשתמש בחר.

החזרות

  • Promise<Match[]>

    ‫Chrome מגרסה 121 ואילך

    הבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

הטמעה של SubtleCrypto של WebCrypto שמאפשרת פעולות קריפטוגרפיות במפתחות של אישורי לקוח שזמינים לתוסף הזה.

החזרות

  • object | undefined

verifyTLSServerCertificate()

Promise
chrome.platformKeys.verifyTLSServerCertificate(
  details: VerificationDetails,
  callback?: function,
)
: Promise<VerificationResult>

בודק אם אפשר לסמוך על details.serverCertificateChain עבור details.hostname בהתאם להגדרות האמינות של הפלטפורמה. הערה: ההתנהגות בפועל של אימות האמינות לא מוגדרת באופן מלא ועשויה להשתנות בעתיד. הטמעת ה-API מאמתת את תפוגת האישור, מאמתת את נתיב האישור ובודקת את המהימנות על ידי רשות אישורים (CA) מוכרת. ההטמעה אמורה לכבד את serverAuth של EKU ולתמוך בשמות חלופיים של בעלים (subject).

פרמטרים

החזרות

  • ‫Chrome מגרסה 121 ואילך

    הבטחות נתמכות רק ב-Manifest V3 ואילך, בפלטפורמות אחרות צריך להשתמש בקריאות חוזרות (callbacks).