Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang

Nội dung

l Bài toán xác thực.

l Tấn công vào hệ xác thực

l Các phương pháp xác thực thông điệp

– Mã xác thực thông điệp

– Hàm băm

l Chữ ký số

Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang trang 1

Trang 1

Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang trang 2

Trang 2

Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang trang 3

Trang 3

Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang trang 4

Trang 4

Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang trang 5

Trang 5

Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang trang 6

Trang 6

Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang trang 7

Trang 7

Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang trang 8

Trang 8

Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang trang 9

Trang 9

Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang trang 10

Trang 10

Tải về để xem bản đầy đủ

pdf 58 trang xuanhieu 9100
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

Tóm tắt nội dung tài liệu: Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang

Bài giảng Nhập môn An toàn thông tin - Chương V: Bài toán xác thực - Nguyễn Linh Giang
:
 l Xác thực các bên trao đổi thông điệp.
 l Làm rõ nguồn gốc thông điệp.
 l Xác định tính toàn vẹn thông điệp – xác thực nội dung
 l Xác thực phiên làm việc
5 l Chống phủ nhận.
 Bài toán xác thực
 l Các tiêu chuẩn xác thực
 – Xác thực chủ thể tham gia vào trao đổi thông tin
 – Thông điệp có nguồn gốc;
 – Nội dung thông điệp toàn vẹn, không bị thay đổi trong quá trình 
 truyền tin (xác thực nội dung thông điệp);
 – Thông điệp được gửi đúng trình tự và thời điểm (xác thực phiên);
 l Mục đích của bài toán xác thực:
 – Chống lại các tấn công chủ động:
 l Chống giả mạo;
 l Thay đổi nội dung dữ liệu;
 l Thay đổi trình tự trao đổi thông tin (hoạt động của các giao thức).
 l Các phương pháp xác thực và chống giả mạo:
 – Mã hoá thông điệp;
 – Sử dụng mã xác thực thông điệp;
 – Sử dụng hàm băm;
6 – Sử dụng các giao thức xác thực
 Bài toán xác thực
 l Các hàm xác thực
 – Các cơ chế xác thực được thực hiện trên hai mức:
 l Mức thấp: trong hệ thống phải có các hàm chức năng cho 
 phép kiểm tra tính xác thực của chủ thể và thông điệp:
 – Hàm tạo các giá trị đặc trưng xác thực chủ thể và thông điệp.
 l Mức cao: 
 – Sử dụng các hàm xác thực trong các giao thức xác thực. 
 – Cho phép thẩm định tính xác thực của chủ thể và thông điệp.
7
 Bài toán xác thực
 – Các dạng hàm xác thực:
 l Mã hoá thông điệp: sử dụng hàm mã hoá để xác thực 
 dựa vào việc sở hữu khoá bí mật.
 l Mã xác thực thông điệp: tạo ra mã xác thực thông điệp 
 độ dài cố định bằng phương pháp mã hoá.
 l Hàm băm xác thực thông điệp: tạo mã băm của thông 
 điệp với độ dài cố định. 
 l Chữ ký số: tạo dấu hiệu đặc trưng xác định duy nhất 
 chủ thể.
 l Các phương pháp tạo sinh các dấu hiệu xác thực
 l Các giao thức xác thực
8
 Tấn công vào hệ xác thực
 Xác thực và xác thực hoàn hảo
 l Vấn đề giả mạo và xác thực
 Bên nhận và 
 X Tạo thông Y X’
 thực hiện xác 
 điệp và gắn 
 – Vấn đề: tồn tại thực thông 
 dấu xác thực
 điệp
 B
 hay không phương A
 Y Y’
 pháp xác thực hoàn K - Dấu hiệu kiểm 
 Bên tấn công tra xác thực
 vào hệ xác 
 hảo chống lại giả mạo !? thực C
 – Các kịch bản tấn công vào hệ xác thực:
 l Kịch bản 1:
 – A tạo bản tin X, gắn dấu hiệu xác thực, được bản tin Y và gửi Y cho B
 l Kịch bản 2:
 – Giữa A và B không có phiên làm việc.
 – C tạo ra văn bản Y’, giả mạo A và gửi cho B
9
 Lý thuyết xác thực Simmons
 Xác thực và xác thực hoàn hảo
 l Xác suất tấn công giả mạo
 – Ps: xác suất tấn công thành công bằng thay thế;
 – Pi: xác suất tấn công thành công bằng mạo danh;
 – Xác suất giả mạo thành công: PD=max(Pi, Ps)
 – Khoá K: thông tin tham gia vào quá trình xác thực
 – NX: số lượng thông điệp gốc Xi sao cho 
 P{X = X } ≠0
 i
 – NK: số lượng các dấu hiệu xác thực KL: P{K = KL} ≠0
 – NY: số lượng văn bản được gắn dấu hiệu xác thực Yj, 
 sao cho P{Y = Yj} ≠0
10
 Xác thực bằng cách mã hoá
 l Sử dụng phương pháp mật mã khoá đối xứng
 – Thông điệp gửi từ đúng nguồn vì chỉ có người gửi biết 
 khoá bí mật dùng chung
 – Nội dung không thể bị thay đổi vì văn bản rõ có cấu 
 trúc nhất định
 – Các gói tin được đánh số thứ tự và có mã hoá nén 
 không thể thay đổi trình tự và thời điểm nhận được
 l Sử dụng phương pháp mật mã khoá công khai
 – Không chỉ xác thực thông điệp mà còn tạo chữ ký số
 – Phức tạp và mất thời gian hơn mã hoá đối xứng
11
 Xác thực bằng phương pháp mã 
 hóa
 l Xác thực: chống giả mạo
 – Xây dựng các dấu hiệu đặc trưng cho đối tượng cần 
 xác thực:
 l Đối tượng cần xác thực:
 – Chủ thể tham gia vào quá trình trao đổi thông tin: nguồn 
 gốc thông tin từ các nguồn được xác thực.
 – Nội dung thông tin trao đổi: không bị sửa đổi trong quá 
 trình trao đổi – tính nguyên bản của thông tin.
 – Xác thực phiên trao đổi thông tin: giao thức trao đổi, trật 
 tự hoạt động của giao thức, thời gian trao đổi thông tin, 
 dấu hiệu phiên.
 l Dấu hiệu: dùng các phương pháp mã hóa để tạo dấu hiệu xác 
12 thực: dùng các thuật toán mật mã.
 Xác thực bằng phương pháp mã 
 hóa
 – Quá trình xác thực
 l Tạo dấu hiệu đặc trưng từ đối tượng.
 – Bằng cách sử dụng các phương pháp mật mã.
 – Tính bền vững của dấu hiệu: khi thay đổi nội dung 
 cần xác thực hoặc thay đổi dấu hiệu: hệ thống xác 
 thực phát hiện dễ dàng.
 l Dấu hiệu được gắn kèm đối tượng trong quá trình trao 
 đổi thông tin
 l Bên nhận sẽ tính toán lại dấu hiệu từ nội dung thông tin
 l So sánh dấu hiệu vừa tính được với dấu hiệu gửi kèm.
 l Nếu trùng khớp: dấu hiệu được xác thực; Ngược lại: 
13 không được xác thực.
 Xác thực dùng mã xác thực thông điệp 
 (MAC - checksum)
 l Dùng mã xác thực thông điệp (MAC Message 
 Authentication Code)
 l Là khối có kích thước nhỏ cố định gắn vào 
 thông điệp tạo ra từ thông điệp đó và khóa bí 
 mật chung
 l Bên nhận thực hiện cùng giải thuật trên thông 
 điệp và khoá để so xem MAC có chính xác 
 không
 l Giải thuật tạo MAC giống giải thuật mã hóa 
 nhưng không cần giải mã
14
 Xác thực dùng mã xác thực thông điệp 
 (MAC - checksum)
 l MAC = CK(M) 
 – M: là bản tin
 – K: là khoá mật được chia sẻ chỉ bởi người gửi và 
 người nhận;
 – CK(M): là một hàm xác thực, cho kết quả là một 
 xâu ký tự có độ dài cố định;
15
 Xác thực dùng mã xác thực thông điệp 
 (MAC - checksum)
 l Có thể có nhiều thông điệp có cùng chung 
 MAC
 – Nhưng nếu biết 1 thông điệp và MAC, rất khó tìm ra 
 một thông điệp khác cùng MAC
 – Các thông điệp có cùng xác suất tạo ra MAC
 l Đáp ứng 3 tiêu chuẩn xác thực
16
 Mã hoá bản tin và cách tấn công 
 của đối phương
 l Mã hoá bản tin
 – Đối xứng 
 – Không đối xứng
 l Sự an toàn của thuật toán phụ thuộc độ dài 
 bit của khoá
 l Với 1 lần tấn công
 – 2k lần thử cho khoá k bit
17
 Mã hoá bản tin và cách tấn công 
 của đối phương
 l Ví dụ tấn công
 – Đối phương biết bản mật C (Ciphertext)
 l Pi = DKi (C) cho tất cả khoá Ki
 l Đến khi Pi khớp với bản rõ P (Plaintext)
 l Đối với CheckSum
 – MAC n bit → 2n CheckSum tạo ra
 – N bản tin áp dụng (N>>2n)
 – Khóa K bit → 2k khóa tạo ra
18
 Ví dụ tấn công vào MAC
 l Giả sử: size(K) > size (MAC) (k>n)
 l Match (so khớp): là bản Mi tạo ra gần khớp 
 vơí bản M1
 l Dùng cách tấn công vét cạn 
 (brute-force)
19
 Ví dụ tấn công vào MAC
 l Tấn công MAC bằng cách lặp lại:
 – Vòng 1:
 l Cho: M1, MAC1 = CK (M1)
 l Tính: Mi = CKi(MAC1) cho tất cả khoá
 l Số các so khớp tạo ra ≈2k-n
 – Vòng 2:
 l Cho: M , MAC = C (M )
 2 2 K 2
 l Tính Mi = CKi (MAC2) cho khoá còn lại.
 l Số cách so khớp tạo ra ≈2k-2n
 – 
20
 Ví dụ tấn công vào MAC
 l Kết quả:
 – Nếu k = a*n → mất a vòng để tìm ra
 – Nếu k < n thì ngay vòng 1 tạo ra luôn sự so khớp.
 – Ví dụ
 l Nếu một khoá kích thước k=80 bit 
 l CheckSum kích thước là n=32 bit
 l Thì vòng 1 sẽ tạo ra khoảng 248 khóa Vòng 2 sẽ thu 
 hẹp xuống còn 216 khóa
 Vòng 3 sẽ tạo chỉ 1 khoá đơn, và đó chính là khoá được 
 dùng bởi người gửi.
21
 Ví dụ tấn công vào MAC
 l Tồn tại khả năng có nhiều khoá thoả mãn 
 việc so khớp
 ð Đối phương có thể thực hiện cùng một
 kiểm tra trên một cặp(bảntin,CheckSum) 
 mới.
22
 Mật mã CheckSum dựa trên DES
 D1 D2 DN-1 DN
 (64 bits) (64 bits) (64 bits) (64 bits)
 K DES K DES K DES K DES
 Encrypt Encrypt Encrypt Encrypt
 O1 O2 ON-1 ON
 (64 bits) (64 bits) (64 bits) (64 bits)
23
 Xác thực dùng mã xác thực thông điệp 
 (MAC - checksum)
24
 Xác thực dùng mã xác thực thông điệp 
 (MAC - checksum)
 l Chỉ cần xác thực, không cần mã hoá tốn thời gian và 
 tài nguyên
 – Thông điệp hệ thống
 – Chương trình máy tính
 l Tách riêng bảo mật và xác thực sẽ khiến tổ chức 
 linh hoạt hơn
 – Chẳng hạn mỗi chức năng ở 1 tầng riêng
 l Cần đảm bảo tính toàn vẹn của dữ liệu trong suốt 
 thời gian tồn tại, không chỉ trong lúc lưu chuyển
 – Vì thông điệp có thể bị thay đổi sau khi giải mã
25
 Xác thực dùng hàm băm
 l Tạo ra hàm băm có kích thước xác định từ thông điệp 
 đầu vào(không cần khoá): h=H(M)
 l Hàm băm không cần giữ bí mật
 l Giá trị băm gắn kèm với thông điệp để đảm bảo tính 
 toàn vẹn của thông điệp
 l Bất kỳ một sự thay đổi nhỏ nào trong thông điệp M 
 cũng tạo ra sự thay đổi trong mã băm h
26
 Các yêu cầu đối với hàm băm
 l Có thể áp dụng với thông điệp M với độ dài bất kỳ
 l Tạo ra giá trị băm h có độ dài cố định
 l H(M) dễ dàng tính được với bất kỳ M nào
 l Từ h rất khó tìm được M sao cho h=H(M): tính một 
 chiều
 l Từ M1 rất khó tìm được M2 sao cho H(M1)=H(M2)
 l Rất khó tìm được cặp (M1,M2) sao cho H(M1)=H(M2)
27
 Các yêu cầu đối với hàm băm
 l Đặc điểm 4 là đặc điểm ”1 chiều ” (one -
 way). Nó tạo ra 1 mã cho bản tin nhưng 
 không thể tạo ra 1 bản tin cho 1 mã
 l Đặc điểm 5 đảm bảo:
 – 1 bản tin thay thế khi bị băm không cùng giá trị 
 băm với bản tin đã cho là 
 – Bảo vệ lại sự giả mạo khi sử dụng 1 mã băm 
 được mã hóa. 
28
 Các yêu cầu đối với hàm băm
 l Một hàm băm mà thoả mãn các đặc điểm từ 
 1®5 trong danh sách trên thì vẫn bị coi là 1 
 hàm băm kém. Nếu đặc điểm 6 được thoả 
 mãn, nó mới được coi là một hàm băm tốt. 
 l Đặc điểm 6 bảo vệ bản tin khỏi một lớp các tấn 
 công tinh vi như tấn công ngày sinh (birthday 
 attack).
29
 Xác thực dùng hàm băm
30
 Xác thực dùng hàm băm
31
 So sánh MAC và Hash
 l Tương tự hàm MAC nhưng gọi là hash 
 không khoá, MAC là hash có khoá
32
 Các hàm băm đơn giản
 l Nguyên tắc hoạt động chung:
 – Input: file, message.. được chia thành chuỗi các 
 block n bit
 – Xử lý đầu vào: mỗi block được xử lý tại 1 thời 
 điểm và lặp lại với các block khác ð tạo ra 1 giá 
 trị băm n bit
33
 Hàm băm XOR
 l Thực hiện phép XOR bit-by-bit
 l Có thể biểu diễn như sau:
 – Ci = bi1 Å bi2 Å  Å bim
 – Trong đó:
 Ci : bit thứ i của mã băm (i=1..n)
 m: Số Block n-bit của Input
 bij : bít thứ i của Block j
 Å : phép toán XOR bit
34
 Hàm băm XOR
 l Minh họa:
 Bit 1 Bit 2 . Bit n
 Block 1 B11 B21 . Bn1
 Block 2 B12 B22  Bn2
 . .. ..  
 Block m B1m B2m . Bnm
 Hash Code C1 C2 . Cn
35
 Hàm băm RXOR 
 l Thực hiện: Xoay đi một bit rồi thực hiện 
 phép XOR → tăng tính ngẫu nhiên
 l Sơ đồ:
 – Khởi tạo n bit của giá trị băm bằng 0
 – Xử lý mỗi block n-bit thành công là như sau:
 l Xoay giá trị băm hiện tại sang trái 1 bit
 l XOR block với giá trị băm
36
 SHA-1 (Secure Hash Algorithm -1)
 l Đây là một hàm băm 1 chiều
 l Các phiên bản
 – SHA-0: Công bố năm 1993
 – SHA-1:
 – SHA-2: Bao gồm tập hợp SHA-224, SHA-256, 
 SHA-384, và SHA-512 
 l Chúng được dùng bởi chính phủ Mỹ
37
 SHA-1
 l Đặc điểm của hàm:
 – Input: Đầu vào message có size < 264
 l Chia thành các Block có size = 512 bit
 – Ra: 1 Digest độ dài 160 bit
 – Bảo mật:
 l Không tính toán ra được thông điệp với 1 Digest đã cho
 l Không có 2 thông điệp cùng tạo ra 1 Digest
38
 Sơ đồ hoạt động
39
 Một số kết quả test
 l Một số giá trị digest của SHA-1:
 – SHA1("The quick brown fox jumps over the lazy dog") == 
 "2fd4e1c67a2d28fced849ee1bb76e7391b93eb12" 
 – SHA1("The quick brown fox jumps over the lazy cog") == 
 "de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3" 
 – SHA1("") == 
 "da39a3ee5e6b4b0d3255bfef95601890afd80709" 
40
 Chữ ký số
ØYêu cầu
ØPhân loại
ØTạo và chứng thực chữ ký
Ø Chứng thư số
 Yêu cầu
 Ø Dựa trên thông điệp
 Ø Sử dụng thông tin duy nhất thuộc về người 
 gửi à chống giả mạo
 Ø Dễ kiểm tra và nhận dạng
 Ø Phải không thể tính toán để giả mạo được
 Ø Để thoả mãn các yêu cầu trên, người ta 
 thường sử dụng hàm băm.
42
 Phân loại
 Ø Thường được phân làm 2 loại: 
 ü Chữ ký trực tiếp 
 ü Chữ ký phân xử
43
 Chữ ký trực tiếp
 l Chỉ bao gồm các thành phần truyền thông
 l Có thể được tạo ra :
 l Mã hoã toàn bộ bản tin với khoá riêng của người gửi
 l Mã hoá mã băm của bản tin với khoá riêng của người gửi
 l Tính hợp lệ của chữ ký phụ thuộc vào việc bảo 
 mật khoá riêng của người gửi.
44
 Chữ ký phân xử
 l Hoạt động chung :
 l Mọi bản tin được gửi từ X đến Y phải thông qua A, để 
 kiểm tra nguồn gốc và nội dung của nó
 l Bản tin được ghi lại thời gian rồi được gửi đến B + 1 
 thông điệp được đảm bảo bởi A.
 l Sự có mặt của A giải quyết vấn đề: X có thể phủ nhận 
 bản tin này
45
 Tạo chữ ký
 Quá trình xác thưc gồm 2 quá trình con:
 -Xác thực người gửi: thông qua khoá riêng của người gửi và 
 kiểm chứng khoá riêng bằng khoá công khai của người gửi 
 chứa trong chứng chỉ số
 -Xác thực nội dung (tính toàn vẹn của văn bản) thông qua 
46 mẫu của thông điệp – mã băm của thông điệp.
 Chứng thực chữ ký
47
 Digital Certificate
 l Để chứng thực được chữ ký điện tử bắt buộc 
 người nhận phải có khoá chung của người 
 gửi.
 l Bản chất cặp khoá này không liên hệ với 
 thuộc tính của người sử dụng à cần có cơ 
 chế để liên kết chúng với người dùng à các 
 certificate
 l Các Certificate được CA cung cấp
48
 Các thông tin trong Certificate
 l Phiên bản
 l Số serial
 l Nhà cung cấp Certifficate
 l Người sở hữu Certificate
 l Thời gian hiệu lực của Certificate
 l Các thuộc tính
 l Chữ ký số của nhà cung cấp
 l Khoá công khai của người sở hữu Certificate
 l Thuật toán băm dùng để tạo chữ ký.
49
 Tạo Certificate
 l Các Certificate được 
 tạo ra còn để chứng 
 thực cho bản thân nó
 l Các CA có cấu trúc 
 phân cấp
 l Minh hoạ quá trình tạo 
 Certificate cho CA gốc 
 và CA mức thấp hơn
50
 Cấu trúc phân cấp của CA
51
 Xác thực chuỗi Certificate
52
 Các giao thức xác thực
 l Xác thực hai bên
 l Các phương pháp mã hoá cổ điển
 l Phương pháp mã hoá khoá công khai
53
 Xác thực hai bên
 l Tại đây, chúng ta chỉ xem xét vấn đề quản lý 
 phân phối khoá
 l Tồn tại 2 vấn đề :
 l Tính tin cậy : ngăn chặn hiện tượng giả mạo và tấn công 
 vào khoá phiên
 l Xác định thời điểm: chống lại kiểu tấn công replay
54
 Phương pháp chống replay
 l 2 phương pháp:
 l Timestamp: gắn 1 timestamp vào bản tin --> yêu cầu 
 đồng bộ
 l Challenge/Response: A sẽ gửi đến B 1 nonce và đợi trả 
 lời của B. Nếu có chứa giá trị nonce chính xác thì mới 
 bắt đầu gửi bản tin
55
 Đánh giá 2 phương pháp
 l Timestamp: không áp dụng cho các ứng dụng 
 hướng kết nối
 l Yêu cầu đồng bộ giữa các tiến trình đồng hồ
 l Cơ hội tấn công thành công sẽ tăng lên nếu có 1 khoảng 
 thời gian không đồng bộ 
 l Tính luôn thay đổi và không dự đoàn trước được của các độ 
 trễ trong mạng 
 l Challenge/Response: không áp dụng cho các 
 ứng dụng không hướng kết nối
 l Yêu cầu bắt tay trước khi truyền thông không kết nối
 l Phương pháp tốt nhất: tạo sự đồng bộ giữa đồng hồ ở mỗi 
56 bên
 Phương pháp mã hoá kinh điển
 l Sử dụng 1 trung tâm phân phối khoá tin 
 cậy(KDC) 
 l Mỗi bên chia sẻ 1 khoá mật với KDC:khoá 
 chính 
 l KDC sẽ sinh ra các khoá phiên: sử dụng1 
 trên kết nối giữa 2 bên
 l KDC còn chịu trách nhiệm phân phối các 
 khoá phiên sử dụng khoá chính để bảo vệ 
 quá trình phân phối khoá 
57
 Mã hoá khoá công khai
 l Phương pháp này đảm bảo là mỗi bên đều lưu 
 trữ khoá công khai hiện thời của bên còn lại
 l Tất cả các phương pháp trên vẫn tồn tại 
 những điểm thiếu sót
 l Có nhiều phương pháp: 
 l Denny
 l Woo và Law
58

File đính kèm:

  • pdfbai_giang_nhap_mon_an_toan_thong_tin_chuong_v_bai_toan_xac_t.pdf