תיעוד 10
אישור קריפטוגרפי של אנושיות
Cloudflare פיתחה חלופה לאימות באמצעות CAPTCHA, בשם אישור קריפטוגרפי של אנושיות (CAP).
CAP מאפשר להוכיח שמדובר במבקר לגיטימי באתר על ידי נגיעה במפתח חומרה, במקום לפתור חידת CAPTCHA.
המאמר הזה עונה על שאלות נפוצות בנוגע לשימושיות ולחששות פרטיות.
אפשר גם לבדוק את CAP באתר ההדגמה.
#שאלות על פרטיות
התשובה לרוב חששות הפרטיות מסוכמת בטבלה הזו:
| מאפיין | Cloudflare יכולה | Cloudflare עושה |
|---|---|---|
| לאסוף ביומטריה (טביעות אצבע או תמונות פנים) | לא | לא רלוונטי |
| לאסוף מידע על מאמת החומרה שלך | כן, מוגבל למספר המפתחות באצווה שלך | כן, כשזה זמין |
לא, Cloudflare לא יכולה לאסוף ביומטריה. תהליך ה-CAP שלנו משתמש ב-WebAuthn API, שמונע את איסוף הביומטריה כברירת מחדל. כשהמכשיר שלך מבקש אימות ביומטרי, למשל דרך חיישן טביעת אצבע, הכול קורה באופן מקומי.
לכן אנחנו אף פעם לא רואים את הנתונים הביומטריים שלך: הם נשארים במכשיר. אחרי שהמכשיר מאשר התאמה, הוא שולח רק הודעת אישור בסיסית. בפועל, המכשיר שלך שולח הודעה שמוכיחה "כן, מישהו הזין נכון טביעת אצבע במכשיר אמין זה", ולעולם לא שולח את טביעת האצבע עצמה.
כן, Cloudflare אוספת כמות מוגבלת של נתונים על המפתח שלך. אנחנו שומרים את יצרן המפתח ואת מזהה האצווה (מינימום של 100,000 מפתחות באצווה) לצורך אימות. מנקודת המבט שלנו, המפתח שלך נראה כמו כל שאר המפתחות באצווה.
נמצא שמפתחות בחתימה עצמית ומפתחות של יצרנים מסוימים לא עומדים בדרישה הזו, וכדאי להימנע מהם אם רוצים לצמצם את סיכון הפרטיות המקוון.
לפרטים נוספים על האופן שבו הגדרנו את האישור הקריפטוגרפי של אנושיות, עיינו בפוסט הפתיחה בבלוג.
#אילו מכשירים מותרים ואילו לא?
#מכשירים מותרים
CAP תומך במגוון רחב של מאמתי חומרה:
- מאמתים ניידים (חוצי פלטפורמות):
- נתמך: כל מפתחות האבטחה שנמצאים ב-
FIDO Metadata Service 3.0, אלא אם בוטלו מסיבות אבטחה. - דוגמאות: YubiKeys, מפתחות HyperFIDO, מפתחות Thetis FIDO U2F
- נתמך: כל מפתחות האבטחה שנמצאים ב-
- מאמתי פלטפורמה:
- דוגמאות: Apple Touch ID ו-Face ID במכשירי iOS ניידים ובמחשבים ניידים עם macOS, מכשירי Android עם קוראי טביעות אצבע, Windows Hello
#מגבלות ידועות
רוב השילובים של דפדפני אינטרנט ומאמתים שתומכים ב-WebAuthn יעבדו, אבל יש כמה בעיות תאימות ידועות עם אישור WebAuthn שעלולות למנוע מ-CAP לעבוד בהצלחה:
CAPבסיסי:- macOS לשולחן עבודה: עבור TouchID, הדפדפן חייב להיות
Safari - Android: הדפדפן חייב להיות
Chrome
- macOS לשולחן עבודה: עבור TouchID, הדפדפן חייב להיות
CAPעם הוכחה באפס ידע:- מאמתי הפלטפורמה של Apple (למשל iPhone עם Touch ID/Face ID) אינם תואמים למערכת ההוכחה באפס ידע. אם זה נכשל, תועבר מיד למסלול
CAPהבסיסי בלי צורך בפעולה נוספת. מכיוון ש-Apple משתמשת ב-Apple Anonymous Attestationששומרת על פרטיות כדי להראות שהמאמת תקף ובמקביל לחסום מעקב, השיטה הזו שומרת על רמת פרטיות גבוהה.
- מאמתי הפלטפורמה של Apple (למשל iPhone עם Touch ID/Face ID) אינם תואמים למערכת ההוכחה באפס ידע. אם זה נכשל, תועבר מיד למסלול
אנחנו מעדכנים את הרשימה הזו ככל שהמערכת האקולוגית מתפתחת וככל שאנחנו ממשיכים לבדוק שילובים שונים.
#האם האקרים יכולים לעקוף את האישור הקריפטוגרפי של אנושיות?
CAP הוא אחת מני טכניקות רבות לזיהוי וחסימת בוטים. עד היום ראינו כמה ניסיונות לבדוק את מערכת האבטחה של CAP, למשל בדיקה אחת שבוצעה במחשבה ומתועדת היטב. פוסט הבלוג שדן בבדיקה מציין במפורש שהשיטה הזו לא שוברת את מודל האיומים של Cloudflare.
זה לא אומר ש-CAP שבור, אלא מראה שהוא מעלה את עלות ההתקפה ביחס למודל CAPTCHA הנוכחי.
#מה קורה אם המפתח שלי אבד?
אם אין לך את החומרה הנדרשת (למשל Yubikey), עדיין אפשר לפתור אתגר CAPTCHA רגיל (למשל בחירת תמונות).
#מהם קודי השגיאה הנפוצים ומה משמעותם?
Unsupported_att_fmt:- סיבה: המאמת שלך משתמש בפורמט אישור שאינו נתמך (שילוב של דפדפן ומפתח). זה קורה גם כשמשתמשים ב-
Firefoxובוחרים באפשרות "anonymise your key". - פתרון: אם השגיאה מתרחשת במהלך גרסת האפס ידע של
CAP, תועבר אוטומטית לזרימתCAPהבסיסית. אםCAPהבסיסי נכשל, נסה שילוב אחר של מכשיר חומרה נתמך ודפדפן, או בחר ב-CAPTCHA.
- סיבה: המאמת שלך משתמש בפורמט אישור שאינו נתמך (שילוב של דפדפן ומפתח). זה קורה גם כשמשתמשים ב-
Unsupported_issuer:- סיבה: המפתח שלך אינו נתמך כרגע.
- פתרון: השתמש במפתח נתמך.