TDCTF Academy Logo TDCTF ACADEMY

Lab 5: Base64 Encoding - Bukan Enkripsi!

Target: Memahami perbedaan encoding vs encryption, dan kapan menggunakan Base64
Tools: python3, base64


Konsep

Base64 BUKAN enkripsi - ini adalah encoding. Perbedaan penting:

Aspek Encoding Encryption
Tujuan Representasi data Kerahasiaan
Key Tidak ada Ada (kunci rahasia)
Reversibel Ya (tanpa key) Ya (dengan key)
Keamanan Nol - siapapun bisa decode Tinggi
Contoh Base64, Hex, ASCII AES, RSA

Base64 digunakan untuk mengirim data biner (gambar, file) melalui media teks (email, JSON, URL).


Praktikum

cd ~ && mkdir crypto-lab5 && cd crypto-lab5

python3 << 'PYEOF'
import base64

# 1. Encode & decode
text = "Hello World! This is not encrypted."
encoded = base64.b64encode(text.encode())
decoded = base64.b64decode(encoded).decode()

print(f"Original: {text}")
print(f"Base64: {encoded.decode()}")
print(f"Decoded: {decoded}")
print()

# 2. Encoding binary data (gambar kecil)
img_data = b'\x89PNG\r\n\x1a\n' + b'\x00' * 100
b64 = base64.b64encode(img_data)
print(f"Binary ({len(img_data)} bytes) → Base64 ({len(b64)} chars)")
print(f"Ukuran bertambah ~33% (4/3 ratio)")
print()

# 3. Demonstrasi: Base64 BUKAN aman
secret = "Password saya adalah SuperSecret123!"
b64_secret = base64.b64encode(secret.encode())

print("=== 'Encryption' Palsu ===")
print(f"Secret: {secret}")
print(f"Base64: {b64_secret.decode()}")
print("Siapa pun bisa decode itu dengan base64.b64decode()!")
print(f"Coba: {base64.b64decode(b64_secret).decode()}")
PYEOF

️ Analisis

Penggunaan Base64 Contoh
✅ Transfer binary via email MIME attachments
✅ Data URL di CSS/HTML data:image/png;base64,...
✅ JWT tokens Header.payload.signature
Menyembunyikan password Siapa pun bisa decode!
Sebagai 'enkripsi' Tidak ada keamanan

Refleksi: Jangan pernah menggunakan Base64 untuk keamanan. Base64 adalah encoding, bukan encryption. Di dunia nyata, attacker selalu decode Base64 dalam hitungan detik.


Generated by @farishhz Agent Pentest Pipeline - TDCTF Security Academy

PADA HALAMAN INI