monsieurvechai gửi vào
- 58781 lượt xem
Trong bài http://arduino.vn/bai-viet/1039-internet-cua-van-vat-o-viet-nam-va-huong-phat-trien-cho-cong-dong-arduino tui có nhấn mạnh về tầm quan trọng của Bluetooth việc phát triển Internet của Vạn Vật (IW). Bài này tui sẽ giới thiệu một vài khía cạnh kỹ thuật của Bluetooth để các bạn hiểu rõ thêm về công nghệ này.
I. Nguồn gốc
Bluetooth ra đời vào năm 1989 tại công ty Ericsson ở Lund, Thụy Điển. Tên "bluetooth" là phiên bản ăng-lô hóa của vị vua Harald Bluetooth, người thống nhất các bộ tộc Đan Mạch thành một vương quốc vùng Scandinavia. Ký hiệu bluetooth mà các bạn thấy là tên viết tắt (Harald Bluetooth) của vị vua này theo cổ ngữ Rune:
Bluetooth ra đời với mục đích "không dây hóa" chuẩn serial RS-232 thịnh hành vào những năm 80-90 của thế kỷ trước và chuẩn hóa các giao tiếp serial.
II. Vật lý cơ bản
Bluetooth về cơ bản là một giao tiếp bằng sóng radio ở băng tần 2.4 đến 2.480 GHz, rất gần với chuẩn Wifi 2.4GHz hiện nay. Tuy nhiên, khác với Wifi hay các sóng radio khác hoạt động ở 1 băng tầng cố định, Bluetooth triển khai theo khái niệm "nhảy tần trải phổ" (Frequency Hopping Spread Spectrum), có nghĩa là băng tần hoạt động của Bluetooth thay đổi liên tục với 79 kênh (từ 2.400 GHz đên 2.480 GHz). Điều này, về mặt lý thuyết, đảm bảo bluetooth chống lại việc nghe lén rất hiệu quả vì hacker phải biết chính xác được kênh nào để nghe, mà kênh này lại thay đổi liên tục (khoảng 800 lần mỗi giây) tùy vào sự đồng ý giữa 2 thiết bị đang giao tiếp với nhau.
Bước sóng của bluetooth là khoảng 12cm. Đây cũng là chiều dài thường thấy của ăn-ten mà các bạn thấy trên các module:
Bluetooth thực hiện giao tiếp với nhau theo kiểu chủ-tớ (Master-Slave), và thông thường 1 chủ có thể nối với 7 thiết bị tớ cùng 1 lúc thành một hệ thống mạng mini. Dĩ nhiên các thiết bị có thể đổi vai trò, tùy vào điều kiện tiếp nối. Ví dụ: 1 cái tai nghe khởi đầu kết nối với điện thoại bắt buộc phải đóng vai chủ Master, nhưng sau đó sẽ hoạt động như là 1 tớ Slave sau khi kết nối hoàn tất. Sau đó thông tin được truyền đi theo phương thức giao chuyển gói (Packet Switching) như hình dưới sau:
Giả sử ta có 1 mạng 6 thiết bị, User 1 muốn gửi thông tin đến User 5, và User 2 muốn gửi thông tin đến User 4. User 1 sẽ chia thông tin cần chuyển thành 5 gói nhỏ 54321 và User 2 chia thông tin của mình thành 4 gói 4321. Các gói thông tin này được truyền đến người nhận bằng đường truyền khác nhau, không nhất thiết là đi trực tiếp User 1 => User 5 mà có thể qua đường User 1 => User 2 => User 4 => User 5. Như vậy thông tin có thể truyền đi rất nhanh chóng. Sau khi tất cả các gói đã được nhận được ở điểm đến. chúng sẽ được sắp xếp lại theo thứ tự ban đầu.
Một điểm quan trọng của Bluetooth trong việc chuẩn hóa giao tiếp là yêu cầu vế sự tương thích cấu hình Bluetooth (Bluetooth profile) giữa các thiết bị. Ví dụ: bạn muốn chuyển tải hình ảnh giữa 2 điện thoại di động với nhau, bắt buộc bạn phải cài cấu hình Basic Imaging Profile (BIP). Các bạn có thể xem thêm thông tin về các cấu hình Bluetooth tiêu biểu ở đây:
https://vi.wikipedia.org/wiki/C%E1%BA%A5u_h%C3%ACnh_Bluetooth
III. Bluetooth thông thường và Bluetooth BLE
Hiện nay có 2 phương án tiếp cận với Bluetooth. Phương án "truyền thống" Classic Bluetooth dành cho giao tiếp với dung lượng dữ liệu lớn như headphone hay truyền ảnh, và phương án "năng lượng thấp" BLE cho các ứng dụng Internet của Vạn Vật. Sau đây là một số thông số cho thấy sự khác biệt giữa 2 phương án này: (Từ wikipedia)
Khoảng cách hoạt động | 100 m (330 ft) | >100 m (>330 ft) |
Tốc độ truyền | 1–3 Mbit/s | 1 Mbit/s |
Thông lượng | 0.7–2.1 Mbit/s | 0.27 Mbit/s |
Số lượng Slavez | 7 | Tùy vào ứng dụng |
Mã hóa | 56/128-bit | 128-bit AES và Counter Mode CBC-MAC |
Độ trễ (từ lúc chưa kết nối) | 100 ms | 6 ms |
Thời gian tối thiểu để gửi dữ liệu | 100 ms | 3 ms |
Truyền giọng | Có | Không |
Tôpô mạng | Scatternet | Scatternet |
Năng lượng tiêu thụ | 1 W | 0.01 đến 0.5 W |
Nguồn tiêu thụ | <30 mA | <15 mA |
Profile | Có | Có |
Như các bạn thấy, BLE sẽ là một trong các chuẩn giao tiếp thích hợp cho IW vì hắn tiêu thụ ít điện năng, tốc độ nhanh và truyền ít thông tin hơn.
IV. Một số ngộ nhận về Bluetooth
- Bluetooth là giao tiếp tầm ngắn, khoảng vài mét đổ lại. Điều này dựa trên "kinh nghiệm" sử dụng headphone và chuột. Các thiết bị này cần tiết kiệm điện nên không được thiết kế để truyền đi xa. Nếu các bạn đọc kỹ thông số trên thiết bị bluetooth, các bạn sẽ thấy Bluetooth được chia thành các Class:
Device Class | Năng lượng truyền | Phạm vi truyền |
Class 3 | 1 mW | <10 m |
Class 2 | 2.5 mW | ~10 |
Class 1 | 100 mW | ~100 m |
Như các bạn thấy, Bluetooth thực ra có tầm hoạt động ngang ngửa với wifi. Đặc biệt, nếu bạn nối ăn-ten, phạm vi có thể vượt xa 1km.
- Bluetooth không làm lộ thông tin cá nhân nhạy cảm của bạn. Thực tế là hacker có thể giả lập 1 cấu hình RFCOMM rồi dùng lệnh AT để truy xuất danh bạ và các cuộc gọi của bạn hoặc các trò hay ho hơn nữa.
- Bluetooth có độ bảo mật cao: Hiệp Hội Quan Tâm Đặc Biệt Về Bluetooth (Bluetooth Special Interest Group - BSIG) tạo riêng cho mình 1 mã riêng gọi là E0 Cipher để dùng trên tất cả giao tiếp bluetooth. Về cơ bản thì mã này là 128 bit, có nghĩa là cần đến 2^128 bước thử để công phá. Tuy nhiên thực tế thì mã này không đủ mạnh, và cần khoảng 2^38 bước là có thể phá. Ngoài ra, vì bluetooth có tham vọng chuẩn hóa các giao tiếp không dây với các profile phức tạp nên lỗ hổng bảo mật chưa thể được vá hết. Các bạn 8x, 9x đời đầu chắc không lạ với trò hack bluetooth trên các điện thoại Nokia Symbian đời đầu ha. Thêm 1 điều nguy hiểm nữa là mã pairing của các thiết bị đơn giản như headphone, tracker đều chỉ dùng mặc định là 0000 hay 1234. Thử tượng tượng có 1 ai đó ngồi cách xa 1km mà có thể nghe hết mọi chuyện trong nhà của bạn vì bạn quên tắt tai nghe bluetooth xem. Điều này thật nguy hiểm phải không?