• If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below.
Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.

Announcement

Collapse
No announcement yet.

Một số thuật toán đánh giá độ mạnh yếu của password

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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 :
    • 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 (ascii<32)


    2./ Tính toán không gian kí tự của password:
    KeePass quy ước như sau:



    Mỗi kí tự trong chuỗi password sẽ thuộc một trong các loại kí tự trong bảng. Thực hiện phép OR tất cả các kí tự trong chuỗi password. Mục đích của việc này là bật bit tương ứng với kí tự có trong chuỗi password.
    Sau đó sử dụng phép and bit (&) để kiểm tra password có chứa tập kí tự nào thì cộng thêm tập đó vào không gian kí tự Nếu kết quả của phép and khác 0 thì cộng thêm vùng không gian kí tự đó.
    Cuối cùng tính số bit trung bình của chuỗi password.
    Tính theo %(q) so với 128 bit: Nếu bitperchar>128 thì q=100
    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<=160.

    1. /Tính Minentropy:
    - Tìm length của kí tự:
    Dựa vào ascii của kí tự trong password, so với bảng định nghĩa các tập kí tự trên để tìm length của kí tự đó.
    Ví dụ: kí tự „@‟ có ascii 64 => 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[i] 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(“_”)<L(“]”)
    - Đánh giá khách quan, chính xác hơn nhờ tính MinEntropy và MaxEntropy.
    Nhược điểm:
    Không gian kí tự chỉ xây dựng đến ascii =160 nên đánh giá không chính xác các kí tự có ascii>160 (như các kí tự tiếng việt)
    d.DEMO:

    Last edited by bqt; 03-07-2011, 05:24 PM.
    Viet Professionals Co. Ltd. VnPro ®
    ---------------------------------------
    149/1D Ung Văn Khiêm P25 Q.Bình thạnh TPHCM
    Tel: (08) 35124257
    Fax: (08) 5124314
    Support Forum : http://www. vnpro.org
    Live Chat http://vnpro.org/forum/image.php?u=2...ine=1233770177 : http://www.vnpro.vn/support
    Blog VnPro : http://www.vnpro.org/blog
    Search: VNPRO.ORG
    Cộng Đồng Mạng Không Dây Việt Nam
Working...
X