Hương-dẫn-ôn-tập-blockchain - đề-2 2 - Tài liệu tham khảo | Đại học Hoa Sen

Hương-dẫn-ôn-tập-blockchain - đề-2 2 - Tài liệu tham khảo | Đại học Hoa Sen và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả

Trường:

Đại học Hoa Sen 4.8 K tài liệu

Thông tin:
10 trang 1 tháng trước

Bình luận

Vui lòng đăng nhập hoặc đăng ký để gửi bình luận.

Hương-dẫn-ôn-tập-blockchain - đề-2 2 - Tài liệu tham khảo | Đại học Hoa Sen

Hương-dẫn-ôn-tập-blockchain - đề-2 2 - Tài liệu tham khảo | Đại học Hoa Sen và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả

25 13 lượt tải Tải xuống
1. Thay đổi cường độ tấn công
Thay đổi giá trị so sánh của biến so_ngau_nhien
a. Xuất hiện tấn công tăng gấp 2 lần
b. Xuất hiện tấn công giảm gấp 2 lần
2. Thay đổi kịch bản tấn công
a. Thay đổi số tiền
b. Thay đổi tài khoản nguồn
c. Thay đổi tài khoản đích
3. Thay đổi phong cách tấn công
Muốn kiểm tra tấn công, cần thay đổi hàm themBlock như bên dưới
a. Nạp tiền: x 0.5 số tiền
b. Rút tiền: x2 số tiền
c.
d. Chuyển tiền: x3 số tiền + TK_dich là TK hacker
e. Chỉ tấn công các giao dịch có số tiền > 1000
f.
g. Chỉ tấn công TK nào đó (ví du: A)
4. Tăng cường độ bảo mật
a. Phát hiện thay đổi TK_nguồn
b. Phát hiện thay đổi TK_đích
c. Phát hiện thay đổi số tiền
5. Minh họa quá trình bị tấn công
Tạo 3 tk, minh hoaj và in chuỗi khối ra
Disable chỗ phòng thủ mới thấy được tấn công
Chạy thử, và kiểm tra chuỗi khối
a. Khi chuyển tiền
b. Khi rút tiền
c. Khi nạp tiền
d. Tổ hợp a, b, c
6. Thêm chức năng OTP để confirm giao dịch
Thêm 1 form
Khi bấm chuyển tiền, hiên form lên
Nhập OTP từ form OTP vào phần xác minh OTP
Bấm vào nút xác nhận
Kiểm tra OTP chúng ta nhâp == OTP ở form OTP ko
Chuyển tiền
def chuyenTien(self, gd1, gd2):
so_tien = int(gd1.gd_user_soTienCK.toPlainText())
#tk_ck = gd2.tk_dang_su_dung
so_tk_ck = gd1.gd_user_chonTK.currentText()
tk_ck = self.layTaiKhoan(so_tk_ck)
#Chua cho chuyển tiền ngay
#Mo cua so OTP:
# self.Form1 = QtWidgets.QWidget()
# self.ui1 = Ui_Form2()
# self.ui1.setupUi(self.Form1)
# self.Form1.show()
# Sinh ra mã OTP ở lớp gd_user: gd1
#gd1.phatSinhOTP()
# Set text
#ui1.gd_user_soDuTK_CK_3.setText(gd1.ma_OTP)
#Kiem tra OTP
kt1 = 0
# if gd1.gd_user_soDuTK_CK_3.currentText() == gd1.ma_OTP
# kt = 1
# gd1.tk_dang_su_dung.chuyenTien(so_tien, tk_ck)
# so_du_new1 = str(gd1.tk_dang_su_dung.so_du_TK)
# so_du_new2 = str(gd2.tk_dang_su_dung.so_du_TK)
# else
# self.chuyenTien(self, gd1, gd2)
# #gd.gd_user_soDuTK.setText(so_du_new)
# self.thietLapSoDu(gd1, so_du_new1)
# self.thietLapSoDu(gd2, so_du_new2)
7. Giải thích ý nghĩa của:
a. themBlockBiTanCong
Mục tiêu cơ bản của hàm này là sinh ra 1 khối trong chuỗi khối từ 1 thông tin giao dịch mà
tham số được truyền vào hàm và đồng thời hàm này sẽ mô phỏng hành vi tấn công của
hacker trên internet. Thì khối mới tạo ra và cái thông tin giao dịch sẽ bị thay đổi tùy theo
mục đích của các hàm khác nhau như thay đổi k nguồn, thay đổi tk đích, thay đổi số tiền.
b. kiemTraBiTanCong
Kiểm tra xem là 1 cái giao dịch mà cái khối được sinh ra từ giao dịch này nó có bị thay đổi
hay không bằng cách mổ xẻ thông tin giao dịch trong khối này xem là các cái thông tin số tk
nguồn số tk đích nó có bị thay đổi hay không so với khối nguyên thủy. Nếu là 1 thì ko bị tấn
công mà nếu là -1 thì bị tấn công
c. luuTruThongTinGiaoDich
Hàm này dùng để lưu trữ lại thông tin của giao dịch nguyên thủy trước khi khối được sinh ra
qua internet
d. Nạp tiền
Cập nhật số dư tài khoản là cái thuộc tính của lớp tk lên bằng số tiền muốn nạp là cái tham
số của cái hàm này và ngoài ra 1 cái giao dịch sẽ được tạo ra dựa vào thông stk đang sử
dụng và thời gian phát sinh vào thời điểm hiẹn tại, sau đấy lịch sử giao dịch sẽ được thêm
mới và thêm khối mới được tạo ra ở chuỗi khối
e. In sao kê (sao kê ko liên qua tới chuỗi khối mà liên quan tới lịch sử giao dịch)
Hàm in sao kê in toàn bộ những thông tin giao dịch của tk đó và chỉ tk đó thôi, nó khác với
chuỗi khối, chuỗi khối là bao gồm tk khác nữa vd như c nạp tiền a biết thì là blockchain còn c
nạp tiền chỉ c biết thôi đó là cái lịch sử giao dịch ở trong sao kê
F. In chuối khối là in thông tin chuỗi khối
8. Thống kê số lần bị tấn công
| 1/10

Preview text:

1. Thay đổi cường độ tấn công
Thay đổi giá trị so sánh của biến so_ngau_nhien
a. Xuất hiện tấn công tăng gấp 2 lần
b. Xuất hiện tấn công giảm gấp 2 lần
2. Thay đổi kịch bản tấn công a. Thay đổi số tiền
b. Thay đổi tài khoản nguồn
c. Thay đổi tài khoản đích
3. Thay đổi phong cách tấn công
Muốn kiểm tra tấn công, cần thay đổi hàm themBlock như bên dưới
a. Nạp tiền: x 0.5 số tiền b. Rút tiền: x2 số tiền c.
d. Chuyển tiền: x3 số tiền + TK_dich là TK hacker
e. Chỉ tấn công các giao dịch có số tiền > 1000 f.
g. Chỉ tấn công TK nào đó (ví du: A)
4. Tăng cường độ bảo mật
a. Phát hiện thay đổi TK_nguồn
b. Phát hiện thay đổi TK_đích
c. Phát hiện thay đổi số tiền
5. Minh họa quá trình bị tấn công
Tạo 3 tk, minh hoaj và in chuỗi khối ra
Disable chỗ phòng thủ mới thấy được tấn công
Chạy thử, và kiểm tra chuỗi khối a. Khi chuyển tiền b. Khi rút tiền c. Khi nạp tiền d. Tổ hợp a, b, c
6. Thêm chức năng OTP để confirm giao dịch Thêm 1 form
Khi bấm chuyển tiền, hiên form lên
Nhập OTP từ form OTP vào phần xác minh OTP Bấm vào nút xác nhận
Kiểm tra OTP chúng ta nhâp == OTP ở form OTP ko Chuyển tiền
def chuyenTien(self, gd1, gd2):
so_tien = int(gd1.gd_user_soTienCK.toPlainText()) #tk_ck = gd2.tk_dang_su_dung
so_tk_ck = gd1.gd_user_chonTK.currentText()
tk_ck = self.layTaiKhoan(so_tk_ck)
#Chua cho chuyển tiền ngay #Mo cua so OTP:
# self.Form1 = QtWidgets.QWidget() # self.ui1 = Ui_Form2()
# self.ui1.setupUi(self.Form1) # self.Form1.show()
# Sinh ra mã OTP ở lớp gd_user: gd1 #gd1.phatSinhOTP() # Set text
#ui1.gd_user_soDuTK_CK_3.setText(gd1.ma_OTP) #Kiem tra OTP kt1 = 0
# if gd1.gd_user_soDuTK_CK_3.currentText() == gd1.ma_OTP # kt = 1
# gd1.tk_dang_su_dung.chuyenTien(so_tien, tk_ck)
# so_du_new1 = str(gd1.tk_dang_su_dung.so_du_TK)
# so_du_new2 = str(gd2.tk_dang_su_dung.so_du_TK) # else
# self.chuyenTien(self, gd1, gd2)
# #gd.gd_user_soDuTK.setText(so_du_new)
# self.thietLapSoDu(gd1, so_du_new1)
# self.thietLapSoDu(gd2, so_du_new2)
7. Giải thích ý nghĩa của: a. themBlockBiTanCong
Mục tiêu cơ bản của hàm này là sinh ra 1 khối trong chuỗi khối từ 1 thông tin giao dịch mà
tham số được truyền vào hàm và đồng thời hàm này sẽ mô phỏng hành vi tấn công của
hacker trên internet. Thì khối mới tạo ra và cái thông tin giao dịch sẽ bị thay đổi tùy theo
mục đích của các hàm khác nhau như thay đổi k nguồn, thay đổi tk đích, thay đổi số tiền. b. kiemTraBiTanCong
Kiểm tra xem là 1 cái giao dịch mà cái khối được sinh ra từ giao dịch này nó có bị thay đổi
hay không bằng cách mổ xẻ thông tin giao dịch trong khối này xem là các cái thông tin số tk
nguồn số tk đích nó có bị thay đổi hay không so với khối nguyên thủy. Nếu là 1 thì ko bị tấn
công mà nếu là -1 thì bị tấn công c. luuTruThongTinGiaoDich
Hàm này dùng để lưu trữ lại thông tin của giao dịch nguyên thủy trước khi khối được sinh ra qua internet d. Nạp tiền
Cập nhật số dư tài khoản là cái thuộc tính của lớp tk lên bằng số tiền muốn nạp là cái tham
số của cái hàm này và ngoài ra 1 cái giao dịch sẽ được tạo ra dựa vào thông stk đang sử
dụng và thời gian phát sinh vào thời điểm hiẹn tại, sau đấy lịch sử giao dịch sẽ được thêm
mới và thêm khối mới được tạo ra ở chuỗi khối
e. In sao kê (sao kê ko liên qua tới chuỗi khối mà liên quan tới lịch sử giao dịch)
Hàm in sao kê in toàn bộ những thông tin giao dịch của tk đó và chỉ tk đó thôi, nó khác với
chuỗi khối, chuỗi khối là bao gồm tk khác nữa vd như c nạp tiền a biết thì là blockchain còn c
nạp tiền chỉ c biết thôi đó là cái lịch sử giao dịch ở trong sao kê
F. In chuối khối là in thông tin chuỗi khối
8. Thống kê số lần bị tấn công