כדי להציע גמישות בהגדלות ההצפנתיות, משא ומתן בין לקוח ושרת על אילו הגדלות כל אחד מוכן
להשתמש, לא מוכן להשתמש, או יצטרך להשתמש. גושי משא ומתן מכילים ארבעה חלקים:
פרופרטי (property), ערך (value), כיוון (direction) (תמיד עם כבוד לנושא) וחוזק (strength) (של העדיפות). אם הנציגים לא מצליחים למצוא קבוצה
משותפת של אלגוריתמים, פעולות מתאימות צריכות להינקט. להמשיך לבקש אפשרות
מסורבת נחשב לחסר השפעה ולא הולם.
דוגמא לשורת משא ומתן תהיה:
SHTTP-Key-Exchange-Algorithms: recv-required=RSA,Kerb-5
המשמעות
היא שהודעות למחשב הזה חייבות להשתמש ב-Kerberos 5 או בהצפנת RSA כדי להחליף מפתחות.
המצבים
הזמינים הם (recv||orig)-(optional||required||refused). מלות המפתח 'recv' ו-'orig' מציינות לקבל (receive) או ליצור (originate) בהתאמה. משתנה אורך מפתח הקידוד מתייחס לקידוד (אורך), או קידוד
(L1-L2), כאשר אורך המפתח
הוא אורך, או במקרה של L1-L2, הוא בין L1 ו-L2 כולל. קידוד ללא ציון אורך צריך לציין נכונות לקבל אורך מפתח מוגדר
כלשהו עבור מקודד.
Header-ים במשא ומתן יכולים להיות:
SHTTP-Privacy-Domains:
SHTTP-Certificate-Types:
SHTTP-Key-Exchange-Algorithms:
SHTTP-Signature-Algorithms:
SHTTP-Message-Digest-Algorithms:
SHTTP-Symmetric-Content-Algorithms:
SHTTP-Symmetric-Header-Algorithms:
SHTTP-Privacy-Enhancements:
Your-Key-Pattern:
:SHTTP-Privacy-Domains יכול להיות PEM, PKCS-7 או PGP.
:SHTTP-Certificate-Types יכול להיות צורה מוארכת של PKCS-6 או X.509. זה קשור מאוד ל- SHTTP-Privacy-Domain, אבל לא תלוי בו.
SHTTP-Key-Exchange-Algorithms: יכול להיות Outband, Inband, RSA או Krb-kv (עבור Kerberos-version). Outband מתייחס לכל מפתח חיצוני או מוכן מראש. עבור המצב שבו רק לשרת יש
מפתח, ושאין ציפייה שללקוח יהיה מפתח, ההודעה היא:
SHTTP-Key-Exchange-Algorithms:orig-optional=Inband,
RSA; recv-required=RSA
SHTTP-Message-Digest-Algorithms: יכול להיות 'RSA-MD2', 'RSA-MD5' או 'NIST-SHS'.
SHTTP-Symmetric-Content-Algorithms: יכול להיות כל אחד מהבאים:
DES-CBC DES in Cipher Block Chaining (CBC) mode (FIPS
81 [11])
DES-EDE-CBC 2 Key 3DES using Encrypt-Decrypt-Encrypt in CBC
mode
DES-EDE3-CBC 3 Key 3DES using Encrypt-Decrypt-Encrypt in CBC
mode
DESX-CBC RSA's DESX in CBC mode
IDEA-CFB IDEA in Cipher Feedback Mode [12]
RC2-CBC RSA's RC2 in CBC mode
RC4 RSA's RC4
CDMF-CBC IBM's CDMF (weakened key DES) [20] in CBC mode
אפשר
למצוא מידע על המקודדים הנ"ל (מלבד RC4, DESX, CDMF) ב-Schneier (1994). RC4 היה אלגוריתם סודי, עד שהוא נשלח ל-Cypherpunks, בדיון שנערך. DESX היא גירסא חזקה במקצת של
DES. CDMF הוא מקודד כדוגמת DES עם 40 ביט real keyspace.
SHTTP-Symmetric-Header-Algorithms: יכול להיות כל אחד מהבאים:
DES-ECB DES in Electronic Codebook (ECB) mode (FIPS 81
[11])
DES-EDE-ECB 2 Key 3DES using Encrypt-Decrypt-Encrypt in ECB
mode
DES-EDE3-ECB 3 Key 3DES using Encrypt-Decrypt-Encrypt in ECB
mode
DESX-ECB RSA's DESX in ECB mode
IDEA-ECB IDEA
RC2-ECB RSA's RC2 in ECB mode
CDMF-ECB IBM's CDMF in ECB mode
SHTTP-Privacy-Enhancements: יכול להיות חלק או כולם מהבאים: 'sign', 'encrypt' או 'auth'. auth נבדל מ-sign בכך ש-auth מספק גיבוב ממופתח של ההודעה ב-MAC, בעוד ש-sign מספק חתימה דיגיטלית.
Your-Key-Pattern: זו דרך לומר לצד השני, באיזה מפתחות להשתמש באפשרויות
הנידונות. ישנן הרבה אפשרויות. לרשימה מלאה אפשר לפנות ל-Rescorla
draft.
לדוגמא, כדי
לבקש שהצד השני יחתום עם מפתח מורשה ע"י פרסונת RSA CA, אפשר להשתמש במה שכתוב כאן בהמשך.
Your-Key-Pattern: DN-1485,
/OU=Persona
Certificate, O="RSA Data Security, Inc\."/
HTTP מוגן מגדיר ברירות מחדל עבור כל הערכים הללו. ברירות
המחדל יכולות להיות כלולות במשא ומתן למעלה או למטה, והן אכן נידונות: להשתמש
ב-PKCS-7 או ב-PEM כדי לקודד הודעות; להחליף מפתחות,
ולחתום על הודעות בשימוש RSA. משתמשים ב-MD5 בתור תמצית ההודעה, ו-DES (יחיד), במצבים רבים, בא לידי שימוש כמקודד העיקרי.
|