Đảm bảo an toàn cho mật khẩu đăng nhập

3 0 0
Đảm bảo an toàn cho mật khẩu đăng nhập

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

Thông tin tài liệu

Xác thực bằng mật khẩu là một phương thức hay được sử dụng khi đăng nhập hệ thống. Bài viết Đảm bảo an toàn cho mật khẩu đăng nhập sẽ đề cập tới các giải pháp đảm bảo an toàn cho mật khẩu và các kỹ thuật thực hiện cụ thể.

Tuyển tập Hội nghị Khoa học thường niên năm 2019 ISBN: 978-604-82-2981-8 ĐẢM BẢO AN TOÀN CHO MẬT KHẨU ĐĂNG NHẬP Phạm Thanh Bình Trường Đại học Thuỷ lợi, email: binhpt@tlu.edu.vn GIỚI THIỆU CHUNG Xác thực mật phương thức hay sử dụng đăng nhập hệ thống Người dùng nhập cặp liệu gồm tên mật cửa sổ đăng nhập, cặp liệu dùng để so sánh với cặp liệu tương ứng lưu file liệu người dùng Nếu hai cặp liệu giống trình đăng nhập chấp nhận Việc bảo mật cho file liệu chứa mật quan trọng, thơng tin file bị lộ ngồi giả dạng người dùng để đăng nhập vào hệ thống Giải pháp thường sử dụng mã hoá liệu file Vấn đề chọn kỹ thuật mã hố để đảm bảo an tồn Sự kiện 500 triệu tài khoản Yahoo bị lộ thông tin, tới 160 triệu tài khoản Zing bị lộ mật khẩu… cho thấy thực tế vấn đề chưa quan tâm mức Trong khuôn khổ viết đề cập tới giải pháp đảm bảo an toàn cho mật kỹ thuật thực cụ thể liệu, vấn đề quy trình sử dụng kỹ thuật mã hố Việc kết hợp nhiều kỹ thuật mã hoá với giúp tạo giải pháp bảo mật khác nhau, phù hợp với điều kiện khác KẾT QUẢ NGHIÊN CỨU 3.1 Mã hoá mật Một số hệ thống cũ thường cất file chứa mật đĩa mà khơng mã hố Điều nguy hiểm lấy file (do lợi dụng lỗ hổng bảo mật, tình cờ dùng nhờ máy đồng nghiệp…), nắm tay số phận hệ thống Vì thế, ngun tắc bắt buộc hệ thống máy tính phải mã hố file chứa mật Thơng thường mật mã hố thuật tốn cất vào file Khi người dùng đăng nhập, mật họ nhập vào mã hoá thuật toán nói trên, đem so sánh với mật mã hoá cất file Nếu hai mật giống đăng nhập thành cơng PHƯƠNG PHÁP NGHIÊN CỨU 3.2 Lựa chọn giải pháp mã hoá Để lựa chọn giải pháp phù hợp cho bảo mật mật khẩu, trước tiên tiến hành nghiên cứu phân tích nhiều thuật tốn mã hố khác nhau, từ đánh giá ưu nhược điểm thuật toán Sau lựa chọn loại thuật toán mã hoá phù hợp với mục đích, bước đánh giá độ an tồn chúng, khả chúng bị cơng, từ đưa phương án sửa đổi, cải tiến để hạn chế nguy cơng Bảo mật mật khơng đơn giản dùng kỹ thuật mã hoá phù hợp để mã hố Có nhiều kỹ thuật mã hố khác nhau, hai kỹ thuật phổ biến mật mã đối xứng dùng khố bí mật mật mã khố công khai Chúng dùng để biến đổi liệu ban đầu sang dạng đọc khơng có khố Trước có số hệ thống sử dụng kỹ thuật mật mã để mã hoá file chứa mật Tuy nhiên vấn đề đặt quản lý khoá? Người quản lí khố (thường quản trị hệ thống) có toàn quyền giải mã file, biết mật tất người dùng Nếu lợi dụng điều cho ý đồ xấu sao? 183 Tuyển tập Hội nghị Khoa học thường niên năm 2019 ISBN: 978-604-82-2981-8 Để tránh tượng trên, có kỹ thuật áp dụng UNIX: Người ta không mã hố mật mà dùng mật làm khoá để mã hoá khối liệu cố định Dữ liệu sau mã hoá lưu vào file, sở để so sánh trình đăng nhập người dùng Khơng giải mã liệu đó, ngồi người sở hữu khố (mật khẩu) Tất nhiên thuật toán mã hoá phải đủ phức tạp để khơng thể tính khố biết mã rõ Trên thực tế, người ta thường sử dụng kỹ thuật hash để mã hoá mật Hash kỹ thuật mã hố chiều, biến mật thành dãy bít có chiều dài cố định (gọi mã hash) biến ngược lại Nhờ quản trị hệ thống biết mật người dùng khác Khi người dùng đăng nhập, mã hash mật họ nhập vào so sánh với mã hash mật lưu file Mã hash mật thường kí hiệu H(pass), pass mật khẩu, H hàm hash có danh sách, số lượng mật có file, độ phức tạp thuật toán hash b) Giải pháp sử dụng Salt Để chống lại kỹ thuật cơng nói cần phải có giải pháp khiến cho q trình tiêu tốn lượng thời gian khổng lồ, vượt khả xử lí kẻ cơng máy tính Giải pháp sau: Trước cất mật vào file, người ta ghép vào mật số ngẫu nhiên dài n bít, gọi salt Số ngẫu nhiên thay đổi người dùng thay đổi mật Salt cất file chứa mật mà khơng cần mã hố nên đọc Mật ghép với salt mã hoá hàm hash, cất vào file Khi định dạng file sau: Tên đăng nhập Binhpt Thaont Phuongnh Trangtt … 3.3 Các nguy giải pháp a) Nguy Mặc dù không dịch ngược mã hash, kẻ công lấy file chứa mật (đã mã hố), dị mật ban đầu cách sau đây: - Đầu tiên chuẩn bị danh sách chứa mật gặp phải Đó cụm từ thường gặp sống hàng ngày tên người, năm sinh, địa danh, từ có từ điển, dãy số, dãy kí tự đơn giản… Đa số người dùng có thói quen lựa chọn mật cụm từ (Một số nghiên cứu cho thấy có tới 86% mật thường dùng xuất danh sách loại [1]) - Tiếp theo mã hoá mật danh sách thuật toán hash, so sánh chúng với mật mã hoá file chứa mật hệ thống Khi tìm cặp giống nhau, biết mật ban đầu gì, tất nhiên biết tên đăng nhập thông tin khác người dùng Q trình nói tốn nhiều thời gian, tuỳ thuộc vào số lượng mật Salt 9753 1328 3097 4129 … Mã hash H(pass||9753) H(pass||1328) H(pass||3097) H(pass||4129) … Mỗi ghi file ứng với người dùng Trường tên đăng nhập, trường thứ hai chứa số ngẫu nhiên salt, trường thứ ba mã hash mật + salt Lúc này, để dị mật khẩu, kẻ cơng phải ghép thêm vào mật danh sách chuẩn bị số có chiều dài n bít, sau mã hố chuỗi vừa ghép Có tới 2n số vậy, tức mật ban đầu ghép với 2n số khác Ví dụ mật ban đầu “pass” sinh thêm 2n mật khác có dạng “pass0000”, “pass0001”, “pass0002”… Nói cách khác, kích thước danh sách mà kẻ công chuẩn bị tăng lên 2n lần Điều làm tăng chi phí thời gian chuẩn bị, thời gian tính tốn mã hash so sánh c) Sử dụng thuật toán hash chậm Trong lĩnh vực chứng thực, chữ kí số… người ta thường sử dụng thuật toán hash SHA, Whirlpool, MD5… Chúng sử dụng rộng rãi có tốc độ thực nhanh Tuy nhiên lĩnh vực bảo mật mật “nhanh” lại nhược điểm, giúp kẻ công tiết kiệm thời gian, ta 184 Tuyển tập Hội nghị Khoa học thường niên năm 2019 ISBN: 978-604-82-2981-8 muốn họ phải tốn nhiều thời gian tốt Trường hợp 160 triệu tài khoản Zing bị lộ dùng hash MD5 ví dụ điển hình Trên thực tế, người ta thường sử dụng số thuật toán hash chậm để mã hoá mật Bcrypt, PBKDF2, Scrypt… d) Sử dụng thêm Pepper Kẻ cơng dị tìm mật biết thuật tốn hash, dùng để mã hố mật danh sách mà chuẩn bị Có kỹ thuật tương tự hash, đòi hỏi phải sử dụng mật khố K triển khai thuật tốn - HMAC [2] Có thể dùng HMAC để mã hoá mật salt: HMAC(pass||satl, K) Lúc kẻ cơng khơng thể mã hố danh sách chuẩn bị sẵn khơng biết khố K, tức khơng có cách dị mật người dùng Khố K gọi pepper, cần bảo vệ cẩn thận phải lưu trữ nơi an tồn Có thể dùng chung pepper cho tất mật Một giải pháp khác để sử dụng pepper ghép mật với salt pepper, mã hoá hàm hash: H(pass||satl||pepper) Khi kẻ cơng khơng thể chuẩn bị danh sách liệu khơng biết pepper 3.4 Một số giải pháp kết hợp a) Kết hợp hash chậm với hash nhanh Việc sử dụng thuật tốn hash chậm dẫn tới nguy khác: Kẻ cơng đăng nhập vào hệ thống với mật cực dài, thuật toán hash thi hành chậm nên hệ thống phải tốn nhiều thời gian để kiểm tra đăng nhập Kết hệ thống bị tải khơng cịn thời gian để thực cơng việc khác Đây hình thức cơng DoS (Denial of Service), mục đích làm tải server đột nhập hệ thống Để ngăn chặn hình thức cơng ta sử dụng phương pháp hash nhanh (ví dụ SHA) tác động lên mật nhằm thu ngắn độ dài mật khẩu, sau áp dụng hash chậm: H(SHA(pass)||salt) Do tốc độ SHA nhanh nên server không bị ảnh hưởng nhiều, đầu chuỗi khơng q 512 bít nên khơng tốn q nhiều thời gian tiến hành hash lần hai b) Kết hợp hash với mật mã đối xứng Việc sử dụng HMAC với khoá pepper giúp nâng cao độ an toàn bảo mật mật Tuy nhiên giải pháp khơng cho phép thay đổi pepper, nên lý mà pepper bị lộ khơng có biện pháp khắc phục (Một áp dụng HMAC để mã hoá mật salt khơng thể khơi phục liệu trạng thái ban đầu, khơng thể đổi pepper) Một giải pháp cho vấn đề thực mã hoá mật salt hash chậm trước, sau đem kết thu mã hố mật mã đối xứng (ví dụ AES) với khố pepper: AES(H(pass||satl), pepper) Hiệu thu tương tự dùng HMAC, quản trị hệ thống thay pepper KẾT LUẬN Có nhiều giải pháp kỹ thuật khác để bảo mật mật khẩu, nhìn chung dựa nguyên tắc sau: - Mã hoá mật hàm chiều (để dịch ngược lại) Nên dùng hàm hash chậm để chống cơng dị mật - Sử dụng salt để tăng khối lượng tính tốn tiêu tốn thời gian kẻ cơng - Dùng thêm pepper để tăng khả bảo mật Ngồi cịn kết hợp nhiều giải pháp khác nhau, tuỳ thuộc vào nhu cầu thực tế tảng hệ thống Người dùng tham gia vào trình bảo mật mật cách đặt mật đủ dài, có chứa nhiều loại kí tự khác (như chữ hoa, chữ thường, số, kí tự đặc biệt), sử dụng mật khó đốn, khơng dùng cụm từ có từ điển, tên người, địa danh, ngày sinh… Nếu tuân thủ đầy đủ nguyên tắc danh sách liệu mà kẻ công sử dụng trở nên vô dụng (vì danh sách thường chứa liệu quen thuộc có sẵn) TÀI LIỆU THAM KHẢO [1] Andrew S Tanenbaum, 2001, Modern Operating Systems, Prentice Hall [2] William Stallings, 2006, Cryptography and Network Security, Prentice Hall 185 ... chọn mật cụm từ (Một số nghiên cứu cho thấy có tới 86% mật thường dùng xuất danh sách loại [1]) - Tiếp theo mã hoá mật danh sách thuật toán hash, so sánh chúng với mật mã hoá file chứa mật hệ... dùng đăng nhập, mã hash mật họ nhập vào so sánh với mã hash mật lưu file Mã hash mật thường kí hiệu H(pass), pass mật khẩu, cịn H hàm hash có danh sách, số lượng mật có file, độ phức tạp thuật... với người dùng Trường tên đăng nhập, trường thứ hai chứa số ngẫu nhiên salt, trường thứ ba mã hash mật + salt Lúc này, để dị mật khẩu, kẻ cơng phải ghép thêm vào mật danh sách chuẩn bị số có chiều

Ngày đăng: 30/07/2022, 16:18

Tài liệu cùng người dùng

Tài liệu liên quan