Secure HTTP

משאן ומתן

כדי להציע גמישות בהגדלות ההצפנתיות, משא ומתן בין לקוח ושרת על אילו הגדלות כל אחד מוכן להשתמש, לא מוכן להשתמש, או יצטרך להשתמש. גושי משא ומתן מכילים ארבעה חלקים: פרופרטי (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 (יחיד), במצבים רבים, בא לידי שימוש כמקודד העיקרי.

© כל הזכויות שמורות. מערכת המידע האקדמית איתן 2003