Bài giảng An ninh mạng - Bài 5: Xác thực chủ thể. Sau khi học xong chương này, người học có thể hiểu được một số kiến thức cơ bản về: Xác thực chủ thể là gì? Các thành phần của hệ xác thực, hệ xác thực bằng mật khẩu, một số giao thức xác thực, one time password (OTP), xác thực chủ thể.
BÀI XÁC THỰC CHỦ THỂ Bùi Trọng Tùng, Viện Công nghệ thông tin Truyền thông, Đại học Bách khoa Hà Nội Nội dung • Khái niệm chung • Xác thực dựa mật • Các giao thức xác thực dựa mật • Giao thức zero-knowledge • Giới thiệu số phương pháp xác thực khác CuuDuongThanCong.com https://fb.com/tailieudientucntt 1 KHÁI NIỆM CHUNG Xác thực chủ thể gì? • Xác thực chủ thể tạo liên kết định danh đối tượng, thực thể: bước Chủ thể cung cấp định danh hệ thống Chủ thể cung cấp thơng tin xác thực chứng minh liên kết định danh 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ể (What the entity is) Vị trí 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Các thành phần hệ xác thực • A: Tập thông tin đặc trưng mà chủ thể sử dụng để • • • • chứng minh định danh C: Tập thông tin mà hệ thống lưu trữ sử dụng để xác minh đắn thông tin tập A F: Tập hàm sinh C từ A ∈ , : → L: Tập hàm xác thực ∈ , : × →{ , } S: Tập hàm lựa chọn cho phép thực thể tạo thay thông tin A C Một ví dụ - Hệ xác thực mật • Hệ xác thực mật khẩu, giả sử mật lưu dạng rõ A: tập chuỗi ký tự chấp nhận mật C=A F: hàm đồng thức I L: hàm so sánh = S: hàm thiết lập, thay đổi mật CuuDuongThanCong.com https://fb.com/tailieudientucntt HỆ XÁC THỰC BẰNG MẬT KHẨU Hệ xác thực mật • Mật khẩu: chuỗi ký tự nhóm từ 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ệ mật • Một số điểm yếu hệ thống xác thực mật khẩu: Lưu trữ mật CSDL không an tồn Truyền mật kênh khơng an tồn Người dùng không cẩn trọng: Sử dụng mật yếu Ghi chép mật vào văn Chia sẻ mật cho người khác (vơ tình cố ý) CuuDuongThanCong.com https://fb.com/tailieudientucntt Lưu trữ mật • Lưu mật dạng rõ: Nguy an tồn cao • Lưu mật dạng mã: An toàn 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ã cần xác thực • Lưu mật dạng mã băm: Chi phí thấp Hạn chế: nguy bị cơng dị đốn dựa từ điển Có thể hạn chế cách đưa thêm “salt” vào mật trước 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 để 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 thông báo lại kết Tấn công vào hệ xác thực mật • Tấn cơng thụ động: nghe lén, quan sát trình nhập mật 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Tấn cơng dạng off-line • Kẻ công biết: Tập thông tin C hệ thống dùng để xác thực Tập hàm biến đổi F ∈ Đặc điểm: không tương tác với hệ xác thực Ví dụ: kẻ cơng biết có sở liệu chứa mã băm mật hàm băm sử dụng Nguy cơ: người dùng sử dụng mật dễ đốn, kẻ cơng có từ điển chưa mã băm tương ứng Giảm thiểu nguy cơ: Hash(Password, Salt) • Mục tiêu: tìm thơng tin • • • • 11 Tấn công dạng online • Kẻ cơng biết tập hàm xác thực L • Mục đích: dị thử mật dựa kết 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ử đồng thời nhiều tài khoản • Xác suất cơng thành cơng: ≥ ( × G: Tốc độ kẻ cơng dị thử T: Thời gian kẻ cơng dị thử N: Số mật hệ thống tạo )/ Giảm thiểu: Tăng độ dài mật Quy định số lần thử xác thực tối đa khoảng thời gian 12 CuuDuongThanCong.com https://fb.com/tailieudientucntt Khôi phục mật • Làm để người dùng khôi phục mật 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 tồn 13 Một số sách sử dụng mật • Mục đích: tăng cường an tồn cho hệ xác thực dựa • • • • • • • • mật Quy định độ dài tối thiểu Quy định ký tự bắt buộc phải sử dụng Thay đổi mật định kỳ Hạn chế sử dụng lại mật cũ khoảng thời gian đị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 sau lần đăng nhập 14 CuuDuongThanCong.com https://fb.com/tailieudientucntt MỘT SỐ GIAO THỨC XÁC THỰC 15 Giao thức PAP • Password Authentication Protcol • Được sử dụng giao thức mạng PPP trước • Nội dung: (1) U S: ID || Password (2) Server kiểm tra CSDL S U: ACK/NAK • Khơng an tồn 16 CuuDuongThanCong.com https://fb.com/tailieudientucntt Xác thực chiều dựa hệ mật mã KĐX • Giả sử bên trao đổi 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: hàm mã hóa KĐX, hàm băm KS : khóa mật • Bài tập: Phân tích điểm yếu sơ đồ 17 Xác thực chiều dựa 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 phiên TokenAB = NA || NB || E(KRA, NA || NB) 18 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 Các nguy • Peggy khơng thay đổi r sau vịng kiểm tra • Chess Grandmaster Problem • Mafia Problem • Terrorist Problem 31 Giao thức ZKP dựa 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 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 đủ bền vững giao thức Hãy đọc thêm lý thuyết tổng quan ZKP tài liệu 32 CuuDuongThanCong.com https://fb.com/tailieudientucntt 16 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ơng đủ an tồn (Ngun nhân chủ yếu từ người dùng!) • Sử dụng mật cách an tồn: Đủ dài khó đố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 cần thêm yếu tố xác thực an tồn hơn, khơng phụ thuộc vào thói quen người dùng • Xác thực đa yếu tố (thơng thường yếu tố) Cái người dùng biết: mật Cái người dùng có: (thường) thiết bị phần cứng 34 CuuDuongThanCong.com https://fb.com/tailieudientucntt 17 One Time Password • Mật dùng để xác thực cho phiên giao dịch • Phân loại: S/Key OTP Hash-based OTP (HOTP) Event-based OTP 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 số hệ điều hành Unix • Pha sinh mật khẩu: (1) Server chọn 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 CSDL (4) Cung cấp cho client Hn, Hn-1,…, H1 (5) Client hủy giá trị Hn 36 CuuDuongThanCong.com https://fb.com/tailieudientucntt 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 CSDL (3) Nếu bước xác thực đúng, thay Hn Hn-1 Gửi thông báo xác thực thành cơng (4) Client xóa Hn-1 đăng nhập thành cơng • Xác thự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 bytes từ HS 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 19 Hàm DT • Đầu vào: Chuỗi 20 byte S • Xử lý: Lấy OffsetBits = bit thấp S[19] Biến đổi sang dạng thập phân Offset = StToNum(OffsetBits) Trích xuất byte chuỗi S vị trí Offset chuỗi P • Đầu ra: Xóa bit P 39 Sử dụng HOTP giao thức xác thực • u cầu: Chia sẻ khóa K C cách an tồn • Server: C C + Tính HOTP(K, C) lưu CSDL • Client: C C + Tính HOTP(K, C) người dùng gửi cho server • Server: Nếu OTP nhận hợp lệ tạo OTP thay cho giá trị cũ CSDL Nếu OTP nhận không hợp lệ, thực đồng lại với tham số đồng 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt 20 Đồng HOTP • Khi sử dụng HOTP thiết bị OTP Hardware Token, mã OTP sinh theo yêu cầu người dùng • Tính trạng đồng bộ: người dùng yêu cầu mã OTP không xác thực giá trị đếm Token Server khác • Đồng hóa: Server tính tốn HOTP cho s lần Yêu cầu người dùng gửi chuỗi (2-3, hơn) giá trị HOTP sinh từ Token So sánh chuỗi HOTP người dùng với chuỗi HOTP sinh thực đồng 41 TOTP(RFC 6238) • Thực tương tự HOTP Client Server • Thay đếm C giá trị thời gian: T = (Current UnixTime – T0)/X T0: Mốc thời gian X: Bước thời gian (time step) • Vấn đề trễ xử lý • Client gửi TOTP bước thời gian, server chấp nhận cho lần xác thực Tạo gửi TOTP Nhận kiểm tra 42 CuuDuongThanCong.com https://fb.com/tailieudientucntt 21 Mất đồng TOTP • Đồng hồ bên có sai số khác sau thời gian đồng • Phía kiểm tra cho phép chấp nhận giá trị OTP nằm khoảng sai số cho phép • Miền chấp nhận [TOTP(Tp) , TOTP(Tf)] Tp = (Current UnixTime – 2X + – T0)/X Tf = (Current UnixTime + X – – T0)/X t Thời điểm Tf t f kiểm tra Lưu ý: Nếu xác thực thành cơng tinh chỉnh lại việc đồng đồng hồ thời gian server Tp tb 43 SMS OTP • Giá trị OTP sinh server gửi cho người dùng qua tin nhắn SMS • Khơng đảm bảo an tồn: Điện thoại người dùng bị nghe Giả mạo trạm BTS Tấn công lợi dụng lỗ hổng giao thức SS7 44 CuuDuongThanCong.com https://fb.com/tailieudientucntt 22 Tấn công lợi dụng lỗ hổng SS7 • SS7(Signaling System 7): giao thức điều khiển truyền • • • • • • • liệu cell mạng động Không có chế xác thực IMSI: Định danh thẻ SIM IMEI: Định danh 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 liệu thành phần phiên dịch vụ 45 Tấn công SS7 – Bước (1) Kẻ 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 MSC xử lý kết nối nạn nhân(Bob) • IMSI nạn nhân 46 CuuDuongThanCong.com https://fb.com/tailieudientucntt 23 Tấn công SS7 – Bước (1) Kẻ công đăng ký thông tin Bob MSC giả mạo (Fake MSC) (2) HLR cập nhật vị trí Bob (3) HLR yêu cầu MSC cũ giải phóng thơng tin 47 Tấn cơng SS7 – Bước (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 u cầu vị trí Bob (4) HLR trả lại địa Fake MSC (5) SMS-C chuyển tiếp tin nhắn tới Fake MSC 48 CuuDuongThanCong.com https://fb.com/tailieudientucntt 24 XÁC THỰC SỬ DỤNG SINH TRẮC 49 Xác thực sinh trắc (biometric) 50 CuuDuongThanCong.com https://fb.com/tailieudientucntt 25 Dấu vân tay 51 Vân lòng bàn tay 52 CuuDuongThanCong.com https://fb.com/tailieudientucntt 26 Cấu trúc bàn tay 53 Khuôn mặt 54 CuuDuongThanCong.com https://fb.com/tailieudientucntt 27 Mống mắt 55 Vành tai 56 CuuDuongThanCong.com https://fb.com/tailieudientucntt 28 Mạch máu 57 Xác thực sinh trắc User Tấn công nghe User nonce h=H( Server Server Mẫu sinh trắc ? h=H( , nonce) không ổn định , nonce) 58 CuuDuongThanCong.com https://fb.com/tailieudientucntt 29 Những khó khăn sử dụng hệ xác thực sinh trắc • Chi phí tính tốn • Giá thành cao • Tính khơng ổn định • Khơng bền vững • Lo ngại người dùng liên quan đến sức khỏe 59 CuuDuongThanCong.com https://fb.com/tailieudientucntt 30 ... EAP-POTP: kết hợp One-Time-Password EAP-PSK: kết hợp pre-shared key 20 CuuDuongThanCong.com https://fb.com/tailieudientucntt 10 Ví dụ: EAP-PEAP 21 Ví dụ: EAP-PEAP 22 CuuDuongThanCong.com https://fb.com/tailieudientucntt... (biometric) 50 CuuDuongThanCong.com https://fb.com/tailieudientucntt 25 Dấu vân tay 51 Vân lòng bàn tay 52 CuuDuongThanCong.com https://fb.com/tailieudientucntt 26 Cấu trúc bàn tay 53 Khuôn mặt 54 CuuDuongThanCong.com... 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 CuuDuongThanCong.com https://fb.com/tailieudientucntt Tấn công dạng off-line • Kẻ cơng biết: Tập