+62 896 6423 0232 | info@idmetafora.com
Software ERP Indonesia IDMETAFORA


Memahami HMAC dan Bagaimana Cara Kerjanya

13 May, 2023   |   Gilang

Memahami HMAC dan Bagaimana Cara Kerjanya

Pengertian HMAC

HMAC atau Hash based Message Authentication Code adalah message authentication code (MAC) yang diperoleh dengan menjalankan fungsi hash kriptografi (seperti MD5, SHA1, dan SHA256) pada data (untuk diautentikasi) dan kunci sandi bersama. 

Seperti MAC lainnya, ini digunakan untuk otentikasi dan integritas data. Verifikasi integritas data diperlukan untuk pihak-pihak yang terlibat dalam komunikasi. Protokol transfer yang menggunakan HMAC yaitu HTTPS, SFTP, FTPS, dan lainnya. Fungsi hash kriptografi dapat berupa MD-5, SHA-1, atau SHA-256. Tanda tangan digital hampir mirip dengan HMAC karena keduanya menggunakan fungsi hash dan kunci bersama. Perbedaannya terletak pada kuncinya yaitu HMAC menggunakan kunci simetris (salinan yang sama) sedangkan tanda tangan menggunakan asimetris (dua kunci berbeda).
 

Apa Itu Hash?

Sebelum lanjut membahas HMAC, penting untuk memahami fungsi hash terlebih dahulu. Hash adalah algoritma yang digunakan untuk memodifikasi informasi. Data yang dimasukkan kemudian diubah menjadi angka, huruf, atau karakter lain dalam karakter yang disandikan tanpa mengubah ukurannya. Anda tidak dapat lagi memulihkan data terenkripsi melalui hash.

Ada beberapa jenis hash, yaitu:

1.    MD5
Message Digest 5 atau MD5 adalah fungsi hash yang dikembangkan untuk menggantikan MD4, pengembangnya adalah seorang profesor MIT bernama Ronald Rivest. MD5 sendiri digunakan dalam aplikasi keamanan, salah satu contohnya adalah RFC 1321.

2.    SHA-1
Jenis hash selanjutnya adalah SHA-1. SHA adalah singkatan dari Secure Hash Algorithm, SHA-1 bekerja dengan cara mengambil input untuk menghasilkan nilai hash sebesar 20 bit. SHA-1 dirancang oleh Badan Keamanan Nasional AS, NSA, yang memiliki 40-digit heksadesimal. Peran SHA-1 adalah untuk melindungi kerahasiaan data atau pesan yang mendasarinya yang banyak digunakan, fungsi hash ini terus dikembangkan dan dibuat penerus SHA-2 dan SHA-3.

Meski telah memiliki penerus, SHA-1 tetap digunakan. Penggunaan yang paling umum adalah untuk menjaga keamanan saat menggunakan password saat mengakses sebuah website. SHA-1 akan cocok dengan kata sandi. Jika demikian, pengguna akan diberikan akses login.

3.    SHA-2 dan SHA-3
SHA-2 dan SHA-3 adalah penerus dari SHA-1. SHA generasi baru ini lebih dioptimalkan daripada generasi pertama. SHA-2 pertama kali dirilis dan diperkenalkan ke publik pada tahun 2001. SHA-2 memiliki enam fungsi dengan ukuran pesan yang berbeda. Setiap fitur ini mencakup SHA-512/256, SHA-512/224, SHA-512, SHA-384, SHA-256, dan SHA-224. SHA-3 generasi terbaru diperkenalkan pada tahun 2015. Pengembangan kali ini adalah NIST. Namun, SHA-3 tidak dikembangkan untuk menggantikan peran SHA-2. Persis SHA-3 merupakan alternatif dari SHA-1 atau MD5.

4.    RIPEMD-160
RIPEMD adalah singkatan dari Race Integrity Primitive Evaluation Message Digest, jenis fungsi hash ini merupakan hasil pengembangan dari MD4. Kinerja RIPEMD-160 lebih cepat dan bertenaga karena telah mengalami pengembangan yang optimal. 
 

Tujuan HMAC

Berikut ini adalah tujuan dari HMAC.

1.    Dapat menggunakan tanpa perubahan fungsi hash yang tersedia. Secara khusus, fungsi hash yang diterapkan dengan baik dalam perangkat lunak dan yang kodenya tersedia secara bebas dan luas.

2.    Dapat mempertahankan kinerja asli dari fungsi hash tanpa mengalami degradasi yang signifikan.

3.    Dapat menggunakan dan mengelola kunci dengan cara yang sederhana.

4.    Dapat memiliki analisis kriptografi yang dipahami dengan baik mengenai daya tahan struktur otentikasi berdasarkan asumsi yang masuk akal pada fungsi hash dasar.

5.    Dapat memungkinkan penggantian yang mudah dari fungsi hash dasar jika fungsi hash yang lebih cepat atau lebih aman ditemukan atau dibutuhkan.

6.    Tujuan utama dari kode autentikasi pesan yang dihash adalah agar tidak terlalu terpengaruh oleh tabrakan dan dianggap sebagai kekuatan kasar untuk mendapatkan kunci kriptografi rahasia.

7.    Kode otentikasi pesan hash mendukung pendekatan yang mudah untuk memeriksa apakah informasi telah dirusak dan keaslian pengguna.
 

Mengapa HMAC penting?

HMAC memiliki peran yang penting dalam data karena bisa melindungi data dan memastikannya tidak adanya gangguan. Selain itu, jika data mengalami gangguan dan ingin memastikan bahwa data dapat dengan mudah menemukan perubahan tersebut, proses HMAC akan memastikan bahwa data Anda tidak terbuka untuk serangan dan melindungi integritasnya.

Saat proses HMAC selesai, pesan menjadi hash permanen, artinya hanya dapat diakses dan dibuka kuncinya dengan kunci rahasia yang tepat. Proses ini adalah cara yang bermanfaat untuk menurunkan kemungkinan pelanggaran keamanan, termasuk modifikasi pesan, serangan replay (jenis serangan jaringan di mana penyerang menemukan dan secara curang menunda atau mengulangi transaksi data), dan serangan man in the middle (serangan siber yang dilakukan untuk mencuri informasi dan memata-matai korban).
 

Manfaat dari HMAC

Manfaat utama lainnya menggunakan HMAC selama pengembangan aplikasi Anda meliputi:

1.    Komunikasi yang Aman
Penggunaan HMAC untuk melakukan verifikasi keaslian pesan dapat memberi kepercayaan diri untuk mengetahui bahwa aplikasi dan layanan untuk berbagi data dengan aman. Selain itu, pendekatan ini juga dapat secara signifikan menurunkan kemungkinan penyadapan data sensitif.

2.    Meningkatkan Kepatuhan
Dengan tetap mematuhi standar (misalnya GDPR atau General Data Protection Regulation), menggunakan algoritme kriptografi dapat membantu tetap mematuhi peraturan ini dan memastikan aplikasi hanya berinteraksi dengan layanan yang terpercaya.

3.    Integrasi yang Mudah
Sebagai algoritme yang banyak digunakan, HMAC didukung oleh berbagai bahasa pemrograman dan dapat dengan mudah diintegrasikan dengan alur kerja yang ada.
 

Cara Kerja HMAC

HMAC merupakan kode autentikasi berbasis pesan yang memanfaatkan fungsi hash untuk dikombinasikan dengan kunci kriptografi. HMAC menyediakan server dan klien dengan kunci privat khusus untuk server dan klien. HMAC dikenal sebagai algoritma kunci simetris menggunakan kunci rahasia yang sama untuk membuat dan memverifikasi nilai HMAC.

Terdapat tiga elemen HMAC, yaitu:

1.    Message
Message adalah data yang diautentikasi atau diverifikasi untuk memastikannya disimpan dan dibagikan dengan aman.

2.    Secret Keys
Secret keys merupakan nilai khusus yang hanya diketahui oleh pihak yang berwenang untuk menggunakannya dan digunakan untuk membuat nilai HMAC.

3.    Cryptographic Hash Function
Proses hashing melibatkan pengubahan data masukan berupa pesan dan kunci menjadi nilai keluaran baru (nilai HMAC). Pentingnya proses ini adalah menjaga integritas pesan karena nilai HMAC tidak dapat dibalik untuk mendapatkan akses ke pesan atau kunci asli.

Dalam transaksi perpesanan antara klien dan server yang melibatkan HMAC, klien akan membuat HMAC atau hash unik dengan melakukan hashing pada data permintaan dengan kunci privatnya dan mengirimkannya sebagai bagian dari permintaan. Server menerima permintaan dan menghasilkan hash unik sendiri. Itu kemudian membandingkan dua HMAC, jika sama klien akan dipercaya dan dianggap sah dan permintaan dijalankan. Proses ini sering disebut jabat tangan rahasia.
 

Kapan Harus Menggunakan HMAC?

HMAC umumnya digunakan dalam situasi penting untuk memastikan keaslian dan integritas pesan, seperti saat mentransmisikan data sensitif melalui jaringan yang tidak aman atau saat menyimpan hash kata sandi dalam database. Beberapa contoh spesifik saat menggunakan HMAC termasuk:

1.    Otentikasi Permintaan HTTP 
HMAC dapat digunakan untuk mengautentikasi permintaan HTTP yang dikirim antara klien dan server. Ini dapat membantu mencegah serangan man in the middle dan jenis gangguan lainnya.

2.    Menghasilkan Token yang Aman 
HMAC dapat digunakan untuk menghasilkan token unik untuk manajemen sesi atau tujuan lain. Token dapat diverifikasi dengan kunci rahasia yang sama untuk memastikan jika token tersebut tidak terganggu atau dipalsukan.

3.    Menyimpan Hash Kata Sandi 
HMAC dapat digunakan untuk menghasilkan hash yang aman untuk menyimpan kata sandi dalam database. Hash dapat diverifikasi dengan kunci rahasia yang sama saat pengguna mencoba masuk dengan tujuan untuk memastikan kata sandi yang dimasukkan benar.

4.    Otentikasi Transmisi Data
HMAC dapat digunakan untuk mengautentikasi transmisi data dalam protokol seperti SSL (Socket Secure Layer) dan SSH (Secure Shell) untuk memastikan bahwa data tidak dirusak selama transmisi.
 

Keuntungan HMAC

Berikut ini adalah keuntungan dari HMAC.

1.    HMAC dapat mengamankan data satu per satu.

2.    HMAC memiliki sistem berkinerja tinggi yang baik. Hal itu karena fungsi hash yang digunakan cepat, baik dari segi perhitungan maupun verifikasi.

3.    HMAC menggunakan hashing dua kali sehingga bagus jika terdapat serangan kriptanalisis (membongkar keamanan algoritma kriptografi yang digunakan untuk usaha mengambil data yang memiliki kata sandi tanpa mengetahui atau menggunakan kunci).
 

Kerugian HMAC

Disamping keuntungannya HMAC juga memiliki kekurangan. Berikut ini adalah kerugian dari HMAC.

1.    Karena HMAC menggunakan kunci bersama, Jika ada kompromi pada kunci pengirim atau penerima, itu membuat pekerjaan membuat pesan tidak sah menjadi lebih mudah bagi penyerang.

2.    Ada juga kebutuhan untuk penyegaran kunci secara berkala, yang menambah kerugiannya.
 

Penerapan HMAC

Penggunaan HMAC untuk individu atau pengembang web, memerlukan tiga hal penting dan Anda memerlukan kesepakatan tentang item tersebut dengan klien, jadi semua menggunakan alat yang sama pada waktu yang sama. Hanya server Anda yang harus mengetahui ketiga item untuk semua pengguna. Data itu harus sangat dilindungi. Siapa pun yang mengetahui kunci rahasia untuk anggota dapat mengambil alih server Anda atau mengirimkan data palsu.

Setiap situs web dan lingkungan pengkodean berbeda, tetapi akan sangat membantu untuk menelusuri contoh-contohnya. Misalnya jika ingin menggunakan HMAC pada lalu lintas yang masuk ke situs web Anda melalui iklan dinamis dari Google, maka:

Buat token di Ad Manager. Anda akan menentukan rincian tentang kunjungan dan waktunya. Kemudian menggunakan kunci autentikasi Google untuk membuat kunci rahasia. Kemudian menempatkan token baru Anda di dalam header permintaan otorisasi atau dapat meneruskannya sebagai string kueri atau parameter data formulir. Google membuat proses ini cepat dan mudah. Pengembang dapat mengakses tutorial sederhana dan menyalin kode dalam hitungan menit.

Perhatikan bahwa Anda tidak meminta pengunjung Google Ads untuk mengingat kode atau mendekode apa pun. Server pengguna memahami persyaratan pengkodean dalam situs web dan semua pengaturan serta terjemahan token tidak terlihat oleh pengguna. Namun, Anda harus sering mengujinya sebelum menerapkannya. Jika menemukan kesalahan pengkodean, Anda dapat memblokir orang-orang untuk mengakses situs Anda karena akan terlihat seolah-olah mereka adalah pelaku penipuan. 
 

Kesimpulan

HMAC atau Hash based Message Authentication Code adalah message authentication code (MAC) yang diperoleh dengan menjalankan fungsi hash kriptografi (seperti MD5, SHA1, dan SHA256) pada data dan kunci sandi bersama. HMAC memiliki peran yang penting dalam data karena bisa melindungi data dan memastikannya tidak adanya gangguan.





 

Liputan Software ERP IDMETAFORA Indonesia!

Jika anda merasa artikel ini bermanfaat, bagikan ke pengikut anda melalui tombol dibawah ini:



Software ERP Indonesia

Artikel rekomendasi untuk Anda