Image Cover
Avatar

Viblo Security

@security

Báo cáo

Bài viết được ghim

IV. Phân tích và khai thác các lỗ hổng Web cache poisoning

  1. Ví dụ về tìm kiếm unkeyed values

Như ở bài viết trước đã đề cập, việc tìm kiếm các giá trị unkeyed đóng vai trò quan trọng trong tấn công web cache poisoning. Trong bài lab Web cache poisoning with an unkeyed header, chúng ta sẽ sử dụng một extension "đắc lực" trong công cụ Burp Suite để tìm kiếm các giá trị unkeyed.

Quan sát resp...

301
2
0 0

Tất cả bài viết

Thumbnail Image
331
0
0 0
Avatar Viblo Security thg 2 25, 6:37 SA
3 phút đọc

Tấn công hàm băm (hash attack) - Tấn công xung đột băm (hash collision attack)

I. Hash attack

Về việc đưa ra một thuật toán băm "ngược" nhằm tìm ra chính xác thông điệp từ là không thể. Nguyên lý của hàm băm chính là đưa các thông điệp với độ dài tùy ý trở về "khuôn khổ" một chuỗi có cấu tạo và độ dài cố định, tức kết quả băm nằm trong một không gian có độ lớn giới hạn. Chúng ta không thể dựa vào một không gian giới hạn tìm ngược lại thông điệp - thuộc một không gian ...

Thumbnail Image
126
0
0 0
Avatar Viblo Security thg 2 24, 6:37 SA
9 phút đọc

Hàm băm trong mật mã học - Hashing in cryptography

I. Định nghĩa

Dựa theo bối cảnh mật mã học, chúng ta có thể định nghĩa hàm băm là một phép toán đưa thông điệp đầu vào (chuỗi ký tự, độ dài tùy ý) xử lý và trả về kết quả là một xâu ký tự có độ dài cố định. Từ đó có thể thực hiện quá trình xử lý dữ liệu dễ dàng hơn do các khối dữ liệu trở nên thống nhất và cấu tạo và độ dài.

Ký hiệu là hàm băm, với thông điệp , chúng ta thu được bản mã :

Cá...

Thumbnail Image
227
1
0 0
Avatar Viblo Security thg 2 21, 6:36 SA
3 phút đọc

Giải thuật Euclid mở rộng (extended Euclidean algorithm) và phương trình ax+by=c

I. Phương trình ax+by=c

Xét phương trình với các hệ số nguyên, cần tìm là các ẩn nguyên. Đặt (ước chung lớn nhất), khi đó tồn tại các số nguyên sao cho . Từ kết quả có thể chứng minh được điều kiện cần và đủ để phương trình có nghiệm nguyên là là ước của (Bạn đọc tự chứng minh).

II. Thuật toán Euclid tìm ƯCLN

Bài toán tìm ước chung lớn nhất của hai số nguyên dương và đã quá quen thu...

Thumbnail Image
82
0
0 0
Avatar Viblo Security thg 2 20, 6:36 SA
8 phút đọc

Modular math in Cryptography - Module trong mật mã học

I. Một số kiến thức cơ bản về module

  1. Định nghĩa

Trong toán học, số học mô đun là một hệ thống số học dành cho số nguyên. Modular math đóng vai trò quan trọng trong mật mã học, giữa chúng tồn tại sự liên hệ mật thiết. Có thể coi phần lớn lý thuyết mật mã được xây dựng dựa trên cơ sở của số học module trong toán học, tiêu biểu có thể kể đến hệ mã hóa RSA làm việc trên các phép toán module. ...

Thumbnail Image
55
0
0 0
Avatar Viblo Security thg 2 19, 6:36 SA
6 phút đọc

Mật mã RSA - phần 7

IX. Vấn đề an toàn trong xây dựng thuật toán RSA

RSA vốn là một loại mật mã an toàn, tuy nhiên quá trình sinh khóa phụ thuộc nhiều vào yếu tố lựa chọn từ con người: Bao gồm việc chọn cặp số và số mũ công khai , cùng với cách thức vận dụng quy trình mã hóa đã mang lại các kẽ hở cho kẻ tấn công có thể khai thác. Bởi vậy, để đảm bảo vấn đề bảo mật, an toàn trong việc truyền thông điệp mã hóa bằn...

Thumbnail Image
59
1
0 0
Avatar Viblo Security thg 2 18, 6:35 SA
4 phút đọc

Mật mã RSA - phần 6

VI. Common module attack

  1. Cơ sở lý thuyết

Giả thiết rằng một thông điệp được thực hiện mã hóa RSA đồng thời với số dùng chung, các số và riêng biệt. Trong trường hợp đó, nếu hai số , thỏa mãn điều kiện nguyên tố cùng nhau, hay , thì chúng ta hoàn toàn có thể sử dụng hình thức tấn công Common module attack nhằm tìm ra thông điệp gốc khi biết bản mã.

Bài toán có thể phát biểu như sau: D...

Thumbnail Image
105
3
0 0
Avatar Viblo Security thg 11 30, 2024 8:00 SA
7 phút đọc

Mật mã RSA - phần 5

V. Thuật toán Pollard (tiếp)

  1. Tấn công phân tích nhân tử theo thuật toán Pollard Rho (Pollard )

2.1. Thuật toán Pollard

Xét số là tích của hai số nguyên tố lớn và . Tương tự với ý tưởng của thuật toán Pollard's , để tìm được một ước nguyên tố của , chúng ta sẽ tìm kiếm hai số nguyên dương và không vượt quá và thỏa mãn:

Vì khi đó , mà nên . Từ đó:

Hay chắc chắn là một ước (khác $1...

Thumbnail Image
117
1
1 0
Avatar Viblo Security thg 11 15, 2024 12:00 CH
7 phút đọc

Mật mã RSA - phần 4

IV. Một số kỹ thuật tấn công n - phân tích số lớn ra tích hai thừa số nguyên tố (tiếp)

  1. Tấn công với số n không phải tích hai số nguyên tố lớn

Một số bạn có thể thắc mắc, mật mã RSA thực chất là bài toán lũy thừa trong module số , vậy thì tại sao buộc phải chọn là tích hai số nguyên tố lớn. Có thể chọn chỉ là một số đủ lớn, hay thậm chí chỉ là một số nguyên tố đủ lớn hay không?

Khi khôn...

Thumbnail Image
219
3
0 0
Avatar Viblo Security thg 10 21, 2024 2:00 SA
8 phút đọc

Mật mã RSA - phần 3

III. Mật mã RSA - thực hiện (tiếp)

  1. Sinh số nguyên tố trong Python

Bước đầu tiên để tạo ra một cặp khóa public key và private key là lựa chọn cặp số nguyên tố , chúng sẽ đóng vai trò nền tảng cho tất cả các bước tạo khóa phía sau. Vậy thì, làm sao để tạo ra một cặp số nguyên tố ?

Ngày trước, khi không có sự hỗ trợ của các công nghệ tiên tiến, người xưa đã "lưu lại" các số nguyên tố bằng cá...

Thumbnail Image
244
2
0 0
Avatar Viblo Security thg 9 27, 2024 9:00 SA
6 phút đọc

Mật mã RSA - phần 2

III. Mật mã RSA - thực hiện

  1. Kiến thức chuẩn bị

1.1. Số nguyên tố

Số nguyên tố là một khái niệm toán học quen thuộc chúng ta đã được tiếp xúc ở thời THCS. Một số tự nhiên lớn hơn 11212515921391121251592139.

Định lý vô hạn số nguyên tố: Từ thế kỷ III trước Công nguyên, nhà toán học Hy Lạp Ơ-Clit (Euclide) đã chỉ ra và chứng minh rằng tập hợp các số nguyên tố là vô hạn. Cách chứng minh rất đơn giản bằ...

Thumbnail Image
285
0
1 0
Avatar Viblo Security thg 9 13, 2024 8:07 SA
9 phút đọc

Mật mã RSA - phần 1

I. Tổng quan về mật mã bất đối xứng (Asymmetric ciphers)

  1. Tình huống người đưa thư - khó khăn của mật mã đối xứng

Trước khi đi vào tìm hiểu mật mã bất đối xứng, xem xét tình huống như sau: Hai người ở xa A và B gửi thư cho nhau, thư được vận chuyển thông qua một người đưa thư. Ở đây, nội dung lá thư ở dạng plaintext, tức có thể xảy ra trường hợp người đưa thư đọc trộm nội dung lá thư. Bởi v...

Thumbnail Image
113
2
0 0
Avatar Viblo Security thg 8 30, 2024 8:25 SA
7 phút đọc

Symmetric ciphers - Mật mã đối xứng AES (phần 8)

VIII. CBC bitflipping attacks

  1. Điểm yếu của vector khởi tạo iv

Trong phần này, chúng ta sẽ cùng thảo luận về một dạng tấn công nhắm vào mode CBC trong mật mã đối xứng AES - CBC bitflipping attacks. Trước hết, cùng quan sát lại sơ đồ giải mã của AES CBC:

Mỗi block ciphertext sau khi trải qua quá trình "block cipher decryption" (có sự tham gia của key) đều sẽ cần một phép XOR cuối cùng để th...

Thumbnail Image
201
3
0 0
Avatar Viblo Security thg 8 23, 2024 9:00 SA
5 phút đọc

Symmetric ciphers - Mật mã đối xứng AES (phần 7)

VI. Mode CBC (Cipher Block Chaining) trong Block cipher và AES (tiếp)

  1. Challenge CTF

Challenge ECB CBC WTF là một ví dụ tốt và đơn giản để luyện tập về quá trình giải mã AES-128 với mode CBC. Mã nguồn đề bài đưa ra như sau:

from Crypto.Cipher import AES

KEY = ? FLAG = ?

@chal.route('/ecbcbcwtf/decrypt/<ciphertext>/') def decrypt(ciphertext): ciphertext = bytes.fromhex(ciphertext) ...

Thumbnail Image
117
1
0 0
Avatar Viblo Security thg 8 9, 2024 8:00 SA
6 phút đọc

Symmetric ciphers - Mật mã đối xứng AES (phần 6)

V. Padding trong block cipher và AES

  1. Kỹ thuật padding

AES-128 thực hiện mã hóa dữ liệu theo từng khối (block), mỗi khối có đầu vào là một chuỗi gồm 1616161616161616 - Kỹ thuật padding.

Khi thông điệp cần mã hóa không thể chia đều thành các chuỗi plaintext có độ dài 1616, chúng ta có thể sử dụng kỹ thuật padding nhằm bổ sung các bytes vào block cuối cùng để cho đủ độ dài (như hình vẽ).

  1. Một s...
Thumbnail Image
165
3
1 0
Avatar Viblo Security thg 7 25, 2024 9:00 SA
3 phút đọc

Symmetric ciphers - Mật mã đối xứng AES (phần 5)

IV. Thuật toán AES - hoàn thiện

  1. Xây dựng hàm mã hóa và giải mã

Nhằm thực hiện mã hóa AES chúng ta có 5252 nhưng chưa đủ kiến thức thực hiện). Đối với AES-128, cùng xem lại công thức tính các word trong quá trình mở rộng khóa:

Tham khảo hàm expand_key() trong challenge Bringing It All Together

def expandkey(masterkey):

r_con = (
    0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40,...
Thumbnail Image
182
2
0 0
Avatar Viblo Security thg 7 11, 2024 8:00 SA
3 phút đọc

Symmetric ciphers - Mật mã đối xứng AES (phần 4)

III. Thuật toán AES - thực hiện (tiếp) 7. MixColumns (tiếp)

Giải đáp bài tập phần trước: Công thức tính phần tử ở cột trong mỗi hàng lúc này có thể rút gọn lại thành:

Ví dụ, với state table:

Dựa theo công thức trên chúng ta có:

Tương tự chúng ta tính được state table mới:

Tiếp theo chúng ta cùng phân tích cách thực hiện quá trình MixColumns trong lập trình. Đối với phép toán có thể dễ dà...

Thumbnail Image
188
2
0 0
Avatar Viblo Security thg 6 21, 2024 9:00 SA
3 phút đọc

Symmetric ciphers - Mật mã đối xứng AES (phần 3)

III. Thuật toán AES - thực hiện (tiếp)

  1. AddRoundKey

Trong suốt quá trình mã hóa và giải mã, AddRoundKey được thực hiện 1111 lần (đối với AES-128), và được thực hiện ngay trước khi đi vào các round mã hóa/giải mã, đồng thời được thực hiện cuối cùng trong mỗi round:

AddRoundKey sử dụng thuật toán XOR đối với state table hiện tại và nhóm secret key tương ứng với thứ tự lần thực hiện của AddRo...

Thumbnail Image
250
3
0 0
Avatar Viblo Security thg 6 7, 2024 8:05 SA
6 phút đọc

Symmetric ciphers - Mật mã đối xứng AES (phần 2)

III. Thuật toán AES - thực hiện

Trong phần này chúng ta sẽ tìm hiểu kỹ hơn về từng công việc được thực hiện trong quá trình mã hóa, giải mã của thuật toán AES. Bao gồm cách xử lý, thao tác với khối dữ liệu, secret key, từng bước thực hiện trong mỗi round mã hóa. Loại thuật toán AES xét đến là AES-128.

  1. Thao tác với khối dữ liệu

AES-128 chia văn bản cần mã hóa thành các nhóm dữ liệu, mỗi nh...

Thumbnail Image
546
6
2 0
Avatar Viblo Security thg 5 23, 2024 7:35 SA
8 phút đọc

Symmetric ciphers - Mật mã đối xứng AES (phần 1)

I. Tổng quan về mật mã đối xứng (Symmetric ciphers)

  1. Khái niệm

Symmetric ciphers - Mật mã đối xứng (hay mật mã khóa đối xứng, mã hóa đối xứng) là một dạng mã hóa truyền thống xuất hiện từ khá sớm. Trong đó, quá trình mã hóa (encryption) và giải mã (decryption) đều sử dụng chung một khóa (khóa bí mật - secret key). Ngoài ra, vai trò của hai bên là như nhau và có thể hoán đổi cho nhau, đây cũ...

Thumbnail Image
402
4
2 0
Avatar Viblo Security thg 5 10, 2024 8:00 SA
3 phút đọc

General knowledge in Cryptography - kiến thức tổng quan trong mật mã học (phần 3)

IV. Giới thiệu một số mật mã cổ điển

  1. Mật mã Caesar

Mật mã Caesar là một trong những mật mã cổ điển xuất hiện sớm nhất, được đặt tên theo nhà văn và nhà sử học người La Mã Julius_Caesar - người đã sử dụng nó trong các thư từ bí mật của mình. Mã hóa Caesar còn được biết đến với tên mật mã chuyển vị, biểu thị cho phương thức mã hóa dịch chuyển vị trí chữ cái.

Mật mã Caesar điển hình và thườ...

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí