תאריך הרענון: 2026-09-25 robots: noindex
תיאור
משתמשים ב-API chrome.platformKeys כדי לגשת לאישורי לקוח שמנוהלים על ידי הפלטפורמה. אם המשתמש או המדיניות מעניקים את ההרשאה, תוסף יכול להשתמש באישור כזה בפרוטוקול האימות המותאם אישית שלו. לדוגמה, ההגדרה הזו מאפשרת שימוש באישורים שמנוהלים על ידי הפלטפורמה ברשתות VPN של צד שלישי (ראו chrome.vpnProvider).
הרשאות
platformKeysזמינות
סוגים
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.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()
chrome.platformKeys.selectClientCertificates(
details: SelectDetails,
callback?: function,
): Promise<Match[]>
השיטה הזו מסננת מתוך רשימה של אישורי לקוח את האישורים שהפלטפורמה מכירה, שתואמים ל-request ושלהם התוסף קיבל הרשאה לגשת לאישור ולמפתח הפרטי שלו. אם הערך של interactive הוא True, מוצגת למשתמש תיבת דו-שיח שבה הוא יכול לבחור מתוך אישורים תואמים ולהעניק לתוסף גישה לאישור. אישורי הלקוח שנבחרו או סוננו יועברו אל callback.
פרמטרים
החזרות
-
Promise<Match[]>
Chrome 121 ואילךהתמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.
subtleCrypto()
chrome.platformKeys.subtleCrypto(): object | undefined
הטמעה של SubtleCrypto ב-WebCrypto שמאפשרת פעולות קריפטוגרפיות על מפתחות של אישורי לקוח שזמינים לתוסף הזה.
החזרות
-
אובייקט | לא מוגדר
verifyTLSServerCertificate()
chrome.platformKeys.verifyTLSServerCertificate(
details: VerificationDetails,
callback?: function,
): Promise<VerificationResult>
בודקת אם אפשר לסמוך על details.serverCertificateChain עבור details.hostname בהתאם להגדרות האמינות של הפלטפורמה. הערה: ההתנהגות בפועל של אימות האמון לא מוגדרת באופן מלא ועשויה להשתנות בעתיד. ההטמעה של ה-API מאמתת את תאריך התפוגה של האישור, מוודאת את נתיב האישור ובודקת את המהימנות באמצעות CA מוכר. ההטמעה אמורה להתבצע בהתאם ל-EKU serverAuth ולתמוך בשמות נושאים חלופיים.
פרמטרים
-
פרטים
-
callback
פונקציה אופציונלית
הפרמטר
callbackנראה כך:(result: VerificationResult) => void
-
תוצאה
-
החזרות
-
Promise<VerificationResult>
Chrome 121 ואילךהתמיכה ב-Promises קיימת רק ב-Manifest V3 ואילך. בפלטפורמות אחרות צריך להשתמש ב-callbacks.