סילאַבס 21Q2 זיכער BLE מיטל זיכערהייט לאַב
BLE זיכערהייט לאַב מאַנואַל
אין דעם לאַב, איר וועט זען ווי צו פּלאַן אַ מער זיכער BLE מיטל. מיר וועלן אָנהייבן מיט אַן איבערview פון ווי צו נוצן עטלעכע פון די אָנלייגן פֿעיִקייטן און מאַך אויף צו עטלעכע גענעראַל עצה וועגן טעקניקס פֿאַר מער זיכער קאַנעקשאַנז און לעסאָף מיר וועלן זען ווי צו נוצן מיטל סערטיפיקאַץ איבער BLE צו ידענטיפיצירן אַ פּעריפעראַל ווי עכט.
געטינג סטאַרטעד
די בלועטאָאָטה סampדי אַפּלאַקיישאַן איר וועט בויען אויף איז בדעה צו זיין געוויינט מיט אַ באָאָטלאָאַדער. אויב איר אַרבעט מיט אַ שפּאָגל נייַ EFR32MG21B, עס וועט נישט האָבן אַ באָאָטלאָאַדער. איר קענען געפֿינען אַ פאַר-געבויט באָאָטלאָאַדער אין די פּלאַטפאָרמע \ באָאָטלאָאַדער \ sample-apps\bootloader-storage-internalsingle\efr32mg21a010f1024im32-brd4181a טעקע פון דיין SDK.
- אָנהייבן מיט אַ סאָק-ליידיק סampדי אַפּ. דעם סample אַפּ איז געניצט ווי אַ מוסטער און מאכט אַ גוט סטאַרטינג פונט פֿאַר קיין BLE אַפּלאַקיישאַן.
- עפֿענען די סיליקאָן לאַבס פּראָיעקט וויזערד פֿון די סימפּליסיטי סטודיאָ File מעניו -> נייַ.
- אויסקלייַבן די BRD4181C און גיט די 'ווייַטער' קנעפּל.
- דריקט דעם 'בלועטאָאָטה (9)' טשעקקבאָקס אונטער טעכנאָלאָגיע טיפּ.
- הויכפּונקט 'בלועטאָאָטה - SoC Empty' און גיט ווייַטער.
- דריקט דעם 'ענדיקן' קנעפּל.
- איצט איר קענען לייגן עטלעכע קעראַקטעריסטיקס צו זען ווי פּראָטעקטעד און אַנפּראַטעקטיד קעראַקטעריסטיקס זענען באהאנדלט דיפערענטלי.
- עפֿענען די סלקפּ פון די פּרויעקט file דורך טאָפּל-קליקינג עס אין די Project Explorer פֿענצטער
- הויכפּונקט די 'סאָפטוואַרע קאָמפּאָנענץ' קוויטל און עפֿענען די GATT קאַנפיגיעריישאַן געצייַג ווי געוויזן אונטן:
און נוצן די אַרייַנפיר געצייַג געוויזן אונטן צו אַרייַנפיר די gatt_configuration.btconf file פֿון די סערווער טעקע אין די צוגעשטעלט מאַטעריאַלס.
די GATT דאַטאַבייס האט אַ מנהג דינסט, גערופֿן 'טריינינג', מיט עטלעכע דאַטן וואָס זענען פּראָטעקטעד און עטלעכע וואָס זענען נישט. דאָס אַלאַוז איר צו פאַרגלייַכן וואָס כאַפּאַנז ווען איר פּרובירן צו אַקסעס אַ פּראָטעקטעד כאַראַקטעריסטיש קעגן אַן אַנפּראַטעקטיד. דאָס איז אַ שנעל וועג צו מאַכן אַ מיטל מיט זייער יקערדיק זיכערהייט.
- מיר וועלן נוצן די סיריאַל פּאָרט צו דרוקן צו די קאַנסאָול אין סימפּליסיטי סטודיאָ צו שפּור וואָס איז געשעעניש אין די אַפּלאַקיישאַן. די יזיאַסט וועג צו געפֿינען די קאַמפּאָונאַנץ איז דורך זוכן פֿאַר זיי אין די ווייכווארג קאָמפּאָנענט דיאַלאָג ווי געוויזן:
-
- ינסטאַלירן די IO Stream USART קאָמפּאָנענט
- ינסטאַלירן די IO Stream Retarget STDIO קאָמפּאָנענט
- ינסטאַלירן די נאָרמאַל י / אָ קאָמפּאָנענט
- ינסטאַלירן די קלאָץ קאָמפּאָנענט
- עפֿענען די באָרד קאָנטראָל קאָמפּאָנענט און קער אויף די 'Enable Virtual COM UART'
- רעכט גיט די אַדאַפּטער אין די "דעבוג אַדאַפּטערז" טאַפליע און סעלעקטירן "קאַטער קאַנסאָול". סעלעקטירן 'סיריאַל 1' קוויטל און שטעלן די לויפֿער אין די טעקסט פּאָזיציע פעלד פון די קאַנסאָול פֿענצטער און דריקן אַרייַן צו וועקן די קאַנסאָול.
-
- שאַפֿן אַ היגע בייַטעוודיק אין sl_bt_on_event (), געפֿונען אין app.c, פֿאַר שפּאָרן די קשר שעפּן. דער בייַטעוודיק מוזן זיין סטאַטיק זינט די פֿונקציע איז גערופן יעדער מאָל אַ געשעעניש איז אויפגעשטאנען דורך די אָנלייגן און מיר וועלן די ווערט צו זיין פּערסיסטענט. דער קשר שעפּן וועט זיין געוויינט אין אַ שפּעטער
אָפּטיילונג פון די לאַב.
- אַרייַנלייגן עטלעכע אַפּ_לאָג () סטייטמאַנץ פֿאַר געשעענישן צו זען ווען מיר זענען קאָננעקטעד, זיכערהייט מאָדעס, עטק
-
- אַרייַננעמען די app_log.h כעדער file
- sl_bt_evt_connection_opened - דרוק בונד שעפּן און ראַטעווען די קשר שעפּן. אויב די בונד שעפּן איז 0xFF, קיין בונד צווישן די פארבונדן דעוויסעס יגזיסץ. מאָדיפיצירן די יגזיסטינג געשעעניש האַנדלער אַזוי אַז עס קוקט עפּעס ווי דאָס:
- sl_bt_evt_connection_parameters - זיכערהייט מאָדע. דאָס איז געטאן אַזוי אַז איר קענען זען ווען די זיכערהייט מאָדע ענדערונגען. עס איז אַ חילוק אין די נומערינג פון זיכערהייט מאָדעס ווו זיכערהייט מאָדע 1 איז ינומערייטאַד מיט די ווערט 0, אאז"ו ו. לייג די פאלגענדע געשעעניש האַנדלער צו דיין אַפּלאַקיישאַן:
- sl_bt_evt_connection_closed_id. דער געשעעניש האַנדלער איז מאַדאַפייד צו דערהייַנטיקן די קשר שעפּן. די ווערט 0xFF איז געניצט צו אָנווייַזן אַז עס איז קיין אַקטיוו קשר. דער באַפֿעל app_log () איז געניצט צו דרוקן די סיבה פֿאַר די פֿאַרמאַכט קשר, די רשימה פון סטאַטוס קאָודז איז דאָ. מאָדיפיצירן די יגזיסטינג געשעעניש האַנדלער אַזוי אַז עס קוקט עפּעס ווי דאָס:
- אַרייַננעמען די app_log.h כעדער file
-
- בויען און בליץ די פּרויעקט. אין דעם פונט, מיר וועלן לויפן די sampדי אַפּ צו זען ווי עס ביכייווז אָן ענדערונגען, אַחוץ די GATT דאַטאַבייס.
- פאַרבינדן מיט די EFRConnect רירעוודיק אַפּ ווי גייט:
-
- צאַפּן אויף די ייקאַן 'בלועטאָאָטה בראַוזער'.
- צאַפּן אויף די 'קאָננעקט' בילדל אויף די מיטל געהייסן 'טריינינג'.
-
- לייענען די אַנפּראַטעקטיד קעראַקטעריסטיקס ווי גייט:
-
- צאַפּן אויף די לינק "מער אינפֿאָרמאַציע" אונטער די אומבאַקאַנט דינסט מיט UUID a815944e-da1e-9d2a- 02e2-a8d15e2430a0.
- לייענען די אַנפּראַטעקטיד כאַראַקטעריסטיש, UUID f9e91a44-ca91-4aba-1c33-fd43ca270b4c דורך טאַפּינג די 'לייענען' בילדל. קיין סאַפּרייזיז דאָ. זינט די כאַראַקטעריסטיש איז נישט פּראָטעקטעד אין קיין וועג, עס וועט זיין געשיקט אין קלאָר טעקסט.
-
- איצט לייענען די פּראָטעקטעד כאַראַקטעריסטיש, UUID d4261dbb-dcd0-daab-ec95-deec088d532b. דיין רירעוודיק טעלעפאָן זאָל בעטן איר צו פאַרבינדן און פאַרבינדן, דער אָנזאָג קען בייַטן דיפּענדינג אויף דיין רירעוודיק אַס. נאָך איר אָננעמען די בקשה צו פּאָר, איר זאָל אַ אָנזאָג אויף די קאַנסאָול ווי גייט:
באַמערקונג: אַפּפּענדיקס א אין די סוף פון דעם מאַנואַל האט אַ קיצער פון י / אָ קייפּאַבילאַטיז און פּערינג מעטהאָדס פֿאַר דערמאָנען. אַפּפּענדיקס ב סאַמערייזיז די בלועטאָאָטה זיכערהייט מאָדעס.
זיכערהייט מאַנאַגער קאַנפיגיעריישאַן
דער זיכערהייט פאַרוואַלטער איז טייל פון די בלועטאָאָטה אָנלייגן וואָס דיטערמאַנז וואָס זיכערהייט פֿעיִקייטן זענען געניצט. די פֿעיִקייטן אַרייַננעמען מענטש-אין-דעם-מיטם (MITM) שוץ, LE Secure קאַנעקשאַנז (aka ECDH), ריקוויירינג באַשטעטיקונג פֿאַר באַנדינג, אאז"ו ו. /באַנדינג (זען אַפּפּענדיקס א פֿאַר אַ קיצער). אין דעם אָפּטיילונג איר וועט זען אַ פּשוט סעטאַפּ.
- סעטאַפּ SM מיט די געבעטן קאַנפיגיעריישאַן. די ייַזנוואַרג פֿאַר דעם לאַב מאכט עס גרינג צו ווייַזן אַ פּאַסקיי אויף די קאַנסאָול. פּאַססקיי פּאָזיציע איז אַ פאָדערונג צו געבן MITM שוץ. לייג די פאלגענדע קאָד צו דיין SL_bt_system_boot_id געשעעניש האַנדלער. דאָס ינייבאַלז מענטש-אין-דעם-מיטן און ינפאָרמז די ווייַט מיטל אַז מיר האָבן די פיייקייט צו ווייַזן אַ פּאַסקיי, אָבער דאָס איז אַלע.
- צו ווייַזן די פּאַסקיי אויף די קאַנסאָול, אַ געשעעניש האַנדלער איז פארלאנגט ווי געוויזן אונטן:
- שטעלן די באַנדינג מאָדע, מאַקסימום נומער פון באַנדינגז, אאז"ו ו. ניצן די פאלגענדע קאָד צו אָנהייבן:
די סעטטינגס קענען זיין גענוצט צו באַגרענעצן די פיייקייט פון אַ אַטאַקער צו פאַרבינדן דיין מיטל. אויב דיין פּראָדוקט נאָר דאַרף צו האָבן איין באַניצער, איר קען באַגרענעצן די מאַקסימום קייטן צו 1. א גוט אָרט צו לייגן די קאַללס איז אין די סל_בט_סיסטעם_באָאָט_יד געשעעניש האַנדלער. מיר וועלן נישט געבן בונדינג אין דער צייט צו מאַכן די רעשט פון די לאַב סלימער, אָבער מיר שטעלן אַ בונד פּאָליטיק צו לאָזן בלויז איין בונד. פֿאַר רעפֿערענץ, די דאַקיומענטיישאַן פֿאַר די אַפּיס זענען געפֿונען דאָ און דאָ.
- לייג געשעעניש האַנדלערס פֿאַר sl_bt_evt_sm_bonded_id און sl_bt_evt_sm_bonding_failed_id. דער הויפּט נוצן פֿאַר די געשעענישן איז דערווייַל ינפאָרמאַטיוו, אָבער שפּעטער אין די לאַבאָראַטאָריע איר וועט לייגן פאַנגקשאַנאַליטי.
- בויען און בליץ צו די ציל ברעט. פאַרבינדן מיט EFRConnect און לייענען די פּראָטעקטעד קוואַליטעט ווי פריער. דאָס מאָל איר וועט זען אַ פּאַסקיי געוויזן אויף די קאַנסאָול. אַרייַן דעם פּאַראָל אויף דיין רירעוודיק טעלעפאָן ווען פּראַמפּטיד.
- פּרוּווט אויס בונדינג באַשטעטיקונג. דעם שטריך גיט דער באַניצער די פיייקייט צו דאַרפן אַז די בונדינג ריקוועס זאָל זיין באשטעטיקט. טאן אַזוי גיט די אַפּלאַקיישאַן קאָנטראָל איבער וואָס ייַנקוקנ דעוויסעס עס קייטן מיט. איין מעגלעכקייט איז צו דאַרפן דער באַניצער צו דריקן אַ קנעפּל איידער ער לאָזן די בונד.
- עפֿענען די בלועטאָאָטה סעטטינגס אין דיין רירעוודיק טעלעפאָן און באַזייַטיקן די בונד צו די EFR32 מיטל. מאָביל טעלעפאָן ימפּלאַמאַנץ בייַטן אַזוי דעם שריט קען נישט זיין נייטיק. אויב איר טאָן ניט זען די 'טריינינג' מיטל אין דיין בלועטאָאָטה סעטטינגס, נאָר גיינ ווייַטער צו דער ווייַטער שריט.
- אין ווייכווארג קאַמפּאָונאַנץ, ינסטאַלירן איין בייַשפּיל פון די פּשוט קנעפּל האַנדלער.
- אַרייַננעמען די כעדער file sl_simple_button_instances.h אין אַפּ.ק
- לייג אַ האַנדלער פֿאַר די sl_bt_evt_sm_bonding_confirm_id געשעעניש. די הויפּט אַרבעט פון דעם געשעעניש האַנדלער איז צו מיטטיילן דעם באַניצער אַז אַ ווייַט מיטל איז ריקוועסטינג אַ נייַע בונד.
- לייג אַ קאַללבאַקק פונקציע פֿאַר די פּשוט קנעפּל האַנדלער צו שיקן אַ סיגנאַל צו די בלועטאָאָטה אָנלייגן וואָס ינדיקייץ אַז אַ קנעפּל איז געדריקט. דאָס אָווועררייד די פעליקייַט קאַללבאַק וואָס פשוט קערט.
- לייג אַ פונדרויסנדיק סיגנאַל געשעעניש האַנדלער. דעם געשעעניש איז אויפגעשטאנען אין ענטפער צו באַקומען אַ סיגנאַל, אַזאַ ווי אין די פריערדיקע שריט. די פונדרויסנדיק סיגנאַל געשעעניש וועט זיין געניצט צו באַשטעטיקן באַנדינג.
- טוישן די רופן צו sl_bt_sm_configure צו דאַרפן באַשטעטיקונג פון באַנדינג אַזאַ ווי
- ריבילד און בליץ.
- פאַרבינדן מיט EFRConnect און לייענען די פּראָטעקטעד קוואַליטעט ווי פריער. איצט איר וועט זען אַ אָנזאָג אויף די קאַנסאָול ווי גייט:
דרוק PB0 צו באַשטעטיקן די באַנדינג. איצט די קאַנסאָול וועט ווייַזן די פּאַסקיי צו זיין אריין אויף די רירעוודיק טעלעפאָן פֿאַר באַנדינג. אַרייַן די פּאַראָל צו פאַרענדיקן דעם באַנדינג פּראָצעס.
טיפּ: ניצן די פעליקייַט פאַל אין די געשעעניש האַנדלער צו דרוקן אַ אָנזאָג ווען דער אָנלייגן סענדז אַ געשעעניש וואָס איז נישט כאַנדאַלד. דער אָנלייגן קען זיין טריינג צו זאָגן איר עפּעס וויכטיק.
ווייַטער פון די באַסיקס
אין דעם פונט, איר האָט גענומען אַדוואַנtagפון די זיכערהייט פֿעיִקייטן וואָס אונדזער אָנלייגן האט צו פאָרשלאָגן. איצט לאָזן אונדז פֿאַרבעסערן די ימפּלאַמענטיישאַן דורך קלוג נוצן פון די פֿעיִקייטן וואָס מיר האָבן. די פאלגענדע סטעפּס זענען אַפּשאַנאַל און פרייַ פון יעדער אנדערער, איר קענען בויען און בליץ נאָך יעדער צו זען די נאַטור אָדער פּרובירן זיי אַלע צוזאַמען.
- דיסקאַנעקט אויף ניט אַנדערש בונד פרווון. דאָס איז אַ גוט אָרט צו דעטעקט טרעץ. אויב די ווייַט מיטל טוט נישט שטיצן ענקריפּשאַן / אָטענטאַקיישאַן אָדער נאָר טאָן ניט האָבן די ריכטיק שליסלען, עס קען זיין אַ העקער. אַזוי, לאָזן ס ברעכן די קשר. פּרוּווט צו לייגן אַ רוף צו sl_bt_connection_close () אין די sl_bt_sm_bonding_failed_id געשעעניש. די API איז דאַקיומענטאַד דאָ.
איר קענען פּרובירן דעם שטריך דורך אַרייַן די אומרעכט פּאַסקיי.
- בלויז אַלאַוינג באַנדינג אין זיכער צייט. דאָס לימאַץ די צייט וואָס אַ אַטאַקער האט צו מאַכן אַ בונד און מאכט עס מעגלעך צו נוצן די שטריך 'בלויז לאָזן בונדעד קאַנעקשאַנז'. דער דיזיינער קענען קלייַבן ווי צו געבן אָדער דיסייבאַל באָנדאַבלע מאָדע. פֿאַר דעמאַנסטריישאַן צוועקן דאָ, מיר געבן אַ 'סעטאַפּ מאָדע' מיט PB1 און נוצן אַ טייַמער צו דיסייבאַל עס נאָך 30 סעקונדעס.
- ינסטאַלירן אַ צווייט בייַשפּיל פון די פּשוט קנעפּל צובינד. דאָס וועט געבן די נוצן פון PB1.
- מאָדיפיצירן די קאַללבאַקק צו שיקן אַ אַנדערש סיגנאַל צו די אָנלייגן צו געבן / דיסייבאַל באַנדינג. דער רעזולטאַט זאָל קוקן עפּעס ווי דאָס:
- מאָדיפיצירן די פונדרויסנדיק סיגנאַל געשעעניש האַנדלער אַזוי אַז עס כאַנדאַלז דעם נייַ סיגנאַל. דער רעזולטאַט זאָל ווי דאָס:
- לייג אַ געשעעניש האַנדלער פֿאַר די sl_bt_evt_system_soft_timer_id געשעעניש. דעם וועט זיין געניצט צו דיסייבאַל סעטאַפּ מאָדע.
- די פאלגענדע קאָד קענען ווערן גענוצט צו געבן באָנדאַבלע מאָדע און לאָזן אַלע קאַנעקשאַנז אָדער צו דיסייבאַל באָנדאַבלע מאָדע און בלויז לאָזן קאַנעקשאַנז פֿון באַנדיד דעוויסעס:
- לייג די פאלגענדע רופן אין די סל_בט_סיסטעם_באָאָט_יד געשעעניש האַנדלער
- בויען די פּרויעקט און בליץ עס צו די מיטל.
- פּרוּווט קאַנעקטינג צו די מיטל מיט EFRConnect. דער קשר זאָל פאַרלאָזן.
- איצט פּרוּווט דריקן PB1 איידער קאַנעקטינג מיט EFRConnect. דאָס מאָל די קשר וועט זיין געראָטן. נאָך 30 סעקונדעס איר וועט זען אַ אָנזאָג אויף די קאַנסאָול וואָס ינדיקייץ אַז די מיטל איז אַרויסגאַנג די סעטאַפּ מאָדע. דעם מיטל אַז באָנדאַבלע מאָדע איז איצט פאַרקריפּלט.
- פאַרגרעסערן זיכערהייט אויף פאָרמירונג אַ קשר. זינט זיכערהייט איז אַפּשאַנאַל, מיר זאָל בעטן אַן ינקריפּטיד פֿאַרבינדונג ווי באַלד ווי מעגלעך אלא ווי פאַרלאָזנ אויף GATT קעראַקטעריסטיקס. די API איז דאַקיומענטאַד דאָ. א גוט אָרט צו רופן דעם אַפּי איז אין די סל_בט_עווט_קאָננעקשאַן_אָפּענעד_יד געשעעניש. די קשר שעפּן איז בנימצא אין די קשר בייַטעוודיק.
זיכער אידענטיטעט
איצט אַז מיר האָבן אַ מער זיכער בלועטאָאָטה מיטל, מיר קענען פֿאַרבעסערן די אָטענטאַקיישאַן שריט. איר האָט שוין געזען ווי צו באַשטעטיקן די זיכער אידענטיטעט פון וואָלט דעוויסעס מיט די באַפֿעל שורה אין פריערדיקן טריינינג לאַבז. אין דעם אָפּטיילונג, מיר וועלן זען ווי איין BLE מיטל קענען באַשטעטיקן די אידענטיטעט פון אן אנדער BLE מיטל דורך ריקוועסטינג זייַן באַווייַזן קייט און שיקן אַ אַרויסרופן. כל זיכער וואָלט פּאַרץ האָבן זייער אייגן מיטל באַווייַזן און פּעקל באַווייַזן. די פאַבריק און וואָרצל סערטיפיקאַץ זענען שווער קאָדעד אין די קליענט אַפּלאַקיישאַן צו געבן וועראַפאַקיישאַן פון די גאנצע באַווייַזן קייט. אָפּשיקן צו AN1268 פֿאַר מער דעטאַילס וועגן זיכער אידענטיטעט.
- דעפינירן אַ גלאבאלע באַפער פֿאַר סטאָרינג די כסימע פון די מיטל אַטטעסטיישאַן ווי אונטן:
- שטעלן די זיכערהייט פאַרוואַלטער קאַנפיגיעריישאַן צו נוצן JustWorks פּערינג. דעם איז געטאן אַזוי אַז די קשר איז ינקריפּטיד. אין פיר, MITM שוץ זאָל זיין געוויינט, אָבער צו האַלטן די לאַב פּשוט, מיר וועלן נוצן JustWorks. טוישן די רופן צו sl_bt_sm_configure צוריק צו די פאלגענדע:
אויך, באַמערקונג די רופן צו setup_mode (true) אין די system_boot געשעעניש האַנדלער.
- עפֿענען helpers.c פֿון די צוגעשטעלט מאַטעריאַלס און נאָכמאַכן די אינהאַלט אין app.c. די קאַללבאַק פאַנגקשאַנז דורכפירן טאַסקס אַזאַ ווי סעגמענטינג די סערטיפיקאַץ אַזוי אַז זיי קענען זיין געשיקט איבער BLE, וועראַפייינג די באַווייַזן קייט און דזשענערייטינג / וועראַפייינג די אַרויסרופן.
- עס איז נייטיק צו באַשטימען די מאַקסימום אַריבערפירן אַפּאַראַט (MTU) גרייס אַזוי אַז סערטיפיקאַץ קענען זיין סעגמענטעד און ריאַסעמבאַלד. דעפינירן אַ גלאבאלע בייַטעוודיק צו ראַטעווען די MTU ווי געוויזן דאָ:
דערנאָך לייגן אַ געשעעניש האַנדלער פֿאַר די GATT MTU עקסטשאַנגעד געשעעניש ווי געוויזן אונטן:
- עס זענען דריי באַניצער דאַטן קעראַקטעריסטיקס וואָס קענען זיין לייענען. די קעראַקטעריסטיקס זענען געניצט צו יבערגעבן די מיטל באַווייַזן, פּעקל באַווייַזן און די אַרויסרופן. א קאַללבאַקק פֿונקציע איז געניצט צו שעפּן די באַניצער לייענען ריקוועס. לייג אַ האַנדלער צו רופן דעם פֿונקציע ווי געוויזן אונטן:
די קאַללבאַקק ניצט די MTU פֿון שריט #2 צו אָפּשניט און שיקן די סערטיפיקאַץ ווי דארף. עס אויך כאַנדאַלז שיקט די געחתמעט אַרויסרופן.
- דער קליענט סענדז אַ אַרויסרופן, אַ טראַפ נומער צו זיין געחתמעט דורך די סערווער, דורך שרייבן איינער פון די GATT קעראַקטעריסטיקס. פֿאַר דעם סיבה, די אַפּלאַקיישאַן דאַרף האָבן אַ האַנדלער פֿאַר די באַניצער שרייַבן בעטן געשעעניש ווי אונטן:
- לייג זיכער אידענטיטעט שטיצן fileצו די פּרויעקט:
- app_se_manager_macro.h, app_se_manager_secure_identity.c און app_se_secure_identity.h פֿון די צוגעשטעלט מאַטעריאַלס צו די פּרויעקט. די fileעס כּולל עטלעכע העלפּער פאַנגקשאַנז פֿאַר טאַסקס אַזאַ ווי באַקומען די גרייס פון דעם באַווייַזן, באַקומען די ציבור שליסל פון די מיטל און סיינינג אַ אַרויסרופן.
- אַרייַננעמען app_se_manager_secure_identity.h אין app.c.
- אַרייַנפיר די צוגעשטעלט gatt_configuration-attest.btconf פֿון די צוגעשטעלט מאַטעריאַלס. די GATT דאַטאַבייס גערופֿן זיכער אַטעסטאַטיאָן וואָס כולל פיר קעראַקטעריסטיקס וואָס וועט זיין געוויינט צו באַשטעטיקן די אידענטיטעט פון אונדזער מיטל. די אַרייַננעמען די מיטל באַווייַזן, פּעקל באַווייַזן, אַרויסרופן און ענטפער.
- דער קליענט, וואָס איז גענוצט צו סימולירן אַ מיטל אַזאַ ווי גייטוויי, איז צוגעשטעלט ווי אַ גאַנץ פּרויעקט זינט עס איז מער קאָמפּליצירט צו בויען. אין אַלגעמיין, די אָפּעראַציע פון דעם קליענט איז ווי גייט:
- סקאַנז פֿאַר דעוויסעס וואָס גאַנצע די זיכער אַטעסטאַטיאָן דינסט און קאַנעקץ צו זיי.
- דיסקאַווערז די GATT דאַטאַבייס באַדינונגס און קעראַקטעריסטיקס.
- לייענט די מיטל און פּעקל סערטיפיקאַץ און וועראַפייז די באַווייַזן קייט מיט די פאַבריק און וואָרצל באַווייַזן וואָס עס איז סטאָרד אין בליץ.
- סענדז אַ טראַפ - אַרויסרופן צו די סערווער.
- פרווון צו באַשטעטיקן דעם ענטפער צו די אַרויסרופן.
- קלאָוזיז די קשר אויב איינער וועראַפאַקיישאַן פיילז.
- בויען און בליץ די סערווער פּרויעקט צו דיין סערווער WSTK /radioboard.
- אַרייַנפיר דעם קליענט פּרויעקט פֿון דער קליענט טעקע אין די צוגעשטעלט מאַטעריאַלס. בויען און בליץ דעם קליענט פּרויעקט צו דיין קליענט WSTK / ראַדיאָבאָאַרד.
- דרוק באַשטעטיק אויף דעם קליענט WSTK און עפענען די סיריאַל קאַנסאָול. דער קליענט הייבט צו סקאַנינג פֿאַר דעוויסעס וואָס גאַנצע אונדזער זיכער אידענטיטעט דינסט און וועט פאַרבינדן ווען ער געפינט איינער.
- דער קליענט וועט ווייַזן עטלעכע אַרטיקלען צו אָנווייַזן אַז די סערווער איז געפֿונען מיט די געבעטן דינסט און סטאַטוס אַרטיקלען וועגן די וועראַפאַקיישאַן פון די באַווייַזן קייט.
- אויב די וועראַפאַקיישאַן פּאַסיז, דער קליענט וועט דזשענערייט אַ טראַפ נומער, גערופן אַ אַרויסרופן, און שיקן עס צו די סערווער. דער סערווער וועט צייכן די אַרויסרופן מיט זיין סיקיורלי געהאלטן פּריוואַט מיטל שליסל און די כסימע צוריק צו דער קליענט, דאָס איז גערופן אַ אַרויסרופן ענטפער. דער קליענט דערנאָך ניצט דעם ציבור שליסל אין די פריער באקומען מיטל באַווייַזן צו באַשטעטיקן די כסימע. דאָס איז געטאן צו באַשטעטיקן אַז דער סערווער טאַקע האט די פּריוואַט שליסל אַז עס קליימד צו האָבן. אויב די אַרויסרופן איז וועראַפייד ריכטיק, אַ אָנזאָג איז געוויזן צו דעם ווירקונג; אַנדערש, די קשר איז פארמאכט, און אַ אָנזאָג איז געוויזן וואָס דערקלערט וואָס.
- איצט שיקן אַ פאַרקריפּלט באַווייַזן צו באַשטעטיקן אַז די וועראַפאַקיישאַן טאַקע אַרבעט. איר קענען מאָדיפיצירן user_read_request_cb () צו פאַרדאָרבן אָדער די באַווייַזן דאַטן אָדער די אַרויסרופן ענטפער.
אַפּפּענדיקס א - איך / אָ קייפּאַבילאַטיז און פּערינג מעטהאָדס 
אַפּפּענדיקס ב - זיכערהייט מאָדעס און לעוועלס
זיכערהייט מאָדע 1 איז דער בלויז מאָדע געשטיצט פֿאַר בלועטאָאָטה לאָו ענערגיע אין די סיליקאָן לאַבס סטאַק. די לעוועלס זענען ווי גייט:
- מדרגה 1 קיין זיכערהייט
- לעוועל 2 אַנאָטהענטיקייטיד פּערינג מיט ענקריפּשאַן
- לעוועל 3 אָטענטאַקייטאַד פּערינג מיט ענקריפּשאַן
- לעוועל 4 אָטענטאַקייטאַד זיכער קאַנעקשאַנז מיט שטאַרק ענקריפּשאַן (ECDH שליסל וועקסל)
דאָקומענטן / רעסאָורסעס
![]() |
סילאַבס 21Q2 זיכער BLE מיטל זיכערהייט לאַב [pdfבאַניצער מאַנואַל 21Q2 זיכער BLE מיטל זיכערהייט לאַב, זיכער BLE מיטל זיכערהייט לאַב, זיכערהייט לאַב |