Xem mẫu
- Tuyển tập Hội nghị Khoa học thường niên năm 2019. ISBN: 978-604-82-2981-8
ỨNG DỤNG MẠNG NEURAL ĐÁNH GIÁ MỨC ĐỘ AN TOÀN
CỦA MẬT KHẨU
Trương Xuân Nam
Trường Đại học Thủy lợi, email: namtx@tlu.edu.vn
1. GIỚI THIỆU CHUNG 2. PHƯƠNG PHÁP NGHIÊN CỨU
Mật khẩu là phương pháp phổ biến trong 2.1. Bài toán đánh giá chất lượng
việc xây dựng hàng rào bảo mật cho các dữ mật khẩu
liệu và chức năng có tính riêng tư hoặc phân
Để tạo những mật khẩu an toàn, theo nghĩa
cấp. Phương pháp này đơn giản, có chi phí
khó có thể đoán được bằng phần mềm, quản
thấp và phù hợp với mọi đối tượng người sử
trị hệ thống hoặc người xây dựng quy trình
dụng. Tuy nhiên, dùng mật khẩu cũng có một
đặt ra các nguyên tắc ràng buộc về mật khẩu.
số điểm bất lợi, trong đó mức độ an toàn của
Một vài nguyên tắc thông dụng thường được
các mật khẩu là rất khác nhau. Có những mật
khẩu rất thông dụng và dễ dàng bị phá bởi sử dụng:
phương pháp thử sai; những mật khẩu được 1. Mật khẩu không được quá ngắn
sinh tự động bởi máy tính lại khó nhớ, gây 2. Mật khẩu không được quá dài (tránh
phiền phức cho người sử dụng. việc khai thác lỗi tràn bộ đệm)
Để người dùng tạo ra những mật khẩu đủ 3. Mật khẩu không chứa các thông tin cá
khó, quản trị viên thường đưa ra những tiêu nhân thông dụng của người dùng như ngày
chí cho mật khẩu như độ dài, mức độ sinh, họ tên, tên lóng, địa chỉ nhà, số điện
phong phú của nội dung; những tiêu chí thoại, số chứng minh thư,…
này được chọn một cách chủ quan chứ 4. Mật khẩu không trùng với tên đăng nhập.
không dựa trên nghiên cứu về các kĩ thuật 5. Mật khẩu bắt buộc phải chứa các chữ
dò mật khẩu. Một mật khẩu tốt nên dễ nhớ hoa, chữ thường, chữ số, dấu ký hiệu
với người sử dụng và khó phá với các kĩ Trong thực tế những quy tắc đặt ra làm
thuật dò, đây là yêu cầu mà các khuyến cáo cho mật khẩu khó đoán, nhưng không có
không đạt được. nghĩa đó là các mật khẩu mạnh. Vì thực tế
Trong báo cáo này chúng tôi đề xuất một các hệ thống thường không lưu lại mật khẩu
phương pháp đánh giá mức độ an toàn của
người dùng mà kiểm tra chữ ký số (thường
mật khẩu dựa trên một mạng neural được
MD5 hoặc SHA); vì vậy việc mật khẩu khó
huấn luyện để nhận biết các mật khẩu thông
nhớ hơn không có nghĩa là sẽ an toàn hơn.
dụng, qua đó đề xuất một khả năng xây dựng
Điều quan trọng là mật khẩu không nên nằm
dịch vụ đánh giá mức độ an toàn dựa trên dữ
liệu sử dụng thực tế thay vì các quy tắc bảo trong từ điển mật khẩu của phần mềm
mật được thiết lập bởi quản trị viên. phá khóa.
Giải pháp này hữu ích vì cho phép người Hầu hết các phương pháp thông thường
sử dụng đặt mật khẩu hoàn toàn theo ý không đánh giá đúng chất lượng mật khẩu do
muốn của họ, không có bất kì ràng buộc người dùng tạo ra.
nào, nhưng vẫn có thể tạo được những mật Chúng tôi sẽ sử dụng phương pháp học
khẩu mạnh. mạng neural vào bài toán này.
168
- Tuyển tập Hội nghị Khoa học thường niên năm 2019. ISBN: 978-604-82-2981-8
2.2. Xác định mục tiêu cần giải quyết học từ dữ liệu. Đặc biệt, nhiều loại mạng
neural có thể phối hợp với nhau để cùng giải
Chúng tôi xác định bài toán cụ thể cần giải
quyết các vấn đề phức tạp, việc các lớp mạng
quyết trong báo cáo này như sau: Xây dựng
phối hợp làm việc là cảm hứng cho ngành
một phương pháp hiệu quả, đánh giá chất
học sâu (deep learning).
lượng mật khẩu là một chuỗi văn bản ngắn,
mật khẩu càng khác biệt so với các mẫu đã có 2.4. Mạng neural hồi quy
thì càng tốt. Để lượng hóa phương pháp đánh
Các loại mạng neural hồi quy (Recurrent
giá này, chúng tôi xây dựng thuật toán đánh
Neural Networks) phù hợp với việc xử lý dữ
giá dựa trên độ lệch giữa xác suất chọn kí tự
liệu văn bản vì có cơ chế giúp lưu giữ lại ngữ
tiếp theo và dữ liệu thực tế [Bảng 2].
cảnh của đoạn văn bản.
Có hai vấn đề trong bài toán cần được tiếp Trong báo cáo này, chúng tôi sử dụng một
tục làm rõ: cấu trúc dựa trên các LSTM (Long Short-
1. Mẫu đã có cụ thể là những gì? Term Memory), đây là các tế bào neural phù
2. Khác biệt ở đây đo bằng đơn vị gì? hợp với việc xử lý dữ liệu ở mức kí tự.
Với bài toán bảo mật bằng mật khẩu, có
3. KẾT QUẢ NGHIÊN CỨU
nhiều cách vượt qua hàng rào này, chẳng hạn:
- Tìm kiếm trực tiếp mật khẩu thông 3.1. Tập dữ liệu huấn luyện
qua những điểm yếu trong môi trường hoặc Chúng tôi sử dụng hai nguồn dữ liệu
giao thức. chính.
- Vượt qua hàng rào bằng cách lợi dụng lỗi Nguồn dữ liệu đầu tiên gồm 353 triệu mật
bảo mật hoặc lỗi lập trình. khẩu thông dụng của các mạng wifi [1]. Đây
- Đoán mật khẩu bằng phương pháp là cơ sở dữ liệu được gom từ nhiều nguồn và
thử sai. thống kê những mật khẩu thường dùng nhất.
Việc đánh giá chất lượng mật khẩu chỉ Bộ dữ liệu này được nhiều hệ thống sử dụng
giúp tránh việc bị đoán mật khẩu quá nhanh, để nhận biết những mật khẩu yếu.
như vậy có thể xác định mẫu mật khẩu là các Nguồn dữ liệu thứ hai được tạo từ API của
chuỗi mật khẩu thường dùng trong các cơ sở trang https://www.passwordrandom.com, đây
dữ liệu mật khẩu thường được tin tặc khai là trang web cung cấp dịch vụ tạo những mật
thác hoặc các chuỗi mật khẩu sinh bởi phần khẩu mạnh. Chúng tôi sử dụng các mật khẩu
mềm tấn công thử sai. từ nguồn này để tạo các dữ liệu kiểm tra
Vấn đề thứ hai phức tạp hơn, có nhiều căn thuộc nhóm mật khẩu mạnh.
cứ để đưa ra tiêu chuẩn định lượng cho khái
3.2. Kiến trúc mạng neural đề xuất
niệm khác biệt, trong báo cáo này chúng tôi
đề nghị đo lường bằng xác suất trùng lặp Lời giải theo hướng tiếp cận mạng neural
giữa một kí hiệu sinh từ tập mẫu và một kí là hoàn toàn mới, vì vậy chúng tôi xây dựng
hiệu trên mật khẩu. ban đầu một cấu trúc mạng neural đơn giản
Như vậy về cơ bản cách xác định độ đo nhất có thể, nếu phương pháp tỏ ra khả quan,
của bài toán sẽ khuyến khích việc tránh xa chúng tôi sẽ tiếp tục nâng cấp các mô hình
những cách dùng từ thông dụng, chẳng hạn mới theo hướng nhiều lớp hơn để có thể học
như lặp lại ngày sinh, số điện thoại hoặc một được nhiều hơn những quy luật nội tại của
từ phổ biến nào đó. tập dữ liệu mật khẩu.
Cấu trúc mạng đề xuất như sau:
2.3. Học từ dữ liệu bằng mạng neural
- Đầu vào là một vector binary 96 phần tử,
Mạng neural là một nhánh mạnh trong học là vector one-hot-encoding cho các ký tự
máy, có rất nhiều mô hình khác nhau giúp thông dụng cho mật khẩu
giải quyết nhiều vấn đề hóc búa của bài toán - Bốn lớp LSTM mỗi lớp có 96 phần tử.
169
- Tuyển tập Hội nghị Khoa học thường niên năm 2019. ISBN: 978-604-82-2981-8
- Đầu ra softmax trả về xác suất dự báo 3.5. Chương trình minh họa
của các ký tự tiếp theo.
Chương trình minh họa viết bằng Python
3.3. Đánh giá chất lượng mật khẩu sử dụng framework Keras/ Python gồm
Sức mạnh của mật khẩu được thể hiện qua chương trình huấn luyện mô hình đề xuất và
sự khác biệt giữa vector one-hot-encoding lưu ra file dữ liệu HDF5. Chương trình kiểm
thực tế và vector dự báo do đầu ra softmax tra cũng viết bằng công nghệ tương tự làm
trả về (trung bình độ lệch bình phương). nhiệm vụ nạp mô hình từ file dữ liệu và đánh
V là vector dự báo, T là vector thực tế, giá các mật khẩu được đề xuất ở các mức độ
công thức độ lệch: rất yếu, yếu, trung bình, mạnh và rất mạnh
95 tùy theo độ đo khác biệt do mạng neural đánh
D(T ,V ) = ∑ (Tk − Vk ) 2 giá. Do hạn chế của báo cáo nên chi tiết của
k =0
chương trình không được trình bày ở đây.
3.4. Một số thuật toán cơ bản
4. KẾT LUẬN
Bảng 1. Thuật toán huấn luyện LSTM
Trong báo cáo này, chúng tôi trình bày
1. Tạo model RNN: input = 96 one‐ một đề xuất lời giải cho bài toán đánh giá
hot, hidden 1 = LSTM x 96, chất lượng mật khẩu dựa trên mô hình mạng
hidden 2 = LSTM x 96, hidden 3 = neural phù hợp với nhiệm vụ xử lý dữ liệu
LSTM x 96, hidden 4 = LSTM x 96, văn bản. Tuy kết quả ban đầu rất sơ sài,
output = softmax x 96. nhưng cho thấy phương pháp có thể áp dụng
2. Tham số huấn luyện: Batch size thực tế và nhiều hướng cải tiến.
= 32, Sequence length: 32, Đây là hướng tiếp cận khả quan, kết quả
Learning rate: 0.002, Decay ban đầu cho thấy có thể mở ra một hướng
rate: 0.97, Init = Adam. mới cho việc sử dụng các phương pháp học
3. Huấn luyện model với iteration máy vào các vấn đề truyền thống.
= 200000 Mô hình có kích cỡ nhỏ, có thể đưa lên các
4. Lưu model thành file thiết bị di động hoặc nhúng vốn yêu cầu chặt
password.hdf5 chẽ về bộ nhớ.
Mặt hạn chế của phương pháp này là tiêu
Bảng 2. Thuật toán đánh giá password chuẩn không rõ ràng, trong trường hợp mật
khẩu bị đánh giá là yếu, người sử dụng không
1. Mã hóa password thành danh sách được đề xuất phải sửa đổi như thế nào để
các vector one‐hot. khắc phục vấn đề.
2. Nạp model từ file.
3. Lần lượt input các vector từ 5. TÀI LIỆU THAM KHẢO
password vào model, tính độ
lệch theo công thức. [1] Berzerk0, 2018, “Probable-Wordlists: Real
4. Tính trung bình của các độ Password”.
lệch, đánh giá mức độ mạnh yếu https://github.com/berzerk0/Probable-
Wordlists/tree/master/Real-Passwords.
của mật khẩu theo tiêu chuẩn:
[2] Andrej Karpathy, Justin Johnson, Li Fei-Fei,
- Dưới 0.125: rất yếu
2015, “Visualizing and Understanding
‐ 0.125‐0.5: yếu
Recurrent Networks”.
‐ 0.5‐0.75: trung bình
https://arxiv.org/abs/1506.02078.
‐ 0.75‐0.9: mạnh
‐ trên 0.9: rất mạnh.
170
nguon tai.lieu . vn