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

Đồ án tốt nghiệp nghiên cứu và thử nghiệm kỹ thuật dò tìm mật khẩu windows

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 (1.61 MB, 68 trang )

1

MỤC LỤC

DANH MỤC HÌNH VẼ
LỜI NÓI ĐẦU
Mật mã (Cryptography) là ngành khoa học là ngành nghiên
cứu các kỹ thuật toán học nhằm cung cấp các dịch vụ bảo
vệ thông tin. Đây là ngành khoa học quan trọng, có nhiều
ứng dụng trong đời sống – xã hội.
Khoa học mật mã đã ra đời từ hàng nghìn năm. Tuy nhiên,
trong suốt nhiều thế kỷ, các kết quả của lĩnh vực này hầu
như không được ứng dụng trong các lĩnh vực dân sự thông
thường của đời sống – xã hội mà chủ yếu được sử dụng
trong lĩnh vực quân sự, chính trị, ngoại giao... Ngày nay, các
ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngày
càng phổ biến trong các lĩnh vực khác nhau trên thế giới, các
lĩnh vực an ninh, quân sự, quốc phòng, đến các lĩnh vực dân
sự như thương mại điện tử, ngân hàng…
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. Các kết quả
của khoa học mật mã ngày càng được triển khai trong nhiều
lĩnh vực khác nhau của đời sống – xã hội, trong đó phải kể đến
rất nhiều những ứng dụng đa dạng trong lĩnh vực dân sự,
thương mại...Các ứng dụng mã hóa thông tin cá nhân, trao đổi
thông tin kinh doanh, thực hiện các giao dịch điện tử qua
mạng... đã trở nên gần gũi và quen thuộc với mọi người.



2

Cùng với sự phát triển của khoa học máy tính và Internet,
các nghiên cứu và ứng dụng của mật mã học ngày càng trở nên
đa dạng hơn , mở ra nhiều hướng nghiên cứu chuyên sâu vào
từng lĩnh vực ứng dụng đặc thù với những đặc trưng riêng. Ứng
dụng của khoa học mật mã 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, ví dụ như chứng thực nguồn gốc
nội dung thông tin (kỹ thuật chữ ký điện tử), chứng nhận tính
xác thực về người sở hữu mã khóa (chứng nhận khóa công
cộng), các quy trình giúp trao đổi thông tin và thực hiện giao
dịch điện tử an toàn trên mạng...
Các ứng dụng của mật mã học và khoa học bảo vệ thông
tin rất đa dạng và phong phú, tùy vào tính đặc thù của mỗi hệ
thống bảo vệ thông tin mà ứng dụng sẽ có các tính năng với
đặc trưng riêng.
Trong phạm vi của đề tài, em xin trình bày những nghiên
cứu và hiểu biết của em về phương pháp crack password với
bảng Rainbow với đối tượng là password windown


3

CHƯƠNG I: TỔNG QUAN VỀ BẺ KHÓA PASSWORD
1. Khái niệm về password
1.1. Password
Password, là một từ hoặc một chuỗi mã ký tự bí mật, được
sử dụng để xác thực, chứng minh hoặc nhận dạng người sử
dụng truy cập tài nguyên.

Password giúp ta ngăn chặn việc xâm nhập trái phép vào
hệ thống, bảo vệ thông tin, và giúp ta xác nhận duy nhất cá
nhân đăng nhập hệ thống cũng như ghi vết lại những hành động
của họ trên dữ liệu.
Bất cứ hệ thống nào, một vài người dụng nhất định có
những đặc quyề mà những người khác không có. Bằng cách
nhận dạng chính ta trên máy tính của ta hoặc các website, ta
được tiếp cận môi trường làm việc của riêng ta và các dữ liệu cá
nhân của ta, những tài liệu này là các dữ liệu nhạy cảm và
không muốn công khai.
Trong thực tế, password do người dùng tạo ra thường
không đủ độ an toàn để được dùng trực tiếp trong thuật toán. Vì
vậy, trong bất cứ hệ thống mã hóa dữ liệu nghiêm túc nào cũng
phải có bước chuyển đổi password ban đầu thành chìa khóa có


4

độ an toàn thích hợp. Bước tạo chìa khóa này thường được gọi
là key derivation, key stretching hay key initialization.
Key Derivation Function: là một hàm chuỗi mã (sẽ giải
thích rõ hơn ở phần sau) được thiết kế sao cho chìa an toàn hơn
đối với tấn công kiểu brute-force hay cổ điển. Hàm này được
thực hiện lại nhiều lần trên password ban đầu cùng với một số
ngẫu nhiên để tạo ra một chìa khóa có độ an toàn cao hơn. Số
ngẫu nhiên này gọi là salt, còn số lần lặp lại là iteration.
Ví dụ: Một password là "pandoras B0x", cùng với salt là
"230391827", đi qua hàm chuỗi mã SHA-1 1000 lần cho kết quả



một

chìa

khóa



độ

dài

160

bit

3BD454A72E0E7CD6959DE0580E3C19F51601C359

như

sau:

(thể

hiện

dưới dạng số thập lục phân).
Keylength (Keysize): Độ dài (hay độ lớn) của chìa khóa.
Nói một chìa khóa có độ dài 128 bit có nghĩa chìa đó là một số
nhị phân có độ dài 128 chữ số. Một thuật toán có chìa khóa

càng dài thì càng có nhiều khả năng chống lại tấn công kiểu
brute-force.
1.2. Các kiểu password
a) Password truyền thống
Dạng password được sử dụng phổ biến nhất cho đến ngày
nay: alpha – numeric password, tức password dưới dạng một
chuỗi mã các chữ cái và chữ số. Bất kỳ chuỗi mã ký tự nào cũng
có thể trở thành password.
b) Password dạng hình ảnh (Graphical password)
Về cơ bản, con người có xu hướng ghi nhớ các thông tin
dưới dạng hình ảnh dễ dàng hơn thông tin dưới các dạng khác.
Chúng ta có thể gặp khó khăn khi phải nhớ một chuỗi mã 50 ký
tự, nhưng lại dễ dàng nhớ gương mặt của những người ta đã


5

gặp, những nơi ta đã đến và những thứ ta đã thấy. Dựa vào đặc
điểm này, người ta đã tạo ra password hình ảnh (graphical
password).
Để đăng nhập vào một website hay hệ thống được bảo mật
bằng graphical password, thay vì phải nhập một chuỗi mã ký tự
như ở alpha – numberic password, người dùng sẽ được yêu
cầu ấn chuột vào 4 điểm trên bức ảnh mà hệ thống đưa ra. 4
điểm này chính là password mà họ đã xác định và ghi nhớ trong
quá trình tạo password. Dĩ nhiên người dùng cũng có thể chọn
số lượng điểm bí mật nhiều hơn 4 để tăng độ bảo mật.

Hình 1: Cách thức nhập password qua hình ảnh.
Ở một hình thức khác, người dùng sẽ chọn và ghi nhớ 4

hoặc nhiều hơn các biểu tượng trong quá trình tạo password và
chọn lại chúng trong hàng loạt biểu tượng được sắp xếp ngẫu
nhiên và thay đổi trong quá trình đăng nhập.


6

Hình 2: Chọn password theo hình ảnh.
Trường Đại học Malaya (Malaysia) còn cung cấp một thuật
toán khác: khi đăng ký tài khoản, người dùng sẽ tạo password
bằng cách chọn các biểu tượng do máy chủ cung cấp. Khi đăng
nhập, những biểu tượng này sẽ được thu nhỏ và xoay theo các
chiều khác nhau, người dùng lúc này sẽ phải nhận ra biểu tượng
mà mình đã chọn, sau đó nhập vào ô password những ký tự
hiện bên dưới biểu tượng đó. Giải pháp này khá mất thời gian
nên vẫn còn đang trong giai đoạn thăm dò ý kiến người dùng.


7

Hình 3: Biểu tượng đăng nhập
Điểm mạnh của graphical password là dễ nhớ mà mức độ
bảo mật lại cao vì hacker không thể sự dụng cách tấn công từ
điển để đánh cắp password và các chương trình keylogger cũng
trở nên vô dụng vì các biểu tượng được xáo trộn ngẫu nhiên mỗi
lần đăng nhập. Tuy nhiên ta cũng có thể bị lộ password nếu
người khác quan sát và ghi nhớ các biểu tượng cũng như điểm
ảnh ta chọn mỗi lần đăng nhập.
c) Password dùng một lần duy nhất (One time password)
Nguyên lý hoạt động của password một lần (One time

password - OTP) như sau: sau khi đã đăng ký dịch vụ, mỗi lần
muốn đăng nhập, người dùng sẽ được cung cấp một password
tạo ra bởi đầu đọc và thẻ thông minh hay thiết bị tạo password
cầm tay (token) nhờ vào kết nối internet với máy chủ của dịch
vụ cung cấp OTP hoặc cũng có thể thông qua thẻ OTP in sẵn
hay điện thoại di động mà không cần đến kết nối internet.
Password này sẽ tự mất hiệu lực sau khi người dùng
đăng xuất (log out) ra khỏi hệ thống. Như vậy, nếu ta bị lộ
password thì người có được password đó cũng không thể dùng
được, và do đó giải pháp OTP có tính bảo mật rất cao.


8

Quá trình tạo password mới sẽ lặp lại mỗi lần người
dùng đăng nhập vào hệ thống được bảo mật bằng OTP. Công
nghệ OTP được dùng nhiều trong chứng thực trực tuyến (thương
mại trực tuyến). Hiện nay người dùng các thiết bị cầm tay như
iPhone, Blackberry cũng có thể tự cài đặt cơ chế bảo mật OTP
bằng

các

chương

trình

như VeriSign, RSA

SecureID


hay SafeNet MobilePASS.

Hình 4: Passcode
2. Phương thức xác thực password
2.1. Xác thực – Authentication
- Xác thực là một quá trình nhận dạng người dùng
- Trong hệ thống mạng máy tính, xác thực chủ yếu sử dụng
LoginID (Username) và Password.
- Biết password của một tài khoản là điều cần thiết để xác thực


9

- Nhưng Password có thể bị mất, bị đánh cắp, bị thay đổi và bị
phá, điều này dẫn tới nguy cơ bảo mật cho hệ thống.
2.2. Các phương thức xác thực
Hầu hết các phương thức xác thực đều dựa trên:
+ Những gì ta biết (Username Password)
+ Những gì ta có (Smart Card, Certificate)
+ Những gì là ta (Sinh trắc học)
- HTTP Authentication – Xác thực trên WEB.
+ Basic Authentication
+ Digest Authentication
- Kết hợp với phương thức xác thực NTLM của Windows
- Negotiate Authentication – Thỏa thuận xác thực
- Xác thực dựa vào Certificate.
- Xác thực dựa vào Forms
- Xác thực dựa vào RSA Secure Token
- Xác thực dựa vào Sinh trắc học (xác thực vân tay, mặt, mắt….)

2.2.1. HTTP Authentications
a. Basic Authentication

Hình 5: Basic Authentications
- Là một phương thức xác thực phổ thông có trên nền tảng ứng
dụng Web.


10

- Nó sẽ xuất hiện ra khi Client yêu cầu những thông tin phải
được xác thực.
- Giới hạn những giao thức, cho phép những kẻ tấn công khai
thác.
- Sử dụng SSL để mã hóa dữ liệu Username Password để truyền
giữa Client và Server.
b. Degest Authentication

Hình 6: Degest Authentication
- Được thiết kế để nâng cao bảo mật hơn phương thức Basic
Authentication
- Được dựa trên nền tảng xác thực Challenge-Response
- Nâng cao bảo bảo mật hơn phương thức Basic Authentication,
hệ thống sẽ mã hóa Usernaem Password trước khi truyền đi trên
mạng.
2.2.2. Kết hợp với phương thức xác thực NTLM của
Windows


11


Hình 7: Xác thực NTLM của Windows
- Sử dụng công nghệ xác thực NT LAN Manager (NTLM) cho
HTTP
- Chỉ làm việc với IE và trên nền tảng Web server là IIS.
- Kết hợp với xác thực trên Windows sẽ thích hợp cho môi
trường mạng cục bộ của doanh nghiệp
- Nó là một phương thức xác thực mà không phải truyền bất kỳ
thông tin nào về Username password trên mạng.
2.2.3. Xác thực Negotiate.
- Đây là một phương thức xác thực mở rộng cho NTLM
Authentication
- Cung cấp xác thực dựa trên nền tảng Kerberos
- Sử dụng quá trình thương lượng để quyết định mức độ bảo
mật được sử dụng.
- Nó được cấu hình và sử dụng không chỉ cho mạng cục bộ.


12

2.2.4. Xác thực dựa vào Certificate.

Hình 8: Xác thực dựa vào Certificate
- Sử dụng Public Key để mã hóa và chứng chỉ số (Digital
Certificate) để xác thực người dùng.
- Nó được quan tâm và kết hợp với phương thức xác thực twofactor. Khi một người dùng biết được Username Password người
đó còn phải cung cấp Certificate nữa thì mới được xác thực.
- Người dùng có thể bị đánh cắp Certtificate.
- Rất nhiều phần mềm hiện nay hỗ trợ xác thực qua chứng chỉ
số.

2.2.5. Xác thực dựa vào Forms-Based.


13

Hình 9: Xác thực dựa vào Forms-Based
- Nó không được hỗ trợ trên nền tảng HTTP và SSL
- Nó là một lựa chọn cao cấp cho phương thức xác thực sử dụng
một Form, và thường tích hợp dạng HTML.
- Là một phương thức xác thực rất phổ biết trên Internet.
2.2.6. Phương thức xác thực RSA SecurID Token


14

Hình 10: Xác thực RSA SecurID Token
- Phương thức xác thực SecureID sử dụng một "token – Vé,
card). Có một thiết bị phần cứng sẽ sinh ra các mã xác thực sau
mỗi 60 giây và sử dụng một tấm Card để giải mã key.
- Một người dùng thực hiện quá trình xác thực và tài nguyên
mạng sẽ phải điền mã PIN và số hiển thị cho SecureID cho mỗi
thời gian đó.
2.2.7. Biometrics Authentications


15

Hình 11: Biometrics Authentications
- Một hệ thống xác thực dựa vào Sinh trắc học sẽ phải có những
thiết bị nhận diện được người dùng dựa vào các yếu tố sinh học

như: Vân tay, mắt, mặt, bàn tay….
- Đây là một phương thức xác thực có tính bảo mật rất cao và
thuận tiện cho người sử dụng không phải nhớ password hay
mang theo một tấm Card
3. Tấn công password
Tấn công password là ta tìm cách có được password của
một userID nào đó để xâm nhập vào hệ thống của họ.


16

3.1. Quy trình tấn công password

Hình 12: Quy trình tấn công password
3.2. Các kiểu tấn công password
Một hacker dùng các cách tấn công khác nhau để tìm
password và tiếp tục truy cập vào hệ thống. Các kiểu tấn công
password thường ở dạng sau:

Hình 13: Các kiểu tấn công password
+ Passive Online: Nghe trôm sự thay đổi password trên
mạng. Cuộc tấn công thụ động trực tuyến bao gồm:


17

sniffing, man-in-the-middle, và replay attacks (tấn công
dựa vào phản hồi)
+ Active Online: Đoán trước password nguời quản trị. Các
cuộc tấn công trực tuyến bao gồm việc đoán password tự

động.
+ Offline Attacks: Các kiểu tấn công như Dictionary, hybrid,
và brute-force.
+ Non-Electronic: Các cuộc tấn công dựa vào yếu tố con
người như Social engineering, Phising…


Passive Online Attacks
Một

cuộc

tấn

công thụ

động trực

tuyến là

đánh

hơi (sniffing) để tìm các dấu vết, các password trên một mạng.
Password là bị

bắt (capture)trong quá

trình xác

thực và sau


đó có thể được so sánh vớimột từ điển (dictionary) hoặc là danh
sách từ (word list). Tài khoản người dùng có password thường
được băm

(chuỗi

mãed)

hoặc



hóa

(encrypted)

trước khi gửi lênmạngđể ngăn chặn truy cậptrái phép và sử
dụng. Nếu password được bảo vệ bằng cách trên,một số công
cụ đặc biệt giúp hacker có thể phá vỡ các thuật toán mã hóa
password.


Active Online Attacks
Cách dễ nhất để đạt được cấp độ truy cập của một quản trị

viên hệ thống là phải đoán từ đơn giản thông qua giả định là
các quản trị viên sử dụng một password đơn giản. Password
đoán là để tấn công. Active Online Attack dựa trên các yếu tố
con người tham gia vào việc tạo ra password và cách tấn công

này chỉ hữu dụng với những password yếu.
Trong các giai đoạn Enumeration, có những lỗ hổng của
NetBIOS Enumeration và Null Session. Giả sử rằng NetBIOS TCP


18

mở port 139, phương pháp hiệu quả nhất để đột nhập vào Win
NT hoặc hệ thống Windows 2000 là đoán password. Cái này
được thực hiện bằng cách cố gắng kết nối đến hệ thống giống
như một quản trị viên thực hiện. Tài khoản và password được
kết hợp để đăng nhập vào hệ thống.
Một hacker, đầu tiên có thể thử để kết nối với tài nguyên
chia sẽ mặc định là Admin$, C$ hoặc C:Windows. Để kết nối tới
các ổ đĩa máy tính, ổ đĩa chia sẻ, gõ lệnh sau đây trong Start >
Run:\ ip_address c$
Các chương trình tự động có thể nhanh chóng tạo ra file từ
điển, danh sách từ, hoặc kết hợp tất cả có thể có của các chữ
cái, số và ký tự đặc biệt và cố gắng để đăng nhập vào. Hầu hết
các hệ thống ngăn chặn kiểu tấn công này bằng cách thiết lập
một số lượng tối đa của các nỗ lực đăng nhập vào một hệ thống
trước khi tài khoản bị khóa. (ví dụ khi ta đăng nhập vào một
trang web mà ta nhập sai password 5 lần thì tài khoản ta từ
động bị khóa lại 1 ngày)
Trong các phần sau, chúng ta sẽ thảo luận làm thế nào
hacker có thể thực hiện việc tự động đoán password chặt chẽ
hơn, cũng như các biện pháp đối phó với các cuộc tấn công như
vậy.



Performing Automated Password Guessing: (Tự động
đoán password)
Để tăng tốc độ đoán của password, hacker thường

dùng công cụ tự động. Một cách có quá trình, dễ dàng để tự
động đoán password là sử dụng cửa sổ lệnh dựa trên cú pháp
chuẩn của lệnh NET USE. Để tạo ra một kịch bản đơn giản cho
việc đoán password tự động, thực hiện các bước sau đây:


19

1. Tạo ra một tên người dùng đơn giản và tập tin password
bằng cách sử dụng các cửa sổ notepad. Dùng các dòng
lệnh để tạo ra danh sách các từ điển. Và sau đó lưu vào
các tập tin vào ổ đĩa C, với tên là credentials.txt
2. Sử dụng lênh FOR
C:> FOR /F “token=1, 2*” %i in (credentials.txt)
1.

Gõ lệnh
net use \targetIPIPC$ %i /u: %j

để sử dụng file credentials.txt cố gắng logon vào hệ thống chia
sẽ ẩn trên hệ thống mục tiêu


Bảo Vệ Chống Lại Các Hoạt Động Đoán Password
Có hai vấn đề tồn tại là bảo vệ chống lại đoán password


và tấn công password. Cả hai cách tấn công đều rất thông minh
tạo trạng thái bất an khi người dùng tạo password riêng của
họ. Một

người

sử

dụng cũng



thể được chứng

thực (authenticated) và xác nhận (validated) bằng cách kiểm
tra. Trong

đó yêu

cầu hai hình

hạn như các thẻ thông

thức nhận

minh (smart

dạng (chẳng

card) và password) trong


khi xác thực người dùng. Bằng cách yêu cầu một cái gì đó người
dùng có thể

có (smart

card) và một

cái



đó mà người

dùng biết (password) , bảo mật tăng, và không dễ dàng tấn
công .
Cuộc tấn công Offline được thực hiện tại một vị trí khác
hơn là hành động tại máy tính có chứa password hoặc nơi
password được sử dụng. Cuộc tấn công Offline yêu cầu phần
cứng để truy cập vật lý vào máy tính và sao chép các tập
tin password từ hệ thống lên phương tiện di động. Hackersau
đó có file đó và tiếp tục khai thác lỗ hổng bảo mật. Bảng
sau minh họa vài loại hình tấn công offline:


20

Type of Attack Characteristics
Nỗ lực để sử


Example Password

Dictionary

dụng password từ từ

attack

điển

Hybrid attack

Thay thế một vài ký
Adm1n1strator

Brute-force-

tự của password
Thay đổi toàn bộ ký

attack

tự của password

Ms!tr245@F5a

Administrator

Hình 14: Các kiểu tấn công Offline
Dictionary Attack: là cách tấn công đơn giản và nhanh

nhất trong các loại hình tấn công. Nó được sử dụng để xác định
một password từ thực
thấy trong

từ

tế,

điển.Thông



password

thường



nhất, cuộc

thể được tìm
tấn

công sử

dụng một tập tin từ điển các từ có thể, sau đó sử dụng một
thuật toán được sử dụng bởi quá trình xác thực. Các hàm băm
(chuỗi mã) của các từ trong từ điển được so sánh với hàm băm
của password người
password được


lưu

dùng đăng
trữ

trong một

nhập vào, hoặc với các
tập

tin trên máy

chủ.

Dictionary Attack chỉ làm việc nếu password là một thực thể có
trong từ điển. Nhưng kiểu tấn công này có một số hạn chế là nó
không thể

được sử

dụng với các

password mạnh có

chứa số hoặc ký hiệu khác .
Brute Force Attack: là một cuộc tấn công bằng thuật
toán brute-force, mà mọi cố gắng kết hợp có thể có của chữ hoa
và chữ


thường, chữ

cái, số, và

biểu

tượng. Một cuộc

tấn

công bằng thuật toán brute-force là chậm nhất trong ba loại tấn
công vì có

thể kết

hợp nhiều ký

tự trong password. Tuy

nhiên, cách này có hiệu quả, cần có đủ thời gian và sức
mạnh xử lý tất cả.


21

4. Tóm tắt chương I
Trong chương này, đề tài đã nêu được cơ sở ly thuyết
chung về password, điểm mạnh yếu của các kiểu password
thường gặp. Làm rõ được các phương thức xác thực password,
các hình thức tấn công password

Ở chương II tiếp theo, đề tài sẽ trình bày những hiểu biết
về nguyên tắc hoạt động của password trong hệ điều hành
Windows. Đây là một nội dung cơ sở tạo tiền đề cho nhiệm vụ
đồ án

CHƯƠNG II: NGUYÊN TẮC HOẠT ĐỘNG CỦA PASSWORD
TRONG HĐH WINDOWS
Password thường là con đường chủ đạo trong việc phòng
chống sự xâm nhập bừa bãi. Tuy vậy dù một kẻ tấn công không
có truy cập vật lý (trực tiếp) đến máy tính, chúng vẫn có thể
truy vập vào máy Victeam thông qua giao thức máy trạm từ xa
(remote desktop) hoặc xác thực một dịch vụ thông qua một ứng
dụng web bên ngoài.
Mỗi khi truy cập vào một máy tính được bảo vệ bởi cơ chế
xác thực username và password ta sẽ phải thực hiện một yêu
cầu xác thực khở tạo bởi máy chủ. Thông thường, ta cần cung
cấp username và password. Khi ta nhập password, máy tính của
ta sẽ thực hiện hàm chuỗi mã lên password và tiến hành so
sánh với giá trị chuỗi mã có sẵn trong cơ sở dữ liệu xác thực
được lưu trong file SAM. Nếu các giá trị chuỗi mã khớp nhau, ta
được cấp quyền truy nhập.


22

Bất cứ khi nào ta tạo một password cho một tài khoản nào
đó trong Windows, hệ điều hành này sẽ biến đổi password đó
thành một "chuỗi mã". Chuỗi mã là kết quả của quá trình mã
hóa được thực hiện bằng cách lấy một chuỗi mã dữ liệu với kích
thước tùy ý, sau đó thực hiện mã hóa toán học cho chuỗi mã dữ

liệu này, kết quả trả về là một chuỗi mã với kích thước cố định
nào đó. Điều này trước hết sẽ giúp cho password của ta không
lưu trên ổ cứng cục bộ dưới dạng văn bản rõ ràng, nơi mà bất cứ
ai cũng có thể truy cập nó; thứ hai là password sẽ không được
truyền đi qua mạng dưới định dạng văn bản khi ta xác thực trên
thiết bị khác (chẳng hạn như domain controller).
Khi cố gắng truy cập vào một tài nguyên nào đó trên máy
tính được bảo vệ bằng biện pháp xác thực username và
password, ta sẽ gặp khó khăn về vấn đề xác thực bởi host. Về
cơ bản, ta cần cung cấp username và password cho host. Khi ta
nhập password, máy tính sẽ thực hiện hành động chuỗi mã trên
password và đệ trình nó tới host để sau đó nó sẽ được so sánh
với cơ sở dữ liệu cần xác thực. Nếu kết quả tương xứng, ta sẽ
truy cập thành công.
Windows sử dụng hai phương pháp chuỗi mã password
người dùng, đó là LAN Manager (LM) và NT LAN Manager
(NTLM). Chuỗi mã LM là một trong những thuật toán chuỗi mã
password đầu tiên được sử dụng bởi các hệ điều hành Windows,
chỉ có một phiên bản duy nhất được hỗ trợ cho tới khi xuất hiện
NTLM version 2 sử dụng trong Windows 2000, XP, Vista
và Windows 7. Các hệ điều hành mới này vẫn hỗ trợ sử dụng
các chuỗi mã LM để có khả năng tương thích. Mặc dù vậy, mặc
định nó đã bị vô hiệu hóa trong Windows Vista và Windows 7.


23

Trong bảo mật máy tính, pass-the-hash là một kỹ thuật
hack cho phép kẻ tấn công xác thực đến một máy chủ/dịch vụ
từ xa bằng cách cung cấp password theo kiểu NTLM và/hoặc LM

của người dùng, thay vì sử dụng password bằng các ký tự như
trong trường hợp bình thường.
Khi những cuộc đánh cắp xảy ra: Kẻ xấu chiếm được quyền
truy cập admin trên một máy tính trong một hệ thống mạng.
Chúng có được các password (hoặc vé Kerberos) hoặc các chuỗi
mã password cho tất cả các tài khoản trên máy tính cục bộ, bao
gồm cả tài khoản Administrator cục bộ. Sau đó, kẻ xấu sẽ sử
dụng các quyền Administrator cục bộ để di chuyển đến các máy
tính khác nhằm chia sẻ cùng tên và password đăng nhập, hoặc
chỉ đơn giản là sử dụng các quyền của người sử dụng cục bộ,
nếu họ thuộc về một nhóm đặc quyền riêng (như Domain
Admins hay nhóm Enterprise Admins). Một khi những kẻ xấu có
được các chuỗi mã password từ domain controller, chúng có thể
sở hữu toàn bộ hệ thống mạng và lấy bất kỳ dữ liệu theo ý
muốn.
Kịch bản này được lặp đi lặp lại hàng ngàn lần mỗi ngày và
đã xảy ra trong rất nhiều hệ thống mạng của doanh nghiệp.
Mặc dù nhiều công ty xem xét các cuộc tấn công chiếm quyền
truy cập là vấn đề hàng đầu của họ, nhưng sự thật là việc ngăn
chặn những nguy cơ ban đầu và ngăn ngừa kẻ xấu có thể thu
thập thông tin mới là những vấn đề cần phải được ưu tiên hàng
đầu. Nhưng đó là hai mặt của cùng một vấn đề.
ccc


24

Hình 15 :dạng hex của SAM chuỗi mã
Windows sử dụng hai phương pháp chuỗi mã password
người dùng, cả hai đều có những điểm mạnh và điểm yếu riêng.

Đó là LAN Manager (LM) và NT LAN Manager version 2
(NTLMv2).
Hàm chuỗi mã (chuỗi mã function) là hàm một chiều mà
nếu đưa một lượng dữ liệu bất kì qua hàm này sẽ cho ra một
chuỗi mã có độ dài cố định ở đầu ra.
Ví dụ: từ "Illuminatus" đi qua hàm SHA-1 cho kết quả
E783A3AE2ACDD7DBA5E1FA0269CBC58D.
Ta chỉ cần đổi "Illuminatus" thành "Illuminati" (chuyển
"us" thành "i") kết quả sẽ trở nên hoàn toàn khác (nhưng vẫn có
độ dài cố định là 160 bit)
A766F44DDEA5CACC3323CE3E7D73AE82.
Hai tính chất quan trọng của hàm này là:
+ Tính một chiều: không thể suy ra dữ liệu ban đầu từ kết
quả, điều này tương tự như việc ta không thể chỉ dựa vào một
dấu vân tay lạ mà suy ra ai là chủ được.


25

+ Tính duy nhất: xác suất để có một vụ va chạm (chuỗi mã
collision), tức là hai thông điệp khác nhau có cùng một kết quả
chuỗi mã, là cực kì nhỏ.
Một số ứng dụng của hàm chuỗi mã:
+ Chống và phát hiện xâm nhập: chương trình chống xâm
nhập so sánh giá trị chuỗi mã của một file với giá trị trước đó để
kiểm tra xem file đó có bị ai đó thay đổi hay không.
+ Bảo vệ tính toàn vẹn của thông điệp được gửi qua mạng
bằng cách kiểm tra giá trị chuỗi mã của thông điệp trước và sau
khi gửi nhằm phát hiện những thay đổi cho dù là nhỏ nhất.
+ Tạo chìa khóa từ password.

+ Tạo chữ kí điện tử.
SHA-1 và MD5 là hai hàm chuỗi mã thông dụng nhất và
được sử dụng trong rất nhiều hệ thống bảo mật. Vào tháng 8
năm 2004, tại hội nghị Crypto 2004, người ta đã tìm thấy va
chạm đối với MD5 và SHA-0, một phiên bản yếu hơn của hàm
chuỗi mã SHA-1. Không bao lâu sau đó, vào khoảng giữa tháng
2 năm 2005, một nhóm ba nhà mật mã học người Trung Quốc
đã phát hiện ra một phương pháp có thể tìm thấy va chạm đối
với SHA-1 chỉ trong vòng 269 bước tính toán (tức là có thể
nhanh hơn brute-force vài nghìn lần).
1. Chuỗi mã password LAN Manager (LM)
Chuỗi mã LAN Manager là một trong những thuật toán
chuỗi mã password đầu tiên được sử dụng bởi các hệ điều hành
Windows, chỉ có một phiên bản duy nhất được hỗ trợ cho tới khi
xuất hiện NTLMv2 sử dụng trong Windows 2000, XP, Vista và
Windows 7. Các hệ điều hành mới này vẫn hỗ trợ sử dụng các
chuỗi mã LM để có khả năng tương thích. Mặc dù vậy, nó đã bị
vô hiệu hóa mặc định trong Windows Vista và Windows 7.


×