Bluetooth được sử dụng trong rất nhiều lĩnh vực khác nhau với các ứng dụng đa dạng. Nếu các nhà sản xuất cứ đưa ra cách ứng dụng Bluetooth của riêng mình thì có thể dẫn tới sự không thống nhất, và các thiết bị Bluetooth của cỏc hóng khác nhau sẽ không hoạt động được với nhau. Để thống nhất, SIG đã định nghĩa ra các mô hình sử dụng Bluetooth. Mỗi mô hình sử dụng được đi kèm với một profile. Profile sẽ định nghĩa các giao thức và các tính năng để hỗ trợ một mô hình sử dụng. Trong mỗi profile sẽ chỉ ra phần nào trong tầng giao thức Bluetooth được sử dụng. Nhiều profile phụ thuộc vào các profile khỏc. Cú 4 profile cơ sở thường được các profile khác sử dụng, đó là:
• Generic Access Profile (GAP): profile chung nhất, tất cả các profile khác đều sử dụng chức năng của profile này.
• Serial Port Profile (SPP): Sử dụng tầng RFCOMM. Profile này dùng để tạo các cổng serial ảo.
• Service Discovery Application Profile (SDAP): Sử dụng tầng SDP để tìm kiếm các dịch vụ.
• Generic Object Exchange Profile (GOEP): là profile chung được dùng bởi các profile sử dụng giao thức OBEX.
Hình 1.18 Sự phụ thuộc của các profile
Hiện tại, Bluetooth đã có rất nhiều profile và một số profile vẫn đang được phát triển để đáp ứng được các trường hợp sử dụng khác nhau. Sau đây là một số profile thường dùng.
File Transfer Profile
Profile này được dùng để truyền tập tin giữa các thiết bị Bluetooth. Ngoài ra, nú cũn cung cấp khả năng duyệt thư mục trên thiết bị. Các thiết bị thường sử dụng profile này là máy tính, điện thoại di động, PDA.
Hình vẽ dưới đây mô tả các giao thức được sử dụng trong profile truyền file, trong đó đã lược đi các tầng bên dưới như LMP, baseband, radio.
Hình 1.19 Chồng giao thức của profile truyền file Headset Profile
Headset profile được sử dụng để trao đổi âm thanh. Thiết bị sử dụng profile này hoạt động như một thiết bị âm thanh với một đường vào và một đường ra cung cấp khả năng truyền nhận song công.
Các thiết bị thường dùng profile này là tai nghe, điện thoại di động, PDA và máy tính.
Hình 1.20 Chồng giao thức của headset profile Dial-up Networking Profile (DUN)
Dial-up Networking profile cung cấp một chuẩn thống nhất để truy cập internet và các dịch vụ quay số khác thông qua công nghệ Bluetooth. Kịch bản thường dùng nhất là truy cập internet từ máy tính xách tay bằng cách sử dụng Bluetooth để kết nối với điện thoại di động rồi dùng điện thoại di động quay số đến nhà cung cấp. Trong profile này, tập lệnh AT được sử dụng để điều khiển điện thoại (hoặc modem).
Hình 1.21 Chồng giao thức của dial-up networking profile
Do được xây dựng dựa trên tầng RFCOMM, trong đó sử dụng liên kết serial ảo do các tầng bên dưới của chồng giao thức Bluetooth tạo ra, nờn cỏc ứng dụng không cần quan tâm đến việc chúng đang sử dụng công nghệ Bluetooth. Nói cách khác, profile này tạo ra sự trong suốt đối với các ứng dụng sử dụng nó.
Personal Area Networking Profile (PAN)
Profile này giúp các thiết bị Bluetooth thiết lập mạng LAN để kết nối với nhau. Các ứng dụng mạng như trò chơi, chia sẻ file, chia sẻ máy in, … thường sử dụng kết nối qua mạng LAN. Các thiết bị Bluetooth có hỗ trợ profile này sẽ tạo ra một card mạng ảo, và hệ điều hành sẽ coi nó như một card mạng vật lý. Như vậy
với sự trong suốt này, các ứng dụng mạng sẵn có vẫn hoạt động bình thường thông qua Bluetooth giống như cú thờm một card mạng khác.
Hình 1.22 Chồng giao thức của personal area networking profile 1.3.5. An toàn thông tin trong kết nối Bluetooth
Có ba cơ chế tham gia để đảm bảo an toàn thông tin trong kết nối Bluetooth: mẫu nhảy tần số giả ngẫu nhiên, xác thực và mó hoỏ.
• Kỹ thuật nhảy tần số khiến cho đối phương rất khó khăn trong việc nghe lén.
• Xác thực cho phép giới hạn người dùng kết nối đến thiết bị.
• Mó hoá sử dụng cỏc khoỏ bí mật để thông tin nhạy cảm chỉ đến được với người nhận hợp pháp.
Tất cả các thiết bị Bluetooth đều phải hỗ trợ Generic Access Profile. Profile này định nghĩa ba chế độ bảo mật:
• Chế độ 1: là chế độ không an toàn. Không có thủ tục nào được thực hiện để đảm bảo an toàn thông tin.
• Chế độ 2: còn gọi là chế độ ép bảo mật mức dịch vụ (service-level enforced security). Các thủ tục bảo mật không được khởi tạo cho đến khi kênh truyền được thiết lập. Chế độ này cho phép các ứng dụng có thể có các chính sách truy cập khác nhau và thực hiện các chính sách đó một cách đồng thời.
• Chế độ 3: còn gọi là chế độ ép bảo mật mức liên kết (link-level enforced security). Trong chế độ này, các thủ tục đảm bảo an toàn được khởi tạo trước khi thủ tục thiết lập liên kết hoàn thành.
Bluetooth cung cấp các phương thức bảo vệ thông tin ở cả tầng ứng dụng và tầng liên kết bằng các cơ chế xác thực (authentication), và mó hoỏ (encryption). Có bốn nhân tố quan trọng tham gia vào thủ tục xác thực và mó hoỏ được mô tả trong bảng sau.
Nhân tố Kích thước
Địa chỉ thiết bị BD_ADDR 48 bit
Khoá xác thực 128 bit
Khoá mã hoá, kích thước có thể cấu hình được. 8-128 bit
Số ngẫu nhiên RAND 128 bit
Bảng 1.3 Các nhân tố tham gia vào thủ tục xác thực và mó hoỏ Khoá của liên kết (link key)
Khoá của liên kết là một số ngẫu nhiên 128-bit được chia sẻ giữa các thiết bị. Khoá này được dùng trong thủ tục xác thực và làm tham số trong thủ tục sinh khoỏ mó hoỏ.
Khoá của liên kết có thể là:
• Khoá kết hợp KAB: phụ thuộc vào hai thiết bị tham gia liên kết. • Khoá của thiết bị KA: phụ thuộc từng thiết bị.
• Khoá tạm thời của master Kmaster: Khoá này tạm thời được master dùng làm khoá liên kết, ví dụ trong tình huống master cần giao tiếp với hai thiết bị nhưng chỉ muốn dùng một khoỏ mó hoỏ.
• Khoá khởi tạo Kinit: tạo ra và sử dụng làm khoá liên kết trong quá trình khởi tạo liên kết.
Khoá KA không được khuyến khích làm khoá liên kết vỡ tớnh bảo mật yếu. Tuy nhiên trong các thiết bị do hạn chế về tài nguyên thì vẫn phải dựng khoỏ này.
Thủ tục khởi tạo chia làm 5 giai đoạn: • Sinh khoá khởi tạo Kinit. • Sinh khoá liên kết K • Trao đổi khoá liên kết. • Xác thực.
• Sinh khoỏ mó hoỏ KC.
Hình 1.24 Khoá liên kết là khoá kết hợp KAB
Hình 1.25 Khoá liên kết là Kmaster
Xác thực
Hình 1.27 Thủ tục xác thực
Sau mỗi lần xác thực thất bại thì thiết bị xác minh (verifier) sẽ chờ một khoảng thời gian trước khi tiến hành lần xác thực tiếp theo, hoặc trước khi nó trả lời yêu cầu xác thực được khởi tạo bởi thiết bị đang được xác minh. Cứ sau mỗi lần thất bại, thời gian chờ lại tăng theo cấp số mũ. Thời gian chờ này phụ thuộc vào từng thiết bị và được chặn bởi một giá trị chặn trên. Thời gian chờ sẽ được giảm về giá trị thấp nhất khi không có lần xác thực thất bại nào xảy ra sau một khoảng thời gian nhất định. Thủ tục này nhằm ngăn chặn những kẻ xâm nhập tiến hành thủ tục xác thực với một số lượng lớn khoá khác nhau trong một thời gian ngắn.
Mó hoá
Thông tin của người dùng có thể được bảo vệ bằng cách mó hoỏ phần payload trong gói tin, phần mã truy cập và header của gói tin không bao giờ được mó hoỏ.
Mỗi thiết bị bluetooth đều có một tham số định nghĩa độ dài lớn nhất Lmax (1 ≤ Lmax ≤ 16, số byte của khoỏ mó hoỏ) của khoỏ mó hoỏ mà nó hỗ trợ. Với mỗi ứng dụng cần mó hoỏ lại định nghĩa một độ dài nhỏ nhất Lmin của khoỏ mó hoỏ. Như vậy, trước khi sinh khoỏ mó hoỏ, các thiết bị phải đàm phán để quyết định sẽ sử dùng độ dài khoá là bao nhiêu.
Quá trình đàm phán về độ dài khoá được tóm tắt như sau:
• Thiết bị master gửi một giá trị đề nghị Lsug(M) cho slave. Giá trị đề nghị này ban đầu được gán bằng Lmax(M).
• Nếu Lmin(S) ≤ Lsug(M) và slave có hỗ trợ độ dài Lsug(M) thì slave sẽ báo chấp nhận độ dài khoá này và thủ tục đàm phán kết thúc.
• Nếu hai điều kiện trên không thoả mãn, slave sẽ gửi một giá trị đề nghị khác Lsug(S) < Lsug(M) cho master. Giá trị này phải nhỏ hơn giá trị đề nghị trước của master và phải là giá trị lớn nhất mà slave hỗ trợ.
• Master sẽ kiểm tra Lsug(S) có thoả mãn hay không tương tự như hai bước trước.
• Thủ tục sẽ lặp cho đến khi một giá trị chung được thoả mãn hoặc một thiết bị huỷ bỏ đàm phán. Đàm phán có thể bị huỷ bỏ do không có giá trị chung nào được cả hai bên hỗ trợ, hoặc do Lsug < Lmin ở một trong hai thiết bị. Trong trường hợp bị huỷ bỏ thì liên kết không thể được mó hoỏ.