đ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ư
Trang 1MỤC LỤC
DANH MỤC HÌNH VẼ 4
CHƯƠNG I: TỔNG QUAN VỀ BẺ KHÓA PASSWORD 7
1 Khái niệm về password 7
1.1 Password 7
1.2 Các kiểu password 8
2 Phương thức xác thực password 11
3 Tấn công password 18
3.1 Quy trình tấn công password 18
3.2 Các dạng tấn công password 18
4 Tóm tắt chương I 22
CHƯƠNG II: NGUYÊN TẮC HOẠT ĐỘNG CỦA PASSWORD TRONG HĐH WINDOWS 23
1 Chuỗi mã password LAN Manager (LM) 26
2 Chuỗi mã password NTLMv2 33
3 Tóm tắt chương II 37
CHƯƠNG III: THỰC NGHIỆM BẺ KHÓA PASSWORD TRÊN HĐH WINDOWS 38
I Tấn công Password của tài khoản người dùng trong Windows38 1.Sử dụng lệnh For trong Windows 38
2 Tấn công máy từ xa 39
II Bảng Rainbown 40
1 Tổng quan về bảng Rainbown 40
1.1 Phương thức hoạt động bảng Rainbown 41
1.2 Xử lý va chạm 46
1.3 Công cụ tạo bảng Rainbown 48
2 Phương pháp chống lại sự tấn công bằng bảng Rainbown 55
3 Thực nghiệm 57
KẾT LUẬN 63
Tài liệu tham khảo 64
Trang 2DANH MỤC HÌNH V
Hình 1: Cách thức nhập password qua hình ảnh 8
Hình 2: Chọn password theo hình ảnh 9
Hình 3: Biểu tượng đăng nhập 10
Hình 4: Passcode 11
Hình 5: Basic Authentications 12
Hình 6: Degest Authentication 13
Hình 7: Xác thực NTLM của Windows 14
Hình 8: Xác thực dựa vào Certificate 15
Hình 9: Xác thực dựa vào Forms-Based 16
Hình 10: Xác thực RSA SecurID Token 17
Hình 11: Biometrics Authentications 18
Hình 12: Quy trình tấn công password 18
Hình 13: Các kiểu tấn công password 19
Hình 14: Các kiểu tấn công Offline 22
Hình 15: Dạng hex của SAM chuỗi mã 25
Hình 16: Một password được biến đổi thành LM Chuỗi mã 28
Hình 17: Cấu trúc thuật toán Feistel dùng trong DES 29
Hình 18: Hàm F (F-function) dùng trong DES 30
Hình 19: Quá trình tạo khóa con 31
Hình 20: Password được chuyển đổi thành một NTLMv2 chuỗi mã 33
Hình 21: Mô hình tấn công máy tính 38
Hình 22: Tấn công For trên CMD 39
Hình 23: Dump password 40
Hình 24: Bảng Rainbown đơn giản với 3 chức năng giảm thiểu .42
Hình 25: Mã dạng Hexa 45
Trang 3Hình 26: Quá trình giải mã 47Hình 27: Bảng WinrTGen 51Hình 28: Tạo bảng RainBow dạng Dos 52
LỜI NÓI ĐẦU
Mật mã (Cryptography) là ngành khoa học là ngành nghiêncứ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ầunhư không được ứng dụng trong các lĩnh vực dân sự thôngthường của đời sống – xã hội mà chủ yếu được sử dụngtrong 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àycàng phổ biến trong các lĩnh vực khác nhau trên thế giới, cáclĩ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ềulĩnh vực khác nhau của đời sống – xã hội, trong đó phải kể đếnrấ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 đổithông tin kinh doanh, thực hiện các giao dịch điện tử quamạng đã trở nên gần gũi và quen thuộc với mọi người
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
Trang 4đa dạng hơn , mở ra nhiều hướng nghiên cứu chuyên sâu vàotừng lĩnh vực ứng dụng đặc thù với những đặc trưng riêng Ứngdụ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ốcnội dung thông tin (kỹ thuật chữ ký điện tử), chứng nhận tínhxác thực về người sở hữu mã khóa (chứng nhận khóa côngcộng), các quy trình giúp trao đổi thông tin và thực hiện giaodị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ôngtin 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êncứu và hiểu biết của em về phương pháp crack password vớibảng Rainbow với đối tượng là password windown
Trang 5CHƯƠ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 độngcủ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áchnhậ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ườngkhô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ũngphải có bước chuyển đổi password ban đầu thành chìa khóa có
độ 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
Trang 6Key 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 đượcthự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ả
là một chìa khóa có độ dài 160 bit như sau:3BD454A72E0E7CD6959DE0580E3C19F51601C359 (thể hiệndướ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óacàng dài thì càng có nhiều khả năng chống lại tấn công kiểubrute-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 tindướ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 đãgặp, những nơi ta đã đến và những thứ ta đã thấy Dựa vào đặc
Trang 7đ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ớ trongquá 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ớ 4hoặ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ẫunhiên và thay đổi trong quá trình đăng nhập
Trang 8Hình 2: Chọn password theo hình ảnh.
Trường Đại học Malaya (Malaysia) còn cung cấp một thuậttoán khác: khi đăng ký tài khoản, người dùng sẽ tạo passwordbằng cách chọn các biểu tượng do máy chủ cung cấp Khi đăngnhập, những biểu tượng này sẽ được thu nhỏ và xoay theo cácchiề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 giannên vẫn còn đang trong giai đoạn thăm dò ý kiến người dùng
Trang 9Hì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ỗilần đăng nhập Tuy nhiên ta cũng có thể bị lộ password nếungườ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 passwordtạo ra bởi đầu đọc và thẻ thông minh hay thiết bị tạo passwordcầ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
Trang 10Quá trình tạo password mới sẽ lặp lại mỗi lần ngườidùng đăng nhập vào hệ thống được bảo mật bằng OTP Côngnghệ OTP được dùng nhiều trong chứng thực trực tuyến (thươngmạ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.
Trang 11- 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….)
Trang 12- 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 khaithác
- Sử dụng SSL để mã hóa dữ liệu Username Password để truyềngiữ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 BasicAuthentication
- Đượ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 đitrên mạng
2.2.2 Kết hợp với phương thức xác thực NTLM của Windows
Trang 13Hình 7: Xác thực NTLM của Windows
- Sử dụng công nghệ xác thực NT LAN Manager (NTLM) choHTTP
- 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ôitrườ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 NTLMAuthentication
- 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ảomật được sử dụng
- Nó được cấu hình và sử dụng không chỉ cho mạng cục bộ
Trang 142.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ố (DigitalCertificate) để 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 factor Khi một người dùng biết được Username Password người
two-đó còn phải cung cấp Certificate nữa thì mới được xác thực
Trang 15Hì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ụngmộ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
Trang 16Hì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 saumỗ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ênmạng sẽ phải điền mã PIN và số hiển thị cho SecureID cho mỗithời gian đó
2.2.7 Biometrics Authentications
Trang 17Hì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ữngthiết bị nhận diện được người dùng dựa vào các yếu tố sinh họcnhư: 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 haymang 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ủamột userID nào đó để xâm nhập vào hệ thống của họ
Trang 183.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ìmpassword và tiếp tục truy cập vào hệ thống Các kiểu tấn côngpassword thường ở dạng sau:
Hình 13: Các kiểu tấn công password
Trang 19+ Passive Online: Nghe trôm sự thay đổi password trênmạng Cuộc tấn công thụ động trực tuyến bao gồm:sniffing, man-in-the-middle, và replay attacks (tấn côngdựa vào phản hồi)
+ Active Online: Đoán trước password nguời quản trị Cáccuộ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ố conngười như Social engineering, Phising…
Passive Online Attacks
Một cuộc tấn công thụ động trực tuyến là đánhhơ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à danhsá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 mã 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óapassword
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ôngnày chỉ hữu dụng với những password yếu
Trang 20Trong các giai đoạn Enumeration, có những lỗ hổng củaNetBIOS Enumeration và Null Session Giả sử rằng NetBIOS TCP
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ốngnhư một quản trị viên thực hiện Tài khoản và password đượckế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ênchia sẽ mặc định là Admin$, C$ hoặc C:Windows Để kết nối tớicá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ếtcác hệ thống ngăn chặn kiểu tấn công này bằng cách thiết lậpmột số lượng tối đa của các nỗ lực đăng nhập vào một hệ thốngtrước khi tài khoản bị khóa (ví dụ khi ta đăng nhập vào mộttrang 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àohacker 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ườngdù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
Trang 21chuẩn của lệnh NET USE Để tạo ra một kịch bản đơn giản choviệc đoán password tự động, thực hiện các bước sau đây:
1 Tạo ra một tên người dùng đơn giản và tập tin passwordbằng cách sử dụng các cửa sổ notepad Dùng các dònglệnh để tạo ra danh sách các từ điển Và sau đó lưu vàocá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 minhtạ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 có thể được chứngthực (authenticated) và xác nhận (validated) bằng cách kiểmtra Trong đó yêu cầu hai hình thức nhận dạng (chẳnghạn như các thẻ thông minh (smart card) và password) trongkhi xác thực người dùng Bằng cách yêu cầu một cái gì đó ngườidùng có thể có (smart card) và một cái gì đó mà ngườidùng biết (password) , bảo mật tăng, và không dễ dàng tấncông
Cuộc tấn công Offline được thực hiện tại một vị trí kháchơn là hành động tại máy tính có chứa password hoặc nơipassword được sử dụng Cuộc tấn công Offline yêu cầu phầncứng để truy cập vật lý vào máy tính và sao chép các tậptin password từ hệ thống lên phương tiện di động Hackersau
Trang 22đó có file đó và tiếp tục khai thác lỗ hổng bảo mật Bảngsau minh họa vài loại hình tấn công offline:
Type ofAttack Characteristics Example Password
Dictionary
attack
Nỗ lực để sửdụng password từ từ
điển AdministratorHybrid attack Thay thế một vài ký
tự của password Adm1n1stratorBrute-force-
attack
Thay đổi toàn bộ ký
tự của password Ms!tr245@F5a
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à nhanhnhất trong các loại hình tấn công Nó được sử dụng để xác địnhmột password từ thực tế, và password có thể được tìmthấy trong từ điển.Thông thường nhất, cuộc 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ộtthuậ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ămcủa password người dùng đăng nhập vào, hoặc với cácpassword được lưu trữ trong một 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ậttoá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ấncông bằng thuật toán brute-force là chậm nhất trong ba loại tấncông vì có thể kết hợp nhiều ký tự trong password Tuy
Trang 23nhiên, cách này có hiệu quả, cần có đủ thời gian và sứcmạnh xử lý tất cả.
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ụ
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êucầu xác thực khở tạo bởi máy chủ Thông thường, ta cần cungcấ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 sosánh với giá trị chuỗi mã có sẵn trong cơ sở dữ liệu xác thực
Trang 24đượ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.
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íchthướ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ố địnhnào đó Điều này trước hết sẽ giúp cho password của ta khônglư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 đượctruyền đi qua mạng dưới định dạng văn bản khi ta xác thực trênthiế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áytí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 tanhập password, máy tính sẽ thực hiện hành động chuỗi mã trênpassword và đệ trình nó tới host để sau đó nó sẽ được so sánhvớ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
Trang 25cá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.
Trong bảo mật máy tính, pass-the-hash là một kỹ thuậthack 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 LMcủ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ềntruy 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ộ, baogồ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áytính khác nhằm chia sẻ cùng tên và password đăng nhập, hoặcchỉ đơ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ư DomainAdmins 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ềntruy cập là vấn đề hàng đầu của họ, nhưng sự thật là việc ngănchặn những nguy cơ ban đầu và ngăn ngừa kẻ xấu có thể thuthậ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
Trang 26Hình 15 :dạng hex của SAM chuỗi mã
Windows sử dụng hai phương pháp chuỗi mã passwordngườ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ộtchuỗ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ếtquả, điều này tương tự như việc ta không thể chỉ dựa vào mộtdấu vân tay lạ mà suy ra ai là chủ được
Trang 27+ 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âmnhậ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ạngbằng cách kiểm tra giá trị chuỗi mã của thông điệp trước và saukhi 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 8năm 2004, tại hội nghị Crypto 2004, người ta đã tìm thấy vachạm đối với MD5 và SHA-0, một phiên bản yếu hơn của hàmchuỗ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 đốivớ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ánchuỗi mã password đầu tiên được sử dụng bởi các hệ điều hànhWindows, chỉ có một phiên bản duy nhất được hỗ trợ cho tới khixuấ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ácchuỗ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
Trang 28Chuỗi mã password loại này được tính bằng một quá trình
+ Mỗi khóa DES sẽ được sử dụng để mã hóa một chuỗi mãASCII định sẵn (KGS!@#$%), cho kết quả ra trong hai chuỗi
mã văn bản mật 8-byte
+ Hai chuỗi mã văn bản mật 8-byte này sẽ được kết hợp
để tạo thành một giá trị 16-byte, giá trị này chính là mộtchuỗi mã LM hoàn chỉnh
Trong thực tế, password “PassWord123” sẽ được chuyển đổi
Trang 29Hình 16: Một password được biến đổi thành LM Chuỗi mã
Mô tả thuật toán DES
DES là thuật toán mã hóa khối: nó xử lý từng khối thông tincủa bản rõ có độ dài xác định và biến đổi theo những quá trìnhphức tạp để trở thành khối thông tin của bản mã có độ dàikhông thay đổi Trong trường hợp của DES, độ dài mỗi khối là
64 bit DES cũng sử dụng khóa để cá biệt hóa quá trình chuyểnđổi Nhờ vậy, chỉ khi biết khóa mới có thể giải mã được văn bản
mã Khóa dùng trong DES có độ dài toàn bộ là 64 bit Tuy nhiênchỉ có 56 bit thực sự được sử dụng; 8 bit còn lại chỉ dùng choviệc kiểm tra Vì thế, độ dài thực tế của khóa chỉ là 56 bit
Giống như các thuật toán mã hóa khối khác, khi áp dụngcho các văn bản dài hơn 64 bit, DES phải được dùng theo mộtphương pháp nào đó Trong tài liệu FIPS-81 đã chỉ ra một số
Trang 30phương pháp, trong đó có một phương pháp dùng cho quátrình nhận thực Một số thông tin thêm về những cách sử dụngDES được miêu tả trong tài liệu FIPS-74
Hình 17: Cấu trúc thuật toán Feistel dùng trong DES
Cấu trúc tổng thể của thuật toán được thể hiện ở hình trên
có 16 chu trình giống nhau trong quá trình xử lý Ngoài ra còn
có hai lầnhoán vị đầu và cuối (Initial and final
permutation - IP & FP) Hai quá trình này có tính chất đối nhau
(Trong quá trình mã hóa thì IP trước FP, khi giải mã thì ngượclại) IP và FP không có vai trò xét về mật mã học và việc sửdụng chúng chỉ có ý nghĩa đáp ứng cho quá trình đưa thông tinvào và lấy thông tin ra từ các khối phần cứng có từ thập niên
1970 Trước khi đi vào 16 chu trình chính, khối thông tin 64 bit
Trang 31được tách làm hai phần 32 bit và mỗi phần sẽ được xử lý tuần
tự (quá trình này còn được gọi là mạng Feistel)
Cấu trúc của thuật toán (mạng Feistel) đảm bảo rằng quátrình mã hóa và giải mã diễn ra tương tự Điểm khác nhau chỉ ởchỗ các khóa con được sử dụng theo trình tự ngược nhau Điềunày giúp cho việc thực hiện thuật toán trở nên đơn giản, đặcbiệt là khi thực hiện bằng phần cứng
Ký hiệu sau: thể hiện phép toán XOR Hàm F làm biếnđổi một nửa của khối đang xử lý với một khóa con Đầu ra sauhàm F được kết hợp với nửa còn lại của khối và hai phần đượctráo đổi để xử lý trong chu trình kế tiếp Sau chu trình cuối cùngthì 2 nửa không bị tráo đổi; đây là đặc điểm của cấu trúc Feistelkhiến cho quá trình mã hóa và giải mã trở nên giống nhau
Hình 18: Hàm F (F-function) dùng trong DES
Hàm F, như được miêu tả ở hình, hoạt động trên khối 32 bit
và bao gồm bốn giai đoạn:
1 Mở rộng: 32 bit đầu vào được mở rộng thành 48 bit sử dụng thuật toán hoán vị mở rộng (expansion permutation)
Trang 32với việc nhân đôi một số bit Giai đoạn này được ký hiệu là
E trong sơ đồ
2 Trộn khóa: 48 bit thu được sau quá trình mở rộng được
XOR với khóa con Mười sáu khóa con 48 bit được tạo ra từ
khóa chính 56 bit theo một chu trình tạo khóa con (key
schedule) miêu tả ở phần sau.
3 Thay thế: 48 bit sau khi trộn được chia làm 8 khối con 6 bit
và được xử lý qua hộp thay thế S-box Đầu ra của mỗi khối
6 bit là một khối 4 bit theo một chuyển đổi phi tuyến đượcthực hiện bằng một bảng tra Khối S-box đảm bảo phầnquan trọng cho độ an toàn của DES Nếu không có S-boxthì quá trình sẽ là tuyến tính và việc thám mã sẽ rất đơngiản
4 Hoán vị: Cuối cùng, 32 bit thu được sau S-box sẽ được sắp
xếp lại theo một thứ tự cho trước (còn gọi là P-box)
Quá trình luân phiên sử dụng S-box và sự hoán vị các bítcũng như quá trình mở rộng đã thực hiện được tính chất gọi
là sự xáo trộn và khuếch tán (confusion and diffusion) Đây là
yêu cầu cần có của một thuật toán mã hoá được ClaudeShannon phát hiện trong những năm 1940
Trang 33Hình 19: Quá trình tạo khóa con
Hình mô tả thuật toán tạo khóa con cho các chu trình Đầu
tiên, từ 64 bit ban đầu của khóa, 56 bit được chọn (Permuted
Choice 1, hay PC-1); 8 bit còn lại bị loại bỏ 56 bit thu được được
chia làm hai phần bằng nhau, mỗi phần được xử lý độc lập Saumỗi chu trình, mỗi phần được dịch đi 1 hoặc 2 bit (tùy thuộctừng chu trình, nêu đó là chu trình 1,2,9,16 thì đó là dịch 1bit,còn lại thì sẽ được dich 2bit) Các khóa con 48 bit được tạo
thành bởi thuật toán lựa chọn 2 (Permuted Choice 2, hay PC-2)
gồm 24 bit từ mỗi phần Quá trình dịch bit (được ký hiệu là
"<<<" trong sơ đồ) khiến cho các khóa con sử dụng các bitkhác nhau của khóa chính; mỗi bit được sử dụng trung bình ở 14trong tổng số 16 khóa con
Trang 34Quá trình tạo khóa con khi thực hiện giải mã cũng diễn ratương tự nhưng các khóa con được tạo theo thứ tự ngược lại.Ngoài ra sau mỗi chu trình, khóa sẽ được dịch phải thay vì dịchtrái như khi mã hóa
Các password tuân theo phương pháp LM chuỗi mã có một
số nhược điểm Nhược điểm đầu tiên cần kể đến là sự mã hóa ởđây dựa vào Data Encyrption Standard (DES) DES khởi đầu từmột dự án của IBM vào những năm 70, dự án sau đó bị sửa đổibởi NIST, được bảo trợ bởi NSA và được phát hành như mộtchuẩn ANSI vào năm 1981 DES được cho là khá an toàn trongnhiều năm sau những nghiên cứu kỹ lưỡng trong những năm 90nhờ kích thước key 56-bit của nó Tuy nhiên đến đầu năm 1998,Electronic Frontier Foundation thông báo là đã có thể crack DEStrong khoảng thời gian 23 giờ Từ đó, DES được xem như đã lỗithời và cũng từ đó nó được thay thế bằng Triple-DES và AES.Tuy nhiên đây cũng là các chuẩn mã hóa đã có trường hợp bịphá vỡ với sức mạnh tính toán hiện đại và có thể bị crack mộtcách dễ dàng
Có lẽ điểm mạnh lớn nhất trong LM chuỗi mã chính làtrong quá trình tạo các khóa (key) DES Trong quá trình này,một password được cấp bởi người dùng sẽ tự động chuyển đổitất cả thành in hoa, sau đó được chèn thêm thành chuỗi mã có
độ dài 14 ký tự (đây là chiều dài tối đa cho password theophương pháp LM chuỗi mã), tiếp đó được chia thành hai chuỗi
mã 7 ký tự Đây là một điểm yếu khi ta chuỗi mã mật mã bị chianhỏ và chỉ được phép sử dụng các ký tự ASCII in hoa Xét về bảnchất, thuật toán này làm cho việc sử dụng các ký tự khác cũngnhư tăng chiều dài password trở nên vô nghĩa, đó chính là điều
Trang 35làm cho các password LM trở nên hổng đối với các cố gắngcrack lặp lại nhiều lần (brute-force).
2 Chuỗi mã password NTLMv2
NT LAN Manager (NTLM) là một giao thức thẩm định củaMicrosoft, giao thức này được tạo ra để kế vị LM Có nhiều tảitiến, NTLMv2 được chấp nhận như một phương pháp thẩm địnhmới đáng để lựa chọn và được thực thi trong Windows NT 4
Quá trình tạo một NTLMv2 chuỗi mã (từ lúc này trở về sauchúng ta viết tắt là NT chuỗi mã) là một quá trình đơn giản hơnnhiều với những gì mà hệ điều hành thực hiện, nó dựa vào thuậttoán chuỗi mã MD4 để tạo chuỗi mã nhờ một loạt các tính toántoán học Thuật toán MD4 được sử dụng ba lần để tạo NT chuỗi
mã Trong thực tế, password “PassWord123” sẽ có kết quả là
“94354877D5B87105D7FEC0F3BF500B33” sau khi sử dụng
thuật toán MD4