Xem mẫu

  1. 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
  2. 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
  3. 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