0Pricing
Cloud & IT Cert Prep · Pelajaran

Hashing dan Integritas Data

Pelajari cara SHA-256, MD5, dan HMAC menghasilkan intisari dengan panjang tetap untuk memverifikasi bahwa data tidak diubah saat dikirim atau disimpan.

Hashing dan Integritas Data adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa Itu Fungsi Hash?

Fungsi hash kriptografis adalah algoritma matematis yang menerima masukan dengan ukuran apa pun dan menghasilkan keluaran dengan panjang tetap yang disebut hash, digest, atau sidik jari. Fungsi hash bersifat satu arah: jika hanya mengetahui suatu hash, secara komputasional akan sangat sulit menentukan masukan aslinya. Fungsi ini bersifat deterministik: masukan yang sama selalu menghasilkan hash yang sama. Fungsi hash menjadi dasar bagi verifikasi integritas data, tanda tangan digital, penyimpanan kata sandi, dan banyak mekanisme keamanan lainnya.

Properti Fungsi Hash yang Aman

Fungsi hash kriptografis yang aman harus memiliki empat properti utama. Resistansi pracitra: jika diberikan keluaran hash, secara komputasional sangat sulit menemukan masukan apa pun yang menghasilkan keluaran tersebut. Resistansi pracitra kedua: jika diberikan suatu masukan, sangat sulit menemukan masukan lain dengan hash yang sama. Resistansi tabrakan: sangat sulit menemukan dua masukan berbeda yang menghasilkan keluaran hash yang sama. Efek Avalanche: perubahan bahkan pada satu bit masukan menyebabkan keluaran hash yang sepenuhnya berbeda, sehingga perubahan tanpa izin dapat terdeteksi.

# Avalanche effect demonstration
echo -n 'Hello' | sha256sum
# 185f8db32...  (completely different when one char changes)
echo -n 'Hello!' | sha256sum
# 334d016f7...  (entirely different hash)

# Same input ALWAYS produces same hash (deterministic)
echo -n 'Security+' | sha256sum
echo -n 'Security+' | sha256sum
# Both outputs are identical

MD5: Rusak dan Tidak Lagi Direkomendasikan

MD5 (Message Digest 5) menghasilkan hash 128-bit dan dahulu banyak digunakan. Namun, para peneliti mendemonstrasikan serangan tabrakan terhadap MD5 pada 2004—artinya, dua masukan berbeda yang menghasilkan hash sama dapat ditemukan. Hal ini sangat merusak verifikasi integritas: penyerang dapat mengganti sebuah berkas berbahaya yang memiliki hash MD5 sama dengan berkas asli. MD5 sepenuhnya rusak untuk keamanan kriptografis dan tidak boleh digunakan untuk verifikasi integritas, tanda tangan digital, atau hashing kata sandi. MD5 terkadang masih terlihat pada checksum nonkeamanan (verifikasi berkas lama), dan hal itu hanya dapat diterima untuk mendeteksi kerusakan yang tidak disengaja.

Keluarga SHA: SHA-1, SHA-256, SHA-3

Keluarga Secure Hash Algorithm (SHA) merupakan kumpulan fungsi hash terpenting untuk Security+. SHA-1 (160-bit) menjadi standar selama bertahun-tahun, tetapi berhasil dipecahkan oleh serangan tabrakan praktis pada 2017 (proyek SHAttered milik Google) dan kini tidak lagi direkomendasikan. SHA-256 (bagian dari keluarga SHA-2, dengan keluaran 256-bit) merupakan standar industri saat ini untuk tanda tangan digital, sertifikat TLS, dan verifikasi integritas berkas. SHA-3 (Keccak) adalah algoritma alternatif dari NIST yang menawarkan ketahanan terhadap serangan yang menargetkan struktur SHA-2, meskipun SHA-256 tetap menjadi pilihan utama untuk sebagian besar aplikasi.

# Common hash computations
echo -n 'password123' | sha256sum
# a665a4592...64 hex chars = 256 bits

echo -n 'password123' | sha512sum  
# b109f3bb...128 hex chars = 512 bits (SHA-512)

# File integrity check
sha256sum /path/to/downloaded_file.iso > file.sha256
sha256sum -c file.sha256
# file.iso: OK

Fungsi Hash untuk Penyimpanan Kata Sandi

Menyimpan kata sandi sebagai teks biasa tidak pernah dapat dibenarkan. Saat pengguna membuat kata sandi, sebuah hash disimpan dalam basis data, bukan kata sandinya. Saat pengguna masuk, kata sandi yang dimasukkan akan di-hash dan dibandingkan dengan hash yang tersimpan. Namun, SHA-256 standar terlalu cepat untuk penyimpanan kata sandi—penyerang menggunakan GPU untuk menguji miliaran hash per detik terhadap basis data kata sandi yang dicuri. Fungsi hashing kata sandi yang dirancang khusus, seperti bcrypt, PBKDF2, dan Argon2, menambahkan biaya komputasi (faktor kerja) dan kebutuhan memori yang membuat pembobolan massal tidak praktis.

# bcrypt hash example (Python-style pseudocode)
import bcrypt
password = b'mySecretPassword'
# Hash with work factor of 12 (2^12 = 4096 iterations)
hashed = bcrypt.hashpw(password, bcrypt.gensalt(rounds=12))
# Stored in DB: $2b$12$H0qS/LkPkAiH8KlxJb3lFuK...

# Verify (never compare raw hashes for bcrypt)
bcrypt.checkpw(password, hashed)  # Returns True

Salt: Mengalahkan Tabel Rainbow

Tabel rainbow adalah tabel pencarian yang telah dihitung sebelumnya dan memetakan kata sandi umum ke hash-nya, sehingga penyerang dapat langsung mencari hash dan menemukan kata sandi asli. Untuk mengalahkan tabel rainbow, hash kata sandi harus diberi salt. Salt adalah nilai acak yang ditambahkan ke kata sandi sebelum proses hashing, sehingga hash setiap pengguna menjadi unik meskipun dua pengguna memiliki kata sandi yang sama. Salt disimpan bersama hash (salt tidak perlu dirahasiakan). Meskipun penyerang memiliki seluruh basis data kata sandi Anda, tabel rainbow yang telah dihitung sebelumnya tidak berguna karena setiap hash menggunakan salt yang berbeda.

# Salt demonstration
# Without salt: same password = same hash (rainbow table attack works)
# SHA256('password123') = always the same hash

# With salt: same password + random salt = unique hash
# SHA256('password123' + 'aBc8xZ') = unique hash for this user
# SHA256('password123' + 'mK2pYq') = completely different hash

# The salt is stored in the database alongside the hashed value
# Format: $salt$hash or combined as in bcrypt output

HMAC: Menambahkan Autentikasi pada Hashing

HMAC (Hash-based Message Authentication Code) adalah konstruksi yang menggunakan fungsi hash bersama kunci rahasia untuk menghasilkan kode autentikasi. Berbeda dari hash biasa, HMAC hanya dapat dihitung dan diverifikasi oleh pihak yang mengetahui kunci rahasia tersebut. Hal ini memberikan integritas (mendeteksi perubahan) dan autentikasi (membuktikan bahwa pesan berasal dari seseorang yang memiliki kunci). HMAC-SHA256 banyak digunakan dalam autentikasi API (menandatangani permintaan API), token JWT, dan operasi MAC TLS. HMAC mencegah penyerang yang menyadap pesan menggantinya dengan pesan alternatif yang telah direkayasa.

# Compute HMAC-SHA256 with OpenSSL
openssl dgst -sha256 -hmac 'my-secret-api-key' -hex api_request.json
# Output: HMAC-SHA256(api_request.json)= 3d4e2f...

# Only someone with 'my-secret-api-key' can generate or verify this HMAC
# Used in AWS Signature V4 for API authentication
# Used in JWT HS256 algorithm for token integrity

Fungsi Hash dalam Tanda Tangan Digital

Fungsi hash memainkan peran penting dalam tanda tangan digital. Saat menandatangani dokumen besar, Anda tidak mengenkripsi seluruh dokumen dengan kunci privat karena prosesnya akan sangat lambat. Sebagai gantinya, Anda: (1) menghitung hash dokumen (cepat dan menghasilkan digest kecil dengan panjang tetap), kemudian (2) menandatangani hash kecil tersebut dengan kunci privat. Tanda tangan tersebut hanyalah hash yang dienkripsi. Verifikasi mengikuti pola yang sama: mendekripsi tanda tangan untuk memperoleh hash, melakukan hashing dokumen secara independen, lalu membandingkannya. SHA-256 diwajibkan dalam semua sertifikat PKI modern; SHA-1 dilarang dalam sertifikat baru.

Pemantauan Integritas File (FIM)

File Integrity Monitoring (FIM) menggunakan fungsi hash untuk mendeteksi perubahan tanpa izin pada berkas sistem yang penting. Pada tahap penetapan dasar, alat FIM melakukan hashing terhadap semua berkas yang dipantau dan menyimpan hash tersebut dengan aman. Secara berkala (atau terus-menerus), alat ini melakukan hashing ulang terhadap berkas dan membandingkannya dengan nilai dasar. Ketidakcocokan apa pun menunjukkan bahwa suatu berkas telah diubah—kemungkinan oleh perangkat lunak berbahaya atau tindakan administrator tanpa izin. Alat FIM seperti Tripwire, AIDE (Linux), dan pemeriksaan integritas bawaan Windows menggunakan hash SHA-256. FIM diwajibkan oleh kerangka kerja kepatuhan seperti PCI-DSS untuk melindungi lingkungan data pemegang kartu.

# AIDE (Advanced Intrusion Detection Environment) - Linux FIM
# Initialize baseline database
aide --init
# mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

# Check for changes (run via cron daily)
aide --check
# Output shows any files that were added, changed, or deleted
# File: /etc/passwd changed
# MD5 : old_hash != new_hash

Checksum vs Hash Kriptografis

Penting untuk membedakan checksum dari hash kriptografis. Checksum seperti CRC32 dirancang untuk mendeteksi kerusakan data yang tidak disengaja selama transmisi—checksum cepat dan sederhana, tetapi dapat dengan mudah dipalsukan oleh penyerang. Hash kriptografis (SHA-256) dirancang agar tahan terhadap tabrakan dan mampu menunjukkan perubahan tanpa izin, bahkan terhadap manipulasi oleh pihak yang menyerang. Gunakan checksum jika Anda hanya perlu memverifikasi bahwa unduhan tidak rusak selama transmisi; gunakan hash kriptografis jika Anda perlu memverifikasi bahwa suatu berkas tidak sengaja diubah oleh pihak yang berniat jahat.

Serangan Tabrakan Hash dalam Praktik

Serangan tabrakan hash berdampak nyata. Pada 2017, para peneliti membuat dua berkas PDF berbeda dengan hash SHA-1 yang sama, sehingga menunjukkan bahwa sertifikat SHA-1 dapat dipalsukan. Pada 2008, para peneliti menggunakan tabrakan MD5 untuk membuat sertifikat CA palsu yang tampak sah. Serangan-serangan ini menjadi alasan browser menolak sertifikat MD5 dan SHA-1, serta alasan otoritas sertifikat harus menggunakan setidaknya SHA-256. Memahami serangan tabrakan membantu Anda menjelaskan alasan algoritma tidak lagi direkomendasikan dan mengapa argumen “tetapi algoritma itu masih menghasilkan hash” tidak cukup untuk membenarkan penggunaan algoritma yang telah rusak.

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep CompTIA Security+ (SY0-701) dari pelajaran ini.

Rangkuman Pelajaran

Dalam pelajaran ini Anda mempelajari bahwa: fungsi hash menghasilkan digest dengan panjang tetap untuk verifikasi integritas; MD5 dan SHA-1 telah rusak dan tidak lagi direkomendasikan; SHA-256 merupakan standar saat ini; pemberian salt mengalahkan serangan tabel rainbow; dan HMAC menambahkan autentikasi pada hashing menggunakan kunci rahasia bersama. Selanjutnya kita akan membahas Pertukaran Kunci dan Enkripsi Hibrida.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Hashing dan Integritas Data” gratis?

Ya — teks lengkap “Hashing dan Integritas Data” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Hashing dan Integritas Data”?

Pelajari cara SHA-256, MD5, dan HMAC menghasilkan intisari dengan panjang tetap untuk memverifikasi bahwa data tidak diubah saat dikirim atau disimpan. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?

Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Hashing dan Integritas Data” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Algoritma Enkripsi Simetris
  2. Enkripsi Asimetris dan Pasangan Kunci
  3. Hashing dan Integritas Data
  4. Pertukaran Kunci dan Enkripsi Hibrida
← Kembali ke Cloud & IT Cert Prep