-
Cryptographic Failures là một thuật ngữ được sử dụng để mô tả các lỗi liên quan đến việc mã hóa thông tin nhạy cảm. Điều này thường xảy ra khi thông tin được mã hóa theo cách mà kẻ tấn công có thể giải mã được hoặc cách thức giải mã không đảm bảo an toàn bản rõ. Khi đó, những thông tin nhạy cảm có thể bị rò rỉ ra ngoài.
-
Các lỗi phổ biến có thể bao gồm việc sử dụng những giao thức truyền dữ liệu dạng rõ như HTTP, FTP, sử dụng những mã hóa đã cũ hoặc yếu, sử dụng những hàm băm không dùng nữa như md5, SHA1, khóa bí mật dễ đoán, và chuỗi mã hóa không được xác thực.
-
Để ngăn chặn Cryptographic Failures, bạn có thể không sử dụng những giao thức đã cũ như FTP, SMTP,… để vận chuyển dữ liệu nhạy cảm, đảm bảo các thuật toán mã hóa đạt tiêu chuẩn mạnh mẽ, mã hóa dữ liệu trên đường truyền bằng TLS, HTTPS, lưu trữ password bằng các hàm băm mạnh như Argon2, scrypt, bcrypt,… và luôn sử dụng mã hóa được xác thực thay vì chỉ mã hóa
1. Base64 Encoding
-
**Base64 Encoding **(mã hóa Base64) là một phương pháp mã hóa dữ liệu nhị phân thành văn bản ASCII bằng cách chuyển đổi dữ liệu sang biểu diễn cơ số 64123.
-
Base64 thường được sử dụng để mã hóa các tập tin đa phương tiện (hình ảnh, âm thanh, video,…) và trong các thao tác với files và ảnh24. Mỗi chữ số Base64 không phải là đại diện cuối cùng cho chính xác 6 bit dữ liệu. Do đó, ba byte 8 bit (24 bit) có thể được biểu diễn bằng bốn chữ số Base64 6 bit3.
-
Base64 đặc biệt phổ biến trên World Wide Web, trong đó các công dụng của nó bao gồm khả năng đính các tệp hình ảnh hoặc các nội dung nhị phân khác vào bên trong các nội dung văn bản như tệp HTML và CSS3. Base64 cũng được sử dụng rộng rãi để gửi các tệp đính kèm email3.
-
Chúng ta Copy code đề bài cho:
bXl1c2VyOm15cGFzc3dvcmQ=
, và dán vào trang https://base64.guru/converter/decode để giải mã nó ta sẽ thấy được username và password: -
Chúng ta nhập username:
theviblog
và password:passw0rd
vừa mới tìm được là xong:
2. Other Encoding
- Copy code đề bài cho là:
{xor}Oz4rPj0+LDovPiwsKDAtOw==
. Dán vào trang https://strelitzia.net/wasXORdecoder/wasXORdecoder.html để giải mã nó, ta sẽ thấy được password. - Copy passoword vừa mời tìm được nhấn
post the answer
là xong:
3. Plain Hashing
-
Plain Hashing (băm đơn giản) là một kỹ thuật được sử dụng để chuyển đổi dữ liệu đầu vào không cố định thành dữ liệu đầu ra có kích thước cố định.
-
Quá trình này được thực hiện bằng cách sử dụng các công thức toán học như các hàm băm (được thực hiện dưới dạng các thuật toán băm). Mặc dù không phải hàm băm nào cũng sử dụng mật mã hóa, nhưng cái gọi là hàm băm mật mã hóa chính là cốt lõi của tiền mã hóa.
-
Các hàm băm truyền thống cũng các hàm băm mật mã hóa đều mang tính tất định. Tính tất định nghĩa là, miễn là đầu vào không đổi, thì thuật toán băm luôn đưa ra cùng một đầu ra (còn gọi là đại diện hoặc băm).
-
Lần lượt copy 2 mã để cho dán vào trang: https://crackstation.net/ để xem nó là loại mã gì: Ta có thể thấy được mã thứ nhất là
MD5
và result làadmin
, mã thứ hai làSHA256
result là123456
. -
Copy 2 kết quả vừa tìm được vào và nhấn post the answer là xong:
4. Signatures
-
Chữ ký là một giá trị băm (hash) có thể được sử dụng để kiểm tra tính hợp lệ của một số dữ liệu. Chữ ký có thể được cung cấp riêng biệt so với dữ liệu mà nó xác thực, hoặc trong trường hợp của CMS hoặc SOAP có thể được bao gồm trong cùng một tệp. (Nơi một số phần của tệp đó chứa dữ liệu và một số phần chứa chữ ký).
-
Việc ký kết được sử dụng khi tính toàn vẹn quan trọng. Nó được dùng như một bảo đảm rằng dữ liệu được gửi từ Bên-A đến Bên-B không bị thay đổi. Vì vậy, Bên-A ký kết dữ liệu bằng cách tính giá trị băm của dữ liệu và mã hóa giá trị băm đó bằng một khóa riêng không đối xứng. Bên-B sau đó có thể xác minh dữ liệu bằng cách tính giá trị băm của dữ liệu và giải mã chữ ký để so sánh xem hai giá trị băm có giống nhau không.
-
Đề bài cho một mã private RSA, yêu cầu dùng OpenSSL để tìm ra modulus và public key
-
Tạo một file tên là
privatekey.pem
chứa đoạn mã đề bài cho: -
Vào trang: https://www.cryptool.org/en/cto/openssl để upload file
privatekey.pem
lên: -
Gõ lệnh:
openssl rsa -in privatekey.pem -outform PEM -pubout -out publickey.pem
Để có thể lấy filepublickey.pem
- Gõ lệnh:
openssl rsa -pubin -in publickey.pem -text -noout -modulus
Để trích xuất modulus từ publickey.pem
-
Tiến hành lưu modulus vừa tìm được vào file modulus và upload lên OpenSSL
-
Gõ lệnh:
openssl dgst -sha256 -sign privatekey.pem -out sign.sha256 modulus
Để tạo chữ ký với mã băm SHA-266 tuwg modulus và privatekey. Lưu vào file sign.sha256
-
Gõ lệnh:
openssl enc -base64 -in sign.sha256 -out sign.sha256.base64
Để mã hóa sign.sha256
dưới dạng Base64 và lưu vào file sign.sha256.base64
:
-
Để lấy file gõ lệnh:
cat sign.sha256.base64
-
Copy modulus và signature mới vừa tìm được và nhấn
post the answer
là xong:
Còn tiếp...