Get in touch
or send us a question?
CONTACT

Kỹ thuật tấn công trên Bluetooth và tính năng bảo mật của Bluetooth Classic (BR/EDR/HS)

1.Các kỹ thuật tấn công trên Bluetooth

Tấn công xâm nhập (Bluesnafing): Xâm nhập điện thoại di động của người khác, như danh bạ cuộc gọi, lịch sử công tác. Bluesnafing cho phép kết nối thiết bị mà không hề cảnh báo cho chủ thiết bị và giành quyền truy cập vào những vùng hạn chế của dữ liệu (như phonebook, calendar, realtime cloc, business card).

Eavesdropping: Nhiều tai nghe đang được sử dụng được kích hoạt Bluetooth, vì lỗ hổng trong các tai nghe có thể nghe trộm các cuộc trò chuyện.

Tấn công lỗ hỗng (BlueBug attack): tạo một kết nối đến thiết bị, bằng cách đó có thể lấy được toàn bộ quyền truy cập vào tập lệnh AT (AT command set), cho phép kẻ tấn công thực hiện gửi và đọc tin nhắn, quản lý contact, nghe lén cuộc điện thoại.

Tấn công xâm nhập nguồn (Bluejacking): gửi tin nhắn nặc danh ở những nơi công cộng bằng cách lợi dụng tiến trình pairing của Bluetooth.

2. Tính năng bảo mật của Bluetooth Classic

Tính bí mật: bảo đảm thông tin riêng tư của người sử dụng, không để người khác biết được. Bằng cách mã hóa văn bản, thay đổi dữ liệu nguyên bản thành một văn bản mới và phép biến đổi mã hóa phải có cơ chế ngược được (giải mã) để khôi phục từ bản mã. Để giữ bí mật quá trình biến đổi từ văn bản gốc sang bản mã và ngăn chặn không cho khôi phục lại văn bản gốc bất hợp pháp sử tham số gọi là khóa và sự biến đổi được gọi là mã hóa.

Tính toàn vẹn: khả năng bảo vệ dữ liệu trước những thay đổi không được phép trên thiết bị hoặc trên đường truyền.

Tính xác thực: là thủ tục khi một đơn vị có sự nhận biết chính xác đơn vị khác khi kết nối truyền thông. Thông báo nhận phải được xác thực như được gửi từ đâu và ai gửi. Xác thực trong Bluetooth được xem như quá trình xác minh khóa kết nối (link-key) trong thời gian ghép nối của thiết bị.

Tính ủy quyền: cho phép ai đó truy cập tới cái gì, quyết định một thiết bị có quyền truy cập một dịch vụ hay không.

2.1 Quá trình ghép nối và tạo khóa liên kết

Quá trình ghép nối trong Bluetooth là quá trình thiết lập một liên kết an toàn giữa hai thiết bị. Các thiết bị Bluetooth tham gia vào quá trình ghép nối phải thiết lập các khoá bí mật chia sẻ và chỉ chia sẻ thông tin với các thiết bị đã ghép nối. Để thuận tiện, thiết bị Bluetooth phải có khả năng lưu giữ các khóa liên kết và địa chỉ thiết bị cặp đôi trong một cơ sở dữ liệu để sử dụng cho những lần ghép đôi sau. Những thông tin này được lưu giữ trong một bộ nhớ cố định.  

Quy trình ghép nối:

  • Sinh khóa khởi đầu Kinit
  • Tạo khóa liên kết Link-Key
  • Trao đổi khóa liên kết Link-Key
  • Xác thực

 Bluetooth BR/EDR tiến hành ghép nối (tạo khóa liên kết) theo một trong hai cách:

・Bảo mật chế độ 2 và 3(mode 2,3) khởi tạo hình thành khóa liên kết bằng phương pháp gọi là ghép nối PIN(Personal Identification Number)

・Bảo mật chế độ 4 (mode 4) sử dụng SSP(Secure Simple Pairing)
※Bluetooth 4.0 và 4.1 ghép nối được tiến hành bằng sử dụng quy trình xác thực và không xác thực. Bluetooth 4.2 kết nối an toàn được sử dụng trong lúc ghép nối để xác thực thiết bị.

2.1.1 Mã PIN và Pairing Legacy

Đối với ghép nối mã PIN hai thiết bị Bluetooth đồng thời lấy khóa liên kết khi người dùng nhập mã PIN bí mật giống nhau vào một hoặc hai thiết bị tùy thuộc vào cấu hình và loại thiết bị.

Sau khi quá trình tạo khóa liên kết(link-key) hoàn tất, các thiết bị hoàn tất ghép nối bằng cách xác thực lẫn nhau để xác minh rằng chúng có cùng một khóa liên kết.

Khóa khởi đầu Kinit (Initialization Key) là khóa tạm thời, khóa được sử dụng trong thời gian ghép đôi của hai thiết bị. Khóa Kinit là khóa kết nối trong quá trình khởi đầu khi chưa có khoá liên kết. Kinit được tính toán bởi thuật toán E22 từ các tham số đầu vào là: địa chỉ thiết bị BD_ADDR, khóa giá trị ngẫu nhiên 128 bit IN_RAND.

Kinit = E22 (PIN, IN_RAND)

Quá tạo khóa liên kết được mô tả như hình vẽ:

Link Key Generation from PIN

2.1.2 Secure Simple Pairing

SSP (Secure Simple Pairing) được giới thiệu lần đầu tiên ở Bluetooth 2.1 cho sử dụng chế độ bảo mật 4(mode 4) sau đó được cải thiện trong bản Bluetooth 4.1. So sánh với ghép nối mã PIN/Legacy, SSP đơn giản hóa quá trình ghép nối bằng cách cung cấp một số mô hình liên kết linh hoạt về khả năng đầu vào/đầu ra của thiết bị. SSP cũng cải thiện bảo mật thông qua việc bổ sung mật mã khóa công khai ECDH để bảo vệ chống lại các cuộc tấn công nghe lén thụ động và tấn công man-in-the-middle (MITM) trong quá trình ghép nối.

Mỗi thiết bị tạo cặp khóa public key và private key ECDH. Khi cả hai thiết bị đều hỗ trợ kết nối an toàn (Secure Connection), P-256 hoặc P-192 được sử dụng. Mỗi thiết bị gửi public key đến thiết bị khác.

Sau khi tạo cặp khóa public-key, giai đoạn xác thực 1 được tiến hành theo một trong những cách thức : Number Comparision, Passkey Entry, Just Work, OOB.

Number Comparision: so sánh số được thiết kế cho trường hợp cả hai thiết bị Bluetooth đều có khả năng hiển thị một số gồm sáu chữ số và cho phép người dùng nhập câu trả lời “có” hoặc “không”. Trong quá trình ghép nối, người dùng được hiển thị một số gồm sáu chữ số trên mỗi màn hình và cung cấp phản hồi “có” nếu số khớp nhau. Nếu không, người dùng trả lời “không” và quá trình ghép nối thất bại. Sự khác biệt giữa thao tác này và việc sử dụng mã PIN trong ghép nồi kế thừa (Legacy) là số được hiển thị không được sử dụng làm đầu vào để tạo ra khóa liên kết. Do đó, kẻ nghe trộm có thể xem, lấy giá trị được hiển thị nhưng không thể sử dụng nó để xác định khóa liên kết hoặc khóa mã hóa.

Passkey Entry: được thiết kế trong trường hợp nếu một thiết bị Bluetooth có khả năng nhập dữ liệu (vd: keyboard), trong khi thiết bị khác có thể hiển thị nhưng không thể nhập dữ liệu. Thiết bị chỉ có màn hình hiển thị một số gồm sáu chữ số mà người dùng đã nhập trên thiết bị có khả năng nhập dữ liệu. Giống như với mô hình so sánh số (number comparision), số sáu chữ được sử dụng trong giao dịch này không được kết hợp vào việc tạo khóa liên kết và không có ích gì cho một kẻ nghe trộm.

Just Work: được thiết kế cho trường hợp khi có ít nhất một trong thiết bị ghép nối không có màn hình và bàn phím để nhập các chữ số (vd: tai nghe). Nó thực hiện giai đoạn xác thực stage 1 theo cách tương tự như chế độ “number comparision”, ngoại trừ một màn hình không có sẵn. Người dùng được yêu cầu chấp nhận kết nối mà không cần xác minh tính toán trên cả 2 thiết bị, vì vậy Just Works không cung cấp bảo vệ MITM.

Out of Band (OBB): được thiết kế cho thiết bị hỗ trợ không dây bổ sung (ex: Near Field Communication (NFC)) hoặc công nghệ có dây cho các mục đích của thiết bị khám phá và trao đổi giá trị mật mã. Trong trường hợp NFC, mô hình OOB cho phép thiết bị để ghép nối bằng cách chỉ cần “chạm” vào thiết bị, sau đó người dùng chấp nhận ghép nối thông qua một lần nhấn nút. Điều quan trọng cần lưu ý là để giữ quá trình ghép nối càng an toàn càng tốt, công nghệ OOB phải được thiết kế và được định cấu hình để giảm thiểu các cuộc tấn công nghe lén và MITM.

2.2 Xác thực

Quy trình xác thực có 2 loại:

・Legacy Authentication: được thực hiện khi có một thiết bị không hỗ trợ Secure Connections

・Secure Authentication: được thực hiện khi cả 2 thiết bị hỗ trợ Secure Connection

2.2.1 Legacy Authentication

Bluetooth Legacy Authentication

Quy trình xác thực:

Step1: Thiết bị yêu cầu địa chỉ 48 bit (BD_ADDR) của nó đến thiết bị xác minh

Step2: Thiết bị xác minh truyền một giá trị ngẫu nhiên 128 bit (AU_RAND)

Step3: Thiết bị xác minh dùng thuật toán xác thực E1 với các giá trị đầu vào là: địa chỉ thiết bị BD_ADD, giá trị khóa liên kết Link Key và giá trị ngẫu nhiên 128 bit AU_RAND để tính giá trị SRES được sử dụng để trả lời xác thực. Thiết bị yêu cầu cũng thực hiện cùng thao tác đó. Giá trị đầu ra quá trình xác thực SRES được tính :

SRES = E1 (Link-Key, AU_RAND, BD_ADDR)

Step4: Thiết bị gửi yêu cầu gửi kết quả vừa tính được (SRES) của hai bên.

Step5: Thiết bị xác minh sẽ so sánh giá trị SRES của hai bên.

Step6: Nếu hai giá trị SRES 32 bit này bằng nhau thì bên yêu cầu sẽ tiếp tục thiết lập kết nối

2.2.2 Secure Authentication

Quy trình xác thực:

Step1: Master truyền 128-bit ngẫu nhiên (RAND_M) tới Slave

Step2: Slave truyển 128-bit ngẫu nhiên (RAND_S) tới Master

Step3: Cả Master và Slave đều sử dụng thuật toán h4 và h5 để tính toán xác thực sử dụng:

  • Địa chỉ 48-bit thiết bị Bluetooth duy nhất của master và slave (ADDR_M, ADDR_S)
  • Link-key
  • RAND_M
  • RAND_S

Step4: Slave phản hồi đầu ra giá trị 32-bit của thuật toán h5 (SRESslave) tới master

Step5: Master phản hồi đầu ra giá trị 32-bit của thuật toán h5 (SRESmaster) tới slave

Step6: Master và slave so sánh SRES từ mỗi bên với giá trị đã được tính toán.

Step7: Nếu giá trị 32-bit SRES bằng nhau trên master và slave thì việc xác thực được xem là thành công, ngược lại nếu giá trị 32-bit SRES không bằng nhau trên master hoặc slave thì xác thực thất bại.

2.3 Mã hóa

Khoá mã KC được tính bằng thuật toán E3 với các giá trị đầu vào là: khóa liên kết hiện hành LKEY, giá trị đoạn mã COF 96 bít và giá trị ngẫu nhiên EN_RAND. Giá trị đoạn mã COF cân bằng với giá trị của đoạn mã ACO thu được từ quá trình xác thực.

Kc = E3 (LKEY, EN_RAND, COF)

Giá trị KP được tính bởi thuật toán mã dòng E0, với các giá trị đầu vào là: khoá mã nén K’c, giá trị ngẫu nhiên 128 bit EN_RAND, địa chỉ thiết bị BD_ADDR và 26 bít giá trị đồng hồ hiện thời.

KP = E0 (K’c, EN_RAND, BD_ADDR, CLOCK)

Bluetooth E0 Encryption Procedure

Tài liệu tham khảo:

1. https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-121r2.pdf.

2. https://www.electronics-notes.com/articles/connectivity/bluetooth/security.php

3. https://medium.com/@quyeen.ngoo/ble-ee1bf6f4c858

4. https://www.sciencedirect.com/topics/computer-science/bluetooth-security#:~:text=The%20security%20of%20Bluetooth%20uses,each%20transaction%2C%20adds%20additional%20security.