DoS Tấn công từ chối dịch vụ DSA Thuật toán chữ ký số EAP Giao thức xác thực có thể mở rộng ECC Mật mã đường cong Elliptic ETSI Viện tiêu chuẩn viễn thông Châu Âu GPRS Công nghệ chuyển m
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Nguyễn Tuấn Hưng
XÁC THỰC TRONG CÁC MẠNG VÔ TUYẾN
LUẬN VĂN THẠC SĨ
Hà Nội - 2011
Nghành : Công nghệ thông tin
Chuyên nghành : Truyền dữ liệu và mạng máy tính
Mã số : 60 48 15
CÁN BỘ HƯỚNG DẪN KHOA HỌC : PGS.TS Trần Hồng Quân
Trang 2Lời cam đoan
Tôi xin cam đoan luận văn này là công trình do tôi nghiên cứu Trong luận văn có sử dụng các tài liệu tham khảo đều được tôi trính dẫn đầy đủ và chính xác trong phần tài liệu tham khảo
Hà Nội, ngày 12 tháng 05 năm 2011
Tác giả
Trang 3Mục lục
BẢNG KÝ HIỆU VIẾT TẮT 5
DANH MỤC BẢNG 6
DANH MỤC HÌNH 6
GIỚI THIỆU 9
1 Đặt vấn đề 9
2 Vấn đề nghiên cứu 10
3 Phạm vi nghiên cứu 10
CHƯƠNG 1 : XÁC THỰC TRONG MẠNG VÔ TUYẾN 12
1.1 An ninh và các dịch vụ an ninh 12
1.1.1 Khái niệm về an ninh thông tin 12
1.1.2 Các hình thức tấn công 12
1.1.2.1 Tấn công bị động 13
1.1.2.2 Tấn công chủ động 14
1.1.3 Các dịch vụ an ninh thông tin 17
1.2 Cơ bản về mật mã học 18
1.2.1 Mã hóa đối xứng 19
1.2.1.1 Khái niệm 19
1.2.1.2 Mô hình hoạt động mã hóa khóa đối xứng 19
1.2.2 Mã hóa bất đối xứng 24
1.2.2.1 Khái niệm 24
1.2.2.2 Hệ mã hóa Diffie-Hellman 26
1.2.2.3 Hệ mã hóa công khai RSA 27
1.2.3 So sánh giữa mật mã khóa đối xứng và mật mã khóa công khai 28
1.3 Chữ ký điện tử 28
1.3.1 Khái niệm 28
1.3.2 Mô hình ký số RSA 30
1.3.3 Mô hình ký số DSA 31
1.3.4 Thuật toán băm 33
1.4 Xác thực và các các mô hình xác thực 33
1.4.1 Mô hình xác thực yếu 35
1.4.1.1 Xác thực dựa trên mật khẩu 35
1.4.1.2 Xác thực dựa trên mã định danh cá nhân (PIN-based Authentication) 36
1.4.2 Mô hình xác thực mạnh 36
1.4.2.1 Giao thức xác thực dựa trên hệ mật mã 37
1.4.2.2 Giao thức xác thực dựa trên kỹ thuật zero-knowledge 39
1.4.2.3 Giao thức xác thực dựa trên thiết bị hỗ trợ 41
1.5 Kết luận chương 1 42
Trang 4CHƯƠNG 2: XÁC THỰC TRONG CÁC MẠNG VÔ TUYẾN THẾ HỆ SAU 44
2.1 Xác thực trong mạng GSM 44
2.1.1 Giới thiệu mạng GSM 44
2.1.2 Mô hình an ninh của mạng GSM 46
2.1.3 Dịch vụ xác thực trong mạng GSM 48
2.2 Xác thực trong mạng 3G 50
2.2.1 Giới thiệu mạng thông tin di động 3G 50
2.2.2 Mô hình an ninh trong mạng 3G 53
2.2.3 Dịch vụ xác thực và trao đổi khóa 54
2.3 Xác thực trong mạng cục bộ không dây WLAN 58
2.3.1 Giới thiệu về mạng cục bộ không dây WLAN 58
2.3.2 Mô hình an ninh mạng WLAN 60
2.3.2.1 Các vấn đề an ninh trong mạng WLAN 60
2.3.2.2 Giải pháp an ninh trong mạng WLAN 60
2.3.3 PRE-RSNA 62
2.3.2.1 Xác thực 62
2.3.2.2 Bảo mật và toàn vẹn dữ liệu 64
2.3.4 RSNA 65
2.3.4.1 Xác thực 65
2.3.4.2 Bảo mật và toàn vẹn dữ liệu 68
2.4 Kết luận chương 2 69
CHƯƠNG 3: Hệ MẬT MÃ CÔNG KHAI ECC VÀ ỨNG DỤNG TRONG XÁC THỰC CÁC MẠNG VÔ TUYẾN 70
3.1 Hệ mật mã đường cong Elliptic 71
3.1.1 Cơ sở toán học 72
3.1.1.1 Đường cong Elliptic 72
3.1.1.2 Phép cộng hai điểm 73
3.1.1.3 Phép nhân hệ số nguyên 76
3.1.1.4 Đường cong Elliptic trên trường hữu hạn 77
3.1.2 Hệ mật mã công khai ECC 83
3.1.2.1 Các tham số của hệ mật mã hóa ECC 84
3.1.2.2 Các kiểu dữ liệu trong hệ mật mã ECC 86
3.1.2.2 Thuật toán sinh khóa 87
3.1.2.3 Thuật toán trao đổi khóa ECDH 88
3.1.2.4 Thuật toán chữ ký điện tử ECDSA 88
3.1.2.5 Thuật toán xác thực chữ ký điện tử ECC 89
3.1.2.6.Mô hình mã hóa tích hợp đường cong Elliptic - ECIES 90
3.2 Ưu điểm của hệ mật mã đường cong Elliptic 92
3.3 Đề xuất xây dựng hạ tầng khóa công khai cho thiết bị di động dựa trên hệ mật mã ECC 93
3.3.1 Vấn đề an ninh của hệ mật mã công khai 93
3.3.2 Hạ tầng khóa công khai 94
3.3.3 Chứng thư số 95
3.3.4 Xác thực di động dựa trên hạ tầng khóa công khai sử dụng hệ mật mã đường cong Elliptic 97
3.3.4.1 Giao thức cấp pháp chứng thư trên thiết bị di động 98
3.3.4.2 Xác thực di động dựa trên chưng thư số sử dụng hệ mật mã ECC 101
3.3.5 Kết quả 103
3.3.5.1 Thiết kế chương trình 103
3.3.5.2 Các bước thực hiện 103
Trang 53.3.5.3 Đánh giá hiệu năng của hệ mật mã ECC 109
3.4 Kết luận chương 3 110
TỔNG KẾT VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO 111
1 Hướng nghiên cứu tiếp theo 111
TÀI LIỆU THAM KHẢO 112
PHỤ LỤC: THAM SỐ HỆ MẬT MÃ ECC 114
Trang 6DoS Tấn công từ chối dịch vụ
DSA Thuật toán chữ ký số
EAP Giao thức xác thực có thể mở rộng
ECC Mật mã đường cong Elliptic
ETSI Viện tiêu chuẩn viễn thông Châu Âu
GPRS Công nghệ chuyển mạch gói được phát triển từ mạng
GSM GSM Mạng thông tin di động toàn cầu thế hệ 2
HLR Bộ ghi địa chỉ thường trú
IEEE Viện kỹ sư điện và điện tử
ISO Tổ chức tiêu chuẩn quốc tế
ITU-T Liên minh viễn thông quốc tế
J2ME Công nghệ của Java để phát triển các ứng dụng Java trên
điện thoai di động hay các thiết bị cầm tay nhỏ gọn
MS Trạm di động
PIN Mã định danh cá nhân
PKI Hạ tầng khóa công khai
RADIUS Dịch vụ xác thực người sử dụng truy cập từ xa
RFID Định danh dựa trên tần số vô tuyến
Trang 7RSA Hệ mật mã RSA
SGSN Nút hỗ trợ chuyển mạch dịch vụ
SIM Thành phần định danh thuê bao
STA Trạm di động
UMTS Mạng thông tin thế hệ 3 theo tiêu chuẩn của Châu Âu
USIM Thành phần định danh thuê bao của mạng 3G
VLR Bộ ghi địa chỉ tạm trú
WLAN Mạng nội bộ không dây
Danh mục bảng
Bảng 3.1 : So sánh độ an toàn các hệ mật mã theo chiều dài khóa ……… 67
Bảng 3.2 : Các điểm thuộc đường cong E23(1,1)……… …73
Bảng 3.3 : Các giá trị trường F24……… 76
Bảng 3.4 : Các điểm thuộc đường cong E24(g4,1)……….……… 76
Bảng 3.5a : So sánh tốc độ ký giữa hệ mật mã ECC và RSA ………
Bảng 3.5b : So sánh tốc độ xác thực giữa hệ mật mã ECC và RSA ………
Danh mục hình Hình 1.1 : Nghe lén thông tin……….……… 13
Hình 1.2 : Phân tích lưu lượng……….……….…14
Hình 1.3 : Giả mạo người gửi………,……,……… 15
Hình 1.4 : Tấn công lặp lại………,…….……… 16
Hình 1.5 : Tấn công sửa đổi dữ liệu………….……….………16
Hình 1.6 : Tấn công từ chối dịch vụ………….……….………17
Hình 1.7 : Chế độ ECB……….……….……20
Hình 1.8 : Chế độ CBC……… ………21
Hình 1.9 : Chế độ CFB……….……….…22
Trang 8Hình 1.10 : Chế độ OFB ……….23
Hình 1.11 : CTR ……… 23
Hình 1.12a : Chức năng mã hóa / giải mã ……….25
Hình 1.12b : Chức năng ký ……… 25
Hình 1.13 : Mô hình ký số RSA ……….30
Hình 1.14a : Mô hình ký số và xác thực DSA ……… 32
Hình 1.14b : Mô hình truyền thông, sử dụng chữ ký điện tử DSA ……… 32
Hình 2.1 : Hạ tầng mạng GSM ……… 43
Hình 2.2 : Mô hình an ninh mạng GSM ……… 46
Hình 2.3 : Mô hình xác thực trong mạng GSM ………47
Hình 2.4 : Kiến trục mạng 3G UMTS ……… 49
Hình 2.5 : Mô hình an ninh mạng UMTS ……….51
Hình 2.6 : Giao thức xác thực 2 chiều mạng UMTS ……….53
Hình 2.7a : Sinh vector xác thực tại AuC ……… 54
Hình 2.7b : Thuật toán sinh xác thực tại USIM ……… 55
Hình 2.8 : Tham chiếu giữa mô hình IEEE 802.1và mô hình OSI ………… 57
Hình 2.9 : Giải pháp an ninh chuẩn 802.11i ……….60
Hình 2.10a : Phương thức xác thực mở - OSA ……… 61
Hình 2.10b : Phương pháp xác thực khóa chia sẻ - SKA ……… 62
Hình 2.11a : Mã hóa gói dữ liệu ………63
Hình 2.11b : Giải mã và kiểm tra tính toàn vẹn dữ liệu ………63
Hình 2.12 : Dịch vụ xác thực của 802.1x ………65
Hình 2.13 : EAPoL ……… 66
Hình 3.1a : y2x35x ……….70 3 Hình 3.1b : 2 3 5 8 y x x ……….……70
Hình 3.2a : Phép cộng 2 điểm ……….…………72
Trang 9Hình 3.2b : Phép cộng 2 điểm, với Q ≡ - P ……… ……….72
Hình 3.2c : Phép nhân đôi điểm ……… 73
Hình 3.3 : Các điểm thuộc đường cong E23(1,1) trên đồ thị ……… 76
Hình 3.4 : Các điểm thuộc đường cong E24(g4,1) trên đồ thị ……….79
Hình 3.5 : Quan hệ chuyển đổi giữa các kiểu dữ liệu ………83
Hình 3.6 : Các thành phần hạ tầng khóa công khai ……… 90
Hình 3.7 : Cấu trúc chứng thư X.509 ……….92
Hình 3.8 : Giao thức cấp đăng ký cấp phát chứng thư ………94
Hình 3.9 : Giao thức pháp hành chứng thư ……….95
Hình 3.10a : Giao thức xác thực một bước ……….97
Hình 3.10b : Giao thức xác thực hai bước ……… 97
Hình 3.10c : Giao thức xác thực ba bước ……… 98
Hình 3.11a : Chứng thư của CA……….100
Hình 3.11b : Trường khóa công khai của CA ………100
Hình 3.11c : Thuật toán ký của CA………101
Hình 3.11d : Chữ ký của CA trên chứng thư ……….101
Hình 3.11e: Form điền thông tin cấp yêu cầu phát chứng thư ……….102
Hình 3.11f : Chứng thư được phát hành bởi CA ……… 102
Hình 3.11g : Thuật toán ký số của CA trên chứng thư phát hành……… 103
Hình 3.11h : Chữ ký của CA trên chứng thư phát hành ………103
Trang 10Giới thiệu
1 Đặt vấn đề
Kể từ năm 1895, khi nhà khoa học Guglielmo Marconi đã thành công trong việc truyền 1 thông điệp điện báo đầu tiên từ khoảng cách 18 dặm mà không cần dùng một loại dây truyền nào Ngày nay, các thiết bị vô tuyến đã xâm nhập vào hầu hết các khía cạnh cuộc sống của con người, ở đâu ta cũng có thể dễ dàng bắt gặp những thiết bị vô tuyến: Từ những vật dụng đơn giản như đài radio, vô tuyến truyền hình, những chiếc điện thoại di động, hoặc mạng Wifi gia đình Các thiết bị vô tuyến nói chung và thiết bị di động nói riêng đã góp phần rất lớn trong cuộc cách mạng hiện đại hóa của con người Thật khó có thể hình dung cuộc sống hiện đại nếu không có những thiết bị vô tuyến đó
Bên cạnh những mặt tốt, truyền thông vô tuyến cũng có nhiều mặt hạn chế Do tính tiện lợi của truyền thông vô tuyến, do vậy cuộc sống của con người ngày càng
lệ thuộc vào nó Mặt khác, do bản chất của truyền thông vô tuyến là truyền công khai bằng các tín hiệu vô tuyến trong không khí, do vậy mạng vô tuyến tiềm ẩn rất nhiều nguy cơ an ninh Nếu kênh truyền không được bảo vệ tốt thì người sử dụng cuối rất có thể sẽ bị tổn thương nếu bị tấn công
Ví dụ, ngày nay có nhiều người sử dụng điện thoại di đông để liên lạc với nhau, các thông tin trao đổi cũng rất đa dạng, kể cả nhưng thông tin bí mật, nếu bị tấn công, những thông tin bí mật đó có thể bị lộ và sẽ gây ra những ảnh hưởng rất lớn tới người sử dụng Ta có thể nếu ra một ví dụ khác, trong thời gian gần đây, có rất nhiều tin nhắn điện thoại giả mạo lừa đảo được gửi tới nhiều người dùng điện thoại di động, gây ra nhiều bức xúc cho người sử dụng và là vấn đề nhức nhối của
xã hội Giải sử những thông tin giả mạo liên quan tới những vấn đề giao dịch, hay kinh doanh thì sẽ gây ra thiệt hại rất lớn cho người sử dụng
Do sự phổ biến của những chiếc điện thoại di động, do vậy có rất nhiều dịch
vụ giá trị gia tăng được phát triển trên truyền thông di động Trong đó có nhiều dịch
vụ thương mại điện tử như thanh toán di động (mobile payment), ngân hàng điện tử Tuy nhiên, nếu hạ tầng di động không đảm bảo được tính bảo mật thì các dịch vụ trên rất khó để thuyết phục người sử dụng tham gia
Hiện nay, hạ tầng an ninh truyền thông đã được xây dựng tương đối hoàn chỉnh, ví dụ như hạ tầng khóa công khai (PKI – Public key Infrastructure) Tuy nhiên các thiết kế ban đầu của các hạ tầng đó được phục vụ việc bảo mật và xác thực chạy trên các máy vi tính Với như thiết bị di động, hoặc các thiết bị nhúng có
Trang 11năng lực xử lý và khả năng lưu trữ hạn chế thì phương pháp bảo mật cũ không có hiệu quả Mặc dù trong vài năm trở lại đây, có sự bùng nổ của các thiết bị di động thông minh, có năng lực xử lý ngang với máy vi tính, tuy nhiên đó vẫn chỉ là số ít Phần còn lại của các thiết bị di động vẫn là các thiết bị có năng lực xử lý kém, không tương thích với việc triển khai các thuật toán bảo mật
Để giải quyết các vấn đề này, trong những năm gần đây, có nhiều công trình
đã nghiên cứu các phương pháp để bảo mật trong truyền thông vô tuyến Trong luận văn của mình, học viên sẽ nghiên cứu những vấn đề bảo mật trong truyền thông vô tuyến
2 Vấn đề nghiên cứu
Để nghiên cứu vấn đề bảo mật trong truyền thông mạng vô tuyến, học viên nghiên cứu theo các vấn đề sau:
Vấn đề an ninh và các mô hinh xác thực trong truyền thông mạng
Khảo cứu các kỹ thuật an ninh đang được áp dụng trong các mạng truyền thông vô tuyến phổ biến hiện nay
Nghiên cứu phương pháp xác thực hiệu quả được áp dụng trên các thiết
bị vô tuyến nói chung và thiết bị di động nói riêng
3 Phạm vi nghiên cứu
Khái niệm truyền thông mạng là một khái niệm rộng, do vậy trong phạm vi của một luân văn thạc sỹ Học viên chỉ xét các mạng vô tuyến đặc trưng và phổ biến nhất, đó là mạng di động và mạng không dây WLAN Trong đó sẽ tập trung chủ yếu vào mạng di động
Trong nghiên cứu về an ninh truyền thông, học viên sẽ giới thiệu các khái niệm chung về an ninh truyền thông, các phương pháp tấn công Tiếp đó học viên nêu ra các khái niệm cơ bản về mật mã học, các hệ mật mã được sử dụng phổ biến hiện nay, và các dịch vụ an ninh được xây dựng trên các hệ mật mã đó Phần cuối, học viên sẽ nghiên cứu các mô hình xác thực trong truyền thông dựa trên cơ sở các dịch vụ an ninh đã và đang được ứng dụng hiện nay đang được ứng dụng phổ biến Phần tiếp theo, học viên sẽ khảo cứu các kỹ thuật xác thực trong các mạng truyền thông phổ biến nhất hiện nay, đó là mạng di động GSM, mạng 3G và mạng WLAN Đối với từng mạng, học viên đi vào phân tích và nếu ra những nguy cơ an ninh trong hoạt động của các mạng đó
Trang 12Phần cuối cùng, học viên đi vào nghiên cứu hệ mật mã công khai đường cong Elliptic (ECC - Elliptic Curve Cryptography) Học viên sẽ đi vào khảo cứu và giới thiệu các thuật toán được ứng dụng trong triển khai các dịch vụ an ninh trên cơ sở của hệ mật mã ECC Dựa vào các kết quả nghiên cứu trước đó về hệ mật mã ECC, học viên sẽ đưa ra những so sánh và đánh giá để chỉ ra sự tương thích của hệ mật
mã ECC khi chạy trên các thiết bị có năng lực xử lý yếu Cuối cùng, luận văn đề xuất ứng dụng hạ tầng khóa công khai sử dụng mật mã ECC ứng dụng trên điện thoại di động Để minh họa, luận văn đã thiết kế giao thức cấp phát chứng thư an toàn trên điện thoại di động Trong tương lại, học viên sẽ có thể tiếp tục nghiên cứu
và hoàn thiện các giải pháp triển khai hạ tầng khóa công khai trên thiết bị di động
Trang 13Chương 1 : Xác thực trong mạng vô tuyến
1.1 An ninh và các dịch vụ an ninh
1.1.1 Khái niệm về an ninh thông tin
An ninh có thể được hiểu là các biện pháp nhằm bảo vệ an toàn cho các dữ
liệu và các tài nguyên khỏi sự xâm hại, sự giả danh từ các tác nhân trái phép
An ninh thông tin là một thành phần quan trọng trong bất cứ một dịch vụ, một
sản phẩm, hay hệ thống thông tin nào An ninh trong hệ thống truyền thông thông
tin lại càng quan trọng, bởi tính chất của truyền thông thông tin là truyền sóng dưới
dạng công khai mà bất cứ ai cũng có thể tiếp cận được, và do sự phổ biến của các
dịch vụ truyền thông thông tin ngày nay
Nói về an toàn thông tin của 1 hệ thống, giáo sư G Spafford đã từng nói [22]:
“Một hệ thống chỉ an toàn thực sự khi nó được ngắt hoàn toàn, được đóng trong 1
khối bê tông và được niêm phong trong 1 ngôi nhà bọc chì có lực lượng vũ trang
bảo vệ - Thậm chí khi đó tôi vẫn có sự nghi ngờ ” Theo định nghĩa của ISO/IEC
2382-8 : “An ninh là sự bảo vệ dữ liệu và tài nguyên bằng các hành động thích hợp
khỏi những hành vi gây hại cố tình hay vô ý”
Một trong những sai lầm phổ biến khi thiết kế hệ thống đó là việc coi yếu tố
an ninh là thành phần có thể được bổ xung sau, chính sai lầm này dẫn tới những lỗ
hổng an ninh phát sinh ở giai đoạn sau sẽ rất khó phát hiện, và sửa chữa Ví dụ,
trong các giao thức 802.11 của mạng WLAN, thiết kế của lớp trung gian MAC
(Medium Access Control) có thể dẫn tới hệ thống bị tấn công từ chối dịch vụ
(Denial of services - DoS) Các giao thức 802.11 sau này (802.11i) đã được cải tiến
để chống lại các cuộc tấn công dịch vụ, nhưng vẫn chưa loại bỏ được kiểu tấn công
người ở giữa (Man in the middle) Do vậy việc xem xét đánh giá tổng thể các khía
cạnh sử dụng, các tình huống sử dụng trong thực tế để phát hiện ra những nguy cơ
an ninh là một điều rất quan trọng
1.1.2 Các hình thức tấn công
Để nắm rõ được các cơ chế an ninh, ta cần quan tâm tới các hình thức
tấn-công Hiện nay, có rất nhiều hình thức tấn công vào hệ thống, nhưng ta có thể phân
thành 2 nhóm [24]: Tấn công bị động và tấn công chủ động Tấn công bị động là
hành động thu thập thông tin, nghe lén thông tin, phân tích thông tin trên kênh
Comment [u1]: Spafford, G.,
http://homes.cerias.purdue.edu/~spaf/quotes.h tml
Comment [u2]: William Stalling (2005)
“Cryptography and Network Security”, pp
13-15
Trang 14truyền mà không phương hại tới tài nguyên hay dữ liệu của hệ thống Tấn công chủ động là hình thức tấn công mà kẻ tấn công tác động tới dữ liệu và tài nguyên của hệ thống, làm ảnh hưởng tới hoạt động của hệ thống
1.1.2.1 Tấn công bị động
Có 2 hình thức tấn công bị động đó là: Nghe lén và theo dõi lưu lượng Mục tiêu của kẻ tấn công là thu thập thông tin trên đường truyền để khôi phục thông điệp truyền tin và phân tích được lưu lượng truyền trên mạng
Việc tấn công nghe lén và khôi phục lại dữ liệu truyền là một dễ hiểu, bởi trong các thông tin truyền như các cuộc gọi, email, tin nhắn, có rất nhiều thông tin nhạy cảm mà ta không muốn bị lộ Nếu dữ liệu truyền của ta không được mã hóa, thì việc lộ thông tin khi bị nghe lén là điều chắc chắn
Tấn công phân tích lưu lượng là một kiểu tấn công tinh vi, giả sử thông tin trao đổi của chúng ta đã được mã hóa bằng một hệ mật mã nào đó, do vậy kẻ tấn công không thể nghe lén được nội dung thông tin trao đổi Nhưng kẻ tấn công có thể theo dõi được các mẫu thông điệp được truyền trên đường truyền, từ 1 nguồn tới
1 đích xác định, kết hợp với các thông tin khác, kẻ tấn công có thể đoán được một phần thông điệp truyền
Hình 1.1 : Nghe lén thông tin
Trang 15Phương pháp tấn công bị động rất khó phát hiện, bởi không có bất cứ 1 sự thay đổi hay can thiệp nào trên dữ liệu truyền, do vậy cả người gửi và người nhận đều không thể nhận biết được thông tin truyền của mình có bị nghe lén, hay bị theo dõi hay không Để phòng chống việc bị tấn công thụ động, các thông tin truyền phải được mã hóa trước khi truyền để tránh bị tấng công nghe lén, đồng thời ta có thể áp dụng một số cơ chế đặc biệt để có thể chống được tấn công phân tích lưu lượng
1.1.2.2 Tấn công chủ động
Tấn công chủ động là các hình thức tấn công nhằm sửa đổi thông tin truyền, hoặc tạo ra các thông tin truyền giả mạo Tấn công chủ động có thể được chia làm 4 nhóm sau: Tấn công giả mạo, tấn công lặp lại, tấn công sửa đổi thông tin, và tấn công từ chối dịch vụ
Tấn công giả mạo : Là hình thức tấn công mà kẻ tấn công sẽ giả mạo mình là một người khác để thực hiện hành vi tấn công Ví dụ, trong thủ tục xác thực người dùng của 1 hệ thống, nếu kẻ tấn công có mật khẩu của người dùng thì kẻ đó có thể vượt qua hệ thông xác thực như 1 người dùng hợp lệ
Tấn công lặp lại : Kẻ tấn công sau khi đã thu thập được 1 đơn vị dữ liệu trên kênh truyền, nếu đơn vị dữ liệu đó được sử dụng trong thủ tục xác thực, kẻ tấn công
có thể gửi lại đơn vị dữ liệu đó để có thể vượt qua thủ tục xác thực
Hình 1.2 : Phân tích lưu lượng
Trang 16Tấn công sửa đổi dữ liệu : Kẻ tấn công có thể can thiệp vào dữ liệu trên kênh truyền và sửa đổi dữ liệu đó nhằm phục vụ mục đích của mình
Tấn công từ chối dịch vụ (Denial of Service - Dos): Là hình thức làm suy giảm khả năng phục vụ của hệ thống, bằng cách gửi một loạt các yêu cầu phục vụ giả mạo tới hệ thống với số lượng cực lớn, làm cho hệ thống bị quá tải, dẫn tới những yêu cầu phục vụ chính đáng không thể được xử lý
Hình 1.3 : Giả mạo người gửi
Trang 17Hình 1.4 : Tấn công lặp lại
Hình 1.5 : Tấn công sửa đổi dữ liệu
Trang 18Ta có thể thấy hình thức tấn công chủ động trái ngược với các tấn công
bị-động Trong khi các hình thức tấn công bị động rất khó phát hiện, nhưng việc áp
dụng các biện pháp phòng chống lại có thể dễ dàng áp dụng, ngược lại các hình
thức tấn công chủ động lại dễ dàng có thể phát hiện, nhưng lại khó phòng chống bởi
hiện nay có rất nhiều các loại hình dịch vụ khác nhau, các loại thiết bị khác nhau
cùng hoạt động, do vậy càng có nhiều lỗ hổng an ninh hơn, trong đó có nhiều lỗ
hổng an ninh đã được phát hiện và nhiều lỗ hổng an ninh tiềm ẩn, chưa được phát
hiện Đây là mảnh đất màu mỡ cho các hacker có thể hoạt động
1.1.3 Các dịch vụ an ninh thông tin
Dựa vào các hình thức tấn công, chuẩn kiến trúc an ninh cho mô hình OSI
X.800 [12] đưa ra 5 dịch vụ an ninh thông tin Đó là các dịch vụ :
Bảo mật: Dịch vụ bảo mật dữ liệu đảm bảo dữ liệu không thể bị đọc bởi những
người không được phép Theo đó dữ liệu sẽ được mã hóa, chỉ có những người được
phép có khóa hợp lệ mới có thể đọc được nội dung dữ liệu Mặt khác, khi dữ liệu
truyền được mã hóa địa chỉ nguồn và địa chỉ đích, thì có tác dụng bảo vệ kênh
truyền khỏi cuộc tấn công phân tích lưu lượng Dịch vụ bảo mật thông tin được sử
dụng để bảo mật dữ liệu truyền khỏi tấn công thụ động
Dịch vụ xác thực: Dịch vụ xác thực đảm bảo được danh tính của các thực thể
truyền thông, và dữ liệu truyền thông được công bố là xác thực và không bị sửa đổi
bởi bên thứ 3
Hình 1.6 : Tấn công từ chối dịch vụ
Comment [u3]: ITU-T
Recommendation X.800, “Security architecture for open system interconnection (OSI)”, pp 8-10
Trang 19Dịch vụ điều khiển truy cập: Dịch vụ điều khiển truy cấp là khả năng hạn chế
và điều khiển truy cập vào hệ thống và ứng dụng thông qua kênh truyền Để có thể truy cập hệ thống, thực thể truy cập trước tiên phải được định danh, và xác thực Sau khi thực thể được xác thực thành công, hệ thống sẽ cấp quyền truy cập tới những thành phần được phép truy cập cho thực thể đó
Toàn vẹn dữ liệu: Dịch vụ toàn vẹn dữ liệu ngăn chặn những hành động sửa đổi dữ liệu trái phép Theo đó, chỉ những thực thể hợp lệ mới được phép sửa đổi dữ liệu Các thao tác sửa đổi dữ liệu bao gồm: Thay đổi trạng thái dữ liệu, tạo dữ liệu giả, xóa dữ liệu, và gửi lại dữ liệu đã gửi trước đó
Chống chối bỏ: Dịch vụ chống chối bỏ đảm bảo cho thực thể nhận có thể chứng minh được dữ liệu nhận được chắc chắn là của bên gửi Tương tự, thực thể gửi cũng có thể chứng minh được dữ liệu gửi đi chắc chắn là của mình
1.2 Cơ bản về mật mã học
Các dịch vụ an ninh chỉ có thể được xây dựng trên nền tảng hệ thống mật mã học Với mỗi dịch vụ, mỗi mục đích khác nhau, có những phương pháp mã hóa khác nhau được sử dụng Trước khi đi chi tiết các phương pháp trong an ninh mạng
vô tuyến, ta cần có những khái niệm cơ bản về mật mã học và các hệ mật mã được
sử dụng phổ biến hiện nay
Mã hóa (Encryption) là quá trình biến đổi một thông điệp theo 1 phương thức nào đó nhằm giữ bí mật nội dung của thông điệp đó, theo đó các ký tự dễ hiểu của bản gốc thông điệp ( bản rõ - plain text) bị thay thế bởi các ký tự có thứ tự hỗn độn tạo ra một thông điệp có hình thức khó hiểu (bản mã - ciphertext) Quá trình ngược lại với quá trình mã hóa được gọi là quá trình giải mã (Decrytion) Một hệ mật mã (cryptography) bao gồm 1 phương pháp mã hóa và 1 phương pháp giải mã với một hay nhiều khóa xác định để thực hiện thao tác mã hóa và giải mã Thông thường, để bảo đảm an toàn cho 1 thông điệp truyền, ta thường kết hợp nhiều phương pháp mã hóa, ví dụ một lớp mã hóa để đảm báo thông điệp không bị đọc trộm bởi các thực thể không được phép, và có thể dùng thêm một lớp mã hóa để “tạo chữ ký” cho thông điệp truyền Khi thông điệp đã được ký, nó có tác dụng đảm bảo tính toàn vẹn của thông điệp, xác thực và chống chối bỏ Ngoài ra, trong các thông điệp truyền,
có thể áp dụng kỹ thuật đóng dấu thời gian để chống tấn công lặp lại
Các hệ mã hóa có thể được chia ra làm 2 loại chính: Mã hóa đối xứng và mã hóa bất đối xứng Ta sẽ cùng xét lần lượt 2 loại mã hóa này
Trang 201.2.1 Mã hóa đối xứng
1.2.1.1 Khái niệm
Hệ mật mã đối xứng là hệ mật mã sử dụng thuật toán mã hóa khóa đối xứng, tức là quá trình mã hóa và quá trình giải mã đều sử dụng chung một khóa Để sử dụng hệ mật mã đối xứng, người gửi và người nhận trước đó phải trao đổi một khóa dùng chung, sau đó mới có thể tiến đến mã hóa và giải mã thông điệp gửi đi và nhận lại
Quá trình mã hóa và giải mã có thể được ký hiệu một cách hình thức như sau: Gọi P (Plaintext) và C (Ciphertext) lần lượt là bản rõ và bản mã của một thông điệp
K là tập các khóa Ek và Dk lần lượt là 2 thủ tục mã hóa và giải mã với khóa k, ký hiệu là:
Ek và Dk thỏa mãn tính chất sau:
Việc tính toán Ek(x) và Dk(y) có thể dễ dàng thực hiện được Nhưng ngược lại việc tìm ra x khi chỉ biết bản mã Ek(x) = C, hoặc tìm ra khóa k là một việc rất khó Việc phá mã có thể đưa về 2 bài toán sau:
Tìm bản rõ x khi chỉ biết Ek(x)
Tìm khóa k nếu biết k thuộc tập khóa K và có các bản mã Ek(x)
Trong hệ mật mã khóa đối xứng, độ lớn của không gian khóa là cực kỳ quan trọng Trong thực tế, độ an toàn của hệ mật mã phụ thuộc rất lớn vào độ lớn của không gian khóa, không gian khóa càng lớn thì địch thủ càng khó để thực hiện tấn công vét cạn để tìm ra khóa đúng Nếu không gian khóa có độ lớn là 2128 khóa, với siêu máy tính hiện đại nhất hiện nay là Thiên hà 1A của Trung Quốc có số phép tính trong 1 giây là 2.5x1015 phép tính Để tìm ra khóa, siêu máy tính phải thực hiện trong khoảng 1015 năm Đây là một điều không thể
1.2.1.2 Mô hình hoạt động mã hóa khóa đối xứng
Dựa vào mô hình hoạt động, các hệ mã hóa khóa đối xứng có thể được chia làm 2 loại: Mã hóa khối (block cipher scheme) và mã hóa theo dòng (stream
Trang 21cipher) Mã hóa khối hoạt động bằng cách chia nhỏ thông điệp gốc thành nhiều khối
có cùng độ dài xác định b (b > 0), sau đó mã hóa tất cả các khối theo đúng thư tự và
truyền đi Mã hóa theo dòng là một trường hợp đặc biệt của mã hóa khối trong
trường hợp số khối bằng 1, chiều dài khối đúng bằng chiều dài thông điệp
Mô hình khối đối xứng có 5 chế độ tương ứng với 5 mô hình mã hóa khối, đó
là các chế độ : ECB (Electronic Codebook), CBC (Cipher Block Chaining), CFB
(Cipher Feedback), Output Feedback (OFB) và Counter (CTR) [26]
a ECB – Electronic Codebook
Chế độ ECB là chế độ đơn giản nhất trong các mô hình mã hóa khối Chế độ
ECB sẽ chia bản rõ (plaintext) thành các khối có độ dài bằng nhau và mã hóa các
khối đó độc lập với nhau với cùng 1 khóa k Do các khối được mã hóa độc lập với
nhau nên địch thủ có thể dễ dàng nhận ra được các khuôn mẫu của bản rõ dựa vào
sự giống nhau các khối trùng nhau (Hình 1.7)
Hình 1.7 : Chế độ ECB
Comment [u4]: William Stalling (2005)
“Cryptography and Network Security”, pp 181-189
Trang 22b CBC – Cipher Bock Chaining
Chế độ CBC chia nhỏ bản rõ (plaintext) thành các khối có độ dài bằng nhau Nhưng khác với chế độ EBC, các khối dữ liệu sau sẽ được thực hiện phép XOR với bản mã của khối dữ liệu trước Riêng khối dữ liệu đầu tiên sẽ được XOR với 1 vector khởi tạo (Initialize Vector - IV) Chế độ CBC đã khắc phục được nhược điểm của ECB, do có khối sau được mã hóa dựa trên bản mã của khối trước đó nên địch thủ không thể nhận biết được các mẫu khối bản rõ giống nhau (Hình 1.8)
c CFB (Cipher Feedback)
Chế độ CFB có cơ chế hoạt động tương tự với chế độ CBC, nhưng thay vì khối sau được XOR với bản mã của khối trước, CFB sử dụng thanh thêm 1 thanh ghi dịch chuyển và 1 hàm băm để băm khối mã trước đó rồi mới XOR với bản rõ (Hình 1.9)
Hình 1.8 : Chế độ CBC
Trang 23d OFB (Output Feedback)
Chế độ OFB có cơ chế hoạt động tương tự với chế độ CFB, nhưng thay vì bản
mã của khối trước được băm, OFB sử dụng mã băm của khối trước để băm tiếp ở khối sau trước khi XOR với bản rõ của khối sau (Hình 1.10)
e CTR (Counter)
Chế độ CTR sử dụng một biến đếm tăng dần theo số lượng khối, ở mỗi khối biến đếm của khối đó được mã hóa bởi khóa K, bản mã của phép mã hóa này sẽ được XOR với bản rõ của khối (Hình 1.11)
Hình 1.9 : CFB
Trang 24Hình 1.10 : OFB
Hình 1.11 : CTR
Trang 251.2.2 Mã hóa bất đối xứng
1.2.2.1 Khái niệm
Mật mã bất đối xứng - hay còn gọi là mật mã công khai - có 2 loại khóa trong không gian khóa là (PR, PU), trong đó PR là khóa bí mật, PU là khóa công khai 2 thủ tục mã hóa E và giải mã D với lần lượt khóa PU và khóa PR được ký hiệu như sau:
Thỏa mãn :
Hàm mã hóa EPU(x) và hàm giải mã DPR(y) là các hàm dễ dàng tính được Việc phá mật mã công khai được đưa về các bài toán sau:
Tìm bản rõ x nếu biết bản mã hóa EPU(x) và khóa công khai PU
Tìm khóa công bí mật PR khi biết khóa công khai PU
Không giống như hệ mã hóa khóa đối xứng - sử dụng 1 khóa chia sẻ để mã hóa và giải mã thông điệp trao đổi - mã hóa khóa công khai sử dụng 1 cặp khóa gọi
là khóa bí mật và khóa công khai: Khóa công khai được sử dụng để mã hóa dữ liệu, khóa bí mật sử dụng để giải mã Mã hóa khóa công khai đã giải quyết được những điểm yếu của mã hóa khóa đối xứng, đó là mã hóa khóa đối xứng trước khi sử dụng phải có sự trao đổi khóa giữa các thực thể truyền, nếu khóa chung được chia sẻ qua môi trường công cộng (Như Internet hay điện thoại …) thì rất dễ bị nghe lén, khi bị
lộ khóa thì việc mã hóa không còn tác dụng nữa Mặt khác mã hóa khóa đối xứng không có chức năng “ký”, do vậy các thực thể tham gia truyền thông không thể tự bảo vệ mình nếu đối tác có hành động chống lại ( Hành động chối bỏ dữ liệu đã truyền, hoặc giả mạo ) Mã hóa khóa công khai sử dụng 2 khóa để hoạt động, mỗi bên sẽ tự tạo cho mình 2 khóa có liên hệ về mặt toán học, khóa công khai sẽ được công bố công khai, khóa bí mật sẽ được giữ kín
Khi bên A cần truyền thông tin bí mật cho bên B, bên A sẽ sử dụng khóa công khai của bên B để mã hóa Do chỉ B mới có khóa bí mật trong cặp khóa, nên chỉ duy nhất B mới có thể giải mã được thông tin bên A gửi, đó gọi là chức năng mã hóa (Hình 1.12a) Khi bên B muốn xác nhận 1 thông điệp gửi cho bên A là chính xác do
Trang 26B gửi, B sẽ dùng khóa bí mật của mình để mã hóa thông điệp truyền và gửi đính
kèm thông điệp truyền Bên A nhận được sẽ dùng khóa công khai của B để giải mã
bản mã bên B gửi đính kèm, nếu kết quả giải mã trùng với thông tin bên B gửi thì
bên A có thể chắc chắc thông tin đó chính xác là do bên B gửi, đây là chức năng
“ký” của mã hóa khóa công khai (Hình 1.12b)
Theo William Stalling, mã hóa khóa công khai có 3 chức năng chính [27]:
Mã hóa và giải mã
Chứ ký điện tử
Trao đổi khóa
Hình 1.12a : Chức năng mã hóa / giải mã
Hình 1.12b: Chức năng ký
Comment [u5]: William Stalling
(2005) “Cryptography and Network Security”, pp 266-267
Trang 27Cơ sở lý thuyết của mã hóa khóa công khai là dựa trên hàm 1 chiều trong các phép tính toán học, theo đó phép tính theo chiều xuôi rất dễ, nhưng phép tính theo chiều ngược lại là rất khó, Ví dụ như trong phép nhân 2 số nguyên tố rất lớn, chiều xuôi là phép nhân được tính toán rất đơn giản, nhưng chiều ngược, tức là phần tích
1 số nguyên rất lớn thành tích của các thừa số nguyên tố lại là bài toán rất khó, các phương tiện máy tính hiện đại nhất và các phương pháp phá mã, thám mã đến nay vẫn chưa thể giải quyết được
1.2.2.2 Hệ mã hóa Diffie-Hellman
Hệ mã hóa Diffie-Hellman có cơ sở toán học từ bài toán 1 chiều của logarit rời rạc Bài toán lograrit rời rạc được phát biểu như sau: Cho số nguyên tố p, số y và g, tìm số nguyên x thỏa mãn:
2 thực thể truyền thông Alice và Bob khi thực hiện trao đổi khóa Hellman sẽ thực hiện các bước sau:
Diffie- Alice chọn 1 số nguyên tố p và một số nguyên cơ sở g Alice chọn số nguyên xa, sau đó tính được x amod
a
y g p Sau đó Alice công bố khóa công khai (ya, p, g) và giữ lại khóa bí mật (xa,p,g), khóa công khai sẽ được gửi cho Bob
Bob chọn ra một số nguyên bí mật xb, sau đó tính được x bmod
b
sau đó gửi lại cho Alice số yb
Alice tính toán ra được khóa chia chung x amod
b
a
K y p, Bob cũng sẽ tính được khóa chia chung x bmod
a
b
K y p Khóa Ka và Kb là 2 khóa chia
sẻ giữa Alice và Bob, được tính toán độc lập với nhau và bằng nhau Thật vậy
(5)
Trang 281.2.2.3 Hệ mã hóa công khai RSA
Hệ mã hóa RSA có cơ sở toán học từ bài toán hàm 1 chiều phân tích thừa số của một số nguyên rất lớn thành tích các thừa số nguyên tố.Cụ thể hệ mã hóa RSA hoạt động như sau:
Chọn ra 2 số nguyên tố p, q có giá trị rất lớn (Cỡ 256 bit trở lên)
Tính ra tích n = p.q
Tính ra hàm Eule (Ơle) của tích n: ( )n (p1)(q1)
Chọn ra số nguyên e nguyên tố cùng nhau với ( )n , tức gcd(e, ( )n ) = 1 (gcd – là hàm tính ước chung lớn nhất của 2 số nguyên)
Tìm ra số nguyên d thỏa mãn e d 1(mod ( )) n
Hủy p,q, và ( )n
Công bố khóa công khai là PU = (n,e), Giữ lại khóa bí mật là PR = (n,d)
Mã hóa thông điệp m (m là dạng số hóa): emod
Alice hủy số p=7,q=13, ( )n =72 Công bố khóa công khai PU=(91,5), và lưu lại khóa bí mật PR=(91,29)
Giả sử Bob muốn mã hóa thông điệp m=7, Bob sẽ sử dụng khóa công khai của Alice để mã hóa:
Trang 291.2.3 So sánh giữa mật mã khóa đối xứng và mật mã khóa công khai
Cả 2 hệ mật mã khóa đối xứng và mật mã khóa công khai đều có những ưu
điểm và nhược điểm riêng Mật mã khóa đối xứng có những ưu điểm so với mã hóa
khóa công khai :
Tốc độ mã hóa nhanh và không đòi hỏi năng lực tính toán lớn
Với cùng 1 độ an toàn, khóa của mật mã khóa đối xứng nhỏ hơn so với
khóa của mật mã khóa công khai
Ngược lại, mật mã khóa công khai cũng có những ưu điểm so với mã hóa khóa
đối xứng:
Mật mã khóa đối xứng yêu cầu 2 bên phải giữ bí mật khóa chia sẻ, mật
mã khóa công khai thì mỗi bên có khóa bí mật của riêng mình, còn khóa
công khai sẽ được công khai
Mật mã khóa đối xứng gặp khó khăn trong việc phân phối khóa và quản
lý khóa Việc phân phối khóa của khóa đối xứng là đặc biệt quan trọng,
thường sẽ phải bằng phương pháp vật lý để không bị nghe lén, đọc trộm
Mặt khác mật mã khóa đối xứng thường xuyên phải thay đổi khóa để
đảm bảo tính an toàn Với mật mã khóa công khai, việc trao đổi khóa là
rất dễ dàng, bởi khóa của mỗi bên được công bố công khai
Mã hóa khóa đối xứng không có chức năng ký, do vậy không thể thực
hiện các dịch vụ xác thực và chống chối bỏ Mật mã khóa công khai cung
cấp đầy đủ các dịch vụ xác thực và chống chối bỏ
1.3 Chữ ký điện tử
1.3.1 Khái niệm
Chữ ký điện tử là một kỹ thuật mật mã cung cấp dịch vụ xác thực, điều khiển
truy cập và chống chối bỏ Mục tiêu của chữ ký điện tử là cung cấp khả năng để 1
thực thể truyền thông có thể đính kèm những thông tin có tính chất định danh lên
một thông điệp truyền Quá trình ký 1 thông điệp là một quá trình sử dụng một số
thông tin bí mật của bên gửi để mã hóa thông điệp đó thành 1 chuỗi định danh để
chứng minh quan hệ không thể chối bỏ của thông điệp được ký và thực thể ký Chữ
ký điện tử được định nghĩa như sau [13]:
M là tập các thông điệp được ký
Comment [u6]: Noureddine Boudriga (2009), “Security of mobile
communications”, Auerbach Publications, pp
59-60
Trang 30 S là tập các thành phần chữ ký (Thường là 1 xâu binary có độ dài cố định)
Hàm “ký” SgA: M → S là hàm biến đổi từ tập M sang tập S của thực thể
truyền A Phép biến đổi SgA được gọi là một thuật toán “ký”, với 1 khóa
Mô hình chứ ký điện tử (Sg, V) phải đảm bảo các tính chất sau:
Chữ ký SgA(m) là chữ ký hợp lệ của thực thể truyền thông A khi và chỉ khi VA(m, SgA(m)) = 1
Với một thông điệp m thuộc M, việc tính toán hàm ra hàm ký s của thông điệp m đối với thực thể giả danh sao cho V(m,s) = 1 là một việc không khả thi
A, B sẽ sử dụng hàm băm H để băm lại thông điệp m, sau đó sẽ sử dụng khóa công khai của A để giải mã chữ ký số A gửi kèm, nếu giá trị được giải mã trùng với giá trị băm của hàm H thì B sẽ chắc chắn thông điệp m là do A gửi chứ không phải một bên thứ 3 nào khác
Trang 31Với việc áp dụng kết hợp các kỹ thuật đóng dấu thời gian (timestamp), chữ ký điện tử cung cấp các dịch vụ an ninh sau:
in the middle)
1.3.2 Mô hình ký số RSA
Theo mô hình mật mã RSA, khóa bí mật của thực thể truyền thông A có dạng
là PRA=(n,d), khóa công khai có dạng PUA=(n,e) Không gian của thông điệp và bảng mã là {1,2,3 … n} (n là một hợp số có giá trị rất lớn)
Để ký vào một thông điệp m, thực thể A sẽ sử dụng một hàm băm H để băm thông điệp m về một bản mã có kích thước cố định, sau đó A sẽ sử dụng khóa bí mật của mình để ký trên giá trị băm đó Ta có thể viết:
sSg m H m n
Thực thể A sau khi ký thông điệp m tính được giá trị s, A sẽ gửi cho đối tác là
B thông điệp m và chữ ký s, ký hiệu là ( | )m s Khi B nhận được thông điệp m và chữ ký s A gửi, B sẽ sử dụng khóa công khai của A là PUA=(n,e) để giải mã chữ ký
s, tức B sẽ tính giá trị của s emodn Sau đó A sẽ so sánh giá trị giải mã tính được
với giá trị băm của hàm băm H(m), nếu H(m) = s emodn thì chữ ký của A là hợp lệ,
và B có thể chắc chắn A đã ký vào thông điệp m
Hình 1.13: Mô hình ký số RSA
(6)
Trang 321.3.3 Mô hình ký số DSA
Mô hình ký số DSA là thuật toán ký số dựa trên độ khó của bài toán tính
logarit rời rạc, được đề xuất lần đầu bởi 2 nhà toán học ElGamal [11] và Schnorr
[20]
Thuật toán DSA được thực hiện qua các bước sau:
Khởi tạo:
Chọn số nguyên tố p có độ dài bit là 160bit
Chon số nguyên tố p nằm trong khoảng 1
(2L, 2 )L , với L là bội của 64 thỏa mãn 512 L 1024
Chọn số g có dạng gh(p 1)/qmodp với h là số nguyên dương nằm
trong khoảng (1, p-1)
Tạo khóa bí mật:
Chọn 1 số nguyên ngẫu nhiên, hoặc giả ngẫu nhiên x với 0 < x < q Khóa
bí mật là PR=( x )
Tạo khóa công khai :
Tính toán yg xmodp Khóa công khai là PU = (p, q, g, y)
Quá trình ký số thông điệp m của bên gửi :
Chọn ra số ngẫu nhiên hoặc giả ngẫu nhiên x với 0 < x < q
Quá trình xác thực của bên nhận :
Thông điệp bên nhận nhận được là ( m’|(r’,s’) )
Tính w=(s') mod1 q
Tính u1H m( ') w mod q
Tính u ( ' w) modr q
Comment [u7]: ElGamal, T "A
Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms." IEEE Transactions on Information Theory, July 1985
Comment [u8]: Schnorr, C "Efficient
Signatures for Smart Card." Journal of Cryptology, No 3, 1991
Trang 33 Tính v g u1y u2modp modq
Nếu v=r’ thì chữ ký trên thông điệp m là hợp lệ
Trong mô hình chữ ký điện tử DSA, hàm H được quy định là hàm băm SHA-1
Mô hình ký số và xác thực của DSA được mô tả trong hình vẽ 1.14a, và mô hình truyền thông sử dụng chữ ký điện tử DSA được biểu diễn trong hình 1.14b
Hình 1.14a : Mô hình ký số và xác thực DSA
Hình 1.14b: Mô hình truyền thông, sử dụng chữ ký điện tử DSA
Trang 341.3.4 Thuật toán băm
Trong các hệ thống an ninh, thuật toán băm thường được sử dụng và giữ một vai trò quan trọng trong các hệ thống mật mã Một hàm băm H ánh xạ xâu dữ liệu
có độ dài hữu hạn tùy ý thành một xâu khác được gọi là mã băm có độ dài cố định
n, chiều dài cố định n phụ thuộc vào hàm băm H Mã băm của một thông điệp được băm bởi hàm H có đặc điểm là khi thay đổi, dù chỉ là 1 bit dữ liệu đầu vào, thì mã băm bị thay đổi hoàn toàn mà không tuân theo một quy luật logic nào, so với mã băm trước khi bị thay đổi
Một hàm băm H có những đặc điểm sau:
Có thể áp dụng với thông báo M có độ dài bất kỳ
Tạo ra giá trị băm có độ dài cố định
H(M) có thể được tính dễ dàng với bất cứ thông báo M nào
Từ mã băm h rất khó tìm lại được thông điệp M thỏa mã H(M)=h Đây là tính một chiều của hàm băm
Từ thông báo M1, rất khó để tìm được thông điệp M2 thỏa mãn H(M1)=H(M2) Tức hàm băm có tính chống xung đột yếu
Rất khó để tìm được 2 thông điệp ( M1, M2 ) thỏa mãn H(M1)=H(M2) Tức hàm băm có tính chống xung đột mạnh
Hiện nay có rất nhiều loại hàm băm khác nhau như MD5, SHA-1, SHA-256, SHA-512 Độ an toàn của hàm băm phụ thuộc vào loại hàm băm, cũng như chiều dài kết quả băm
Ví dụ: Xét hàm băm SHA-256
SHA(“”)= e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
SHA(“mobile”)= d524c1a0811da49592f841085cc0063eb62b3001252a94542795d1ca9824a941 SHA(“mobilz”) = “0617a2dd1e4d7c1e00b15bf723c6a77baa7c2a74e1bbb8a97b817ba5a870cbb3” SHA(“mobil”)=”403b42efc1997638d33da8f5282c7579d00a885c3e7bd0193fd2d26fd7ef72e0”
1.4 Xác thực và các các mô hình xác thực
Xác thực là quá trình nhằm xác nhận định danh của một thực thể truyền thống, cũng nhưng các thông tin quan trọng đi kèm khác như tên, mật khẩu, và một số
Trang 35thông tin khác Thực thể cần xác thực ở đây có thể là người sử dụng cuối, thiết bị di động, máy tính, ứng dụng, một dịch vụ, hoặc một hệ thống
Quá trình xác thực bao gồm 2 bên: Bên cần xác thực (claimant) và bên xác thực (verifier) Bên cần xác thực sẽ khai báo định danh và các thông tin để bên xác thực có thể xác thực lại định danh đó Khái niệm “xác thực” ( authentication) là một khái niệm đặc biệt, nó có ý nghĩa khác hẳn với khái niệm “định danh” (identification) – Là việc xác định danh tính của thực thể đang giao tiếp – Khái niệm xác thực cũng khác với khái niệm “quyền truy cập” ( authorization) - là việc xác định quyền truy cập dữ liệu và tài nguyên của một thực thể đã được “xác thực” (authentication)
Ta cần phân biệt 2 khái niệm xác thực, là xác thực thực thể (entity authentication) và xác thực thông điệp (message authentication) Xác thực thực thể
là quá trình xác thực danh tính của một thực thể, xem liệu thực thể đang được xác thực có đúng với danh tính của nó, ví dụ là xác thực người dùng đăng nhập vào hệ thống, và đó là một quá trình thời gian thực Ngược lại xác thực thông điệp là một quá trình không là quá trình thời gian thực, nó đảm bảo việc thông điệp được xác thực không bị thay đổi và thông điệp đó được gửi bởi một thực thể đã xác định danh tính
Trong xã hội thông tin ngày nay, việc xác thực thông báo trở thành một vấn đề quan trọng trên nhiều lĩnh vực, đặc biệt là lĩnh vực kinh doanh và lĩnh vực quân sự
Đã có rất nhiều phương pháp, nhiều công nghệ được phát minh cung cấp nhiều kỹ thuật, nhiều dịch vụ xác thực an toàn và tiện lợi Tuy nhiên, có thể phân loại kỹ thuật xác thực thành 3 nhóm:
Xác thực dựa trên mã hóa thông điệp: Là kỹ thuật sử dụng phương pháp
mã hóa để mã hóa toàn bộ thông điệp, sau đó làm căn cứ để xác thực
Xác thực mật mã kiểm tra : Sử dụng 1 hàm tổng kiểm tra công khai, với
1 khóa bí mật sẽ được mã hóa thành 1 xâu giá trị có độ dài cố định, làm căn cứ xác thực
Xác thực dựa trên hàm băm: Sử dụng các hàm băm một chiều, mã hóa thông điệp có độ dài bất kỳ thành xâu có độ dài cố định, làm căn cứ xác thực
Như đã nêu ở trên, xác thực thực thể là một quá trình thời gian thực, các giao thức xác thực thực thể (entity authentication protocol) phải đảm bảo được những tiêu chí sau:
Trang 36 Không có một bên thứ ba nào có thể giả mạo được
Bên xác thực không thể tái sử dụng được các thông tin xác thực cũ của thực thể cần xác thực để cung cấp khả năng giả mạo cho một bên thứ ba
Thông báo được ký không thể được khôi phục lại từ mã của chữ ký trong suốt quá trình xác thực
Trong phần này, ta sẽ xét lần lượt các các mô hình xác thực và các đặc điểm của các mô hình đó
1.4.1 Mô hình xác thực yếu
Mô hình xác thực yếu là một mô hình xác thực, nhưng nó không cung cấp một giải pháp xác thực hiệu quả và đầy đủ về tổng thể Có hai loại hình xác thực yếu rất được quan tâm bởi đó là các phương pháp xác thực tự nhiên và rất phổ biến hiện này, đó là mô hình xác thực dựa trên mật khẩu (Password-based Authentication) và
mô hình xác thực dựa trên mã cá nhân (PIN-based Authentication)
1.4.1.1 Xác thực dựa trên mật khẩu
Xác thực dựa trên mật khẩu là phương pháp xác thực người dùng phổ biến nhất hiện nay Hệ xác thực dựa trên mật khẩu được xây dựng trên mô hình chia sẻ mật khẩu giữa người sử dụng và hệ thống, hệ thống sẽ lưu các bản ghi chứa mật khẩu chia sẻ của người dùng, mật khẩu này sẽ được người sử dụng dùng để cung cấp cùng với tên định danh khi đăng nhập trong bước xác thực
Các hệ xác thực dựa trên mật khẩu thường được phân biệt bởi phương thức lưu trữ mật khẩu trong hệ thống Ở các hệ thống thế hệ trước, mật khẩu thường được lưu dưới dạng bản rõ (plaintext) trên hệ thống file hoặc trong một cơ sở dữ liệu Việc lưu như vậy khá nguy hiểm, bởi ai có thẩm quyền truy cập hệ thống (Quản trị viên, hoặc hacker khi chiếm được quyền kiểm soát) đều có thể lấy cắp được mật khẩu và thông tin của người dùng Để khắc phục nhược điểm này, các hệ thống ngày nay thường lưu mật khẩu dưới dạng mã băm sử dụng hàm băm 1 chiều (Ví dụ là MD5, SHA-256) của mật khẩu người dùng Theo đó, khi người dùng nhập mật khẩu đăng nhập, mật khẩu đó sẽ được băm thành mã băm, sau đó hệ thống sẽ so sánh mã băm đó với mã băm mật khẩu được lưu trong hệ thống Biện pháp này đảm bảo rằng mật khẩu nguyên gốc của người dùng không bị lộ, ngay cả khi người quản trị hay hacker xem được bản chứa mật khẩu được lưu trong hệ thống
Mô hình xác thực dựa trên mật khẩu hiện nay đã bộc lộ một số yếu điểm về an ninh Kẻ tấn công có nhiều phương pháp chiếm quyền kiểm soát của người sử dụng bằng cách đánh cắp mật khẩu Phương pháp đơn giản nhất là kẻ tấn công sẽ sử dụng
Trang 37phương pháp nghe lén đường truyền, nếu mật khẩu không được mã hóa trên đường
truyền, kẻ tấn công có thể dễ dàng lấy được mật khẩu của người sử dụng Nếu mật
khẩu đã được mã hóa trên đường truyền, kẻ tấn công có phương pháp khác là sử
dụng tấn công bằng từ điển (Dictionary attack – Là cách tấn công sử dụng 1 từ điển
các mật khẩu thường được sử dụng – Hoặc sử dụng phương pháp tấn công ngày
sinh (Birthday attack) [31] để tìm ra điểm xung đột của thuật toán băm
Tuy nhiên, có một kỹ thuật để cải tiến nâng cao độ an toàn trong hệ thống xác
thực dựa trên mật khẩu, đó là sử dụng mật khẩu một lần (One time password)
Nguyên lý của hệ mật khẩu một lần là mỗi mật khẩu được chỉ có hiệu lực 1 lần,
trong một khoảng thời gian nhất định Mật khẩu một lần đảm bảo việc cho dù kẻ tấn
công có lấy được mật khẩu trên đường truyền, thì kẻ đó cũng không sử dụng lại mật
khẩu đó Mật khẩu một lần được hệ thống sinh ra theo một thuật toán ngẫu nhiên,
hoặc giả ngẫu nhiên, có kích thước cố định và được thông báo lại cho người sử
dụng bằng một kênh truyền thông nào đó như qua tin nhắn di động, qua internet,
hoặc qua các thiết bị chuyên dụng , ví dụ như thiết bị Secure ID của hãng bảo mật
RSA, hay OTP token của hãng VeriSign
1.4.1.2 Xác thực dựa trên mã định danh cá nhân (PIN-based
Authentication)
Mô hình xác thực dựa trên mã định danh cá nhân sử dụng các thiết bị vật lý để
lưu trữ mã định danh cá nhân như thẻ SmartCard, hay USB Token Mỗi người sử
dụng được cấp một mã cá nhân (PIN) có chiều dài từ 4-10 chữ số, mã cá nhân được
bảo vệ trong thiết bị vật lý bằng mật khẩu tự đặt của người sử dụng Khi đăng nhập
vào hệ thống, ở bước xác thực, người dùng phải cắm thiết bị vào máy tính để nhập
mã PIN, thông thường khi đó thiết bị sẽ yêu cầu người sử dụng nhập mật khẩu để có
thể kích hoạt mã PIN được lưu trong thiết bị Để đảm bảo mã PIN của người sử
dụng được an toàn ngay cả trong trường hợp người sử dụng bị mất, thiết bị token sẽ
khóa hoặc tự hủy nếu kẻ tấn công nhập sai mật khẩu sử dụng trong một số lần liên
tiếp (Thường là 3 lần hoặc 5 lần)
1.4.2 Mô hình xác thực mạnh
Thông thường, mô hình xác thực mạnh thường sử dụng các giao thức xác thực
dựa trên việc hỏi và trả lời (Challenge-Response), các giao thức đó có thể được mô
tả như sau: Một người sử dụng khi muốn truy cập vào một dịch vụ hay một hệ
thống, anh ta phải chứng minh được danh tính của mình với hệ thống bằng những
Comment [u9]: William Stalling (2005)
“Cryptography and Network Security”,
Prentice Hall Publisher, pp 338
Trang 38những kiến thức của anh ta về một thông tin bí mật, có liên quan tới anh ta và chỉ anh ta mới có thể tạo ra câu trả lời chính xác mà không cần tiết lộ thông tin bí mật
đó cho bên xác thực Ta gọi chung các giao thức xác thực đó là giao thức hỏi trả lời
(challenge-Response Protocol )
Các giao thức xác thực thường được xây dựng trên hệ mã hóa chia sẻ khóa, hoặc hệ mã hóa khóa công khai, hoặc các kỹ thuật zero-knowledge – là kỹ thuật được sử dụng để chứng minh danh tính dựa trên thông tin bí mật của chủ thể mà không cần tiết lộ bí mật đó của chủ thể - Giao thức xác thực thường sử dụng các tham số thời gian, hoặc kỹ thuật đánh số thông điệp để nhận biết thông điệp nào là thông điệp mới, thông điệp nào là thông điệp đã được gửi rồi, để tránh tấn công lặp lại, kỹ thuật này được gọi là kỹ thuật đóng dấu thời gian Kỹ thuật đóng dấu thời gian được thực hiện như sau: Khi 1 thông điệp được gửi từ bên gửi, bên gửi sẽ chèn
1 con dấu thời gian (timestamp) đi kèm thông điệp và nó được mã hóa cùng thông điệp Khi bên nhận nhận được thông điệp, bên nhận sẽ giải mã thông điệp và sẽ thu được con dấu thời gian đó, bên nhận sẽ tính toán độ lệch thời gian so thời điểm nhận, tính theo đồng hồ của máy nhận Nếu độ lệch thời gian nằm trong một giới hạn cho phép thì thông điệp đó là hợp lệ qua bước kiểm chứng con dấu thời gian Khi thực thi phương pháp này, cần chú ý tính đồng bộ của đồng hồ bên gửi và đồng
hồ bên nhận
Các hệ xác thực mạnh được xây dựng theo 3 loại sau: Giao thức xác thực trên
hệ mật mã , giao thức xác thực lời dựa trên các kỹ thuật zero-knowledge, và xác thực dựa trên thiết bị hỗ trợ
1.4.2.1 Giao thức xác thực dựa trên hệ mật mã
Là các giao thức sử dụng các hệ mã hóa để bảo mật và xác thực, có hai hệ mã hóa tương ứng với 2 hệ giao thức xác thực đó là: Giao thức xác thực dựa trên mật
mã đối xứng (Hay mật mã khóa chung), và giao thức xác thực dựa trên mật mã khóa công khai
a Giao thức xác thực dựa trên mật mã khóa đối xứng
Với giao thức xác thực sử dụng mật mã khóa đối xứng, các bước được thực hiện có thể được mô tả như sau: Xét một phiên xác thực giữa người dùng A và hệ thống B sử dụng giao thức xác thực mật mã khóa đối xứng, do sử dụng mật mã khóa đối xứng, nên A và B cùng thống nhất sử dụng khóa chung k và hệ mã hóa Ek
Để bắt đầu phiên, bên A sẽ gửi yêu cầu xác thực sang bên B
Bên B sẽ sinh ra 1 số ngẫu nhiên r, sau đó dùng hàm mã hóa với khóa chung chia sẻ để mã hóa số r kèm theo một thông điệp tùy chọn m để
Trang 39phục vụ cho việc định danh hoặc chống tấn công lặp lại, tức B sẽ gửi lại cho A thông điệp Ek(r || m) (Ký hiệu || là ký hiệu nối giữa các thông điệp nhỏ trong 1 thông điệp tổng)
Bên A nhận được thông điệp Ek(r || m) từ bên B gửi, do A và B cùng chia
sẻ 1 khóa chung k, nên chỉ có A mới có thể giải mã thông điệp B gửi để nhận được số ngẫu nhiên r và thông điệp tùy chọn m Sau đó bên A sẽ gửi lại cho bên B một thông điệp có chứa số ngẫu nhiên r kèm 1 thông điệp tùy chọn m’ được mã hóa bởi hàm mã tức thông điệp Ek(r || m’)
Bên B nhận lại thông điệp bên A gửi, bên B sẽ giải mã thông điệp và nhận lại số ngẫu nhiên r, B sẽ so sánh số r nhận được với số r trước đó B
đã gửi cho A Nếu trùng nhau thì A được xác thực và ngược lại
Trong trường hợp A cũng cần xác thực lại B, ở bước yêu cầu xác thực A sẽ gửi định danh của A (IDA) cho B, B sẽ gửi kèm lại số ngẫu nhiên r và IDA trong được mã hóa bởi Ek Ta có thể tóm tắt lại quá trình xác thực như sau:
b Giao thức xác thực dựa trên mật mã công khai
Giao thức xác thực dựa trên mật mã công khai cũng tương tự như giao thức dựa trên mật khẩu khóa đối xứng, chỉ khác ở điểm là hệ mật mã sử dụng là mật mã
Trang 40công khai Nguyên lý chung của giao thức vẫn là bên B sẽ gửi cho bên A một số ngẫu nhiên r, nhưng thay vì sử dụng mật mã khóa đối xứng, B sẽ mã hóa số r và thông điệp tùy chọn m bằng khóa công khai của A, và gửi cho A A nhận được sẽ giải mã bằng khóa bí mật, rồi gửi lại cho B số r và thông điệp m’, sử dụng khóa công khai của B B sẽ dùng khóa bí mật của B để lấy ra số r, so sánh với số ngẫu nhiên B đã gửi cho A, nếu trùng thì A được xác thực và ngược lại
Nếu A và B cần xác thực nhau, ta áp dụng kỹ thuật tương tự với trường hợp xác thực khóa đối xứng, ta có quá trình xác thực như sau:
(1) A → B : IDA
(2) B → A : E(PUA, IDA || r || m)
(3) A → B : E(PUB, r || m’)
1.4.2.2 Giao thức xác thực dựa trên kỹ thuật zero-knowledge
Như đã đề cập ở phần trên, các phương pháp xác thực thường bên cần xác thực phải công bố hoặc tiết lộ một phần hoặc những thông tin liên quan tới những bí mật của họ để được xác thực Sẽ rất nguy hiểm nếu bên xác thực có ý đồ xấu muốn khôi phục lại những thông tin bí mật của người cần xác thực dựa trên những thông tin bên cần xác thực cung cấp cho ở những phiên xác thực trước Ví dụ với giao thức xác thực dùng mật mã khóa đối xứng, bên A sẽ bị tổn thương nếu bên B cố tình tiết lộ khóa chia sẻ của A và B cho một bên thứ ba khác Kỹ thuật xác thực zero-knowledge được đề xuất cho phép người cần xác thực vẫn có thể xác thực được mà không cần tiết lộ những thông tin bí mật liên quan tới khóa của mình cho bên xác thực Ngược lại, từ những thông tin bên cần xác thực cung cấp ở những