1. Trang chủ
  2. » Luận Văn - Báo Cáo

Các vấn đề bảo mật bluetooth

72 531 2

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 72
Dung lượng 1,03 MB

Nội dung

Các vấn đề bảo mật bluetooth

Trang 1

MỤC LỤC

THUẬT NGỮ VIẾT TẮT

AMA Active Member Address Địa chỉ thiết bị đang

hoạt động

Connection-oriented Link

Phi kết nối bất đồng bộ, dành cho truyền dữ liệu

Correction

Sửa lỗi tiến

Interface

Giao diện điều khiển

máy chủISM Industrial, Scientific,

Medical

Dải tần miễn phí sử dụng trong công nghiệp, khoa học, y

tế.

LAP Lower Address Part Phần địa chỉ 24 bit

Trang 2

truyền thôngPDU Protocol data units Đơn vị dạng gói tin

trong SDP

Generator

Bộ tạo số ngẫu nhiên

SIG Special Interest Group Tổ chức quốc tế về

công nghệ Bluetooth

Connection Oriented

Kết nối đồng bộ có định hướngeSCO Extended Synchronous

Connection Oriented

Kết nối đồng bộ có định hướng mở rộng

Trang 3

DANH MỤC HÌNH

Hình 1: Các kiểu liên kết trong Piconet 8

Hình 2: Sơ đồ một Piconet trong thực tế 9

Hình 3: Chồng giao thức trong Bluetooth 10

Hình 4: Các loại kênh L2CAP 14

Hình 5: Cấu trúc Host Controller Interface .16

Hình 6: Định dạng gói tin trong Bluetooth 21

Hình 7: Mô hình một mạng AD - Hoc 25

Hình 8: Sơ đồ khối các loại mã: a/ Mã khối b/ Mã dòng 27

Hình 9: Quá trình quản lý khoá ở băng cơ sở 33

Hình 10: Tạo khóa đơn vị qua khóa khởi đầu KINIT 34

Hình 11: Sơ đồ quá trình sinh khoá kết hợp KAB 35

Hình 12: Tạo khoá K master qua Kovl 36

Hình 13: Quá trình xác thực trong Bluetooth 38

Hình 14: Sơ đồ khối quá trình xác thực 40

Hình 15: Quá trình mã hóa trong Bluetooth 42

Hình 16: Quá trình thiết lập kênh truyền 47

Hình 17: Tấn công dự đoán khóa Pass-key trong Bluetooth 54

Hình 18: Lược đồ tạo khoá trong SAFER+ 57

Hình 19: Cấu trúc thuật toán E1 58

Hình 20: Sơ đồ khối của (a) E21, (b) E22 59

Hình 21: Sơ đồ khối thuật toán E3 60

Hình 22: Sơ đồ thuật toán E0 62

Trang 4

MỞ ĐẦU

Ngày nay, cùng với sự phát triển đa dạng của các ngành khoa học kỹ

thuật, công nghệ thông tin đang có những bước phát triển vượt bậc, cung cấp ngày càng nhiều loại hình dịch vụ mới, đa dạng, an toàn và chất lượng tốt đáp ứng kịp thời nhu cầu về trao đổi thông tin của con người Để thay thế những

hệ thống dây cáp cồng kềnh, phức tạp, công nghệ không dây đã ra đời và phát triển mạnh mẽ

Bluetooth là kỹ thuật truyền tin không dây tầm ngắn, có nhiều điểm thuận lợi cho việc liên lạc giữa các thiết bị di động Kỹ thuật Bluetooth đang dần lan rộng, xâm nhập vào mọi lĩnh vực của thiết bị điện tử và trong tương lai mọi thiết bị điện tử đều có thể được hỗ trợ kỹ thuật này Bluetooth thực hiện bảo mật thông tin qua quá trình mã hóa, bằng việc sử dụng thuật toán mã dòng E0, hiện nay đã có một số nghiên cứu nhằm tăng cường bảo mật thông tin truyền qua Bluetooth bằng việc nâng cấp, thay thế thuật toán E0 Việc nghiên cứu về cấu trúc, quy trình bảo mật trong kỹ thuật Bluetooth nhằm mục đích đề xuất một số giải pháp can thiệp mật mã, đưa ra giải pháp an toàn bảo mật Bluetooth

Xuất phát từ các lý do trên, qua nghiên cứu tài liệu, bài báo về Bluetooth và các tài liệu về khoa học và kỹ thuật em đã xây dựng và phát triển đề tài “CÁC VẤN ĐỀ BẢO MẬT BLUETOOTH

Nội dung chính của đồ án bao gồm:

- Tìm hiểu cấu trúc và hoạt động của kỹ thuật Bluetooth

- Nghiên cứu cơ chế an toàn và quy trình bảo mật trong công nghệ Bluetooth

- Đề xuất một vài giải pháp bảo vệ an toàn Bluetooth

Bố cục đồ án gồm các phần sau đây:

Mở đầu: Nêu mục đích, cơ sở khoa học và thực tiễn của đồ án, tính cấp thiết và các giá trị của đồ án

Chương I - Giới thiệu tổng quan về hệ thống Bluetooth

1 Giới thiệu chung

2 Cấu trúc và hoạt động của hệ thống Bluetooth

Trang 5

3 Hoạt động của hệ thống Bluetooth

Chương II - Cơ chế bảo mật Bluetooth

1 Cơ sở an toàn Bluetooth

2 Qui trình bảo mật trong Bluetooth

Chương III – Giải pháp bảo mật Bluetooth

1 An toàn bảo mật trong Bluetooth

2 Các kỹ thuật tấn công

3 Các giải pháp an toàn bảo mật khi sử dụng công nghệ Bluetooth

Đề mô kỹ thuật tấn công và phòng thủ

Kết luận: Trình bày những kết quả đạt được, hướng phát triển của đồ án

Em xin chân thành cảm ơn Ban giám đốc Học Viện Kỹ Thuật Mật Mã, các thầy, cô giáo, các khoa, phòng chức năng của học viện đã tạo điều kiện cho

em thực hiện đồ án này Em xin được bày tỏ lòng biết ơn của mình đến Thạc Sỹ: Đinh Tiến Thành đã hết lòng giúp đỡ, hướng dẫn và chỉ bảo tận tình trong quá trình em làm đồ án tốt nghiệp Tuy đã có nhiều cố gắng trong quá trình thực hiện, xong vì điều kiện thời gian và kiến thức còn hạn chế nên đồ án không thể tránh khỏi những khiếm khuyết, em kính mong nhận được sự thông cảm và đóng góp ý kiến của quý thầy cô và các bạn

Hà nội

Trang 6

CHƯƠNG I GIỚI THIỆU TỔNG QUAN VỀ HỆ THỐNG

BLUETOOTH

Chương I Giới thiệu tổng quan về công nghệ Bluetooth, bao gồm các khái niệm, cấu trúc và hoạt động trong công nghệ Bluetooth để làm cơ sở cho việc nghiên cứu cơ chế an toàn và đề xuất các giải pháp tăng cường bảo mật cho Bluetooth

1.1 GIỚI THIỆU CHUNG

1.1.1 Khái niệm Bluetooth

Bluetooth là công nghệ không dây cho phép các thiết bị điện, điện

tử giao tiếp với nhau trong khoảng cách ngắn, bằng sóng vô tuyến qua băng tần chung ISM (Industrial, Scientific, Medical) trong dải tần từ 2.40 đến 2.48 GHz Đây là dải tần không cần đăng ký dùng cho các thiết bị không dây trong công nghiệp, khoa học, y tế

Bluetooth được thiết kế nhằm mục đích thay thế dây cáp giữa máy tính

và các thiết bị truyền thông cá nhân, kết nối vô tuyến giữa các thiết bị điện tử lại với nhau một cách nhanh chóng và thuận lợi với giá thành rẻ

Khi được kích hoạt, Bluetooth có thể tự động định vị những thiết bị khác

có cùng công nghệ ở xung quanh và bắt đầu kết nối Nó được định hướng sử dụng cho việc truyền dữ liệu lẫn tiếng nói

1.1.2 Quá trình hình thành và phát triển của Bluetooth

Bluetooth được phát minh từ giữa những năm 1990 trong một dự án thực hiện việc kết nối không dây giữa bàn phím và máy tính của hãng điện thoại di động Ericsson Dự án nhằm hợp nhất liên lạc giữa các loại thiết bị điện tử khác nhau mà không cần phải dùng đến các sợi cáp nối cồng kềnh, phức tạp Đến khoảng năm 1998 thì 5 công ty lớn trên thế giới gồm Ericsson, Nokia, IBM, Intel và Toshiba đã liên kết, hợp tác thiết kế và triển khai phát

triển một chuẩn công nghệ kết nối không dây mới mang tên BLUETOOTH

nhằm kết nối các thiết bị vi điện tử lại với nhau dùng sóng vô tuyến

Ngày 20/5/1998: nhóm nghiên cứu SIG (Special Interest Group) chính

thức được thành lập với mục đích phát triển công nghệ Bluetooth trên thị trường viễn thông Bất kỳ công ty nào có kế hoạch sử dụng công nghệ

Trang 7

Bluetooth đều có thể tham gia Bluetooth đang có tốc độ phát triển khá nhanh với khả năng ứng dụng ngày càng đa dạng Hiện nay, Bluetooth đã và đang là một thị trường năng động trong lĩnh vực truyền thông

1.1.3 Các đặc điểm của Bluetooth

- Dễ sử dụng, không cần phải thiết lập cơ sở hạ tầng (các trạm thu phát), tiêu thụ năng lượng thấp, cho phép ứng dụng được trong nhiều loại thiết bị

- Giá thành ngày càng hạ

- Khoảng cách giao tiếp cho phép: Khoảng cách giữa hai thiết bị đầu cuối thông thường khoảng 10m ngoài trời và 5m trong nhà, có thể lên tới 100m ngoài trời và 30m trong nhà

- Bluetooth sử dụng băng tần không đăng ký 2,4 Ghz trên dãy băng tần ISM Tốc độ truyền dữ liệu tối đa có thể đạt tới mức 1Mbps, các thiết bị Bluetooth có thể liên lạc xuyên qua các vật cản

- Dễ dàng trong việc phát triển ứng dụng: Bluetooth kết nối các ứng dụng với nhau thông qua các chuẩn “Bluetooth profiles”, do đó có thể độc lập

về phần cứng cũng như hệ điều hành sử dụng Có khả năng tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phần mềm hỗ trợ

- An toàn và bảo mật: Bluetooth được tích hợp với các khả năng ủy quyền, xác thực và mã hóa thông tin

1.2 CẤU TRÚC VÀ HOẠT ĐỘNG CỦA HỆ THỐNG BLUETOOTH

1.2.1 Cấu trúc của hệ thống Bluetooth

Trong kỹ thuật Bluetooth, các mạng được thiết lập theo cấu trúc hình sao Các thiết bị tham gia đồng thời trong một mạng con không được phép vượt qua số lượng 8 thiết bị Thiết bị trung tâm của mạng con được gọi là thiết bị chủ (master), còn các thiết bị khác được gọi là thiết bị tớ (slave)

Thiết bị chủ (Master Unit)

Là thiết bị duy nhất trong 1 Piconet, Master thiết lập đồng hồ đếm xung, kiểu nhảy tần số để đồng bộ tất cả các thiết bị trong cùng Piconet mà nó đang quản lý Master thường là thiết bị đầu tiên xử lý dữ liệu, quyết định số kênh

Trang 8

truyền thông Mỗi Piconet có một kiểu nhảy tần số duy nhất.

Thiết bị tớ (Slave Unit)

Là tất cả các thiết bị còn lại trong Piconet, một thiết bị không là Master thì phải là Slave Trong một Piconet, có tối đa 7 Slave ở trạng thái Active

và 255 Slaves ở trạng thái Parked (Inactive)

Hình 1: Các kiểu liên kết trong Piconet

Piconet

Picotnet là tập hợp các thiết bị được kết nối thông qua kỹ thuật Bluetooth theo mô hình Ad-Hoc (đây là kiểu mạng được thiết lập cho nhu cầu truyền dữ liệu tức thời, tốc độ nhanh và tự động huỷ sau khi truyền xong) Trong 1 Piconet chỉ có 1 thiết bị là Master Master thường là thiết bị đầu tiên khởi tạo kết nối, nó có vai trò quyết định số kênh truyền thông và thực hiện đồng bộ giữa các thành phần trong Piconet Các thiết bị còn lại là Slave, các Slave gửi gửi yêu cầu đến Master Trong kỹ thuật Bluetooth, 2 Slave muốn thực hiện liên lạc phải thông qua Master bởi chúng không thể kết nối trực tiếp với nhau, Master sẽ đồng bộ các Slave về thời gian và tần số Trong

1 Piconet có tối đa 7 Slave đang hoạt động cùng 1 thời điểm

Có 3 dạng Slave trong một Piconet:

Active: Là dạng Slave hoạt động, có khả năng trao đổi thông tin với

Master và các Slaves Active khác trong Piconet Các thiết bị ở trạng thái này được phân biệt thông qua địa chỉ MAC (Media Access

Control) hay AMA (Active Member Address) các địa chỉ này gồm 3 bit Vì

Trang 9

vậy, trong 1 Piconet có tối đa 8 thiết bị ở trạng thái Active (Master và 7

Slave)

Standby: Standby là một dạng inactive, thiết bị trong trạng thái này

không trao đổi dữ liệu, không có tác động của sóng radio, công suất được giảm đến mức tối thiểu để tiết kiệm năng lượng, thiết bị không có khả năng dò được bất cứ mã truy cập nào Có thể coi là những thiết bị nằm ngoài vùng kiểm soát của Master

Parked: là một dạng inactive, nhưng không có địa chỉ MAC Chúng như

ở trạng thái "ngủ" và sẽ được Master gọi dậy bằng tín hiệu tín hiệu báo hiệu Các thiết bị ở trạng thái Packed được đánh địa chỉ thông qua địa chỉ PMA (Packed Member Address) Đây là giá trị 8 bit nhằm mục đích phân biệt các packed Slave với nhau và có tối đa 255 thiết bị ở trạng thái này trong

1 Piconet

Hình 2: Sơ đồ một Piconet trong thực tế

1.2.2 Chồng giao thức trong Bluetooth

Chồng giao thức Bluetooth được thể hiện dưới dạng lớp như hình 3 Lớp dưới cùng là lớp vật lý, thông thường đó là phần điều chế và giải điều chế Tại lớp này, các tín hiệu vô tuyến được xử lý, việc loại bỏ can nhiễu được thiết lập thông qua phần tiền xử lý vô tuyến và các bộ lọc Trên lớp vật lý là lớp

Trang 10

băng tần cơ bản, bao gồm phần băng tần cao và phần băng tần thấp.Tại lớp này, các gói dữ liệu được định dạng bằng cách tạo các tiêu đề mở đầu, tính toán phần thông tin kiểm tra lỗi, các thủ tục truyền lại và có thể là mã hoá và giải mã dữ liệu nếu cần Bộ điều khiển kênh Link Controller (LC) thực hiện việc xử lý giao thức băng tần cơ sở và các thủ tục để kết nối kênh thông tin Các kênh trong hệ thống Bluetooth được quản lý bởi bộ quản lý kênh Link Manager (LM) Các thiết bị thực hiện việc thiết lập kênh, điều chỉnh các tham

số và quản lý kết nối thông qua giao thức quản lý kênh (LMP)

Hình 3: Chồng giao thức trong Bluetooth

Những gói thông tin lớn của người sử dụng sẽ được định dạng lại với kích thước nhỏ hơn để có thể truyền được trên kênh của Bluetooth Giao thức thích ứng và kênh thông tin logic (L2CAP) sẽ chịu tránh nhiệm xử lý các thủ tục này Tại lớp này, người sử dụng có thể đặt trước các chỉ tiêu chất lượng dịch vụ yêu cầu cần đảm bảo cho kênh thông tin

Trang 11

1.2.2.1 Lớp vật lý

Các thiết bị Bluetooth làm việc trong dải tần 2.4GHz dùng rộng rãi trong công nghiệp, khoa học và y tế (ISM) Do đây là dải tần miễn phí, nên Bluetooth phải chia sẻ dải tần này với các hệ thống khác Một thiết bị hết sức phổ biến cũng sử dụng dải tần này đó là lò vi sóng Mặc dù phần lớn năng lượng được tạo ra bị hấp thụ bởi thức ăn bên trong lò, nhưng vẫn có một phần nhỏ lọt ra ngoài và tạo ra can nhiễu Trong thực tế, năng lượng rò rỉ này có thể lớn bằng 1000 lần năng lượng của tín hiệu mà ta dự định thu Vì vậy, khi tính toán ta không thể bỏ qua can nhiễu này Tuy nhiên, can nhiễu này không phải lúc nào cũng tồn tại, nói cách khác chu kỳ bức xạ tuân theo tần số của nguồn cung cấp và không bao trùm toàn bộ phổ tần số

Để loại bỏ can nhiễu, Bluetooth thực hiện kỹ thuật trải phổ nhảy tần FHSS (Frrquency Hopping Spread Spectrum) Việc thực hiện nhảy giữa các tần số càng nhanh sẽ làm cho phổ của kênh thông tin trải càng rộng Điều này cho phép giảm can nhiễu từ các kênh truyền khác Tuy nhiên, khi nâng cao tính năng thì độ phức tạp cũng tăng theo Tốc độ nhảy tần lựa chọn cho hệ thống Bluetooth được cân nhắc trên cơ sở đảm bảo sự thỏa hiệp giữa tính năng và độ phức tạp

Tín hiệu được truyền thông qua việc sử dụng khóa dịch tần số Gaussian nhị phân Tốc độ số liệu ban đầu là 1 Mbps Tuy nhiên, tốc độ số liệu dành cho người dùng luôn thấp hơn 723 Kbps vì phải qua một số giao thức thích nghi Thông thường, công suất phát tối đa được giới hạn là 100 mW (tương đương với 20 dBm), có thể liên lạc giữa hai thiết bị với khoảng cách trực tiếp là 100

m Với các thiết bị cầm tay mức công suất phát là 1 mW 0 dBm được sử dụng rộng rãi, với khoảng cách thông tin thẳng là 10m Thông số độ nhạy được xác định trên cơ sở đảm bảo tỷ lệ lỗi bít của số liệu (BER) là 10-3 Thông số BER này sẽ được chuyển thành các chỉ tiêu ràng buộc của các thông số khác của kênh truyền Với tỷ lệ lỗi BER trên, một kênh thông tin thoại khi không sử dụng mã sửa sai sẽ gây ra một lượng méo đáng kể Vì vậy, tỷ lệ lỗi bit 10-3 được xem như là tham số chuẩn đánh giá chất lượng kênh truyền vô tuyến

Trong truyền dữ liệu Bluetooth sử dụng mã kiểm tra chẵn lẻ CRC, và cũng có thể là các mã sửa lỗi Nếu thiết bị thu phát hiện lỗi trong quá trình truyền thì nó sẽ yêu cầu truyền lại Vì thế, mặc dù tỷ lệ lỗi bít là 10-3, thậm chí

Trang 12

là cao hơn thì kênh thông tin vẫn làm việc khá tốt Phụ thuộc vào độ dài của khung và loại gói dữ liệu, người sử dụng có thể không nhận biết được sự thay đổi về lưu lượng truyền dẫn Điều này sẽ tốt cho tín hiệu trong liên lạc của người sử dụng, nhưng cũng tạo điều kiện cho những thiết bị nghe trộm có vị trí ngoài tầm phát hiện.

1.2.2.2 Băng tần cơ sở (BaseBand)

Băng tần cơ sở nằm trên tầng vật lý của Bluetooth Giao thức này có nhiệm vụ quản lý kênh truyền và liên kết vật lý Băng tần cơ sở được cài đặt như một bộ điều khiển kênh LC (Link Controller) Nó cùng với bộ quản lý kênh LM (Link Manager) thực hiện những công việc ở mức thấp như kết nối, quản lý năng lượng Băng tần cơ sở cũng quản lý những kết nối đồng bộ và không đồng bộ, quản lý các gói tin, thực hiện tìm kiếm và yêu cầu kết nối đến các thiết bị Bluetooth khác

Mỗi thiết bị Bluetooth có duy nhất một địa chỉ được thiết đặt bởi nhà sản xuất có độ dài 48 bit Địa chỉ này được gọi là địa chỉ thiết bị Bluetooth (BD_ADDR), nó dùng để nhận dạng thiết bị khi thiết lập kết nối Trước khi kết nối được thiết lập, thiết bị khởi tạo kết nối cần phải biết địa chỉ BD_ADDR của thiết bị mà nó sẽ thực hiện kết nối

Đối với các kết nối được thiết lập lần đầu, thiết bị khởi tạo kết nối thu thập địa chỉ của tất cả các thiết bị liền kề, sau đó sẽ liên lạc trực tiếp với thiết

bị đầu cuối mà mình muốn kết nối Quá trình này được gọi là thủ tục truy vấn

Về nguyên tắc, khi thủ tục này đã hoàn thành, thông tin thu thập được có thể được lưu giữ và sử dụng lại cho các lần kết nối sau

Bước đầu tiên trong thủ tục tìm kiếm các thiết bị khác là gửi một bản tin truy vấn Bản tin này được truyền lặp lại theo một cú pháp chuẩn với chuỗi nhảy tần ngắn length 32

Bất kỳ thiết bị nào muốn được các thiết bị khác phát hiện, cần thường xuyên quét chuỗi nhảy tần truy vấn để tìm bản tin truy vấn, quá trình này gọi

là quét truy vấn Một thiết bị đang quét sẽ trả lời cho thiết bị truy vấn địa chỉ BD_ADDR và giá trị đồng hồ hiện thời của nó Bản tin truy vấn thường là ẩn danh, vì thế thiết bị quét không thể nhận biết được thiết bị gửi truy vấn cũng như thiết bị truy vấn đã nhận thông tin tra lời chính xác hay chưa

Trang 13

Thiết bị truy vấn thu thập các trả lời trong một khoảng thời gian, sau đó tìm ra thiết bị mong muốn thông qua bản tin trang Bản tin này được gửi thông qua một chuỗi nhảy tần length 32, được xác định thông qua 24 bit có trọng số nhỏ nhất của địa chỉ BD _ADDR (được ký hiệu là phần địa chỉ thấp LAP (Lower Address Part)) của thiết bị đích.

Thiết bị sẽ nghe bản tin trong khi nó ở trạng thái quét trang Pha của chuỗi FH được xác định thông qua đồng hồ của thiết bị Thiết bị quét trang có được thông tin trả lời từ các trả lời truy vấn, vì vậy thiết bị này có thể xác định được tần số của thiết bị được hỏi một cách nhanh chóng và chính xác.Thủ tục truy vấn có thể được bỏ qua nếu hai thiết bị đã từng thiết lập kết nối trước đó và muốn kết nối lại Nếu thời gian giữa hai lần kết nối khá lớn thì đồng hồ của các thiết bị có thể bị trôi, dẫn đến việc ước lượng đồng hồ của thiết bị sẽ không còn chính xác Do đó thời gian thiết lập lâu hơn do lệch pha giữa các chuỗi nhảy tần

Khi nhận được bản tin trả lời, một sự đồng bộ FH tương đối được thiết lập giữa thiết bị truy vấn và được truy vấn Thông thường, thiết bị hỏi là thiết

bị chủ và thiết bị được hỏi là thiết bị tớ Trước khi kênh thông tin được thiết lập, các thiết bị cần trao đổi thêm một số thông tin Chuỗi FH, đồng hồ và mã truy nhập kênh (CAC) đều được lấy từ thiết bị chủ Để thực hiện việc tinh chỉnh chuỗi đồng bộ FH, thiết bị tớ cần địa chỉ BD_ADDR và đồng hồ của thiết bị chủ

Thông tin này được truyền trong gói tin đặc biệt từ thiết bị chủ tới thiết

bị tớ Khi thiết bị tớ có đầy đủ thông tin, thiết bị chủ và tớ có thể chuyển từ chuỗi nhảy tần truy vấn sang chuỗi nhảy tần kênh thông thường

1.2.2.3 Giao thức quản lý kênh LMP (Link Manager Protocol)

Giao thức quản lý kênh thực hiện việc thiết lập kênh truyền, điều khiển kết nối Bluetooth Giao thức này bao gồm cài thiết lập ngắt hoặc định dạng cấu hình kết nối Đồng thời LM cũng chịu trách nhiệm trao đổi thông báo liên quan đến sự an toàn Các LM trong những đơn vị khác nhau trao đổi thông báo điều khiển sử dụng LMP Công nghệ Bluetooth đã định nghĩa một tập hợp lớn thông báo điều khiển hoặc những đơn vị dữ liệu giao thức LMP

protocol data units (PDU) Một số PDU được sử dụng để mang thông tin cần

Trang 14

thiết cho quá trình cặp đôi, xác thực và mã hóa.

Các LMP PDU được chuyển trong gói thay vì dữ liệu bình thường Để phân biệt những gói LMP với những gói khác, trong đầu gói của các thông báo LMP sử dụng một mã kiểu đặc biệt Để tránh tràn bộ đệm gói nhận được, Bluetooth thường áp dụng điều khiển luồng tới gói dữ liệu không đồng bộ Khuôn dạng PDU gồm 1 byte đầu chứa dữ liệu LM gồm 2 phần: Phần đầu có

độ dài 1 bít xử lý thao tác địa chỉ (ID), 7 bít tiếp theo chứa mã thao tác, thông báo biết kiểu LMP PDU đang được gửi Mỗi thông báo LMP có một mã thao tác duy nhất Quá trình kết nối luôn bắt đầu với sự phân trang đơn vị chủ, tớ Sau khi trang băng tần cơ sở và những thông báo trả lời được trao đổi, quá trình cài đặt kết nối bắt đầu

1.2.2.4 Giao thức thích nghi và điều khiển kênh L2CAP (Logical link control and adaption protocol)

L2CAP điều khiển quá trình chia ra và ghép lại từng đoạn gói dữ liệu, chia kênh và bảo hành chất lượng của dịch vụ L2CAP được xem như một bộ lọc giữa lớp cao và lớp thấp của mô đun Bluetooth trên máy chủ (hình 4)

Hình 4: Các loại kênh L2CAP

Trang 15

Trong thực tế nếu thông tin chuyển tải trên mạng internet thì có thể lưu lượng quá lớn để nhập vào gói băng tần cơ sở, vì vậy tại giao thức này những gói dữ liệu sẽ bị cắt thành những khúc dữ liệu nhỏ hơn trước khi được gửi cho băng tần cơ sở như một quá trình tiền xử lý Khi nhận, quá trình được thực hiện ngược lại, tại băng tần cơ sở những gói tin được ghép vào trong những thực thể lớn hơn trước khi chuyển đi.

1.2.2.5 Giao diện điều khiển thiết bị HCI (Host Controller Interface)

HCI cung cấp một giao diện cho phép giữa lớp thấp và lớp cao trong các ngăn truyền thông Bluetooth, đồng thời cho phép truy cập đến trạng thái của phần cứng và các thanh ghi điều khiển HCI cung cấp khả năng phân chia: phần cứng rađiô, những hàm liên quan từ những giao thức lớp cao hơn,

có thể chạy trên một bộ xử lý riêng biệt của máy chủ Với việc sử dụng HCI,

ta có thể sử dụng một mô đun Bluetooth cho nhiều máy chủ với những ứng dụng khác nhau Tương tự, tại lớp ứng dụng, máy chủ có thể sử dụng bất kỳ

mô đun Bluetooth nào hỗ trợ HCI Về bản chất, giao diện này cung cấp một phương thức duy nhất để truy cập đến băng tần cơ sở Cấu tạo HCI gồm 3 phần: Host – Transport layer – Host controller (hình 5) Mỗi phần đóng một vai trò khác nhau trong hệ thống HCI

Những lệnh HCI được chuyển tải giữa qua một số kênh vật lý đã được định nghĩa là: USB, RS232 và mạch tích hợp dùng để chuyển dữ liệu từ sang nối tiếp UART Máy chủ trao đổi dữ liệu qua việc sử dụng những gói lệnh được gọi những gói sự kiện Dữ liệu qua kết nối Bluetooth được truyền đi theo các gói

Nhằm ngăn ngừa sự tràn bộ đệm trong HC, điều khiển luồng được sử dụng trong việc định hướng từ máy chủ đến HC Khi khởi tạo, máy chủ phát lệnh đọc kích thước và liên tục theo dõi kích thước của bộ đệm HC liên tục thông tin số lượng gói phát đi qua sự kiện Number of Completed Packet

HCI cung cấp các lệnh cho phép truy cập tới phần cứng Bluetooth Các lệnh HCI cho phần Host quyền điểu khiển kết nối với các thiết bị Bluetooth khác Những lệnh này cần sử dụng LM để trao đổi các lệnh LMP với các thiết

bị Bluetooth khác

Trang 16

Cấu hình truy nhập chung GAP (Generic Acess Profile) bao gồm những định nghĩa cơ bản, những khuyến cáo và những yêu cầu liên quan đến kiểu thao tác, kết nối và cài đặt kênh Tất cả cấu hình Bluetooth hiện tại đều sử dụng GAP Mục đích cơ bản của tiêu chuẩn Bluetooth là thay thế cáp tầm ngắn vì vậy các cấu hình đều được thiết kế phục vụ mục đích cơ bản này Cấu hình chỉ định giải pháp khả thi cho những chức năng được miêu tả trong các mô hình sử dụng, đồng thời nó cũng định nghĩa những giao thức và các đặc trưng của mỗi giao thức hỗ trợ cho từng mô hình sử dụng riêng biệt Một số cấu hình tiêu biểu trong công nghệ Bluetooth là: (File Transfer Profile, Object Push Profile, và Synchronization Profile) Các cấu hình này đều phụ thuộc vào GAP Những sản phẩm Bluetooth hỗ trợ những

bộ cấu hình khác nhau, và để hỗ trợ một bộ cấu hình nào đó thì những điểm

Trang 17

đặc trưng bắt buộc của cấu hình đó phải được thực hiện đầy đủ.

1.2.3 Hoạt động của hệ thống Bluetooth

1.2.3.1 Các liên kết vật lý trong Bluetooth

Thông tin trao đổi trong mạng được thực hiện thông qua việc gửi các gói tin qua lại giữa các thiết bị Thông tin hai chiều được thực hiện thông qua kỹ thuật phân chia khe thời gian gán cho các thiết bị tham gia quá trình trao đổi thông tin Thiết bị truy nhập kênh truyền ở khe thời gian kế tiếp sẽ được quyết định bởi thiết bị chủ

Ở trạng thái đang thực hiện kết nối, các thiết bị trong mạng tuân theo chuỗi nhảy tần FH xác định từ phần địa chỉ thấp và đồng hồ của thiết bị chủ

Vì thiết bị chỉ có thể là máy chủ của một mạng con tại một thời điểm nên mỗi mạng con có những chuỗi FH khác nhau Để làm việc tốt trong mạng con, mỗi thiết bị tớ cần liên tục điều chỉnh độ trôi của đồng hồ theo thiết bị chủ thông qua việc giám sát lưu lượng truyền qua kênh

Trong Bluetooth chỉ có quá trình trao đổi thông tin qua lại giữa thiết bị chủ và tớ Do vậy, việc trao đổi thông tin giữa hai thiết bị tớ phải được chuyển tiếp qua máy chủ Nếu một thiết bị nào đó tham gia vào tất cả các quá trình truyền tin có thể sẽ gây ra tắc nghẽn Theo nguyên tắc, một thiết bị Bluetooth có thể tham gia nhiều mạng con cùng một lúc Quá trình này được thực hiện thông qua thủ tục phân chia thời gian giữa các mạng con Trong trường hợp này, thiết bị sẽ hoạt động ở chế độ công suất thấp, nhằm tiết kiệm năng lượng

Khi một thiết bị tham gia vào cả hai mạng con, thông tin có thể trao đổi giữa hai mạng thông qua các thiết bị cầu nối Khi đó sẽ nảy sinh vấn đề về định thời và chất lượng dịch vụ Một thiết bị chỉ có thể là máy chủ của một mạng con mà nó là thành viên

Công nghệ Bluetooth được thiết kế để có thể truyền tải nhiều loại dữ liệu khác nhau Dữ liệu không cần thiết lập trước băng thông cũng như cam kết về trễ truyền dẫn Đây là dịch vụ truyền file hoặc đồng bộ dữ liệu Đối với các dịch vụ thời gian thực, kênh thông tin hai chiều thì trễ truyền của thông tin phản hồi phải nhỏ, nếu không chất lượng sẽ bị ảnh hưởng Loại lưu lượng này được gọi là đồng bộ Ví dụ điển hình của loại lưu lượng này là thông tin thoại

Trang 18

và video Trong loại lưu lượng đẳng thời sự thay đổi giữa các mẫu dữ liệu giữ vai trò tương đối quan trọng, trong khi sự bất cân bằng và trễ phản hồi không tác động nhiều đến dịch vụ.

Công nghệ Bluetooth có thể truyền được tất cả các loại lưu lượng trên, thậm chí nó còn cho phép kết hợp loại lưu lượng cận đồng bộ và đồng bộ giữa máy chủ và máy tớ tại cùng một thời điểm

Ta có thể phân chia thành các loại liên kết sau:

ACL Link (Asynchronous Connection-oriented Link): Liên kết cận

đồng bộ hướng kết nối, ACL là liên kết từ một điểm tới nhiều điểm, giữa thiết

bị chủ và các thiết bị tớ trong mạng con, liên kết này được thiết lập cho việc truyền những gói dữ liệu cơ bản (primarily packet data) Chỉ tồn tại duy nhất một kết nối ACL Chúng hỗ trợ những kết nối chuyển mạch gói đối xứng và không đối xứng Những gói tin đa khe dùng ACL link và có thể đạt tới tốc độ truyền tối đa 723 Kbps ở một hướng và 57.6 kbps ở hướng khác Master điều khiển độ rộng băng tần của ACL link và sẽ quyết định xem trong một piconet, một slave có thể dùng băng tần bao nhiêu Những gói tin quảng bá truyền bằng ACL link, từ master đến tất cả các slave Hầu hết các gói tin ACL đều có thể truyền lại

SCO link (Synchronous Connection Oriented): Liên kết hướng kết nối

đồng bộ (SCO) là kết nối đối xứng điểm – điểm giữa một Master và một Slave trong piconet Kết nối SCO chủ yếu dùng để truyền dữ liệu tiếng nói Hai khe thời gian liên tiếp được chỉ định để dành riêng cho SCO link Dữ liệu truyền theo SCO link có tốc độ 64 Kbps Master có thể hỗ trợ tối đa 3 kết nối SCO đồng thời Các gói SCO không chứa mã kiểm tra chu kỳ thừa CRC (Cyclic Redundancy Check) và không bao giờ truyền lại Liên kết SCO chỉ được thiết lập sau khi liên kết ACL đầu tiên được thiết lập

Ngoài ra còn một kiểu kết nối lôgic khác mang thông tin trên những khe thời gian dành sẵn được gọi là liên kết hướng kết nối đồng bộ tăng cường (eSCO) Cả hai kênh liên kết SCO và eSCO này cho phép truyền các gói dữ liệu có kích thước cố định trên các khe thời gian dành trước ở trên kênh vật

lý Kênh liên kết eSCO linh hoạt hơn so với kênh liên kết SCO, nó cho phép lựa chọn nhiều tốc độ bit khác nhau, và kênh kết nối này có độ tin cậy cao

Trang 19

hơn vì nó giới hạn số lần truyền lại giữa các khe thời gian được đặt trước.

1.2.3.2 Các chế độ kết nối

Active mode: Trong chế độ này, thiết bị Bluetooth tham gia vào hoạt

động của mạng Thiết bị master sẽ điều phối lưu lượng và đồng bộ hóa cho các thiết bị slave

Sniff mode: Là chế độ tiết kiệm năng lượng của thiết bị đang ở trạng

thái active Ở chế độ Sniff thiết bị slave nghe tín hiệu từ mạng với tần số giảm

từ đó tiết kiệm được năng lượng Tần số này phụ thuộc vào tham số của ứng dụng Đây là chế độ ít tiết kiệm năng lượng nhất trong 3 chế độ tiết kiệm năng lượng

Hold mode: Là chế độ tiết kiệm năng lượng của thiết bị đang ở trạng

thái active Master có thể đặt chế độ Hold mode cho slave của mình Các thiết

bị có thể trao đổi dữ liệu ngay lập tức khi thoát khỏi chế độ Hold mode Đây

là chế độ tiết kiệm năng lượng trung bình trong 3 chế độ tiết kiệm năng lượng

Park mode: Là chế độ tiết kiệm năng lượng khi thiết bị vẫn còn trong

mạng nhưng không tham gia trong qua trình trao đổi dữ liệu (inactive) Thiết

bị ở chế độ Park mode thiết bị lắng nghe tín hiệu đồng bộ hoá và thông điệp quảng bá của Master Đây là chế độ tiết kiệm năng lượng nhất trong 3 chế độ tiết kiệm năng lượng

1.2.3.3 Địa chỉ thiết bị

Có 4 loại địa chỉ khác nhau có thể gán cho một thiết bị Bluetooth là:

BD_ADDR, AM_ADDR, PM_ADDR, AR_ADDR.

BD_ADDR: Bluetooth Device Address Là 48 bit địa chỉ MAC theo

tiêu chuẩn IEEE quy định, mỗi thiết bị Bluetooth chỉ xác định duy nhất 1 địa chỉ BD_ADDR trên toàn cầu, trong đó 3 byte cho nhà sản xuất thiết bị và 3 byte cho sản phẩm

AM_ADDR: Active Member Address Nó còn gọi là địa chỉ MAC

(Media Access Control) của một thiết bị Bluetooth Nó là một con số 3 bit dùng để phân biệt giữa các active slave tham gia trong 1 piconet Vì ở trường GF2, nên có tối đa 7 Slave active trong 1 piconet, còn 000 là địa chỉ quảng bá

Trang 20

(truyền đến tất cả các thành viên trong piconet) Địa chỉ này chỉ tồn tại khi Slave ở trạng thái active.

PM_ADDR: Parked Member Address Là một con số 8 bit, phân biệt

các parked Slave Do đó có tối đa 255 thiết bị ở trạng thái parked Địa chỉ này chỉ tồn tại khi Slave ở trạng thái parked

AR_ADDR: Access Request Address Địa chỉ này được dùng bởi

parked Slave để xác định nơi mà nó được phép gửi thông điệp yêu cầu truy cập tới

1.2.3.4 Định dạng gói tin

Một gói dữ liệu gồm 3 phần là mã truy nhập Access code (72 bit), tiêu

đề gói header (54 bit) và khung dữ liệu payload (0-339 byte) Trong đó kích

thước của Access Code và Header là cố định

Mã truy nhập (Access Code)

Mã truy nhập là phần thông tin đến trước trong mỗi gói Gồm 72 bit dùng trong việc đồng bộ dữ liệu, định danh, báo hiệu Có 3 loại Access code: Channel Access Code (CAC), Device Access Code (DAC) and Inquiry Access Code (IAC) CAC dùng để xác định một piconet duy nhất, DAC dùng

để thực hiện yêu cầu kết nối, IAC dùng để thực hiện tìm kiếm thiết bị Mỗi mạng con sử dụng một mã truy nhập duy nhất được tạo ra từ địa chỉ BD_ADDR của máy chủ Vì vậy, thông qua việc kiểm tra mã truy nhập, máy thu có thể xác định được gói thông tin này thuộc mạng con nào Nếu gói thông tin thuộc mạng con khác, quá trình xử lý gói tin sẽ được huỷ bỏ để tiết kiệm năng lượng Nhờ tính năng có thể xác định ranh giới của một khe thời gian do đó mã truy nhập còn được dùng để đồng bộ thời gian của máy tớ theo đồng hồ máy chủ Điều này là hết sức cần thiết bởi vì các thiết bị khác nhau

sử dụng các đồng hồ với tần số thạch anh khác nhau Mỗi thiết bị tớ của mạng con phải liên tục điều chỉnh đồng hồ của nó theo đồng hồ của máy chủ, nếu không thiết bị tớ sẽ mất liên kết với máy chủ

Tiêu đề (Header)

Tiêu đề chứa các thông tin như thứ tự, địa chỉ đích, kiểm lỗi, v.v… của

gói thông tin được sử dụng để xác định từng máy tớ trong mạng con Header

là một trường gồm 3 bit địa chỉ truyền dẫn logic (LT_ADDR) Máy chủ sẽ

Trang 21

gán các địa chỉ khác không cho các máy tớ khi thực hiện thiết lập kết nối Địa chỉ toàn không được sử dụng cho bản tin quảng bá Ngoài ra, phần tiêu đề còn mang thông tin liên quan đến loại lưu lượng dữ liệu, điều khiển lưu lượng và chế độ truyền lại Để tăng khả năng chống lỗi cho phần tiêu đề của gói tin, phần này được mã với tỷ lệ R=1/3, tức là mỗi bit được lặp lại ba lần.

Khung dữ liệu (Payload)

Dữ liệu người dùng được truyền thông qua khung dữ liệu Độ dài của trường này có thể thay đổi phụ thuộc vào loại lưu lượng, có thể từ 0 byte (dùng cho gói tin phản hồi) cho đến 339 bytes (cộng với 4 bytes tiêu đề và mã CRC) Định dạng của gói tin được biểu diễn ở trên hình 6

Hình 6: Định dạng gói tin trong Bluetooth

Trang 22

Một Master hay Slave của Piconet này có thể thành Slave của Piconet khác nếu được Master của piconet khác thực hiện tiến trình cặp đôi Có nghĩa là bất kỳ thiết bị nào cũng có thể tạo 1 Piconet mới bằng cách cặp đôi một thiết bị đã là thành viên của một Piconet nào đó Ngược lại, bất kỳ thiết bị tham gia trong 1 Piconet, đều có thể thực hiện cặp đôi lên Master hay Slave của Piconet khác Điều này có thể dẫn đến việc chuyển đổi vai trò giữa Master và Slave trong kết nối mới này.

Các kết nối bên trong một Piconet được thiết lập thông qua các thiết bị chia sẻ, thiết bị này thuộc về 2 hay nhiều Piconet, nó dùng kỹ thuật phân chia thời gian để chuyển đổi qua lại giữa các Piconet

1.2.3.6 Cơ chế truyền và sửa lỗi

Kỹ thuật Bluetooth dùng kỹ thuật nhảy tần số trong các khe thời gian timeslot (TS), để làm việc trong môi trường nhiễu tần số radio Để tạo nên sức mạnh liên kết truyền thông và loại bỏ can nhiễu, Bluetooth thực hiện kỹ thuật trải phổ nhảy tần FHSS Tổng tất cả có 79 kênh, với băng thông dành cho mỗi kênh là 1MHz Trong quá trình trao đổi thông tin, hệ thống thực hiện việc nhảy 1600 lần trong một giây để trải phổ thông tin theo mẫu giả ngẫu nhiên Mục đích ở đây là nếu hệ thống làm việc trên một kênh có chất lượng không tốt, lần nhảy tần tiếp theo, sau đó 625ms, hy vọng là sẽ rơi vào kênh truyền tốt

So sánh với các hệ thống khác làm việc trong cùng băng tần, sóng radio của Bluetooth nhảy tần nhanh và dùng gói ngắn hơn Vì nhảy nhanh và packet ngắn sẽ làm giảm va chạm với sóng từ lò vi sóng và các và các phương tiện gây nhiễu khác trong khí quyển

Bluetooth dùng kỹ thuật sửa lỗi tiến FEC(Forward Error Correction) để sửa sai do nhiễu tự nhiên khi truyền khoảng cách xa FEC cho phép phát hiện lỗi, biết sửa sai và truyền đi tiếp

Giao thức băng tần cơ sở của Bluetooth là sự kết hợp giữa chuyển mạch và chuyển đổi gói

Các khe thời gian có thể được dành riêng cho các packet phục vụ đồng

bộ Bluetooth thực hiện chiến lược nhảy tần cho mỗi packet được truyền đi

Trang 23

Một gói tin trên danh nghĩa sẽ chiếm 1 timeslot, nhưng nó có thể mở rộng chiếm đến 3 hay 5 timeslot.

Bluetooth hỗ trợ 1 kênh dữ liệu bất đồng bộ, hay 3 kênh tín hiệu thoại đồng bộ nhau cùng một lúc, hay 1 kênh hỗ trợ cùng lúc dữ liệu bất đồng bộ và đồng bộ

CHƯƠNG II CƠ CHẾ BẢO MẬT BLUETOOTH

Chương II trình bày về cơ chế bảo mật Bluetooth Nội dung chương bao gồm các phần: cơ sở an toàn Bluetooth, quy trình bảo mật, cơ chế mã hóa và các loại khóa trong Bluetooth, nhằm mục đích nắm được cơ chế bảo mật trong Bluetooth, phân tích ưu nhược điểm và đưa ra giải pháp tăng cường bảo mật cho Bluetooth

2.1 CƠ SỞ AN TOÀN BLUETOOTH

2.1.1 Giới thiệu chung

Việc bảo đảm an toàn cho Bluetooth được thực hiện từ trong thiết kế và ngay từ những việc đơn giản nhất Bluetooth rất linh hoạt, có thể làm tăng độ phức tạp cho quá trình tìm kiếm, dự đoán Qua nghiên cứu khái quát các loại cấu hình Bluetooth ta thấy công nghệ này có thể được sử dụng trong nhiều ứng dụng khác nhau Nhiều thiết bị với những chức năng khác nhau có thể được kết nối với nhau qua kỹ thuật Bluetooth

Yêu cầu về an toàn trong từng ứng dụng Bluetooth có mức độ khác nhau Vì vậy, Bluetooth được thiết kế để cung cấp những đặc tính an toàn đã nhúng sẵn cho nhiều loại thiết bị Qua nghiên cứu ta thấy có bốn vấn đề cơ bản bảo đảm an toàn lý tưởng trong kỹ thuật Bluetooth:

1 Cấu hình an toàn và dễ sử dụng

2 Bảo đảm bí mật

Trang 24

3 Xác thực.

4 Không danh tính (khả năng không bị phát hiện)

Để bảo đảm 4 yếu tố trên, kỹ thuật Bluetooth cung cấp các khả năng kết nối, xác thực, mã hoá và các yêu cầu về nặc danh

2.1.2 Các khái niệm

Mạng cá nhân PAN (Personal Area Network):

Mạng cá nhân là một tập hợp số lượng lớn các thiết bị sử dụng công nghệ không dây Bluetooth được thiết kế để hỗ trợ mạng PAN không dây mà không cần phải thiết đặt mạng trước Có thể là kết nối giữa những thiết bị cố định, như kết nối giữa một máy tính để bàn và bàn phím hoặc chuột, có thể là kết nối giữa một điện thoại di động và một tổ hợp cố đinh Một PAN gồm các đơn vị có khả năng kết nối và trao đổi thông tin Bluetooth được sử dụng như một giao diện kết nối cục bộ giữa những đơn vị cá nhân khác nhau như những điện thoại di động, máy tính cá nhân, máy in, bàn phím, chuột, tai nghe, loa

Để cung cấp khả năng tương tác giữa các thiết bị, công nghệ Bluetooth thiết kế các mức an toàn khác nhau tùy theo nhu cầu sử dụng Những giải pháp an toàn Bluetooth được thiết kế với nguyên lý sao cho bất kỳ người sử dụng bình thường nào cũng có thể định hình và quản lý được những hoạt động cần thiết một cách an toàn nhằm bảo vệ những mối liên kết truyền thông Thông tin trao đổi qua Bluetooth có thể rất dễ bị tổn thương, nghe trộm Vì vậy, yêu cầu của người dùng là không muốn có kết nối bất hợp pháp nào tới thiết bị cá nhân và cũng không muốn bị theo dõi định vị khi sử dụng các thiết bị được tích hợp công nghệ Bluetooth

Kết nối Ad Hoc

Trang 25

Hình 7: Mô hình một mạng AD - Hoc

Mạng ad hoc là một loại mạng kết nối đặc biệt có tác dụng giải quyết vấn đề kết nối khi không có mối quan hệ trước giữa các thiết bị Bên cạnh việc kết nối với các thiết bị cố định, có lúc ta muốn thiết lập kết nối với các thiết bị khác trên các phương tiện di chuyển Cơ chế cặp đôi Bluetooth cung cấp khả năng cài đặt những quan hệ an toàn trong mạng Ad hoc Việc phân biệt kết nối ad hoc không dựa vào vị trí hay khoảng cách mà dựa vào sự liên lạc giữa các điểm Kết nối Ad hoc không cần thiết bị hỗ trợ kết nối, mạch điều khiển trung tâm, không cần có cơ sở hạ tầng và cũng không có sự can thiệp của người điều hành Có thể nói kịch bản kết nối Bluetooth là một số lượng lớn các kết nối ad hoc cùng tồn tại độc lập chồng chéo lên nhau cùng một vùng mà có thể không có sự phối hợp với nhau

Vì mạng ad hoc tự nhiên là loại mạng kết nối mà không có mối quan hệ trước giữa các thiết bị nên để bảo đảm các yêu cầu về an toàn (xác thực và mã hóa) của những kết nối truyền thông thì những quan hệ an toàn phải được thiết lập Cơ chế cặp đôi trong kỹ thuật Bluetooth cung cấp khả năng thiết đặt những quan hệ an toàn của mạng ad hoc

Tính Bí mật

Bí mật là bảo đảm những thông tin riêng tư của người sử dụng, không để người khác biết được Có nhiều các bảo đảm bí mật, có thể giữ bí mật bằng cách thay đổi dữ liệu nguyên bản, thường gọi văn bản gốc thành một văn bản mới, phương pháp này gọi là Mã hóa văn bản Phép biến đổi mã hoá phải có ngược để khôi phục văn bản gốc từ bản mã Để giữ bí mật quá trình biến đổi

từ bản rõ 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, ta dựa trên một tham số gọi là khóa và sự biến đổi được gọi là mã hóa Một cơ chế mã hóa tốt là trừ khi khóa được biết, thì không thể khôi phục văn bản gốc từ bản mã Tuy nhiên phải có rất nhiều nghiên cứu, thẩm định mức độ bí mật của cơ chế mã hóa và quá trình sinh, trao đổi và lưu giữ khóa

Trang 26

Do đó, hầu như không thể khẳng định một công nghệ, hay một kỹ thuật nào

Tính sẵn sàng là khả năng sẵn có, chờ đợi của hệ thống Sẵn sàng ở đây

là khả năng gần gũi, thân thiện và luôn sẵn sàng, tin cậy của hệ thống

Tính xác thực

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 kỹ thuật Bluetooth được xem như quá trình xác minh khóa kết nối trong thời gian làm thủ tục cặp đôi của các thiết bị

Tính uỷ quyền

Cho phép ai quyền truy nhập tới cái gì đó Với Bluetooth tính uỷ quyền

có nghĩa là quyết định một thiết bị có quyền truy nhập một dịch vụ hay không Việc chấp nhận quyền truy nhập tới dịch vụ có thể tùy thuộc vào những sự thiết đặt chuyên biệt về thiết bị

Cơ chế đối xứng và phi đối xứng

Các cơ chế mã hóa, giải mã được phân biệt dựa trên việc phân loại khóa:

Có thể phân làm hai loại khoá là khóa đối xứng và khoá phi đối xứng Cơ chế đối xứng có thể hiểu là tình trạng đối xứng giữa các máy Khóa mã và khóa dịch phải giống nhau Vấn đề đặt ra trong cơ chế này là việc truyền khóa từ nơi gửi đến nơi nhận phải được thực hiện sao cho không để lộ thông tin về khóa Có hai loại mã chính thực hiện cơ chế này là mã khối và mã dòng

Cơ chế không đối xứng là phương pháp thực thi một cặp biến đổi mã hóa và giải mã mà ở đó khóa mã và khoá dịch không giống nhau Khóa của bên gửi và bên nhận có thuộc tính không đối xứng, cơ chế này còn được gọi

là cơ chế khóa công khai Tên khoá công khai được đặt từ thực tế cơ chế không cân đối, mỗi thiết bị có một cặp khóa riêng và khóa công khai Khóa riêng được giữ bí mật và khóa công khai có thể tiếp cận tới mọi người

Trang 27

Điểm mạnh của cơ chế không đối xứng là giải quyết được những vấn đề nảy sinh trong phân phối từ cơ chế đối xứng nhưng nó có hạn chế là sự cần thiết phải có ràng buộc giữa hai khóa liên quan đến một cặp biến đổi mã hóa

và giải mã được gọi là khóa công khai và khóa riêng tương ứng Trong sơ đồ khóa công khai, khóa riêng được giữ bí mật và không thể khôi phục được khoá riêng từ khóa công khai hoặc bất kỳ phương tiện công khai nào

Mã Khối và mã dòng

Mã Khối: Mã khối là loại mã đối xứng thực hiện thay đổi một số lượng

cố định dữ liệu văn bản gốc thành một khối dữ liệu mã sử dụng một khóa, và

có một sự biến đổi ngược lại sử dụng cùng khóa đó Mã Khối được dùng như các khối để xây dựng những loại mã khác

Mã Dòng: Mã Dòng là kiểu mã mà dòng thông tin rõ được thay đổi bằng

dòng mã bằng cách cộng với dòng khóa chạy xuyên suốt những ký tự của văn bản rõ Mã Dòng có quá trình giải mã là lấy dòng khóa trừ đi dòng mã, Bluetooth sử dụng thuật toán Mã dòng E0 để mã hóa dữ liệu

Hình 8: Sơ đồ khối các loại mã: a/ Mã khối b/ Mã dòng

Các loại khoá

Cơ chế an toàn Bluetooth được xây dựng trên cơ sở sử dụng cơ chế mã đối xứng cho quá trình xác thực, sinh khóa và mã hóa Để thực hiện quá trình cặp đôi và kiểm tra kết nối giữa các thiết bị, Bluetooth thực hiện một thủ tục xác thực, sử dụng khóa kết nối Link key

Trang 28

Link key không chỉ sử dụng cho sự xác thực mà còn được sử dụng cho việc sinh khóa để mã hóa dữ liệu gửi lên kênh Nội dung thông tin được giữ bí mật qua quá trình mã hóa này Khóa liên kết Link key được tạo ra trong thời gian cặp đôi của hai thiết bị

Có hai trạng thái thiết lập kết nối, trạng thái thứ nhất là một thiết bị muốn thiết lập kết nối với một thiết bị mà nó chưa tổ chức cặp đôi hay khi dữ liệu bị trục trặc hoặc mất thông tin cặp đôi liên quan Trạng thái thứ 2 là một thiết bị muốn giao tiếp với một thiết bị mà nó đã từng cặp đôi Hệ thống Bluetooth có hai kiểu link key: Khoá lâu dài và khoá tạm thời Khóa lâu dài

sử dụng cho các quá trình cặp đôi, xác thực và mã hóa Khoá lâu dài được phân thành hai loại: Khóa đơn vị và khóa kết hợp Khóa đơn vị là khóa mà một đơn vị tự phát sinh và sử dụng như một Link key với thiết bị khác, khóa kết hợp là loại khóa mà thiết bị phát sinh trong quá trình kết hợp, cặp đôi với thiết bị khác

Vì khóa đơn vị là khóa có thể được nhiều thiết bị biết tới nên tất cả các thiết bị khác đều có thể cặp đôi khi có cùng khóa đơn vị Trong khi đó khóa kết hợp thì chỉ nó và thiết bị kết hợp cùng nó để sinh khóa biết Khóa tạm thời được được chia thành hai loại là khóa khởi đầu và khóa chủ, đây là 2 loại khóa kết hợp Khóa khởi đầu là loại khóa chỉ tồn tại trong thời gian cặp đôi của hai thiết bị (khi chưa tạo ra khoá liên kết)

Khóa chủ là một Link key mà máy chủ sinh ra trước nhằm cài đặt một thông tin đã mã hóa truyền tới các thiết bị tớ (từ hai thiết bị trở lênh Để thực hiện quá trình mã hoá, Bluetooth sử dụng ba loại khóa mã: khóa mã hóa KC (encryption key), khóa mã hóa nén K'C (constrained encryption), và khóa

khung dữ liệu KP (Payload Key) Khóa KC là khóa chính điều khiển quá trình

mã hóa, khoá KP là dòng khoá để thực hiện mã hoá

Khi khóa KC có chiều dài vượt qua sự cho phép trong quy định về chiều dài khóa, thì được thay thế bởi khóa mã nén K’C Khóa KP được tạo từ khóa

mã hóa nén K’C và là trạng thái ban đầu của bộ tạo khóa nối tiếp

2.2 QUI TRÌNH BẢO MẬT TRONG BLUETOOTH

2.2.1 Mở đầu

Ngày nay, khi khoa học kỹ thuật phát triển mạnh mẽ thì thông tin cũng

Trang 29

càng được phát triển và vấn đề an toàn thông tin ngày càng được quan tâm đặc biệt Có thể nói an toàn thông tin là vấn đề mang tính sống còn đối với bất

kỳ kỹ thuật truyền tin nào Bluetooth SIG đã đưa ra những cải tiến về bảo mật nhằm tăng tính vững chắc cho tiến trình cặp đôi, bảo đảm sự riêng tư khi kết nối đã được thiết lập đồng thời bảo mật nội dung thông tin truyền lên kênh

Kỹ thuật Bluetooth là một trong những chuẩn không dây mới nhất Có nhiều cấu hình, định dạng khác nhau để giải quyết vấn đề an toàn cho người

sử dụng Bluetooth là lựa chọn thích hợp khi thực hiện liên lạc qua mạng cá nhân PAN và mạng Ad Hoc Quy trình bảo mật Bluetooth có nhiều chọn lựa cho việc bảo đảm an toàn của từng ứng dụng với các cấp độ bảo mật cụ thể.Bluetooth sử dụng môi trường không dây do đó nảy sinh một số vấn đề bảo mật của chuẩn không dây Đây là lĩnh vực con người đang khám phá và cũng là nơi có thể làm nhiễu tín hiệu sử dụng Bluetooth giải quyết những vấn

đề này bằng cách sử dụng hệ thống nhảy tần số Khi 2 thiết bị Bluetooth kết nối và đồng bộ với nhau chúng sẽ nhảy 79 bước trên dải tần số từ 2.40 GHz đến 2.48 GHz

Bluetooth giải quyết được nhiều khía cạnh về bảo mật Đối với mục tiêu mã hóa và uỷ quyền, Bluetooth SIG đã sử dụng 4 thành phần cơ bản để duy trì sự an toàn ở tầng liên kết dữ liệu Các thành phần cơ bản được sử dụng là:

- Địa chỉ thiết bị BD_ADDR (Bluetooth device address): Mỗi thiết bị Bluetooth có một địa chỉ 48 bit duy nhất do IEEE (Institute of Electrical and Electronics Engineers) qui định

- Giá trị xác thực (Private authentication key): Giá trị 128 bit dùng cho việc xác thực người sử dụng

- Khóa mã (Private encryption key): Có chiều dài từ 8-128 bit dùng để

Trang 30

thể thực hiện được.

2.2.2 Quá trình cặp đôi, sinh khoá trong Bluetooth

Để nghiên cứu về quy trình bảo mật, chúng ta sẽ lần lượt nghiên cứu về quá trình cặp đôi và sinh khóa Trong hệ thống Bluetooth, quá trình sinh khóa bao gồm các vấn đề như: phân phối, quản lý, và điều khiển quá trình mã hoá Như đã trình bày ở phần giới thiệu, Bluetooth có hai kiểu khóa chính là khóa liên kết LKEY và khóa mã KC Khóa liên kết được tạo ra trong quá trình cặp đôi, là khoá chính sử dụng cho các quá trình cặp đôi, xác thực và tạo khóa mã cho mỗi phiên liên lạc riêng, khoá mã để mã hoá thông tin truyền đi

2.2.2.1 Quá trình cặp đôi

Quá trình cặp đôi trong kỹ thuật Bluetooth là quá trình thiết lập một mối liên kết an toàn giữa hai thiết bị Để thiết lập một liên kết Bluetooth, thì trước hết phải thiết lập một kết nối điểm - đa điểm ACL Khi kết nối này được thực hiện, thì những thiết bị Bluetooth có thể trao đổi các thông báo trên kênh truyền Trước khi dữ liệu được trao đổi, thiết bị có thể yêu cầu xác thực để chống giả mạo Các thiết bị Bluetooth tham gia vào quá trình cặp đô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ị đã cặp đô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 cặp đôi sau Những thông tin này được lưu giữ trong một bộ nhớ cố định Khi những thiết bị Bluetooth muốn liên lạc với nhau tiếp, chúng sẽ sử dụng khoá liên kết sẵn có và có thể bỏ qua thao tác cặp đôi Số lượng chính xác các cặp tùy thuộc vào kiểu ứng dụng của những thiết bị Bluetooth đang dùng Thủ tục cặp đôi gồm có những bước sau :

- Sinh khóa khởi đầu Kinit (Key Initialization);

- Sinh khóa liên kết LKEY;

- Trao đổi khóa LKEY;

- Xác thực

Quá trình cặp đôi và xác thực được thực hiện ở các giao thức: HCI, LMP và dải tần cơ sở tương ứng

- HCI protocol

Trang 31

Việc sử dụng modulo điều khiển thiết bị HC (Host Controller) và các lệnh ở dải tần cơ sở cho phép thiết lập các chính sách xác thực thông qua tùy chọn lệnh Authentication Enable Khi tham số này được cho phép, thiết bị Host sẽ luôn xác nhận thiết bị từ xa trong quá trình thiết lập kết nối

Trong quá trình xác thực, HC sẽ yêu cầu thiết bị cung cấp một khoá liên kết để sử dụng địa chỉ BD_ADDR của thiết bị còn lại nhằm thực thi giao thức xác thực HC tự truy nhập tới khóa này, nếu thiết bị không tìm thấy khoá, thì nó sẽ gửi thông báo từ chối cho HC qua giao diện HCI Nếu tìm thấy khoá thì hai thiết bị sẽ bắt đầu thủ tục cặp đôi

Khóa Pass-key (PKEY) là khóa cần có trước tiên trong quá trình cặp đôi HC sinh ra một sự kiện PIN HCI Code Request Thông báo phản hồi có thể chứa một khoá PKEY (cùng với một số thông tin khác) Trong trường hợp thông báo phản hồi chỉ chứa thông báo lý do không có khóa PKEY thì quá trình cặp đôi thất bại Khi thống nhất được khoá PKEY thì HC của thiết bị yêu cầu có thể gửi PKEY tới băng tần cơ sở cho các quá trình xử lý sau đó Tiếp theo, LM sẽ gửi một giá trị ngẫu nhiên 128 bít (IN_RAND) cho thiết bị

từ xa để khởi đầu sự kiện PIN HCI Code Request

Từ đó LM sẽ thực hiện quá trình cặp đôi LMP bảo đảm bí mật khóa liên kết được sinh ở cả master và slave Tuỳ thuộc vào cấu hình thiết bị, khóa liên kết có thể là khóa đơn vị hoặc khóa kết hợp Khuôn dạng của khoá hoàn toàn được xác định bởi một trong hai thiết bị và sau đó được xây dựng từ thông tin trao đổi giữa hai thiết bị Khi các LM kết thúc quá trình thoả thuận khóa liên kết, cả hai host sẽ được thông báo qua sự kiện HCI Link Key Notification

- LM protocol

LM hỗ trợ thủ tục cặp đôi bằng cách trao đổi các tham số và kết quả giữa thiết bị chủ và thiết bị tớ Quá trình tính toán được thực hiện ở băng tần

cơ sở Ở mức quản lý kết nối, thủ tục cặp đôi bắt đầu với việc truyền thông

báo PDU LMP IN_RAND từ thiết bị này tới thiết bị khác PDU (protocol

data unit) này sẽ tác động vào bộ tạo của khóa khởi đầu để sử dụng trong

giao thức tạo khóa link key thực

Nếu sử dụng khóa đơn vị, thì lệnh LMP unit key được gửi đi theo một

Trang 32

chiều nhất định Nếu sử dụng khóa kết hợp thì cần hai bộ khoá cho hai phía Công việc này được PDU thực hiện bằng lệnh LMP comb key Kết quả đạt được cũng là một giá trị ngẫu nhiên, nhưng quá trình sinh khóa phức tạp hơn.

Sau khi các PDU này đã được trao đổi, cả hai đầu đều có thể tính toán được khóa liên kết Bluetooth thực hiện một sự kiện xác thực lẫn nhau để kiểm tra quá trình này diễn ra thành công hay không Dãy 128 bít được gửi qua LMP AU_RAND, và dãy phản hồi 32 bít sử dụng lệnh LMP sres Nếu quá trình xác thực thất bại, thì các HC của cả hai thiết bị sẽ gửi thông báo đến thiết bị tương ứng của chúng

- Các sự kiện băng cơ sở

Tại băng tần cơ sở (Base Band), các lệnh quản lý khóa LMP được chuyển vào những sự kiện băng cơ sở Có nhiều sự kiện quan trọng thực hiện

ở băng tần cơ sở như: sự kiện hỗ trợ quá trình cặp đôi giữa hai thiết bị, thiết lập khóa liên kết, thiết lập khóa mã và đoạn mã (hình 9)

Tại đây, LM bắt đầu thao tác cặp đôi giữa hai thiết bị khi hai thiết bị gặp nhau lần đầu hoặc khóa liên kết mất vì những lý do khác nhau Quá trình này có thể sử dụng khoá đơn vị hoặc khoá kết hợp Khóa đơn vị thì phải giống nhau để chia sẻ với thiết bị cặp đôi khác, trong khi khóa kết hợp thì khác nhau cho mỗi cặp thiết bị Khóa đơn vị chỉ có thể an toàn khi có đầy đủ

sự tin cậy giữa những thiết bị cặp đôi cùng một khóa đơn vị Một vấn đề quan trọng trong thủ tục cặp đôi là nhập khóa PKEY Băng cơ sở không thể tự hoàn thành quá trình cặp đôi mà yêu cầu phải nhập giá trị khóa PKEY Khóa PKEY là số PIN (Personal Identification Number) có chiều dài từ 0 tới 16 octet

Trang 33

Hình 9: Quá trình quản lý khoá ở băng cơ sở

2.2.2.2 Quá trình sinh khóa trong Bluetooth

- Sinh khóa khởi đầu

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 cặ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á kết hợp hoặc khóa đơn vị 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 pass-key PKEY , chiều dài LPKEY của khoá PKEY (tính bằng octet) và giá trị ngẫu nhiên 128 bit IN_RAND Trong thực tế KINIT được tính từ 3 giá trị đầu vào: PKEY’, L’PKEY và IN_RAND KINIT = E22 (PKEY’, IN_RAND, L’PKEY) Trong đó:

PKEY + BD_ADDR khi LPKEY ≤ 15PKEY’ = PKEY khi LPKEY =16

Với L’PKEY = min(LPKEY)

- Sinh khóa đơn vị

Mặc dầu khóa đơn vị ít được dùng vì những nhược điểm đã nêu, nhưng

để phục vụ cho quá trình nghiên cứu tổng thể, ta cũng nêu một cách khái quát quá trình sinh khoá đơn vị Giả thiết rằng thiết bị A là thiết bị khởi tạo và B là thiết bị trả lời Nếu A chưa có khóa đơn vị thì nó bắt đầu bởi việc sinh khoá

Trang 34

Khóa KA được tính bởi thuật toán E21 với các giá trị đầu vào như sau:

- Giá trị ngẫu nhiên LK_RANA 128 bít

- Giá trị địa chỉ Bluetooth BD_ADDR

K’A ⊕ KINIT = KA ⊕ KINIT ⊕ KINIT = KA

Khóa khởi đầu sẽ được xóa sau khi tính toán thành công khóa kết nối KAB

Hình 10: Tạo khóa đơn vị qua khóa khởi đầu K INIT

- Sinh khóa kết hợp

Khóa kết hợp là khóa liên kết mà hai thiết bị A và B cùng sinh trong quá trình cặp đôi Khóa kết hợp được sinh khi hai thiết bị không sở hữu khóa liên kết chung và được tính toán bởi việc kết hợp những khóa bí mật KA và KB tương ứng Hai khóa KA, KB được sinh từ bộ tạo cục bộ gồm những giá trị ngẫu nhiên bí mật 128 bít (LK_RANDA và LK_RANDB) và địa chỉ BD_ADDR, sử dụng thuật toán E21 theo công thức sau:

KA = E21 (LK_RANDA, BD_ADDRA)

KB = E21 (LK_RANDB, BD_ADDRB)

Khóa kết hợp KAB được tính như sau: KAB = KA ⊕ KB

Sau đó việc tính toán chỉ có thể được thực hiện nếu một đơn vị biết khóa bí mật của đơn vị khác Nó được thực thi bằng việc các thiết bị gửi cho nhau những giá trị ngẫu nhiên bí mật LK_RANDA và LK_RANDB , các giá trị

Trang 35

này được bảo vệ bởi khóa liên kết hiện hành K Khóa K có thể là một KINIT hoặc một khóa kết hợp hiện hành cho mối liên kết

Như vậy, giá trị nhận được là:

CA = LK_RANDA ⊕ K (A gửi B)

CB = LK_RANDB ⊕ K (B gửi A)

Hình 11: Sơ đồ quá trình sinh khoá kết hợp KAB

Thiết bị A nhận giá trị CB và tính:

CB ⊕ K = (LK_RANDB ⊕ K) ⊕ K = LK_RANDB

Từ đây, thiết bị A biết được giá trị LK_RANDB, biết giá trị BD_ADDRB do đó có thể tính toán được KB Tương tự bên thiết bị B xác định được KA

Khi hai thiết bị đã trao đổi khóa liên kết thành công, quá trình cặp đôi

sẽ được hoàn thành với sự xác thực Khóa liên kết hiện hành K sẽ được xóa sau khi thành công quá trình tính khóa kết hợp KAB

- Sinh khóa chủ

Khóa chủ là khóa tạm thời được sử dụng để bảo vệ dữ liệu của thiết bị chủ gửi trên đường truyền tới các thiết bị tớ Khóa chủ sẽ thay thế khóa liên kết cho đến khi kết thúc truyền thông Khóa chủ Kmaster được tính toán bởi thuật toán E22 với đầu vào là hai giá trị ngẫu nhiên 128 bít (bí mật) LK_RAND1 và LK_RAND2 (Hình: 12) Ta có:

Kmaster = E22 (LK_RAND1, LK_RAND2)

Giá trị Kmaster được gửi tới B Tuy nhiên, để bảo mật thiết bị chủ không gửi giá trị Kmaster mà gửi một giá trị ngẫu nhiên 128 bít RAND3 (công khai), sau đó tính giá trị khoá đệm Kovl (overlay key) theo công thức:

Kovl = E22 (K, RAND3)

Trong đó K là giá trị hiện hành của khóa link key

Trang 36

Tại đây, khóa chủ được mã hóa sử dụng khóa Kovl :

KAB = Kmaster ⊕ Kovl

Hình 12: Tạo khoá K master qua Kovl

Thiết bị B cũng tạo được khóa K và nhận được LK_RAND3, sử dụng thuật toán E22 tính được Kvol, sau đó tính được khoá chủ theo tính toán:

bị chủ và thiết bị tớ Những giá trị ACO gốc này sẽ được tính toán lại, để tạo nên khóa mã gốc khi máy chủ phát ra đường truyền Khi muốn quay lại giá trị khóa liên kết trước thì giá trị ACO cần được thay đổi

- Sinh khoá mã

Muốn thực hiện quá trình mã hóa vấn đề đầu tiên là phải có khóa mã Trong Bluetooth, khóa liên kết không được trực tiếp sử dụng như khóa mã Khoá mã phải được xác định qua các bước, bắt đầu từ khóa liên kết tới lần xác thực cuối cùng giữa hai thiết bị qua ACO Ngoài ra, khoá mã được làm mới lại cho mỗi gói truyền đi Ta sẽ lần lượt nghiên cứu việc sinh khóa mã

KC, sinh khóa mã nén K’C và khoá mã khung dữ liệu KP là khoá dùng cho quá trình mã hóa

Ngày đăng: 09/04/2016, 09:45

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
8. Bluetooth Security and Hacks 2007, Andreas Becker, 9. Bluetooth Security 2005, Hans Jakob Rivertz Khác
10. Bluetooth Demystified 2000, Nathan J.Muller Khác
11. Bluetooth End to End 2002, Diane McMichael Gilster 12. Cracking the Code 2001, Dreamtech Software Team Khác
13. Bluetooth Profiles 2002, Grantton,Dean A Khác
14. The Bluetooth Report 2001, Ben Thacker 15. Exploring Bluetooth 2000, Louis Columbus 16. Discovering Bluetooth 2001, Mike Miller Khác
17. Bluetooth Application Developer’s Guide 2001, Dr Jennifer Bray and Brian Senese Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w