Tải bản đầy đủ (.docx) (30 trang)

Bài tập lớn môn an toàn mang, học viện bưu chính viễn thông (46)

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.47 MB, 30 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THƠNG TIN

Học phần: An tồn mạng
Bài báo cáo:

Tìm hiểu cơng cụ Name-That-Hash

Giảng viên hướng dẫn:
Nhóm mơn học:
Sinh viên:
Mã sinh viên:

TS. Đặng Minh Tuấn
Nhóm 2
Lê Duy Hưng
B18DCAT116

Hà Nội 2021


MỤC LỤC
LỜI MỞ ĐẦU

4

DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT

5

DANH MỤC CÁC HÌNH VẼ



6

CHƯƠNG 1 : KHÁI QUÁT VỀ HÀM BĂM MẬT MÃ

7

1.1. Giới thiệu sơ lược về hàm băm mật mã

7

1.2. Định nghĩa tổng quát của hàm băm

7

1.3. Tính chất của hàm băm mật mã

8

1.3.1. Tính kháng tiền ảnh (Preimage resistance)

8

1.3.2. Tính kháng tiền ảnh thứ hai (2nd - Preimage resistance)

8

1.3.3. Tính kháng xung đột (Collision resistance)

9


1.4. Phân loại hàm băm mật mã

9

1.5. Mơ hình xử lý dữ liệu

10

1.6. Ứng dụng của hàm băm

12

1.6.1. Xác thực mật khẩu

12

1.6.2. Xác thực thơng điệp

12

1.6.3. Bảo vệ tính tồn vẹn của tập tin, thông điệp được gửi qua mạng

12

1.6.4. Tạo chữ ký điện tử (Digital signatures)

12

CHƯƠNG 2 : CÔNG CỤ NAME-THAT-HASH


14

2.1. Giới thiệu công cụ Name-That-Hash

14

2.2. Cài đặt công cụ Name-That-Hash

15

2.2.1. Cài đặt trên Kali Linux

15

2.2.2. Cài đặt trên Debian, Linux Mint, Ubuntu

15

2.2.3. Cài đặt trên Debian, Linux Mint, Ubuntu

16

2.3. Một số tính năng, đặc điểm

16

2.4. Cách sử dụng

17


2.4.1. -t, --text TEXT

17
2


2.4.2. -f, --file FILENAME

18

2.4.3. -g, --greppable

19

2.4.4. -b64, --base64

19

2.4.5. -a, --accessible

20

2.4.6. -e, --extreme

20

2.4.7. --no-banner

20


2.4.8. --no-john

21

2.4.9. --no-hashcat

21

2.4.10. -v, --verbose

22

2.4.11. --help

23

CHƯƠNG 3 : SO SÁNH VÀ ĐÁNH GIÁ

24

3.1. So sánh

24

3.2. Đánh giá

27

3.2.1. Ưu điểm


27

3.2.2. Nhược điểm

27

KẾT LUẬN

28

TÀI LIỆU THAM KHẢO

29

3


LỜI MỞ ĐẦU
Với sự phát triển ngày càng nhanh chóng của Internet và các ứng dụng giao dịch
điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ thống và ứng dụng điện tử ngày
càng được quan tâm và có ý nghĩa hết sức quan trọng. Vì thế việc nghiên cứu về chuẩn
mật mã nâng cao và ứng dụng nó trong các lĩnh vực bảo mật thơng tin là rất cần thiết.
Ứng dụng của chuẩn mật mã nâng cao đang được sử dụng ngày càng phổ biến
trong nhiều ứng dụng khác nhau. Chuẩn mật mã nâng cao không chỉ đơn thuần là mã hóa
và giải mã thơng tin mà còn bao gồm nhiều vấn đề khác nhau cần được nghiên cứu và
giải quyết như ứng dụng xây dựng hàm băm phục vụ việc chứng thực nguồn gốc nội
dung thông tin (kỹ thuật chữ ký điện tử), xác thực tính ngun vẹn dữ liệu,…
Có một số lượng lớn các loại băm. Một trong số những loại băm phổ biến và được
sử dụng rộng rãi bởi nhiều ứng dụng, ví dụ như MD5, SHA1, CRC8 và một số loại khác.

Một số chỉ được sử dụng trong các ứng dụng nhất định (MySQL, vBulletin) hoặc là các
giao thức.
Ngoài các hàm băm phổ biến, các nhà phát triển có thể sử dụng các kết hợp khác
nhau của các hàm băm phổ biến (ví dụ: tính tốn một hàm băm MD5 và sau đó gửi chuỗi
kết quả đến hàm SHA1) hoặc các hàm băm lặp lại (ví dụ: băm MD5 được tính cho mật
khẩu, sau đó Hàm băm MD5 được tính tốn lại cho chuỗi kết quả, sau đó MD5 được tính
cho chuỗi kết quả tiếp theo, v.v.).
Thông thường, một người kiểm thử xâm nhập sẽ biết nguồn của một băm và loại
của nó. Nhưng vẫn có những trường hợp ngoại lệ. Trong tình huống này, cần phải 'đốn'
chúng ta nhận được loại băm nào. Điều này có thể được thực hiện bằng cách so sánh mã
băm nguồn với các mẫu dựa trên số lượng ký tự và bộ ký tự được sử dụng. Q trình này
có thể được đẩy nhanh thơng qua việc sử dụng các công cụ. Một trong các công cụ đó
chính là Name-That-Hash.

4


DANH SÁCH CÁC THUẬT NGỮ TIẾNG ANH VÀ VIẾT TẮT
Từ viết tắt
OWHF
CRHF

Thuật ngữ tiếng Anh/Giải thích
One Way Hash Functions
Collision Resistant Hash
Functions

MAC

Message Authentication Code


MD

Message Digest

MDC

Modification Detection Code

NIST
NSA
PGP
PKI
RSA
SHA
SHS
SSL/TLS
JSON
API

National Institute of Standards
and Technology
National Security Agency
Pretty Good Privacy
Public Key Infrastructure
RSA Public Key Cryptosystem
Secure Hash Algorithm
Secure Hash Standard
Secure Socket Layer / Transport
Layer

Security
JavaScript Object Notation
Application Programming
Interface

Thuật ngữ tiếng Việt/Giải thích
Hàm băm một chiều
Hàm băm kháng xung đột
Mã xác thực thơng điệp (sử dụng
hàm băm có khóa)
Chuỗi đại diện thông điệp
Mã phát hiện sửa đổi (sử dụng
hàm bămkhơng khóa)
Viện Tiêu chuẩn và Cơng nghệ
Cơ quan mật vụ liên bang Mỹ
Chuẩn bảo mật PGP
Hạ tầng khóa cơng khai
Hệ mật khóa cơng khai RSA
Giải thuật băm an tồn
Tiêu chuẩn băm an toàn
Bộ giao thức bảo mật SSL / TLS
Định dạng object trong JavaScript
Giao diện lập trình ứng dụng

DANH MỤC CÁC HÌNH VẼ
5


Hình 1.1. Mơ hình nén thơng tin của hàm băm..................................................................8
Hình 1.2. Phân loại các hàm băm theo khóa sử dụng.........................................................9

Hình 1.3. Mơ hình tổng qt xử lý dữ liệu của hàm băm.................................................10
Hình 1.4. Mơ hình chi tiết xử lý dữ liệu của hàm băm.....................................................11
Hình 1.5. Chữ ký số.........................................................................................................13
Hình 1.6. Chứng thực bằng chữ ký số..............................................................................13
Hình 2.1. Hình ảnh của Name-That-Hash........................................................................14
Hình 2.2. Vào trang github của cơng cụ...........................................................................15
Hình 2.3. Tiến hành clone project về................................................................................15
Hình 2.4. Cài đặt ngơn ngữ python..................................................................................16
Hình 2.5. Cài đặt Name-That-Hash thành cơng................................................................16
Hình 2.6. Kiểm tra mã hash với option –text....................................................................17
Hình 2.7. Kiểm tra các chuỗi hash trong file hash.txt.......................................................18
Hình 2.8. Thực hiện option -g, –greppable.......................................................................19
Hình 2.9. Thực hiện option -b64, --base64.......................................................................19
Hình 2.10. Thực hiện option -a, --accessible....................................................................20
Hình 2.11. Thực hiện option -e, --extreme.......................................................................20
Hình 2.12. Thực hiện option –no-banner..........................................................................20
Hình 2.13. Thực hiện option –no-john.............................................................................21
Hình 2.14. Thực hiện option –no-hashcat........................................................................21
Hình 2.15. Thực hiện option --verbose.............................................................................22
Hình 2.16. Thực hiện option --vvv...................................................................................22
Hình 2.17. Thực hiện option –help...................................................................................23
Hình 3.1. Đối chiếu giữa các cơng cụ nhận dạng hàm băm..............................................24
Hình 3.2. Màn hình hiển thị của HashID..........................................................................26
Hình 3.3. Màn hình hiển thị của Name-That-Hash...........................................................26

6


CHƯƠNG 1: KHÁI QUÁT VỀ HÀM BĂM MẬT MÃ
1.1. Giới thiệu sơ lược về hàm băm mật mã

Hiểu theo nghĩa đơn giản, hàm băm là hàm cho tương ứng một mảng dữ liệu lớn
với một mảng dữ liệu nhỏ hơn mà được dùng rộng rãi trong nhiều ứng dụng tin học,
không chỉ thuộc phạm vi mật mã. Ở đây, chúng ta chỉ xét đến các hàm băm trong phạm vi
các hàm băm mật mã, xem xét cụ thể đến các ứng dụng của chúng trong việc đảm bảo
tính tồn vẹn của dữ liệu.
Các hàm băm nhận đầu vào là một chuỗi bit có chiều dài hữu hạn tùy ý và tạo ra
một chuỗi bit có chiều dài cố định bằng n bit (n > 0) gọi là mã băm (hash code).
Trong mã hóa, mã băm được xem như là ảnh đại diện thu gọn (compact
representative image) của một chuỗi bit có độ dài hữu hạn tùy ý và được dùng để nhận
diện cho chuỗi bit đó. Kết hợp với cơng cụ tạo chữ ký số, các hàm băm được dùng cho
việc đảm bảo tính tồn vẹn của dữ liệu. Trong lược đồ chữ ký số, mã băm của chuỗi bit
được tính ở thời điểm T1 và được bảo vệ để chống lại mọi sự thay đổi bất hợp pháp. Tại
thời điểm T2 sau đó, để kiểm tra xem chuỗi bit x có bị thay đổi hay khơng, người ta
thường tính giá trị hàm băm của chuỗi bit này tại thời điểm T2, mà ta ký hiệu là xT2, sau
đó so sánh giá trị vừa tính với mã băm tại thời điểm T 1. Nếu 2 giá trị bằng nhau thì người
ta chấp nhận chuỗi bit tại thời điểm T2 trùng khớp với chuỗi bit tại thời điểm T1, tức chuỗi
bit x vẫn chưa bị thay đổi. Như vậy vấn đề bảo đảm tính tồn vẹn của chuỗi bit có chiều
dài tùy ý được thay bằng việc bảo vệ sự toàn vẹn của chuỗi bit có chiều dài cố định.
1.2. Định nghĩa tổng quát của hàm băm
Hàm băm (hash function) là một hàm tốn học h có tối thiểu 2 thuộc tính:
 Nén (Compression): h là một ánh xạ từ chuỗi đầu vào x có chiều dài bất kỳ
sang một chuỗi đầu ra h(x) có chiều dài cố định n bit.
 Dễ tính tốn (Ease of computation): cho trước hàm h và đầu vào x, việc tính
tốn h(x) là dễ dàng.[1]

7


Hình 1.1. Mơ hình nén thơng tin của hàm băm


Hình 1.1 minh họa mơ hình nén thơng tin của hàm băm, theo đó thơng điệp
(Message) đầu vào với chiều dài tùy ý đi qua nhiều vòng xử lý của hàm băm để tạo chuỗi
rút gọn, hay chuỗi đại diện (Digest) có kích thước cố định ở đầu ra.
1.3. Tính chất của hàm băm mật mã
Một hàm băm mật mã lý tưởng có các tính chất sau:
1.3.1. Tính kháng tiền ảnh (Preimage resistance)
Với mọi đầu ra y cho trước, không thể tìm được bất kỳ dữ liệu đầu vào x sao cho
h(x) = y (hay khơng thể tìm được một thơng điệp từ một giá trị băm cho trước).
1.3.2. Tính kháng tiền ảnh thứ hai (2nd - Preimage resistance)
Với mọi dữ liệu đầu vào x cho trước và y = h(x), khơng thể tính tốn để tìm ra
được giá trị x’x sao cho h(x’)=h(x) (hay khơng thể tìm ra 2 thơng điệp khác nhau mà có
cùng giá trị băm).

8


1.3.3. Tính kháng xung đột (Collision resistance)
Khơng thể tính tốn để tìm được hai dữ liệu đầu vào x và x’ phân biệt sao cho
chúng có cùng giá trị băm h(x)=h(x’) (hay không thể sửa được một thông điệp mà khơng
làm thay đổi giá trị băm của nó).
1.4. Phân loại hàm băm mật mã
Có thể phân loại các hàm băm theo khóa sử dụng hoặc theo chức năng. Theo khóa
sử dụng, các hàm băm gồm 2 loại: hàm băm không khóa (unkeyed) và hàm băm có khóa
(keyed), như biểu diễn trên Hình 1.2. Trong khi hàm băm khơng khóa nhận đầu vào chỉ là
thông điệp (dạng h(x), với hàm băm h và thơng điệp x), hàm băm có khóa nhận đầu vào
gồm thơng điệp và khóa bí mật (theo dạng h(x, K), với hàm băm h và thông điệp x và K
là khóa bí mật). Trong các hàm băm khơng khóa, các mã phát hiện sửa đổi (MDC –
Modification Detection Code) được sử dụng rộng rãi nhất, bên cạnh một số hàm băm
khơng khóa khác. Tương tự, trong các hàm băm có khóa, các mã xác thực thơng điệp
(MAC - Message Authentication Code) được sử dụng rộng rãi nhất, bên cạnh một số hàm

băm có khóa khác.[1]

Hình 1.2. Phân loại các hàm băm theo khóa sử dụng

9


Theo chức năng, có thể chia các hàm băm thành 2 loại chính:
- Mã phát hiện sửa đổi (MDC - Modification Detection Code): MDC thường được
sử dụng để tạo chuỗi đại diện cho thông điệp và dùng kết hợp với các kỹ thuật
khác (như chữ ký số) để đảm bảo tính tồn vẹn của thơng điệp. MDC thuộc loại hàm băm
khơng khóa. MDC gồm 2 loại nhỏ:
+ Hàm băm một chiều (OWHF - One-way hash functions): Với hàm băm một
chiều, việc tính giá trị băm là dễ dàng, nhưng việc khơi phục thơng điệp từ giá trị băm là
rất khó khăn;
+ Hàm băm chống đụng độ (CRHF - Collision resistant hash functions): Với hàm
băm chống đụng độ, sẽ là rất khó để tìm được 2 thơng điệp khác nhau nhưng có cùng giá
trị băm.
- Mã xác thực thơng điệp (MAC - Message Authentication Code): MAC cũng được dùng
để đảm bảo tính tồn vẹn của thơng điệp mà khơng cần một kỹ thuật bổ sung nào khác.
MAC là loại hàm băm có khóa như đã đề cập ở trên, với đầu vào là thơng điệp và một
khóa bí mật [1].
1.5. Mơ hình xử lý dữ liệu

Hình 1.3. Mơ hình tổng qt xử lý dữ liệu của hàm băm
10


Hình 1.3 biểu diễn mơ hình tổng qt xử lý dữ liệu của các hàm băm. Theo đó,
thơng điệp đầu vào với độ dài tùy ý (arbitrary length input) đi qua hàm nén lặp nhiều

vòng (iterated compression function) để tạo chuỗi đầu ra có kích thước cố định (fixed
length output). Chuỗi này đi qua một khâu chuyển đổi định dạng tùy chọn (optional
output transformation) để tạo ra chuỗi băm kết quả (output).
Hình 1.4 mơ tả chi tiết q trình xử lý dữ liệu của các hàm băm. Theo đó, quá trình
xử lý gồm 3 bước chính: (1) tiền xử lý (preprocessing), (2) xử lý lặp (iterated processing)
và (3) chuyển đổi định dạng. Trong bước tiền xử lý, thông điệp đầu vào x trước hết được
nối đuôi thêm một số bit và kích thước khối, sau đó chia thành các khối có kích thước xác
định. Kết quả của bước này là t khối dữ liệu có cùng kích thước có dạng x = x 1 x2…xt làm
đầu vào cho bước 2. Trong bước 2, từng khối dữ liệu xi được xử lý thông qua hàm nén f
để tạo đầu ra là Hi. Kết quả của bước 2 là chuỗi đầu ra H t và Ht được chuyển đổi định
dạng bởi hàm g để tạo chuỗi giá trị băm hết quả h(x).

Hình 1.4. Mơ hình chi tiết xử lý dữ liệu của hàm băm

11


1.6. Ứng dụng của hàm băm
1.6.1. Xác thực mật khẩu
Mật khẩu thường không được lưu dưới dạng văn bản rõ (clear text), mà ở dạng
tóm tắt. Để xác thực một người dùng, mật khẩu do người đó nhập vào được băm ra bằng
hàm Hash và so sánh với kết quả băm được lưu trữ.
1.6.2. Xác thực thông điệp
Giá trị đầu vào (tin nhắn, dữ liệu…) bị thay đổi tương ứng giá trị băm cũng bị thay
đổi. Do vậy nếu một kẻ tấn cơng phá hoại, chỉnh sửa dữ liệu thì server có thể biết ngay
lập tức.
1.6.3. Bảo vệ tính tồn vẹn của tập tin, thông điệp được gửi qua mạng
Hàm băm mật mã có tính chất là hàm băm một chiều. Từ khối dữ liệu hay giá trị
đầu vào chỉ có thể đưa ra một giá trị băm duy nhất. Như chúng ta đã biết đối với tính chất
của hàm một chiều. Một người nào đó dù bắt được giá trị băm của họ cũng không thể suy

ngược lại giá trị, đoạn tin nhắn băm khởi điểm.
Ví dụ: việc xác định xem một file hay một thơng điệp có bị sửa đổi hay khơng có
thể thực hiện bằng cách so sánh tóm tắt được tính trước và sau khi gửi (hoặc một sự kiện
bất kỳ nào đó). Cịn có thể dùng tóm tắt thơng điệp làm một phương tiện đáng tin cậy cho
việc nhận dạng file.
Hàm băm thường được dùng trong bảng băm nhằm giảm chi phí tính tốn khi tìm
một khối dữ liệu trong một tập hợp. Giá trị băm đóng vai trị gần như một khóa để phân
biệt các khối dữ liệu.
1.6.4. Tạo chữ ký điện tử (Digital signatures)
Chữ ký số có được bằng cách đem mã hóa bản tóm tắt của thơng điệp bằng khóa
bí mật của người ký. Mơ tả trong hình 1.5.

12


Hình 1.5. Chữ ký số

Ở đây thơng điệp M được đưa qua hàm băm SHA-1, từ đó tạo ra bản tóm
tắt(Message Digest) có kích thước cố định. Tiếp đó bản tóm tắt được mã hóa bằng một
thuật tốn mã hóa bất đối xứng(thường là thuật toán RSA) bằng cách sử dụng khóa bí
mật mà chỉ người ký có. Từ đó tạo ra chữ ký số độc nhất mà chỉ người ký mới có.

Hình 1.6. Chứng thực bằng chữ ký số

Hình 1.6 biểu diễn q trình chứng thực thơng điệp bằng chữ ký số. Ở đây sẽ tách
ra làm hai phần bao gồm SIG (chữ ký số) và thông điệp M. Với phần SIG, ta sử dụng
khóa cơng khai để giải mã, từ đó thu được đoạn mã hash. Với phần thông điệp M, ta băm
thông điệp M bằng hàm băm SHA-1 giống như lúc ký, từ đó thu được đoạn mã hash thứ
2. Nếu kết quả băm giống nhau thì thơng điệp được xác thực. Vì nếu bất kỳ bit nào của M
hay SIG bị thay đổi, kết quả băm sẽ khác.

13


CHƯƠNG 2: CƠNG CỤ NAME-THAT-HASH
2.1. Giới thiệu cơng cụ Name-That-Hash
Name-That-Hash là một công cụ dùng để xác định các loại hàm băm.NTH là một
chương trình mã nguồn mở, được viết bằng ngôn ngữ Python. NTH hỗ trợ nhiều các loại
hàm băm như MD5, SHA256 và hơn 300 các hàm băm khác. NTH được phát triển và ra
mắt vào năm 2021.
Hiện tại công cụ vẫn đang được phát triển để hỗ trợ thêm các hàm băm cũng như
bổ sung thêm các module.
Nguồn: />
Hình 2.7. Hình ảnh của Name-That-Hash

Cơng cụ này chia các mã hash ra làm 2 nhóm
● Most Likely: Nhiều khả năng
● Least Likely: Ít khả năng
Và hơn thế trong những nhóm này chúng cịn được sắp xếp theo tần suất sử dụng.
Trong đầu ra, có thể thấy các chuỗi HC và JtR rất quen thuộc với các số và tên của
các thuật tốn băm trong Hashcat và John
Ngồi ra, cịn có mơ tả ngắn về ứng dụng của từng hàm băm. Ví dụ như:
● Summary: Used in Bitcoin Blockchain and Shadow Files.
● Summary: Used in Wireguard, Zcash, IPFS and more.
● Summary: Not considered a hash function

14


2.2. Cài đặt công cụ Name-That-Hash
Đầu tiên chúng ta phải tải cơng cụ về


Hình 2.8. Vào trang github của cơng cụ

Hình 2.9. Tiến hành clone project về

2.2.1. Cài đặt trên Kali Linux
sudo apt install python3-pip
sudo pip3 install name-that-hash

2.2.2. Cài đặt trên Debian, Linux Mint, Ubuntu
sudo apt update
sudo apt install python3-pip
sudo pip3 install name-that-hash

15


2.2.3. Cài đặt trên Debian, Linux Mint, Ubuntu
sudo pacman -S python-pip
sudo pip3 install name-that-hash

Hình 2.10. Cài đặt ngơn ngữ python

Hình 2.11. Cài đặt Name-That-Hash thành cơng

2.3. Một số tính năng, đặc điểm
● Popularity Ratings: Các hàm băm phổ biến nhất sẽ được đặt lên trước.
● Hash Summaries: NTH sẽ tóm tắt cách sử dụng của mỗi hàm băm, giúp dễ đưa ra
sự lựa chọn hơn.
● Color Output: nhiều màu sắc, nâng cao độ tương phản và trải nghiệm sử dụng.

● Output to JSON and API: NTH có thể xuất ra dưới dạng JSON hoặc được sử
dụng như một Python module.
● Updated: NTH vẫn đang được cập nhật cho tới nay.
● Thoughtfulness: NTH được phát triển thân thiện với người dùng và dễ sử dụng.
● Extensibility: dễ dàng thêm mới các hàm băm.

16


2.4. Cách sử dụng
Dùng câu lệnh: nth [OPTIONS]
Các options của NTH:
● -t, --text TEXT
● -f, --file FILENAME
● -g, --greppable
● -b64, --base64
● -a, --accessible
● -e, --extreme
● --no-banner
● --no-john
● --no-hashcat
● -v, --verbose
● --help

2.4.1. -t, --text TEXT
Kiểm tra một chuỗi hash

Hình 2.12. Kiểm tra mã hash với option –text

17



2.4.2. -f, --file FILENAME
Kiểm tra mọi chuỗi hash trên từng dịng trong file

Hình 2.13. Kiểm tra các chuỗi hash trong file hash.txt

18


2.4.3. -g, --greppable
Xuất dữ liệu dưới định dạng JSON

Hình 2.14. Thực hiện option -g, –greppable

Kiểm tra chuỗi hash ‘900150983cd24fb0d6963f7d28e17f72’ và trả về dưới dạng JSON
2.4.4. -b64, --base64
Giải mã Base64 cho chuỗi băm trước khi nhận dạng. Dùng cho những file mã hóa
với Base64 và chưa được giải mã. Sau khi giải mã xong sẽ nhận dạng như bình thường

Hình 2.15. Thực hiện option -b64, --base64

19


Giải mã đoạn mã base64
’OTAwMTUwOTgzY2QyNGZiMGQ2OTYzZjdkMjhlMTdmNzI=’ trở thành chuỗi hash
’900150983cd24fb0d6963f7d28e17f72’ và tiến hành kiểm tra.
2.4.5. -a, --accessible
Bật chế độ accessible. Chế độ này giản lược phần ASCII art và cả phần các hàm

băm không phổ biến. Điều này sẽ làm giảm thông tin nhận được. Nếu vẫn muốn hiện
phần hàm băm khơng phổ biến mà khơng hiện banner, có thể dùng --no-banner

Hình 2.16. Thực hiện option -a, --accessible

2.4.6. -e, --extreme
Tìm kiếm những mã hash nằm trong một xâu.

Hình 2.17. Thực hiện option -e, --extreme

2.4.7. --no-banner
Loại bỏ phần banner khi bắt đầu.

Hình 2.18. Thực hiện option –no-banner

20


2.4.8. --no-john
Khơng in John The Ripper Information

Hình 2.19. Thực hiện option –no-john

Kết quả trả về không in thông tin về John The Ripper
2.4.9. --no-hashcat
Khơng in Hashcat Information

Hình 2.20. Thực hiện option –no-hashcat

Kết quả trả về không in thông tin về Hashcat


21


2.4.10. -v, --verbose
Bật debugging logs. Để tối đa logs, sử dụng -vvv

Hình 2.21. Thực hiện option --verbose

Hình 2.22. Thực hiện option --vvv

22


2.4.11. --help
Hiển thị danh sách các options và thoát chương trình.

Hình 2.23. Thực hiện option –help

23


CHƯƠNG 3: SO SÁNH VÀ ĐÁNH GIÁ
3.1. So sánh
Khi muốn nhận dạng hàm băm thì sẽ có khá nhiều các cơng cụ hỗ trợ. Có thể kể
tên đến những cơng cụ như là “hashID” hay “HashTag” và còn rất nhiều cơng cụ hỗ trợ
cho tác vụ này. Để có thể thấy sự khác nhau trực quan giữa các công cụ này thì có thể
nhìn vào hình 3.1

Hình 3.24. Đối chiếu giữa các công cụ nhận dạng hàm băm


Bên trên là so sánh một số công cụ nhận dạng hàm băm phổ biến. Bây giờ sẽ đi
vào so sánh từng phương diện
● Maintained:
Ngoại trừ cơng cụ haiti và Name-That-Hash thì hầu hết các công cụ nhận dạng

24


hàm băm đều khơng cịn được bảo trì cho đến thời điểm hiện tại. Kể cả các công cụ nổi
tiếng để xác định hàm băm như HashID đã không được cập nhật kể từ ngày 17/03/2015,
Hash-Identifier thì từ ngày 30/09/2011
● Color:
Cũng như trên thì hầu hết các cơng cụ đều không hỗ trợ thêm màu sắc cho giao
diện. Name-That-Hash đã bổ sung thêm chức năng này, giúp người dùng có thể dễ dàng
theo dõi kết quả qua đó nâng cao trải nghiệm người dùng.
● Ref:
Cột Ref này thể hiện công cụ có hỗ trợ hiển thị chế độ tương ứng của Hashcat hay
tên hàm băm của John the Ripper hay khơng. Name-That-Hash cũng là một trong số ít
cơng cụ hỗ trợ tính năng này
● Language:
Name-That-Hash là cơng cụ được phát triển bằng ngôn ngữ Python giống như đa
số những công cụ về crypto. Trong danh sách trên chỉ có duy nhất công cụ haiti là được
viết bằng ngôn ngữ Ruby
● Hỗ trợ cho những hàm băm hiện đại
Có 2 cơng cụ đó là Name-That-Hash và haiti hỗ trợ chính xác các hàm băm hiện
đại. Có những cơng cụ hỗ trợ một phần chẳng hạn như hashID, Dagon, HashTag. Cịn lại
thì khơng hỗ trợ.
● Số lượng hàm băm hỗ trợ
Có thể thấy Name-That-Hash hỗ trợ rất nhiều hàm băm, lên tới 365 hàm và đứng

thứ 2 sau haiti là 382 hàm, lớn hơn hẳn so với các cơng cụ cịn lại,
Ngồi ra Name-That-Hash cịn có một tính năng cải tiến hơn những một số cơng
cụ cũ, đó là chia các hàm băm tìm được ra làm 2 nhóm. Một là nhóm có nhiều khả năng,
hai là nhóm có ít khả năng.
Khơng chỉ thế, Name-That-Hash còn sắp xếp các hàm băm theo tần suất chúng
xuất hiện. Như ở hình .. , HashID hiển thị Skype trước NTLM. Trong khi đó, Name-ThatHash hiểu được độ phổ biến của từng hàm băm, do đó nó xếp NTLM lên trước Skype

25


×