ph n này ta s tìm hi u l p LLSEC qua các giao th c, ch ng trình trao đ i key đơi (pairwise key) ng u nhiên gi a các hàng xóm v i nhau c ng nh qui đ nh các khung tin unicast, broadcast đ đ m b o xác th c cho m ng 6LoWPAN, kh c ph c nh ng h n ch c a b o m t truy n th ng mà phù h p v i nh ng tính ch t đ c tr ng c a m ng n ng l ng th p. Trong đó ta c n tìm hi u 2 "scheme" đ c "plug-in" vào APKES ph bi n hi n nay đ chia s an tồn bí m t c a các khóa đu c load tr c trong m ng là LEAP, Fully Pairwise Keys scheme, Random scheme và Blom’s scheme.
Pluggable Schemes s d ng trong APKES
a) Localized Encryption and Authentication Protocol (LEAP)
LEAP, các nút m ng tr c h t c n ph i load tr c Km - master key và ngay sau khi hình thành pairwise key thì xóa master key này đi. Ví d nút u ch a hình thành pairwise key và v n cịn gi Km, khi đó u s t o ra m t s bí m t riêng Ku t Km là Ku = F(Km, IDu) v i F
23
là hàm gi ng u nhiên t seed Km và input là IDu. IDu chính là đ a ch duy nh t c a u trong m ng. Lúc t o Ku xong, u s broadcast HELLO v i k ch b n nh sau
u -> * : HELLO v -> u : ACK
Khi đó, hàm xóm v nh n đ c gói tin thì tr l i ACK cho u. Gói tin ACK này đ c xác th c b ng MIC đ c t o t (là khóa ng u nhiên t o t qua hàm gi ng u nhiên). Nh vào vi c trích đ c trong gói tin mà u l y đ c t ACK, u t o ra nh qua hàm gi ng u và so sánh xem có đúng v i MIC đ c đính kèm hay khơng, n u đúng thì lúc này u s t o ra pairwise key là = F( , ) và ngay sau đó xóa master key đi. Bên c nh đó
v c ng t o ra t và qua hàm gi ng u.
H n ch c a ph ng phápnày là đây v v n t o ra pairwise key m c dù ch a xác th c u nên APKES đư thêm tính n ng xác th c 2 chi u vào đ kh c ph c.
b) Blom’s Scheme
V i vi c s d ng và load tr c nhi u thông s h n LEAP nh , n, l hay các ma tr n D, G c ng nh các ràng bu c c a chúng thì vi c t o ra key t các ma tr n nh ng hi u qu mang l i khơng cao khi t n tài ngun tính tốn, flash memory c ng nh RAM t l v i các thơng s trên.
Hình 3.2 Blom’s scheme. Ngu n [4]
24
M t l c đ đ n gi n khác là l c đ các khóa theo c p đ y đ , trong đó m i nút đ c t i tr c m t khóa theo c p đ giao ti p v i b t k nút nào khác. ây là s th a hi p có kh n ng ph c h i cao h n, nh ng v n còn ba v n đ :
1. u tiên, l c đ các khóa ghép n i đ y đ có th quátiêu t n b nh cho các m ng 6LoWPAN quy mơ l n. Ví d : khi s d ng các khóa 128 bit trong m ng 32.768 nút, m i nút ph i l u tr 500KB (ả 32, 767 × 16 byte) các khóa theo c p. ây đư là m t n a t ng dung l ng b nh flash ngoài trên m t mote TelosB - m tnút đi n hình. Ngồi ra, đ h tr vi c b sung các nút m i trong th i gian ch y, m i nút c n l u tr m t khóa ghép n i đ liên l c v i m i nút ch a đ c tri n khai. Có th t i tr c ít khóa ghép n i h n n u các nút lân c n c a nút đ c bi t tr c, nh ng đi u này s làm ph c t p vi c tri n khai.
2. Th hai, có m t v n đ liên quan đ n vi c qu n lý các b đ m khung. phát hi n các khung đ c phát l i, b đ m khung g n đây nh t trên m i đ a ch ngu n c n đ c l u tr . Vi c xóa b đ m khung hình khi m t nútbi n m t là khơng th vì k t n cơng sau đó có th phát l i các khung hình c . Do đó, theo th i gian, khơng ph i t t c các b đ m khung hình đ u s phù h p v i b nh truy c p ng u nhiên gi i h n (RAM) trên các nút, mà m t s b đ m c n đ c hoán đ i sang b nh flash ngoài, đi u này tiêu t n n ng l ng.
3. Th ba, trong khi các khóa ghép n i cung c p m t gi i pháp có kh n ng ph c h i th a hi p đ đ m b o các khung hình đ n, khơng có gi i pháp nào nh v y cho các khung hình qu ng bá. Các khung phát sóng ph i đ c xác th c b ng các khóa đ c chia s gi a các nút lân c n. Do đó, m t s th a hi p nút khơng ch ti t l m t khóa qu ng bá duy nh t, mà còn c nh ng khóa c a các nút lân c n. ây là v n đ khi c g ng phát hi n các nút b xâm ph m vì khung phát sóng xác th c đ c h i có th gi v b t ngu n t m t nút không b xâm ph m.
d) Random Scheme
Nh l i r ng trong l c đ các khóa theo c p đ y đ , m i nút đ c t i tr c b ng m t khóa theo c p đ giao ti p v i b t k nút nào khác. Ng c l i, trong l c đ các khóa theo c p ng u nhiên, ch m t s c p nút có các khóa theo c p. Ví d , trong m ng 10.000 nút, m i nút
25
ch ph i l u tr 75 khóa ghép n i đ đ t đ c xác su t 0,5 đ có m t khóa ghép n i v i nút khác. Lý do t ng t nh ngh ch lý ngày sinh. H n n a, n u m i nút có ít nh t 20 hàng xóm, m ng đ c k t n i v i xác su t 0,99999. Hai nút khơng có khóa ghép n i ph i s d ng nút trung gian đ thi t l p khóa đ ng d n. Qua đó, nút trung gian khơng may h c đ c khóa đ ng d n đư thi t l p. gi m thi u v n đ này, có th s d ng nhi u bên trung gian.
Adaptable Pairwise Key Establishment Scheme (APKES)
APKES là ch ng trình hình thành pairwise key (đ c t o m t cách random) gi a 2 node hàng xóm v i nhau, đi u này giúp vi c ngoài ch u root c a nút ch trong m ng 6LoWPAN mà còn ph i bi t đ c hàng xóm c a mình "là ai?" - b n hay thù. APKES tr i qua 3 pha:
Pha 1: Optional preloading of short addresses - tùy ch n vi c load tr c đ a ch ng n Nh đư đ c p trên, vi c load tr c các thông s b o m t là c n thi t, đ c bi t là IDs đ t o ra các s ng u nhiên khi xác th c. V i vi c có 3 lo i đ a ch trong m ng là PAN-ID (PAN) và Short Address (SA) và Extended Address (EA). APKES s s d ng 3 d ng đ a ch trên đ preload. Tùy vào các scheme mà ch n 1 trong 3 d ng đ a ch trên (Hình 3.3).
Pha 2: Preloading of cryptographic material - load tr c các khóa key Tr c khi tham gia vào vi c hình thành pairwise key thì b t bu c m i nút u, v ph i t o ra đ c các s ng u nhiên mà c n đây là seed Si . Do đó vào preload thơng s này, Ví d Si đây là master key Km.
Pha 3: Pairwise key establishment - giai đo n hình thành khóa key đơi pha này, 2 nút u, v s trao đ i v i nhau 2 chi u qua các gói tin HELLO, HELLOACK, và ACK. T t c đ u t n t i t i L p 2 (Link layer) mà không đ c x lý các l p trên Cho nút u là nút b t đ u kh i t o pairwise key v i hàng xóm v. 3 b c b t tay nh sau:
26
Hình 3.3 Các cách chia s bí m t qua các pluggable scheme. Ngu n [4]
Lúc kh i t o, u s t o ra s ng u nhiên và broadcast gói tin HELLO ch a trong đó. Hàng xóm v nh n đ c gói tin đó c ng t o cho mình s ng u nhiên sao đó tính || và đ i (kho ng ch ng u nhiên v i max là - giúp tránh u kh i b ngh n vì có q nhi u HELLOACK tr v vì khơng ph i ch có v m i là hàng xóm). Ngay khi ch xong thì v g i HELLOACK ch a và . Ngồi ra gói HELLOACK đ c chèn thêm xác th c b ng CCM* key nh vào vi c chia s bí m t thơng qua các scheme đư đ c p trên. ng th i v c ng t o ra pairwise key là = AES( , || ).
Lúc này, u nh n gói ACK t v s ti n hành xác th c CCM* MIC b ng cách t o ra qua scheme t ng ng. Ngồi ra là u cịn check thêm có gi khơng đ i hay khơng. Khi t t c đi u trên thành công, u t o pairwise key và g i ACK cho v v i xác th c b ng . D a vào gói tin ACK t u mà v ki m tra CCM* MIC b ng vi c s d ng pairwise key
v a t o.
u : T o ng u nhiên u * : HELLO
27 v : = xem hình. v u : HELLOACK v : = AES( , || ) u : = xem hình. u : = AES( , || ) u v : ACK a) M t s đ c đi m APKES
Ta th y khung tin HELLO và HELLOACK đ u có tr ng short address, nh vào SA này mà ta s d ng đ c các scheme chia s bí m t trong m ng. dài c a |Ru| = |Rv| là mà là đ dài c a pairwise key và th ng ch n 16 bytes. Ngồi ra cịn có 4 byte frame counter. t ng tính an tồn, ch ng k t n công khi c g ng phát các gói tin HELLO gây t n h i n ng l ng thì APKES cho m i nút ch a d li u APKES (hình 3.4) đ ng n ng a vi c này và chia hàng xóm thành 2 lo i: Nh t th i (Tentative neighbors) và Vình vi n (Permanent neighbors)
28
Hàng xóm nh t th i: v là hàng xóm nh t th i c a u đ c t o ra khi h i t 2 đi u ki n. M t, v khơng là hàng xóm hi n t i c a u. Hai là hi n s l ng hàng xóm nh t th i mà u đang ch a nh h n . Tr c khi ki m tra đi u ki n th 2 thì u bu c ph i xóa nh ng hàng xóm nh t th i đư "h t đát" - ngh a là sau v i là th i gian lúc m i t o hàng xóm nh t th i, là th i gian ch g i HELLOACK cho hàng xóm nh t th i và là th i gian ch ACK t hàng xóm tr v . Nh vào gi i h n và nên tránh vi c t n công DoS tràn khung tin HELLO. Khi hàng xóm nh t th i đ c t o, có nhi u tr ng đ c t o bao g m || , is_tentative, , ,
, , và (sau khi đư g i đ c HELLOACK đ n v).
Hàng xóm v nh vi n: đ c chính th c t o ra khi mà đư xác th c đúng các gói HELLOACK và ACK. Có 3 tr ng h p khi nh n gói HELLOACK. M t, n u v (g i HELLOACK) khơng ph i là hàng xóm, v s tr thành hàng xóm v nh vi n. Hai, n u v đư là hàng xóm v nh vi n thì có th ho c do u g i ko đ c ACK (nên u không th tr thành hàng xóm v nh vi n c a v) ho c b phát l i HELLOACK (t n công). Trong tr ng h p này, u ch g i ACK khác n u frame counter c a v đang đ c gi trong u ( ) nh h n frame counter trong gói HELLOACK nh n đ c. N u đúng v y thì nút u s update tồn b nh ng thơng tin m i c a v, đ c bi t là do lúc này đư thay đ i. Ba, n u v đang là hàng xóm nh t th i, v s tr thành hàng xóm v nh vi n và lúc này u s g i ACK cho v. Nh vào vi c này mà tránh tr ng h p cùng lúc có nhi u nút thành l p pairwise key v i u. Nh v y, t hàng xóm nh t th i khi nh n đ c ACK t u, v m i tr thành hàng xóm v nh vi n (khơng l p l i q trình 3 b c b t tay v i u n a). Tóm l i, mu n thành hàng xóm v nh vi n ph i nh n đ c khung tin HELLOACK đ c xác th c ko b phát l i và nh n khung tin ACK đ c xác th c t ng i khơng ph i là hàng xóm nh t th i. Khi tr thành hàng xóm v nh vi n, ch
và s ng u nhiên || đ c gi , còn l i s đ c update.
APKES đ c tích h p vào 802.15.4 security sublayer có kh n ng l p t c lo i b nh ng khung tin khơng t hàng xóm v nh vi n. Ch nh ng gói tin đư gi i mư, xác th c, khơng phát l i t hàng xóm v nh vi n m i đ c cho lên nh ng l p trên, khi đó s đ c update.
29
Hình 3.5 Khung tin APKES (a) khi broadcast khơng mã hóa và (b) khi broadcast có mã hóa. Ngu n [4]
b) Easy Broadcast Encryption and Authentication Protocol (EBEAP)
Khi mà APKES đ m b o b o m t an tồn cho các gói tin unicast thì EBEAP s dành cho các gói tin broadcast. Th ng gói tin broadcast đ c dùng trong khi routing - RPL và tìm ki m hàng xóm 6LoWPAN-ND đ thơng báo nh ng thay đ i có trong m ng. Nh ng gói tin broadcast có th b t n cơng DoS nên EBEAP này s s d ng CCM* và c ng xài khóa pairwise key t APKES. V i M(k,f) là khung f đ c xác th c b ng CCM*-MIC v i khóa k. Gi s nút u mu n g i broadcast v i frame f đ n nh ng hàng xóm v nh vi n là (n là hàng xóm v nh vi n t i đa mà u cho phép). Khi đó, u s thêm các tr ng nh Security Control, Frame Counter vào f tr thành f’. Sau đó u s broadcast 2 khung tin sau:
u * : ANNOUNCE u * :
u tiên là u s g i ANNOUNCE v i khung tin đ c xác th c b i CCM*-MIC cho t ng nút hàng xóm v nh vi n b i key (t q trình APKES). M i nút hàng xóm v nh vi n vi khi nh n đ c khung tin ANNOUNCE s dùng ring-buffer trích l y CCM*-MIC c a riêng mình khi có thơng s trong danh sách hàng xóm c a u. Gói broadcast th 2 s là gói tin mang n i dung th c s f’. Khi vi nh n đ c f’, nó s t o ra và so sánh v i CCM*-MIC trong ring-buffer tr c đó có đúng khơng, n u đúng thì vi s ch p nh n gói tin . Ngồi ra, EBEAP cịn h tr vi c mư hóa cho khung tin broadcast, khi đó, u s t o ra
30
khóa key broadcast chung Key này s đ c dùng cho vi c mư hóa thay vì là đ xác
th c CCM*-MIC. u * : ANNOUNCE
u * :
v i là khung tin mã hóa v i khóa
c đi m EBEAP: EBEAP thêm các d li u đ c in đ m trong hình 2.14. Nút u l u
{0, 1, ...} cho m i nút hàng xóm v (gi ng s th t ). Nút u cịn ph i có ring-buffer đ l u CCM*-MIC. Khóa broadcast đ c l u khi và ch khi nào mư hóa broadcast đ c b t. Khi đ c b t thì u s t o ra khóa broadcast cho riêng mình m t cách ng u nhiên nh seed v i đ dài th ng là bytes. Hình 2.15 cho th y khung tin APKES đ c mư hóa và khơng mư hóa broadcast nh th nào. Các khung tin HELLOACK và ACK s có thêm và ,… Ngồi ra khi b t mư hóa broadcast thì có thêm và , khi đó ch mư hóa các tr ng ch a , , ,... (Hình 2.15) mà khơng th mư hóa tồn b payload vì ph i trích MIC và nh n d ng gói tin đang là gói tin gì.
Hình 2.15 cho th y vi c ch a là có gi i h n vì khung tin theo chu n 802.15.4 ch có MTU = 127 bytes.Cho nên tr ng First Index s đ c thêm đ ch ra là v trí b t đ u c a hàng xóm trong khung tin ANNOUNCE này là v trí th m y trong list hàng xóm c a u. i u này giúp cho vi c ANNOUNCE có th chia làm nhi u khung n u s l ng hàng xóm v nh vi n l n.
c) Các M c B o M t C a Mic
đây, v i m i đ dài c a MIC, s đem l i m t m c đ b o m t khác nhau. Nhìn vào b ng chúng ta s phân ra 7 c p đ nh sau:
B ng 3.1: Nh ng c p đ t ng ng v i m i đ dài c a MIC
31
1 Authentication only 6
2 Authentication only 8
3 Authentication only 10
5 Authentication and encryption 6
6 Authentication and encryption 8
7 Authentication and encryption 10
Trên đây là c ch c a APKES, đ c áp d ng chính th c trong LLSEC. Tuy v y, APKES và EBEAP không đ nh d ng khung cho vi c UPDATE nh ng hàng xóm b reboot ho c sau