DDos
VIP Members
-
22/10/2013
-
524
-
2.191 bài viết
Một số thuật toán đánh giá độ mạnh yếu của password
Trong bài viết này, tôi xin giới thiệu với các bạn 3 giải thuật cơ bản để đánh giá độ mạnh yếu của một password.
a.KeePass:
1./ Xác định tập kí tự:
KeePass chia các kí tự thành 7 tập :
a.KeePass:
1./ Xác định tập kí tự:
KeePass chia các kí tự thành 7 tập :
- Tập kí tự thường:’a’ à’z’ (ascii 97à122)
- Tập kí tự hoa:’A’à’Z’(ascii 65à90)
- Tập kí tự số: ‘0’à’9’ (ascii 48à57)
- Tập kí tự đặc biệt đơn giản: ‘ ‘à’/’(ascii 32à47)
- Tập kí tự đặc biệt mở rộng: ‘:’à’@’ (ascii 58à64) và ‘[‘à’`’ (ascii 91à96) Và ‘{‘ à’~’ (ascii 123à126)
- Tập kí tự lớn hơn còn lại: (ascii >126)
- Tập kí tự nhỏ hơn còn lại (ascii128 thì q=100 [/FONT][/COLOR]
Ngược lại q=bitperchar128∗100
Ưu điểm:
- Kết hợp được đánh giá theo không gian kí tự (charspace) và tính entropy.
- Không gian kí tự được chia tương đối chi tiết.
b.Mozilla:[/h] Như đã biết, không gian kí tự có ảnh hưởng rất lớn đến độ mạnh của password. Không gian kí tự càng lớn thì password càng khó phá. Dựa vào đó Mozilla đánh giá password theo không gian kí tự. Đây là phương pháp đơn giản nhưng khá hiệu. Mozilla định nghĩa 4 tập không gian kí tự ảnh hưởng đến độ mạnh của password:
- Số kí tự hoa (upp).
- Số kí tự số (dig).
- Số kí tự đặc biệt (spe).
- Độ dài password (len).
- Nếu len=1à5 thì p=p+len*10
- Nếu len>5 thì p=p+50
- Nếu dig=1à3 thì p=p+dig*10
- Nếu dig>3 thì p=p+30
- Nếu spe=1à3 thì p=p+spe*15
- Nếu spe>3 thì p=p+45
- Nếu upp=1à3 thì p=p+upp*10
- Nếu upp>3 thì p=p+30
Kết quả: p=p-20 (%)
Nhận xét: Khác với Keepass, với phương pháp này độ dài password không quyết định hoàn toàn tới độ mạnh của password. Ví dụ: password có 10 kí tự gồm 5 kí tự hoa, 5 kí tự thường có độ mạnh bằng một password dài 15 kí tự gồm 5 kí tự hoa và 10 kí tự thường.
Ưu điểm:
- Ưu điểm của phương pháp này là đơn giản.
- Tính toán nhanh
- Không tính toán Entropy, nên không cần sử dụng các phép toán phức tạp như logarit.
Nhược điểm:
- Số tập kí tự ít (4 tập)
- Đánh giá tương đối thoáng.
c.PGP:
PGP là phương pháp đánh giá password khá phức tạp. Không gian kí tự bao gồm các tập được định nghĩa khá chi tiết.
Như vậy, đối với PGP các kí tự trong password phải có mã ascii L=length(@)=15.
- Đếm số bit của L:
Số bit của L được định nghĩa là số bit nhị phân tối thiểu để biểu diễn L.
Ví dụ: L=15Dec=0000 1111Bin. => numbit (L)=Số bit của L = 4.
* Thuật toán đếm số bit của L.
- Tạo một mặt nạ 1111 1111 rồi lần lượt and bit với L, sau đó dịch L sang trái 1 bit cho đến khi kết quả phép and là 0.
- Sau đó cộng các kết quả thu được.
2. /Tính Max Entropy:
Cũng sử dụng các phương pháp lấy length và đếm bit như tính Minentropy.
- Kiểm tra kí tự ch=password có thuộc tập đã định nghĩa không. Nếu có đánh dấu.
- Đếm số kí tự không nằm trong tập đã định nghĩa.
- Tính tổng Length của các kí tự đã đánh dấu.
- Đếm số bit của scope.
- Tính Entropy tối đa của chuỗi password:
Kết quả:
D=MaxEntropy-MinEntropy;
Result=MinEntropy+(d/2);
Tính theo %(q) so với 128 bit:
- Nếu result>128 thì result=100
- Ngược lại result=result128∗100
Ưu điểm:
- Không gian kí tự được chia rất chi tiết, đánh gia đúng độ mạnh của từng kí tự.
Ví dụ kí tự “_” thường dùng hơn kí tự “]” nên L(“_”)
Nguồn: http://vnpro.org/