partitioning attacks: or how to rapidly clone some gsm cards גלעד בן - אור 2007...
Post on 21-Dec-2015
222 views
TRANSCRIPT
מהו כרטיס חכם
שימוש בכרטיס חכם לאותנטיקציה
Partitioning attack
אמצעי הגנה
ביקורת על המאמר
סיכום
מבוא לערוצי צד תקיפות מתמטיות
הזרקת שגיאות
COMP128אלגוריתם
מהו כרטיס חכם
בתוך הכרטיס החכם
VccRSTCLK
RFU
VppI/O
GND
RFU
יחידIOקו
CLKנשלט מבחוץ
VCCנשלט מבחוץ
בתוך הכרטיס החכם
256 bytes to 4KB RAM. 8KB to 32KB ROM. 1KB to 32KB EEPROM. Crypto-coprocessors 8-bit to 16-bit CPU (8051)
עלות של פחות מדולר בייצור סדרתי
איך מדברים עם הכרטיס החכם (GSM)אפליקציות
עם כרטיס GSMאותנטיקציה חכם
כולל(2.5עבר-הווה )עד דור המפעילה רוצה לאמת שהמנוי שמדבר איתה הוא אכן המנוי
כפי שהוא הזדהה )פחד מגניבת שיחות(יש צורך בתיאום מפתחות הצפנה
3דור - UMTS המפעילה רוצה לאמת שהמנוי שמדבר איתה הוא אכן המנוי
כפי שהוא הזדהה )פחד מגניבת שיחות( המנוי רוצה לאמת שהמפעילה היא אכן המפעילה שהוא מכיר
)פחד מהכנסת מזיקים לטלפון( יש צורך בתיאום מפתחות הצפנה
GSMאימות ה
A3
Mobile Station Radio Link GSM Operator
A8
A5
A3
A8
A5
Ki Ki
Challenge RAND
KcKc
mi Encrypted Data mi
SIM
Signed response (SRES)SRESSRES
Fn Fn
Authentication: are SRES values equal?
comp128אלגוריתם
COMP128
RAND (128 bit)
Ki (128 bit)
96 bit outputSRES 32 bit and Kc 64 bit
comp128תקיפות מתמטיות – האלגוריתם ידוע – נמצא ע"י הנדסה לאחור מתייחסים אל האלגוריתם + המפתח כקופסה
שחורה מזריקיםINPUTS כרצוננו ועפ"י ה OUTPUTS
ביט(128 )מפתח של Kiמנסים לנתח מהו המפתח
comp128תקיפות מתמטיות – ניתוח והתמודדות
נמצא אלגוריתם שמחלץ את המפתחKi ע"י וקטורי כניסה )כרצוננו( 160,000הזרקת כ
:מה עשו חברות הסלולר הגבילו את כמות האימותים המותרים לכרטיס ל
אימותים32,000
אימות נעשה בכל פעם שמדליקים את הטלפון ולפחות פעם ביום שנה של אימותים – לא מהווה מגבלה50לכן, כרטיס מספיק בממוצע ל
בראי המאמרערוצי צד*
בתוך הכרטיס החכם נמצא מעבד פעולת המעבד היא דטרמיניסטית )בניגוד למערכות
מחשב עם מערכת הפעלה(ריצת המעבד מושפעת רק מהקלט שהזינו עבורוהמעבד משדר מידע ב"ערוצי צד" לא רצויים
ערוץ צד – זמן
ערוץ צד – הספק
ערוץ צד – קרינה אלקטרו מגנטית
ערוץ צד הספק
המעבד צורך את רוב ההספק בעת עליית השעון כיוון שאנו מספקים עבורו את המתח, אנו יכולים
למדוד את הזרם הנצרך ולהסיק על ההספק בין מספר דגימות הספק של אותו קטע קוד + אותו
קלט קיימת קורלציה גבוהה
VccRSTCLK
RFU
VppI/O
GND
RFU
A ספקמיוצב
כרטיס דגימה
דוגמה לערוץ צד הספק
דוגמה לבדיקתPIN ניסיונות 3למשתמש
לפני שהכרטיס ננעל 8המעבד הוא מעבד
ביטמשווה סיפרה סיפרה
PINהכנס
1בדוק סיפרה
==
4בדוק סיפרה
==
הפחת ניסיוןאפשר גישה
דוגמה לערוץ צד הספקהמשך
ניתן לזהות את חלק ההשוואהעפ"י דגימות ההספק
ניתן לזהות האם ההשוואה 10הצליחה או לא )הזרקה של
דגימות 9הספרות האפשריות. יהיו זהות(
ניתן לנתק לכרטיס את המתחלפני שיגיע לפונקציה של
הפחתת ניסיוןהשיטה נקראת
Differential Power Analysis
PINהכנס
1בדוק סיפרה
==
4בדוק סיפרה
==
הפחת ניסיוןאפשר גישה
Differential Power Analysis
השוואת )חיסור(ההתנהגות של דגימות ההספקעבור קלטים שונים
הוצגה ע"יKocher בכנס 99 בשנת CHES עורר סערה בתחום כרטיסים חכמים ואילץ את
יצרניות הכרטיסים להתגונן מפני השיטה
הזרקת שגיאות
הזרקת שגיאות תוך כדי פעולת הכרטיס כדי לגבורעל מנגנוני הרשאה או להצליח לגלות ביתר קלות
את סודות הכרטיסמה אפשר לעשות
למרות שKi אינו ניתן בקריאה, לשכנע את הכרטיס לאפשר לנו לקרוא אותו
בתים של 15לגרום לכרטיס לחשוב ש ki הם אפסים אפשרויות 256ורק בית אחד שונה מאפס. למנות על
*16
ציוד למדידת הספקים
ציוד להזרקת שגיאות
שגיאות
ת רוב המחקריםה א
מי עוש ???
Partitioning Attacks
שימוש בהנחות מימוש של האלגוריתםשימוש בערוצי צד
Level 0
Level 1
Level 2
Level 3
Level 4
128-bit Ki 128-bit RAND
8bits
8bits
7bits
6bits
5bits
4bits
טבלה9->8
Comp128
דרך המחקר
Kiקבוע וקטורי כניסה 1000נכניס Rand נמדוד את ערוץ הצד הספק עבור כל ריצה וריצה של
האלגוריתם נחפש קורלציות בין מדידות הספק שונות בחלקים
שונים של האלגוריתם לבין וקטורי הכניסה ננסה להסביר את הקורלציות במבנה האלגוריתם או
המימוש
נמצאה קורלציה
התגלית
:בשלב הראשון של האלגוריתם הוא מממשX[i] =T0[(K[i]+2*R[i]) mod 512]X[i+16] =T0[(2*K[i]+R[i]) mod 512]
זיכרון0.5KBytes
T0Address: 9 bits Data: 8 bits
ביט8איך נממש זאת במעבד
זיכרון0.25KBytes
T01 Data: 8 bits
זיכרון0.25KBytes
T00
Address[7:0]
Data: 8 bits
Data: 8 bits
Address[8]
הבחנה באמצעות דגימות ההספק
הבחנה באמצעות דגימות ההספק
דוגמה
X[i] =T0[(K[i]+2*R[i]) mod 512]X[i+16] =T0[(2*K[i]+R[i]) mod 512]
Byte1 כל הסיגנלים עם :R[0] :מתחלקים לשתי קטגוריות '155-255[, ] 0-26[קטגוריה א[ '27-154[קטגוריה ב [
Byte2 כל הסיגנלים עם :R[0] :מתחלקים לשתי קטגוריות '0-105[קטגוריה א [ '106-255[קטגוריה ב [
K+2*26<256
K+2*27>=256
K=? K=202 or 203
2*K+105<512 and 2*K+106>=512
K=203
8bits
8bits
K R
האלגוריתם:Partitioning Attack on
COMP128 מצאR[0]שמקיים
K[0] + 2R[0] (mod 512) < 256K[0] + 2(R[0]+1) (mod 512) >= 256
אפשרויות2קיימות רק מצאR’[0]שמקיים
2K[0] + R’[0] (mod 512) < 2562K[0] + R’[0] + 1 (mod 512) >= 256
אחד מהK[0]'שנמצא בשלב א' יתאים לשלב ב הבתים האחרים של המפתח יעשה 15חישוב
בצורה דומה
דרישות קלט
1000דגימות רנדומאליות
256דגימות שנבחרו מראש
8דגימות שנבחרו תוך כדי התהליך
Cardinal Principle
Relevant bits of all intermediate cycles and their values should be statistically independent of the inputs, outputs, and sensitive information
ביקורת על המאמר
נכון עבור כרטיסים חכמים ישנים ומסויימים דורש אימון כדי לזהות את דגימות ההספק )ולכן
ידוע(Kiדרוש כרטיס אימון עם אמצעי הגנה בכרטיסים חדשים
Random Delayמרעישי הספק
ביט32המעבד בכרטיסים חדשים הוא של האלגוריתם שונה לCOMP128-2, COMP128-3,
COMP128-4
אמצעי התגוננות
טבלאות הן אבן בניין חשוב ונפוץ במנגנוני צופן יש צורך להגן עליהן מפני ניתוח ערוצי וצד ותקיפות
מסוג הזרקת שגיאות קיימים אלגוריתמים שמדמים אי תלות בין הקלט
הנכנס לטבלה לבין בחירת הטבלה קיימים פתרונות חומרה שמגנים מפני ערוץ צד
בשטח 2הספקים "שערים מיוחדים". עלות כמעט פי הסיליקון.
אמצעים פשוטים יותר אך יעילים של צרכני הספק רנדומלי.delayרנדומלים ו
סיכום
שימוש בערוץ צד הספקניצול טעויות מימוש של אלגורתים אימות מודרני גישות לכרטיס 8-32 ביט ב 128חילוץ מפתח של
בזמן זניח )שניות מספר(
קל להתגונן מפני השיטה )אחרי שמגלים את חורהאבטחה(
ציוד שאינו נגיש לכלhacker דרוש ידע מתמטי .וציוד מדידה רגיש ויקר
שעורי בית נמצא Kiמה היתרון )מבחינת אבטחת מידע( שהמפתח 1(
ולא במכשיר הסלולארי?SIMבכרטיס ה
. 0xa8 (K[0]=0xa8)ערך הבית אפס של המפתח הוא 2( partitioningהדגם כיצד היית מגלה ערך זה בעזרת
attack?
אפיין )דיאגראמת בלוקים( מערכת למדידת ערוץ צד 3(הספק להזרקת שגיאות.
משולב במחולל הספק אקראי random delayמדוע 4(מהווה פיתרון מסדר ראשון לבעיה?