chrome.platformKeys

תאריך הרענון: 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

ספירה

‫"rsaSign"

‎"ecdsaSign"‎

Match

מאפיינים

  • אישור

    ArrayBuffer

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

  • keyAlgorithm

    אובייקט

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

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.

  • פרמטרים

    אובייקט

    קובע פרמטרים של אלגוריתם חתימה/גיבוב בנוסף לפרמטרים שנקבעו על ידי המפתח עצמו. הפרמטרים שמתקבלים זהים לאלה של הפונקציה 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, אבל לא תבצע גיבוב של הנתונים שצוינו.

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

  • callback

    פונקציה

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

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

    • publicKey

      אובייקט

    • privateKey

      אובייקט אופציונלי

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

getKeyPairBySpki()

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

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

פרמטרים

  • publicKeySpkiDer

    ArrayBuffer

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

  • פרמטרים

    אובייקט

    מספק פרמטרים של אלגוריתם חתימה וגיבוב, בנוסף לאלה שנקבעו על ידי המפתח עצמו. הפרמטרים שמתקבלים זהים לאלה של הפונקציה 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

      אובייקט אופציונלי

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

selectClientCertificates()

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

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

פרמטרים

  • פרטים
  • callback

    פונקציה אופציונלית

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

    (matches: Match[]) => void

    • תואם את:

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

החזרות

  • Promise<Match[]>

    ‫Chrome 121 ואילך

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.

subtleCrypto()

chrome.platformKeys.subtleCrypto(): object | undefined

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

החזרות

  • אובייקט | לא מוגדר

verifyTLSServerCertificate()

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

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

פרמטרים

החזרות

  • ‫Chrome 121 ואילך

    התמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.