- Nhờ sự tiện lợi của các hệ thống quản lý mật khẩu, hiện nay nhiều người đang sử dụng các tính năng tích hợp sẵn trong OS hoặc trình duyệt
- Nhưng liệu chúng có thực sự an toàn không? Đây là điều có thể khiến bạn đặt câu hỏi
- Định nghĩa về mã hóa
- Mục tiêu của mật mã học là bảo vệ giao thức trước các tác nhân thù địch
- Là quá trình truyền tải thông tin (tức văn bản thuần/plaintext) bằng thuật toán để bất kỳ ai, ngoại trừ những người có kiến thức đặc biệt, đều không thể đọc được
- Thuật toán đều được công khai, vậy có an toàn không?
- Có một nguyên tắc gọi là nguyên lý Kerckhoffs
- “Hệ mật mã không cần phải được giữ bí mật, và ngay cả khi rơi vào tay kẻ địch cũng không được gây ra vấn đề gì.”
- Lý do vẫn an toàn dù thuật toán công khai là nhờ khóa bí mật
- Điều quan trọng là làm cho giao thức an toàn, chứ không phải thuật toán
- Thậm chí, việc công khai thuật toán còn tốt hơn để nhiều người có thể kiểm chứng và cải tiến
- Vì sao mật mã cổ điển nguy hiểm?
- Trước khi máy tính xuất hiện, chúng đủ phức tạp và hữu ích, nhưng với sự xuất hiện của máy tính thì việc giải mã trong thời gian ngắn đã trở nên khả thi
- Có nhiều kỹ thuật tấn công như brute force, phân tích tần suất, v.v.
- Mật mã hiện đại có an toàn không?
- Mật mã cổ điển nguy hiểm vì không gian khóa hạn chế và chịu ảnh hưởng từ đặc tính ngôn ngữ
- Ngược lại, mật mã hiện đại sử dụng các khái niệm hỗn loạn và khuếch tán để tạo ra số lượng trường hợp khổng lồ -> gần như không thể giải mã ngoài việc thử toàn bộ khóa một cách ngẫu nhiên
- Hỗn loạn (Substitution) nghĩa là nếu có chuỗi như 'ABCA' thì sẽ thay thế thành dạng như '1231'
- Khuếch tán (Permutation) nghĩa là nếu có chuỗi như 'ABCA' thì sẽ đổi thứ tự thành dạng như 'BCAA'
- Ba phương thức mã hóa
- Có mã hóa đối xứng, bất đối xứng và một chiều
- Mã hóa đối xứng là thuật toán dùng một khóa bí mật duy nhất (hoặc khóa đối xứng) để mã hóa và giải mã
- Mã hóa bất đối xứng là thuật toán dùng hai khóa để mã hóa và giải mã
- Tiêu biểu là RSA
- Mã hóa đối xứng có thể gặp vấn đề khi số lượng bên tham gia lớn
- Mã hóa một chiều là việc chuyển đổi dữ liệu có độ dài bất kỳ thành dữ liệu có độ dài cố định
- Tiêu biểu là SHA
- Được dùng để kiểm tra tính toàn vẹn
- Triển khai két bí mật cá nhân
- Master password là khóa bí mật dùng để xác thực rằng người dùng là chủ sở hữu của hệ thống quản lý bí mật
- Giá trị băm của master password có thể bị tấn công Pass-the-Hash, vì vậy tuyệt đối không được lưu trữ
- Có thể lưu trữ mật khẩu an toàn hơn bằng cách bổ sung một khóa ngẫu nhiên gắn với thiết bị của người dùng để tạo master unlock key
- Trên Mac có thể dùng Keychain, trên Windows có thể dùng Credential Manager
- Cách triển khai thực tế hãy xem ở liên kết
4 bình luận
Android không có thứ gì giống keychain sao..? Samsung Wallet trên Galaxy của Samsung cũng có nguy hiểm không?
Xin chào. :) Tôi biết là có một thứ gọi là Secret Manager. Tôi không rõ lắm về Samsung Wallet, nhưng có lẽ họ đã làm nó an toàn khá tốt phải không?
Vì ghi là hỗn độn (substitution) và khuếch tán (permutation) nên tôi tự hỏi là gì, rồi xem bản gốc thì thấy,
người ta viết rằng hỗn độn được đạt được bằng cách dùng phép thay thế (substitution), còn khuếch tán được đạt được bằng cách dùng phép hoán vị (permutation) thôi...
Tôi đã tóm tắt quá mức rồi, xin lỗi ^^;;