Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng

Xác thực chủ thể là gì?

• Xác thực chủ thể là tạo ra liên kết giữa định danh và đối

tượng, thực thể: 2 bước

Chủ thể cung cấp một định danh trong hệ thống

Chủ thể cung cấp thông tin xác thực có thể chứng minh sự liên kết

giữa định danh và chủ thể

• Các phương pháp xác thực chính:

Cái chủ thể biết (What the entity knows)

Cái chủ thể có (What the entity has)

Chủ thể là gì (What the entity is)

Vị trí của chủ thể (Where the entity is)

• Xác thực đa yếu tố: sử dụng >1 yếu tố xác thực

Các thành phần của hệ xác thực

• A: Tập các thông tin đặc trưng mà chủ thể sử dụng để

chứng minh định danh của anh ta

• C: Tập các thông tin mà hệ thống lưu trữ và sử dụng để

xác minh sự đúng đắn của thông tin trong tập A

• F: Tập các hàm sinh C từ A

 , :  → 

• L: Tập các hàm xác thực

, :  ×  → { ,  }

• S: Tập các hàm lựa chọn cho phép các thực thể tạo hoặc

thay thế các thông tin trong A và C

Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng trang 1

Trang 1

Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng trang 2

Trang 2

Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng trang 3

Trang 3

Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng trang 4

Trang 4

Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng trang 5

Trang 5

Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng trang 6

Trang 6

Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng trang 7

Trang 7

Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng trang 8

Trang 8

Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng trang 9

Trang 9

Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng trang 10

Trang 10

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

pdf 30 trang duykhanh 7040
Bạn đang xem 10 trang mẫu của tài liệu "Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng", để 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 An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng

Bài giảng An toàn an ninh mạng - Bài 5: Xác thực chủ thể - Bùi Trọng Tùng
entity knows)
 Cái chủ thể có (What the entity has)
 Chủ thể là gì (What the entity is)
 Vị trí của chủ thể (Where the entity is)
• Xác thực đa yếu tố: sử dụng >1 yếu tố xác thực
 4
 2
Các thành phần của hệ xác thực
• A: Tập các thông tin đặc trưng mà chủ thể sử dụng để 
 chứng minh định danh của anh ta
• C: Tập các thông tin mà hệ thống lưu trữ và sử dụng để 
 xác minh sự đúng đắn của thông tin trong tập A
• F: Tập các hàm sinh C từ A
  ∈ , :  → 
• L: Tập các hàm xác thực
  ∈ , :  ×  → {, }
• S: Tập các hàm lựa chọn cho phép các thực thể tạo hoặc 
 thay thế các thông tin trong A và C
 5
Một ví dụ - Hệ xác thực bằng mật khẩu
• Hệ xác thực mật khẩu, giả sử mật khẩu lưu dưới 
 dạng rõ
  A: tập các chuỗi ký tự được chấp nhận là mật khẩu
  C = A
  F: hàm đồng nhất thức I 
  L: hàm so sánh =
  S: hàm thiết lập, thay đổi mật khẩu
 6
 3
 2. HỆ XÁC THỰC BẰNG MẬT KHẨU 
 7
2. Hệ xác thực bằng mật khẩu
• Mật khẩu: một chuỗi ký tự hoặc một nhóm từ được sử 
 dụng để xác thực chủ thể.
 Thực thể(Entity) cần xác thực (người dùng, thiết bị, ứng dụng...)
 Người thẩm tra(Verifier): kiểm tra tính hợp lệ của mật khẩu
• Một số điểm yếu trên hệ thống xác thực bằng mật khẩu:
 Lưu trữ mật khẩu trong CSDL không an toàn
 Truyền mật khẩu trên kênh không an toàn
 Người dùng không cẩn trọng:
 Sử dụng mật khẩu yếu
 Ghi chép mật khẩu vào văn bản
 Chia sẻ mật khẩu cho người khác (vô tình hoặc cố ý)
 8
 4
Lưu trữ mật khẩu
• Lưu mật khẩu dưới dạng rõ:
 Nguy cơ mất an toàn cao nhất
• Lưu mật khẩu dưới dạng bản mã:
 An toàn khi sử dụng hệ mật mã tốt, bảo vệ khóa giải mã an toàn
 Hạn chế: cần thao tác giải mã bất cứ khi nào cần xác thực
• Lưu mật khẩu dưới dạng mã băm:
 Chi phí thấp hơn
 Hạn chế: nguy cơ bị tấn công dò đoán dựa trên từ điển. Có thể hạn 
 chế bằng cách đưa thêm “salt” vào mật khẩu trước khi băm
• Sử dụng máy chủ lưu trữ:
 Giải pháp 1: Người thẩm tra yêu cầu máy chủ chuyển mật khẩu để 
 xác thực
 Giải pháp 2: Người thẩm tra đưa cho máy chủ thông tin người 
 dùng. Máy chủ xác thực và thông báo lại kết quả
 9
Tấn công vào hệ xác thực bằng mật khẩu
• Tấn công thụ động: nghe lén, quan sát quá trình nhập 
 mật khẩu
 Nhìn trộm
 Sử dụng chương trình key logging
 Tấn công kênh bên
 Chặn bắt gói tin
• Tấn công chủ động:
 Giải mạo chương trình cung cấp dịch vụ (server)
 Giả mạo chương trình khách (client)
 Tấn công man-in-the-middle
 Tấn công vào máy chủ vật lý cung cấp dịch vụ
 10
 5
Tấn công dạng off-line
• Kẻ tấn công biết:
 Tập thông tin C hệ thống dùng để xác thực
 Tập các hàm biến đổi F
• Mục tiêu: tìm các thông tin  ∈ 
• Đặc điểm: không tương tác với hệ xác thực
• Ví dụ: kẻ tấn công biết có cơ sở dữ liệu chứa mã băm 
 của mật khẩu và hàm băm sử dụng
• Nguy cơ: người dùng sử dụng các mật khẩu dễ đoán, kẻ 
 tấn công có một bộ từ điển chưa mã băm tương ứng
• Giảm thiểu nguy cơ: Hash(Password, Salt)
 11
Tấn công dạng online
• Kẻ tấn công biết tập hàm xác thực L
• Mục đích: dò thử lần lượt các mật khẩu dựa trên kết quả 
 xác thực hệ thống trả lại
• Đặc điểm:
 Tương tác trực tiếp với hệ xác thực
 Có thể thử trên 1 hoặc đồng thời nhiều tài khoản
• Xác suất tấn công thành công:  ≥ ( × )/
  G: Tốc độ kẻ tấn công dò thử
  T: Thời gian kẻ tấn công dò thử
  N: Số mật khẩu hệ thống có thể tạo ra
Giảm thiểu:
 Tăng độ dài của mật khẩu
 Quy định số lần thử xác thực tối đa trong một khoảng thời gian 
 12
 6
Khôi phục mật khẩu
• Làm thế nào để người dùng có thể khôi phục mật khẩu 
 khi họ quên?
 Gửi trực tiếp qua email
 Reset qua email
 Câu hỏi bí mật
 Sử dụng tin nhắn SMS
 ...
• Lưu ý: xây dựng giao thức an toàn
 13
Một số chính sách sử dụng mật khẩu
• Mục đích: tăng cường an toàn cho hệ xác thực dựa trên 
 mật khẩu
• Quy định độ dài tối thiểu
• Quy định các ký tự bắt buộc phải sử dụng
• Thay đổi mật khẩu định kỳ
• Hạn chế sử dụng lại mật khẩu cũ trong một khoảng thời 
 gian nhất định
• Hạn chế số lần thử xác thực
• Tăng thời gian chờ thử xác thực lại
• Yêu cầu đổi mật khẩu sau lần đăng nhập đầu tiên
• ...
 14
 7
 3. MỘT SỐ GIAO THỨC XÁC THỰC
 15
Giao thức PAP
• Password Authentication Protcol
• Được sử dụng trong giao thức mạng PPP trước đây
• Nội dung:
(1) U S: ID || Password
(2) Server kiểm tra trong CSDL
 S U: ACK/NAK
• Không an toàn
 16
 8
Xác thực 1 chiều dựa trên hệ mật mã KĐX
• Giả sử 2 bên đã trao đổi một giá trị khóa bí mật KS
(1) U S: Request
(2) S U: Challenge
(3) U S: f(KS, Challenge)
Hàm f: có thể là các hàm mã hóa KĐX, hàm băm
KS : khóa hoặc mật khẩu
• Bài tập: Phân tích các điểm yếu của sơ đồ này
 17
Xác thực 1 chiều dựa trên hệ mật mã KCK
 ISO/IEC 9798-3 / FIPS-196
(1) A B: Request
(2) B A: TokenID || NB
(3) A B: TokenID || CertA || TokenAB
TokenID: chứa thông tin của phiên
TokenAB = NA || NB || E(KRA, NA || NB)
 18
 9
Giao thức CHAP
• Challenge Handshake Authentication Protocol
(1) U S: Request
(2) S U: Challenge
(3) U S: ID || Hash(ID || Hash(Password) || Challenge)
(4) Server kiểm tra
 S U: ACK / NAK
• Challenge: chuỗi ký tự ngẫu nhiên
• Hash: MD5
 19
Giao thức EAP
• Extensible Authentication Protocol
• Có khoảng 40 biến thể kết hợp thêm nhiều cơ chế khác 
 nhau:
 EAP-MD5: tương tự CHAP
 EAP-TLS, EAP-TTLS, PEAP: kết hợp TLS
 EAP-POTP: kết hợp One-Time-Password
 EAP-PSK: kết hợp pre-shared key
 ...
 20
 10
Ví dụ: EAP-PEAP
 21
Ví dụ: EAP-PEAP
 22
 11
Xác thực 2 chiều sử dụng hệ mật mã KĐX
• Giả sử A và B đã chia sẻ khóa KS
(1) A B: IDA
(2) B A: NB
(3) A B: f(KS, NB) || NA
(4) B A: f(KS, NA)
Hàm f: có thể là các hàm mã hóa KĐX, hàm băm
KS : khóa hoặc mật khẩu
 23
Bài tập
• Xem xét tính an toàn của giao thức xác thực sau:
(1) A B: IDA || NA
(2) B A: f(KS, NA) || NB
(3) A B: f(KS, NB)
• Nhận xét: người bắt đầu giao dịch phải là người chứng 
 minh trước
 24
 12
Xác thực 2 chiều sử dụng hệ mật mã KCK
 ISO/IEC 9798-3 / FIPS-196
(1) A B: Request
(2) B A: TokenID || NB
(3) A B: TokenID || CertA || TokenAB
(4) B A: TokenID || CertB || TokenBA
TokenAB = NA || NB || E(KRA, NA || NB)
TokenBA = NA || NB || E(KRB, NA || NB)
 25
Giao thức dạng zero-knowledge (ZKP)
 Lối vào
• Trong hang động có một 
 căn phòng bí mật được 
 khóa bởi 3 cửa D1, D2, D3
• Peggy biết mật khẩu để 
 mở các cánh cửa (VD. 
 “Vừng ơi, mở ra!” )
• Victor muốn bỏ tiền để 
 mua lại mật khẩu
 D2
• Làm thế nào để Peggy D
 chứng minh với Victor có 1
 thể vào căn phòng mà 
 không làm lộ mật khẩu? D3
 Lối ra 26
 13
Giao thức ZKP
• Là các giao thức cho phép một bên chứng minh được thông 
 tin của mình mà không làm lộ nội dung thông tin đó cho các 
 bên còn lại (bên thứ 2 hoặc kẻ tấn công)
• Các bên tham gia giao thức:
 Peggy-Người chứng minh: Peggy nắm được một số thông tin nào đó 
 và muốn chứng minh cho Victor nhưng không muốn để lộ thông tin 
 này
 Victor-Người thẩm tra: Được quyền hỏi một số câu hỏi đến khi chắc 
 chắn Peggy nắm thông tin. Victor không thể đoán thông tin từ câu trả 
 lời của Peggy, hoặc do cố tình lừa Peggy tiết lộ thông tin
 Eve-Kẻ nghe lén: Giao thức cần chống lại việc Eve nghe lén thông tin
 Mallory: có nhiều quyền hơn Eve, có thể nghe lén, sửa đổi bản tin 
 hoặc phát lại bản tin 
 27
Một ví dụ - Giao thức Feige–Fiat–Shamir
• Khởi tạo: Peggy chọn p, q là 2 số nguyên tố:
  Tính  =  ×  
  Chọn s sao cho UCLN(s, n) = 1,  sao cho  =   
  Công bố (n,v). Peggy cần chứng minh cho Victor biết mình nắm 
 giữ giá trị s
• Giao thức:
(1) P V:  =    r: số ngẫu nhiên
(2) V chọn ngẫu nhiên  ∈ {0, 1}
 V P: b
(3) P V:  =  ×   
(4) V kiểm tra phương trình đồng dư  ≡  ×  ( )
Hoặc viết dưới dạng khác    =  ×   
 28
 14
Giả mạo
• Mallory có thể giả mạo bằng 2 cách:
(1) Bắt các cặp giá trị (x, y) và phát lại
(2) Phán đoán giá trị của bit b mà Victor thử thách:
 Đoán b = 0, Mallory gửi  =    và  =   
 Đoán b = 1, Mallory chọn y trước và tính x sao cho
  ≡  ×  ( )
• Xác suất thành công của Mallory là bao nhiêu?
• Làm thế nào để giảm xác suất thành công của
 Mallory trong 1 vòng kiểm tra?
 29
Nhận xét
• Vì Peggy nắm được giá trị của s nên có thể qua được vô 
 số vòng kiểm tra (Tính đầy đủ - Completeness)
• Nếu Mallory không biết s, thì xác suất giả mạo thành công 
 lớn nhất là 2 n với n là số vòng kiểm tra (Tính vững chãi-
 Soundness)
• Mallory không thể sử dụng lại bộ số (x,y) để lừa Victor
• Victor không biết gì về s vì bài toán tính căn bậc 2 rời rạc 
 là khó
• Tương tự, Eve nghe trộm được mọi bộ số (x,y,b) cũng 
 không thể đoán được s
 30
 15
Các nguy cơ
• Peggy không thay đổi r sau mỗi vòng kiểm tra
• Chess Grandmaster Problem
• Mafia Problem
• Terrorist Problem
 31
Giao thức ZKP dựa trên hệ mật mã RSA 
(Một ví dụ khác)
• Peggy có khóa công khai KU = (e,n) cần chứng minh anh 
 ta có bí mật m
• Khởi tạo: Peggy tính c = me mod n
• Giao thức:
(1) P V:  =    r: số ngẫu nhiên
(2) V chọn ngẫu nhiên  ∈ {0, 1}
 V P: b
(3) P V:  =  ×   
(4) V kiểm tra phương trình đồng dư  ≡  ×   
Tự kiểm tra tính đầy đủ và bền vững của giao thức.
Hãy đọc thêm lý thuyết tổng quan về ZKP trong tài liệu.
 32
 16
 4. ONE TIME PASSWORD (OTP)
 33
Xác thực đa yếu tố
• Phương pháp xác thực sử dụng mật khẩu không đủ an 
 toàn (Nguyên nhân chủ yếu từ người dùng!)
• Sử dụng mật khẩu một cách an toàn:
 Đủ dài và khó đoán
 Không dùng chung cho nhiều tài khoản
 Thay đổi thường xuyên
  hầu hết người dùng không thực hiện được
 cần thêm các yếu tố xác thực an toàn hơn, không phụ 
 thuộc vào thói quen của người dùng
• Xác thực đa yếu tố (thông thường là 2 yếu tố)
 Cái người dùng biết: mật khẩu
 Cái người dùng có: (thường) thiết bị phần cứng
 34
 17
One Time Password
• Mật khẩu chỉ dùng để xác thực cho 1 phiên hoặc 1 giao 
 dịch
• Phân loại:
 S/Key OTP
 Event-based OTP
 Hash-based OTP (HOTP)
 Time-based OTP (TOTP)
• Cách thức phân phối:
 SMS
 Ứng dụng
 Email
 Token
 35
S/Key OTP(RFC 1760)
• Sử dụng trong một số hệ điều hành 
 Unix
• Pha sinh mật khẩu:
(1) Server chọn một giá trị bí mật S
(2) Áp dụng hàm băm (hoặc HMAC) n 
 lần lên S
(3) Lưu Hn trong CSDL
(4) Cung cấp cho client Hn, Hn-1,, H1
(5) Client hủy giá trị Hn
 36
 18
S/Key OTP(tiếp)
• Xác thực lần đầu
(1) Client gửi Hn-1
(2) Server so sánh HMAC(Hn-1) với Hn trong CSDL
(3) Nếu bước 3 xác thực đúng, thay Hn bằng Hn-1. Gửi 
 thông báo xác thực thành công
(4) Client xóa Hn-1 nếu đăng nhập thành công
• Xác thực các phiên kế tiếp: tương tự
 37
HOTP (RFC 4226)
• Bộ đếm: C (8 byte)
• Giá trị bí mật: K đã chia sẻ trước với client
• Hàm HOTP(K, C)
(1)Tính HS = HMAC-SHA-1(K,C)
(2)Trích xuất 4 bytes từ HS bằng hàm Dynamic Truncation
 Sbits = DT(HS)
(3) Chuyển Sbits sang dạng thập phân. Lấy giá trị HOTP 
với số chữ số k tùy ý.
 Snum = StToNum(Sbits) 
 D = Snum mod 10k
 38
 19
Hàm DT
• Đầu vào: Chuỗi 20 byte S
• Xử lý:
 Lấy OffsetBits = 4 bit thấp của S[19]
 Biến đổi sang dạng thập phân Offset = StToNum(OffsetBits)
 Trích xuất 4 byte trong chuỗi S bắt đầu từ vị trí Offset được chuỗi 
 P
• Đầu ra: Xóa bit đầu tiên của P
 39
Sử dụng HOTP trong giao thức xác thực
• Yêu cầu: Chia sẻ khóa K và C một cách an toàn
• Server: C  C + 1. Tính HOTP(K, C) và lưu trong CSDL
• Client: C  C + 1. Tính HOTP(K, C) và người dùng gửi 
 cho server
• Server:
 Nếu OTP nhận được là hợp lệ tạo OTP mới thay cho giá trị cũ 
 trong CSDL
 Nếu OTP nhận được không hợp lệ, thực hiện đồng bộ lại với tham 
 số đồng bộ s. Yêu cầu xác thực lại.
 Sau T lần xác thực lại không hợp lệ, khóa tài khoản
 40
 20
Đồng bộ trong HOTP
• Khi sử dụng HOTP trên thiết bị OTP Hardware Token, mã 
 OTP được sinh ra theo yêu cầu người dùng
• Tính trạng mất đồng bộ: người dùng yêu cầu mã OTP 
 nhưng không xác thực giá trị bộ đếm của Token và 
 Server khác nhau
• Đồng bộ hóa:
 Server tính toán HOTP cho s lần kế tiếp
 Yêu cầu người dùng gửi một chuỗi (2-3, hoặc hơn) các giá trị 
 HOTP sinh được từ Token
 So sánh chuỗi HOTP của người dùng với chuỗi HOTP đã sinh và 
 thực hiện đồng bộ
 41
TOTP(RFC 6238)
• Thực hiện tương tự HOTP Client Server
• Thay thế bộ đếm C bằng giá 
 trị thời gian:
 Tạo 
T = (Current UnixTime – T0)/X
 và gửi 
T0: Mốc thời gian TOTP
X: Bước thời gian (time step) Nhận 
 và kiểm 
• Vấn đề trễ xử lý
 tra
• Client có thể gửi cùng 1 
 TOTP trong 1 bước thời 
 gian, nhưng server chỉ chấp 
 nhận cho 1 lần xác thực
 42
 21
Mất đồng bộ trong TOTP
• Đồng hồ của 2 bên có sai số khác nhau sau một thời 
 gian có thể mất đồng bộ
• Phía kiểm tra cho phép chấp nhận một giá trị OTP nằm 
 trong khoảng sai số cho phép
• Miền chấp nhận [TOTP(Tp) , TOTP(Tf)]
Tp = (Current UnixTime – 2X + 1 – T0)/X
Tf = (Current UnixTime + X – 1 – T0)/X
 T Thời điểm t
 p Tf
 tb kiểm tra tf
Lưu ý: Nếu xác thực thành công có thể tinh chỉnh lại việc 
mất đồng bộ đồng hồ thời gian tại server
 43
SMS OTP
• Giá trị OTP được sinh ở server và gửi cho người dùng 
 qua tin nhắn SMS
• Không đảm bảo an toàn:
 Điện thoại người dùng bị nghe lén
 Giả mạo trạm BTS
 Tấn công lợi dụng lỗ hổng của giao thức SS7
 44
 22
Tấn công lợi dụng lỗ hổng của SS7
• SS7(Signaling System 7): bộ giao thức điều khiển truyền 
 dữ liệu giữa các cell trong mạng đi động
• Không có cơ chế xác thực
• IMSI: Định danh của thẻ SIM
• IMEI: Định danh của thiết bị
• MSISDN: Số thuê bao
• HLR(Home Location Register): CSDL thuê bao
• MSC(Mobile Switching Center): Bộ chuyển mạch
• MAP(Mobile Application Part): giao thức điều phối truyền 
 dữ liệu giữa các thành phần trong phiên dịch vụ
 45
Tấn công SS7 – Bước 1
 (1) Kẻ tấn công gửi thông 
 điệp 
 SendRoutingInfoForSM 
 chứa MSISDN tới HLR
 (2) HLR gửi thông điệp trả 
 lời chứa:
 • Số thuê bao
 • Địa chỉ của MSC đang xử 
 lý kết nối của nạn 
 nhân(Bob)
 • IMSI của nạn nhân
 46
 23
Tấn công SS7 – Bước 2
 (1) Kẻ tấn công đăng ký 
 thông tin của Bob trên MSC 
 giả mạo (Fake MSC)
 (2) HLR cập nhật vị trí mới 
 của Bob
 (3) HLR yêu cầu MSC cũ 
 giải phóng thông tin
 47
Tấn công SS7 – Bước 3
 (1) Alex gửi tin nhắn SMS 
 cho Bob
 (2) MSC chuyển tiếp tin 
 nhắn tới SMS-C
 (3)SMS-C gửi thông điệp 
 tới HLR yêu cầu vị trí của 
 Bob
 (4) HLR trả lại địa chỉ của 
 Fake MSC
 (5) SMS-C chuyển tiếp tin 
 nhắn tới Fake MSC
 48
 24
 4. XÁC THỰC SỬ DỤNG SINH TRẮC
 49
Xác thực bằng sinh trắc (biometric)
 50
 25
Dấu vân tay
 51
Vân lòng bàn tay
 52
 26
Cấu trúc bàn tay
 53
Khuôn mặt
 54
 27
Mống mắt
 55
Vành tai
 56
 28
Mạch máu
 57
Xác thực bằng sinh trắc
 User Tấn công Server
 nghe lén
 User nonce Server
 Mẫu sinh trắc ?
 h=H( không, nonce) ổn địnhh=H( , nonce)
 58
 29
Những khó khăn khi sử dụng hệ xác thực 
bằng sinh trắc
• Chi phí tính toán
• Giá thành cao
• Tính không ổn định
• Không bền vững
• Lo ngại của người dùng liên quan đến sức khỏe
 59
 30

File đính kèm:

  • pdfbai_giang_an_toan_an_ninh_mang_bai_5_xac_thuc_chu_the_bui_tr.pdf