15 Agustus 2017

Ciri-ciri hasil encode dari beberapa encoder

Apa Itu Encode?

Encode adalah proses mengubah data ke dalam format tertentu agar dapat diproses, disimpan, atau ditransmisikan dengan lebih efisien, bukan untuk tujuan utama keamanan.

Walaupun hasil encoding terkadang terlihat seperti pesan yang disandikan, encoding bukanlah mekanisme untuk menyembunyikan informasi agar tidak dapat dibaca oleh orang lain. Tujuan utamanya adalah untuk mempermudah pertukaran dan pengolahan data antar sistem atau perangkat.


Mengapa Encoding Dibutuhkan?

Komputer bekerja menggunakan data biner (0 dan 1). Namun, tidak semua sistem atau media komunikasi dapat mengirimkan data biner mentah dengan baik. Karena itu, encoding digunakan untuk mengubah data menjadi format yang lebih kompatibel.

Contoh encoding yang sering digunakan:

  • Base32 / Base64 Encoding
    Digunakan untuk mengubah data biner menjadi teks ASCII agar dapat dikirim melalui media yang hanya mendukung teks.

    Mengapa dibuat?
    Pada awal perkembangan internet dan email, banyak sistem hanya dapat mengirim karakter teks biasa dan tidak mendukung data biner secara langsung. Karena itu, Base32 dan Base64 dibuat agar file seperti gambar, audio, atau dokumen tetap dapat dikirim melalui sistem berbasis teks.

    Contoh penggunaan:
    Lampiran email, JSON Web Token (JWT), dan data gambar pada halaman web.

  • URL Encoding
    Digunakan untuk mengubah karakter khusus pada URL menjadi format yang dapat diproses oleh browser dan server.

    Mengapa dibuat?
    URL memiliki aturan karakter tertentu. Karakter seperti spasi, tanda tanya, atau simbol lainnya dapat menyebabkan URL rusak atau salah diproses. Karena itu, karakter khusus harus diubah ke format aman menggunakan simbol persen (%).

    Contoh penggunaan:
    Spasi pada URL diubah menjadi %20.
    Contoh:
    https://website.com/search?query=hello%20world

  • HTML Encoding
    Digunakan untuk menampilkan karakter khusus HTML seperti <, >, dan & agar tidak dianggap sebagai tag HTML.

    Mengapa dibuat?
    Browser membaca karakter tertentu sebagai bagian dari kode HTML. Jika karakter tersebut ingin ditampilkan sebagai teks biasa, maka harus di-encode agar browser tidak salah mengartikan isi halaman.

    Contoh penggunaan:
    < ditampilkan sebagai &lt;
    > ditampilkan sebagai &gt;

  • ASCII
    Standar encoding karakter yang digunakan untuk merepresentasikan teks ke dalam bentuk angka.

    Mengapa dibuat?
    Komputer hanya memahami angka biner. Karena itu, diperlukan standar agar huruf, angka, dan simbol dapat diterjemahkan menjadi angka yang dipahami komputer.

    Contoh penggunaan:
    Huruf A direpresentasikan sebagai angka 65 dalam ASCII.

  • UTF-8
    Encoding karakter modern yang mendukung berbagai bahasa dan simbol dari seluruh dunia.

    Mengapa dibuat?
    ASCII memiliki keterbatasan karena hanya mendukung sedikit karakter. UTF-8 dibuat agar komputer dapat menampilkan berbagai bahasa seperti Arab, Jepang, Mandarin, emoji, dan simbol modern lainnya.

    Contoh penggunaan:
    Digunakan hampir di seluruh website modern untuk mendukung teks multibahasa dan emoji.

  • Binary Encoding
    Representasi data menggunakan angka biner (0 dan 1) yang dipahami oleh komputer.

    Mengapa dibuat?
    Komponen elektronik komputer bekerja menggunakan dua kondisi dasar, yaitu aktif dan nonaktif. Karena itu, seluruh data dalam komputer direpresentasikan menggunakan angka 0 dan 1.

    Contoh penggunaan:
    Semua file komputer, mulai dari gambar, video, musik, hingga program aplikasi, pada akhirnya disimpan dalam bentuk biner.

Pada kompetisi Capture The Flag (CTF), kita wajib mengetahui ciri-ciri informasi yang telah di-encode, sesuai dengan jenis data dan teknologi yang digunakan untuk mentransmisikan data tersebut.

Contoh penggunaan encoding di dunia nyata:

  • Lampiran email menggunakan Base64 Encoding
  • Browser menggunakan URL Encoding saat membuka alamat website
  • HTML menggunakan Entity Encoding untuk karakter khusus
  • QR Code menyimpan data dalam format tertentu agar mudah dibaca mesin

Perbedaan Encode dan Decode

Dalam encoding terdapat dua proses utama:

  • Encode → Mengubah data ke format tertentu
  • Decode → Mengembalikan data ke bentuk aslinya

Alur sederhananya:

Plain Text → Encode → Encoded Text → Decode → Plain Text

Karena dapat dikembalikan ke bentuk asli dengan mudah, encoding tidak dapat dianggap sebagai metode keamanan data.


Karakteristik Hasil Encoding

Setiap jenis encoding memiliki pola dan karakteristik yang berbeda. Dalam kompetisi Capture The Flag (CTF), kemampuan mengenali pola encoding sangat penting untuk proses analisis data.

[ Base32 ]

  • Campuran huruf kapital dan angka
  • Tidak menggunakan huruf kecil
  • Kadang diakhiri simbol "=" sebagai padding

Contoh:

Plain text:
Hasil encoding dari Base32 !

Encoded text:
JBQXG2LMEBSW4Y3PMRUW4ZZAMRQXE2JAIJQXGZJTGIQCC===


[ Base64 ]

  • Menggunakan huruf besar, huruf kecil, angka, serta simbol tertentu
  • Sering diakhiri "=" atau "=="
  • Sangat umum digunakan pada web dan email

Contoh:

Plain text:
Hasil encoding dari Base64 !

Encoded text:
SGFzaWwgZW5jb2RpbmcgZGFyaSBCYXNlNjQgIQ==

Tanda "=" pada akhir Base64 disebut padding, yaitu karakter tambahan agar panjang data sesuai dengan kebutuhan format encoding.


[ Base85 / ASCII85 ]

  • Diawali karakter <~
  • Diakhiri karakter ~>
  • Mengandung banyak simbol non-huruf dan non-angka

Contoh:

Plain text:
Hasil encoding dari Base85 / ASCII85 !

Encoded text:
<~87?RRC`m;,@rGmlDJ()&@<-')6=FqH3&Mg3+@/pn8P(m!+<^~>


[ Binary ]

  • Hanya terdiri dari angka 0 dan 1
  • Merupakan representasi dasar yang dipahami komputer

Contoh:

01001000 01101001

Data binary biasanya digunakan pada level paling dasar dalam sistem komputer.


Cara Mengenali Jenis Encoding

Jenis Encoding Ciri-Ciri
Base64 Campuran huruf besar-kecil, angka, dan simbol "="
Base32 Dominan huruf kapital dan angka
Binary Hanya angka 0 dan 1 (bisa disajikan kedalam format yang lain, misal warna, suara, dsb)
Hexadecimal Menggunakan angka 0-9 dan huruf A-F
URL Encoding Banyak menggunakan simbol "%" seperti %20

Contoh Penggunaan Encoding di Dunia Nyata

  • Website dan Browser
    Browser menggunakan URL Encoding untuk mengirim karakter khusus pada URL.

  • Email
    Lampiran email biasanya dikirim menggunakan Base64.

  • JSON Web Token (JWT)
    JWT menggunakan Base64 untuk menyimpan data token.

  • QR Code
    Data pada QR Code disimpan menggunakan format encoding tertentu agar dapat dibaca mesin.

Kesalahpahaman yang umum terjadi

  • Menganggap encoding (seperti Base32/Base64) adalah enkripsi
  • Mengira encoding dapat mengamankan data
  • Menganggap encoded text tidak bisa dikembalikan ke bentuk asli

Padahal, sebagian besar encoding dapat di-decode kembali dengan sangat mudah menggunakan tools online maupun program sederhana.


Kesimpulan

Encoding adalah proses perubahan format data agar lebih mudah diproses, disimpan, atau dikirimkan antar sistem. Walaupun hasilnya sering terlihat seperti data acak, encoding bukanlah metode keamanan.

Dengan memahami karakteristik berbagai jenis encoding, kita dapat lebih mudah mengenali pola data pada dunia pemrograman, jaringan komputer, maupun kompetisi cybersecurity seperti CTF.

Continue reading Ciri-ciri hasil encode dari beberapa encoder