SlideShare une entreprise Scribd logo
1  sur  9
Télécharger pour lire hors ligne
“Hollywood	
  style	
  cracking”	
  pada	
  Block	
  Cipher	
  mode	
  
CBC:	
  Analisis	
  and	
  Pencegahan	
  
	
  
Rizki	
  Wicaksono	
  
ilmuHacking.com,	
  email:	
  rizki@ilmuHacking.com	
  	
  
	
  
	
  
Abstrak	
   -­‐	
   Algoritma	
   enkripsi	
   standar	
   seperti	
   AES	
   sampai	
   sekarang	
   dikenal	
  
sebagai	
   algoritma	
   enkripsi	
   yang	
   kuat	
   dan	
   sangat	
   direkomendasikan	
   sebagai	
  
algoritma	
   yang	
   aman.	
   Namun	
   apakah	
   hanya	
   dengan	
   menggunakan	
   algoritma	
  
kuat	
  seperti	
  AES	
  menjamin	
  data	
  akan	
  aman	
  ?	
  Jawabnya	
  adalah	
  tidak.	
  Algoritma	
  
yang	
   kuat	
   hanya	
   satu	
   bagian	
   kecil	
   saja	
   dari	
   sistem	
   kriptografi	
   yang	
   utuh,	
  
kekuatan	
   algoritma	
   tidak	
   akan	
   berarti	
   apa-­‐apa	
   tanpa	
   didukung	
   dengan	
  
implementasi	
  algoritma	
  yang	
  aman.	
  
	
  
Paper	
   ini	
   mencoba	
   menganalisa	
   serangan	
   praktis	
   terhadap	
   algoritma	
   enkripsi	
  
block	
  cipher	
  dalam	
  mode	
  CBC.	
  Serangan	
  ini	
  menyerang	
  semua	
  algoritma	
  block	
  
cipher	
  dalam	
  mode	
  operasi	
  CBC	
  termasuk	
  algoritma	
  standar	
  AES.	
  Tidak	
  hanya	
  
mendekripsi	
   pesan	
   rahasia,	
   dalam	
   kondisi	
   tertentu	
   serangan	
   ini	
   juga	
   bisa	
  
diaplikasikan	
  untuk	
  mengenkripsi	
  pesan	
  palsu.	
  Kemampuan	
  untuk	
  mendekripsi	
  
sekaligus	
   mengenkripsi	
   pesan	
   tanpa	
   mengetahui	
   kunci	
   membuat	
   serangan	
   ini	
  
sangat	
  berbahaya.	
  
	
  
1.	
  PENDAHULUAN	
  
	
  
Algoritma	
  enkripsi	
  block	
  cipher	
  sebenarnya	
  hanya	
  dirancang	
  untuk	
  memproses	
  
satu	
  blok	
  plaintext	
  atau	
  blok	
  ciphretext	
  saja.	
  Sebagai	
  contoh,	
  algoritma	
  enkripsi	
  
AES	
   hanya	
   dirancang	
   untuk	
   mengubah	
   plaintext	
   berukuran	
   128	
   bit	
   menjadi	
  
ciphertext	
  berukuran	
  128	
  bit	
  juga.	
  
	
  
	
  
Gambar	
  1:	
  Block	
  cipher	
  
	
  
Enkripsi	
   dan	
   dekripsi	
   dapat	
   dilakukan	
   secara	
   langsung	
   bila	
   pesan	
   berukuran	
  
tepat	
   satu	
   blok.	
   Namun	
   bila	
   ciphertext/plaintextnya	
   berukuran	
   lebih	
   dari	
   satu	
  
blok,	
   tentu	
   harus	
   ada	
   cara	
   untuk	
   memproses	
   data	
   tersebut	
   agar	
   bisa	
   diterima	
  
oleh	
   algoritma	
   block	
   cipher,	
   prosedur	
   ini	
   disebut	
   mode	
   operasi.	
   Dalam	
   mode	
  
operasi	
   diatur	
   bagaimana	
   data	
   dipecah	
   menjadi	
   blok,	
   bagaimana	
   hubungan	
  
antara	
  satu	
  blok	
  dengan	
  blok	
  lainnya,	
  blok	
  manakah	
  yang	
  harus	
  dienkrip/dekrip	
  
duluan	
  dan	
  sebagainya.	
  
	
  
1.1	
  MODE	
  OPERASI	
  CBC	
  
	
  
Dalam	
   mode	
   operasi	
   CBC	
   (cipher	
   block	
   chaining),	
   suatu	
   blok	
   dengan	
   blok	
  
berikutnya	
   saling	
   terkait.	
   Setiap	
   blok	
   plaintext	
   diXOR	
   dengan	
   ciphertext	
   hasil	
  
enkripsi	
   blok	
   plaintext	
   sebelumnya	
   baru	
   kemudian	
   hasil	
   operasi	
   XOR	
   ini	
  
dienkrip	
   untuk	
   menghasilkan	
   blok	
   ciphertext.	
   Begitu	
   pula	
   sebaliknya	
   ketika	
  
dekripsi.	
  Dekripsi	
  yang	
  dilakukan	
  terhadap	
  suatu	
  blok	
  ciphertext	
  tidak	
  langsung	
  
menghasilkan	
  blok	
  plaintext,	
  hasil	
  dekripsi	
  tersebut	
  harus	
  di-­‐XOR	
  dulu	
  dengan	
  
blok	
  ciphertext	
  sebelumnya	
  untuk	
  menghasilkan	
  blok	
  plaintext.	
  	
  
	
  
	
  
Gambar	
  2:	
  CBC	
  mode	
  
Khusus	
   untuk	
   blok	
   pertama,	
   diperlukan	
   suatu	
   data	
   yang	
   berfungsi	
   sebagai	
   C0,	
  
data	
   ini	
   disebut	
   dengan	
   IV	
   (initialization	
   vector).	
   	
   Jadi	
   formula	
   matematika	
  
enkripsi	
  dan	
  dekripsi	
  block	
  cipher	
  dalam	
  mode	
  operasi	
  CBC	
  adalah:	
  
	
  
Ci	
  =	
  Ek(Pi	
  ⊕	
  Ci-­‐1)	
  	
  
Pi	
  =	
  Dk(Ci)	
  ⊕	
  Ci-­‐1	
  	
  
C0	
  =	
  IV	
  
	
  
1.2	
  PADDING	
  
	
  
Dalam	
  block	
  cipher	
  plaintext	
  dan	
  ciphertext	
  harus	
  dipotong-­‐potong	
  dan	
  disusun	
  
dalam	
   blok-­‐blok	
   data	
   berukuran	
   sama.	
   Sebagai	
   contoh,	
   DES	
   dan	
   Blowfist	
  
menggunakan	
  blok	
  berukuran	
  64	
  bit,	
  AES	
  menggunakan	
  blok	
  berukuran	
  128	
  bit.	
  
Karena	
   data	
   harus	
   masuk	
   dalam	
   blok	
   berukuran	
   sama,	
   maka	
   dibutuhkan	
  
padding	
   byte	
   sebagai	
   pengganjal	
   untuk	
   menggenapi	
   data	
   agar	
   pas	
   dengan	
  
ukuran	
  blok.	
  
	
  
Aturan	
   mengenai	
   padding	
   untuk	
   mode	
   CBC	
   dijelaskan	
   dalam	
   standar	
   PKCS#7	
  
dan	
   PKCS#5	
   (Public	
   Key	
   Cryptographic	
   Standard).	
   Padding	
   dilakukan	
   dengan	
  
mengisi	
   byte	
   bernilai	
   N	
   bila	
   dibutuhkan	
   padding	
   sebanyak	
   N	
   byte.	
   Sebagai	
  
contoh,	
  bila	
  dibutuhkan	
  padding	
  3	
  byte,	
  maka	
  paddingnya	
  berisi	
  ’03	
  03	
  03′,	
  bila	
  
dibutuhkan	
  padding	
  5	
  byte,	
  maka	
  paddingnya	
  berisi	
  ’05	
  05	
  05	
  05	
  05′.	
  
 
Gambar	
  3	
  dan	
  4	
  menunjukkan	
  beberapa	
  contoh	
  padding	
  yang	
  valid	
  dan	
  padding	
  
yang	
  tidak	
  valid.	
  
	
  
	
  
Gambar	
  3:	
  Contoh	
  valid	
  padding	
  
	
  
	
  
Gambar	
  4:	
  Contoh	
  invalid	
  padding	
  
2.	
  PADDING	
  ORACLE	
  ATTACK	
  
	
  
Padding	
  oracle	
  attack	
  pertama	
  kali	
  dipublikasikan	
  pada	
  tahun	
  2002	
  oleh	
  Sergey	
  
Vaudenay[1].	
   Kemudian,	
   pada	
   tahun	
   2010	
   Thai	
   Duong	
   and	
   Juliano	
   Rizzo[2]	
  	
  
mempublikasikan	
   paper	
   yang	
   menjelaskan	
   padding	
   oracle	
   attack	
   terhadap	
  
banyak	
  framework	
  aplikasi	
  web	
  yang	
  populer	
  seperti	
  JavaServer	
  Faces,	
  Ruby	
  on	
  
Rails	
  dan	
  ASP.NET.	
  
	
  
Dalam	
   padding	
   oracle	
   attack,	
   yang	
   dimaksud	
   dengan	
   Oracle	
   disini	
   tidak	
   ada	
  
hubungannya	
   sama	
   sekali	
   dengan	
   SQL	
   dan	
   database	
   Oracle.	
   Oracle	
   yang	
  
dimaksud	
  adalah	
  validation	
  oracle,	
  dimana	
  client	
  bisa	
  bertanya	
  dan	
  dijawab	
  oleh	
  
oracle	
  dengan	
  jawaban	
  boolean,	
  ya	
  atau	
  tidak,	
  benar	
  atau	
  salah.	
  	
  
	
  
Apapun	
  dan	
  bagaimanapun	
  cara	
  oracle	
  merespons	
  bila	
  client	
  bisa	
  membedakan	
  
mana	
   respons	
   yang	
   berarti	
   ya,	
   dan	
   mana	
   respons	
   yang	
   berarti	
   tidak,	
   artinya	
  
server	
  itu	
  telah	
  menjadi	
  ‘the	
  oracle’.	
  
	
  
Gambar	
   5	
   menunjukkan	
   cara	
   kerja	
   padding	
   oracle	
   attack.	
   Seorang	
   attacker	
  
mengirimkan	
   2	
   blok	
   ciphertext	
   ke	
   oracle	
   kemudian	
   mengamati	
   responsnya,	
  
apakah	
  2	
  blok	
  ciphertext	
  tersebut	
  ketika	
  didekrip	
  memiliki	
  byte	
  padding	
  yang	
  
valid	
  atau	
  tidak.	
  
	
  
Blok	
  ciphertext	
  yang	
  akan	
  didekrip	
  adalah	
  blok	
  ciphertext	
  yang	
  kedua.	
  Blok	
  ini	
  
tidak	
  perah	
  berubah	
  dalam	
  setiap	
  request.	
  Blok	
  ciphertext	
  pertama	
  selalu	
  diubah	
  
setiap	
  dikirim	
  ke	
  oracle	
  untuk	
  menemukan	
  byte	
  yang	
  membuat	
  padding	
  menjadi	
  
valid.	
   Jadi	
   attacker	
   mengirimkan	
   banyak	
   request	
   berisi	
   2	
   blok	
   ciphertext	
  
tersebut	
   sampai	
   menemukan	
   blok	
   ciphertext	
   pertama	
   yang	
   mendapatkan	
  
respons	
  padding	
  valid.	
  
	
  
	
  
Gambar	
  5:	
  Padding	
  oracle	
  attack	
  
Walaupun	
  oracle	
  tidak	
  pernah	
  memberitahukan	
  hasil	
  enkripsinya,	
  informasi	
  dari	
  
oracle	
  bahwa	
  padding	
  valid	
  atau	
  invalid	
  saja	
  sudah	
  cukup	
  menjadi	
  petunjuk	
  bagi	
  
attacker	
  untuk	
  menebak	
  hasil	
  dekripsinya.	
  
	
  
2.1	
  CONTOH	
  KASUS	
  
	
  
Bagaimana	
  padding	
  oracle	
  attack	
  ini	
  bekerja	
  akan	
  saya	
  jelaskan	
  dalam	
  sebuah	
  
contoh	
   kasus.	
   Attacker	
   telah	
   berhasil	
   mendapatkan	
   2	
   blok	
   ciphertext	
   berikut:	
  
2D7850F447A90B87	
   dan	
   123B36A038A8682F.	
   Ciphertext	
   tersebut	
   bisa	
  
dikirimkan	
  ke	
  suatu	
  aplikasi	
  web	
  yang	
  bertindak	
  sebagai	
  Oracle.	
  Bila	
  ciphertext	
  
tersebut	
  ketika	
  didekrip	
   oracle	
  menghasilkan	
  padding	
  yang	
  valid,	
  maka	
  oracle	
  
akan	
   mengirimkan	
   response	
   “200	
   OK”,	
   sebaliknya	
   akan	
   mengirimkan	
   respons	
  
“500	
  Internal	
  Server	
  Error”.	
  
	
  
	
  2.2	
  MENDEKRIP	
  BYTE	
  TERAKHIR	
  
	
  
Seorang	
   attacker	
   bisa	
   memanfaatkan	
   oracle	
   untuk	
   mendekrip	
   ciphertext	
  
tersebut.	
  Dalam	
  contoh	
  ini	
  attacker	
  mencoba	
  mendekrip	
  blok	
  C2	
  terlebih	
  dahulu	
  
(mencari	
   P2).	
   Cara	
   melakukan	
   serangan	
   padding	
   oracle	
   attack	
   adalah	
   dengan	
  
mengirimkan	
  banyak	
  ciphertext	
  ke	
  oracle	
  sampai	
  mendapatkan	
  respons	
  padding	
  
valid	
  (brute	
  force).	
  
	
  
Dekripsi	
  dilakukan	
  dimulai	
  dari	
  blok	
  terakhir.	
  Dua	
  blok	
  yang	
  dikirim	
  ke	
  oracle	
  
adalah:	
  
• Blok	
   pertama	
   C1	
   adalah	
   blok	
   ciphertext	
   yang	
   dipakai	
   untuk	
   mencari	
  
padding	
  yang	
  valid.	
  Dalam	
  mendekrip	
  byte	
  terakhir,	
  blok	
  ciphertext	
  yang	
  
dikirim	
   adalah	
   00-­‐00-­‐00-­‐00-­‐00-­‐00-­‐00-­‐XX	
   dengan	
   XX	
   nanti	
   bernilai	
   dari	
  
00	
  sampai	
  FF.	
  
• Blok	
   kedua	
   C2	
   adalah	
   blok	
   ciphertext	
   yang	
   ingin	
   didekrip	
  
123B36A038A8682F	
  
	
  
Gambar	
   6	
   menunjukkan	
   proses	
   dekripsi	
   dua	
   blok	
   ciphertext	
   yang	
   dikirim	
  
attacker	
  dalam	
  mode	
  CBC.	
  Attacker	
  ingin	
  mengetahui	
  byte	
  terakhir	
  hasil	
  dekripsi	
  
C2	
  (warna	
  hijau	
  dalam	
  gambar	
  6).	
  Kondisi	
  yang	
  diinginkan	
  attacker	
  adalah	
  ketika	
  
byte	
   terakhir	
   P2	
   (warna	
   kuning	
   dalam	
   gambar	
   6)	
   bernilai	
   01.	
   	
   Karena	
   byte	
  
terakhir	
   P2	
  (kuning)	
   adalah	
   hasil	
   XOR	
   antara	
   byte	
   terakhir	
   C1	
   (biru)	
   dan	
   hasil	
  
dekrip	
  C2	
  (hijau)	
  maka	
  bisa	
  dituliskan	
  A	
  XOR	
  B	
  =	
  01.	
  	
  
	
  
	
  
Gambar	
  6:	
  Dekripsi	
  byte	
  terakhir	
  
A	
  dan	
  B	
  adalah	
  variabel	
  yang	
  tidak	
  diketahui.	
  Kita	
  butuh	
  bantuan	
  oracle	
  untuk	
  
menyelesaikan	
   persamaan	
   ini.	
   Kita	
   bisa	
   menginterogasi	
   oracle	
   menanyakan	
  
pertanyaan:	
  
• Apakah	
  A	
  XOR	
  00	
  =	
  01	
  ?	
  
• Apakah	
  A	
  XOR	
  01	
  =	
  01	
  ?	
  
• Apakah	
  A	
  XOR	
  02	
  =	
  01	
  ?	
  
• Apakah	
  A	
  XOR	
  03	
  =	
  01	
  ?	
  
• Dan	
  seterusnya	
  sampai	
  255	
  
	
  
Bila	
  oracle	
  menjawab	
  dengan	
  valid	
  padding,	
  artinya	
  attacker	
  mendapat	
  jawaban	
  
Ya,	
  sebaliknya	
  berarti	
  attacker	
  mendapat	
  jawaban	
  Tidak.	
  
	
  
Gambar	
   7	
   menunjukkan	
   bagaimana	
   cara	
   attacker	
   mengirimkan	
   ciphertext	
   ke	
  
oracle	
   dan	
   menerima	
   respons	
   dari	
   oracle	
   sampai	
   suatu	
   saat	
   dia	
   akan	
  
mendapatkan	
  jawaban	
  valid	
  padding.	
  
	
  
 
Figure	
  7:	
  Brute	
  force	
  byte	
  terakhir	
  
Ketika	
   attacker	
   mendapatkan	
   jawaban	
   valid	
   padding	
   dari	
   oracle,	
   artinya	
   dia	
  
sudah	
  mengetahui	
  byte	
  terakhir	
  C1	
  yang	
  membuat	
  byte	
  terakhir	
  P2	
  bernilai	
  01.	
  
Dalam	
   contoh	
   ini	
   setelah	
   mencoba	
   dari	
   00,	
   01,	
   02	
   dan	
   seterusnya	
   sampai	
  
akhirnya	
  diketahui	
  bahwa	
  bila	
  byte	
  terakhir	
  C1	
  bernilai	
  87,	
  maka	
  respons	
  yang	
  
didapat	
   adalah	
   valid	
   padding.	
   Karena	
   respons	
   yang	
   diterima	
   adalah	
   valid	
  
padding,	
  	
  maka	
  attacker	
  yakin	
  bahwa	
  byte	
  terakhir	
  P2	
  bernilai	
  01.	
  
	
  
	
  
Figure	
  8:	
  Byte	
  terakhir	
  ditemukan	
  
Gambar	
  8	
  menunjukkan	
  situasi	
  yang	
  terjadi	
  ketika	
  byte	
  terakhir	
  C1	
  bernilai	
  87	
  
dan	
  byte	
  terakhir	
  P2	
  bernilai	
  01.	
  Dalam	
  situasi	
  ini	
  hasil	
  dekrip	
  C2	
  (warna	
  hijau)	
  
bisa	
  diketahui	
  dengan	
  mudah	
  yaitu	
  87	
  XOR	
  01	
  =	
  86.	
  Dengan	
  teknik	
  sederhana	
  
ini,	
  dalam	
  maksimal	
  256	
  kali	
  percobaan,	
  seorang	
  attacker	
  bisa	
  mengetahui	
  hasil	
  
dekrip	
  C2.	
  
	
  
Setelah	
   mengetahui	
   hasil	
   dekrip	
   C2	
   seorang	
   attacker	
   bisa	
   mendapatkan	
   P2	
  
dengan	
  mengXOR	
  dengan	
  byte	
  terakhir	
  ciphertext	
  sebelumnya.	
  
	
  
2.3	
  MENDEKRIP	
  BYTE	
  KE-­‐7	
  
	
  
Setelah	
   berhasil	
   mendekrip	
   byte	
   terakhir,	
   attacker	
   bisa	
   melanjutkan	
   untuk	
  
mendapatkan	
   byte	
   ke-­‐7.	
   Caranya	
   mirip	
   dengan	
   sebelumnya,	
   namun	
   kali	
   ini	
  
attacker	
   harus	
   mencari	
   byte	
   ke-­‐7	
   C1	
   yang	
   membuat	
   byte	
   ke-­‐7	
   P2	
   bernilai	
   02.	
  
Attacker	
  juga	
  membuat	
  byte	
  terakhir	
  C1	
  bernilai	
  84	
  agar	
  byte	
  terakhir	
  P2	
  bernilai	
  
02.	
  
	
  
Gambar	
  7	
  menunjukkan	
  situasi	
  ketika	
  attacker	
  mencoba	
  mendekrip	
  byte	
  ke-­‐7.	
  
	
  
	
  
Figure	
  9:	
  Mendekrip	
  byte	
  ke-­‐7	
  
	
  
Gambar	
   10	
   menunjukkan	
   proses	
   ketika	
   attacker	
   melakukan	
   brute	
   force	
   untuk	
  
mencari	
   byte	
   ke-­‐7.	
   Setelah	
   mencoba	
   beberapa	
   kali	
   akhir	
   attacker	
   berhasil	
  
mendapatkan	
  respons	
  padding	
  valid	
  ketika	
  byte	
  ke-­‐7	
  bernilai	
  0A.	
  	
  
	
  
	
  
Gambar	
  10:	
  Percobaan	
  mencari	
  byte	
  ke-­‐7	
  
Setelah	
   mengetahui	
   bahwa	
   ketika	
   2	
   byte	
   terakhir	
   C1	
   bernilai	
   0A-­‐84	
  
menghasilkan	
   2	
   byte	
   terakhir	
   P2	
   02-­‐02,	
   maka	
   otomatis	
   attacker	
   juga	
   langsung	
  
bisa	
   menghitung	
   byte	
   ke-­‐7	
   hasil	
   dekrip	
   C2	
  yaitu	
   08.	
   Gambar	
   10	
   menunjukkan	
  
situasi	
  ketika	
  attacker	
  berhasil	
  mendekripsi	
  2	
  byte	
  terakhir	
  C2.	
  	
  
	
  
 
Figure	
  11:	
  Dekripsi	
  byte	
  ke-­‐7	
  
Sampai	
  tahap	
  ini	
  attacker	
  sudah	
  berhasil	
  mengetahui	
  2	
  byte	
  terakhir	
  hasil	
  dekrip	
  
C2	
  .	
  	
  
	
  
Proses	
   ini	
   bisa	
   dilanjutkan	
   terus	
   untuk	
   mencari	
   byte	
   berikutnya	
   dengan	
   cara	
  
yang	
  sama	
  dari	
  byte	
  terakhir	
  sampai	
  byte	
  pertama:	
  
• Mencari	
   byte	
   ke-­‐6	
   dilakukan	
   dengan	
   mencari	
   3	
   byte	
   terakhir	
   C1	
   yang	
  
membuat	
  3	
  byte	
  terakhir	
  P2	
  bernilai	
  03-­‐03-­‐03	
  
• Mencari	
   byte	
   ke-­‐5	
   dilakun	
   dengan	
   mencari	
   4	
   byte	
   terakhir	
   C1	
   yang	
  
membuat	
  4	
  byte	
  terakhir	
  P2	
  bernilai	
  04-­‐04-­‐04-­‐04.	
  
• Dan	
  seterusnya.	
  
	
  
3.	
  PENCEGAHAN	
  
	
  
Sebagai	
  algoritma	
  enkripsi,	
  AES	
  sampai	
  saat	
  ini	
  masih	
  dianggap	
  algoritma	
  yang	
  
aman.	
  Namun	
  ternyata	
  bila	
  tidak	
  diimplementasikan	
  dengan	
  baik	
  bisa	
  berakibat	
  
fatal.	
  Dalam	
  serangan	
  yang	
  dibahas	
  dalam	
  paper	
  ini	
  sebenarnya	
  bukan	
  algoritma	
  
enkripsinya	
   yang	
   bermasalah,	
   namun	
   implementasi	
   dalam	
   mode	
   CBC	
   yang	
  
bermasalah.	
  
	
  
Tadi	
   kita	
   sudah	
   melihat	
   bagaimana	
   mengubah	
   ciphertext	
   bisa	
   membuat	
   hasil	
  
dekripsinya	
  menjadi	
  berubah	
  juga.	
  Gambar	
  12	
  menunjukkan	
  ketika	
  byte	
  terakhir	
  
C1	
  diubah	
  dari	
  85	
  menjadi	
  87,	
  menghasilkan	
  pesan	
  yang	
  sama-­‐sama	
  valid	
  namun	
  
isinya	
  berbeda.	
  
	
  
Ketika	
  byte	
  terakhir	
  C1	
  bernilai	
  85,	
  hasil	
  dekripsinya	
  adalah	
  ‘ABCDEFGHIJKLM’,	
  
namun	
   ketika	
   byte	
   terakhir	
   C1	
   diubah	
   sedikit	
   menjadi	
   87	
   hasil	
   dekripsinya	
  
berubah	
   menjadi	
   ‘ABCDEFGHIJKLM’+03+03	
   (kini	
   03	
   dianggap	
   sebagai	
   data	
  
karena	
  paddingnya	
  adalah	
  01).	
  
	
  
 
Figure	
  12:	
  Malleability	
  
Bayangkan	
  bila	
  ada	
  attacker	
  yang	
  berperan	
  sebagai	
  man-­‐in-­‐the-­‐middle	
  mencegat	
  
suatu	
   ciphertext,	
   kemudian	
   mengubah	
   satu	
   byte	
   saja	
   dari	
   ciphertext	
   tersebut	
  
sebelum	
   meneruskan	
   ke	
   tujuan.	
   Setelah	
   tiba	
   di	
   tujuan,	
   ciphertext	
   yang	
   sudah	
  
diubah	
   tadi	
   ketika	
   didekrip	
   menghasilkan	
   pesan	
   yang	
   berbeda	
   dengan	
   yang	
  
dimaksud	
   dalam	
   pesan	
   aslinya.	
   Hal	
   ini	
   tentu	
   berbahaya	
   bila	
   isi	
   pesannya	
  
berubah	
  dari	
  “kirim	
  uang	
  1	
  juta	
  ke	
  rekening	
  123″	
  berubah	
  menjadi	
  “kirim	
  uang	
  1	
  
juta	
  ke	
  rekening	
  124″.	
  
	
  
Serangan	
   ini	
   bisa	
   terjadi	
   karena	
   server	
   melakukan	
   dekripsi	
   pada	
   semua	
  
ciphertext	
  yang	
  diterimanya	
  tanpa	
  peduli	
  apakah	
  ciphertext	
  tersebut	
  valid	
  atau	
  
tidak.	
   Bila	
   server	
   bersedia	
   mendekrip	
   semua	
   ciphertext	
   yang	
   masuk,	
   maka	
  
attacker	
   bisa	
   memanfaatkannya	
   untuk	
   mengirimkan	
   tampered	
   ciphertext	
   ke	
  
server	
  dan	
  mengamati	
  respons	
  hasil	
  dekripsinya.	
  
	
  
Serangan	
   padding	
   oracle	
   ini	
   bisa	
   dicegah	
   dengan	
   menempelkan	
   Message	
  
Authentication	
   Code	
   pada	
   ciphertext.	
   Server	
   hanya	
   boleh	
   melakukan	
   dekripsi	
  
pada	
   ciphertext	
   yang	
   authenticated,	
   artinya	
   ciphertext	
   yang	
   dijamin	
   integritas	
  
dan	
  otentisitasnya	
  dengan	
  MAC.	
  	
  
	
  
Dengan	
   adanya	
   MAC,	
   attacker	
   tidak	
   bisa	
   lagi	
   mengubah	
   ciphertext	
   dengan	
  
harapan	
  mengorek	
  informasi	
  dari	
  server	
  apakah	
  ciphertext	
  yang	
  dia	
  kirim	
  valid	
  
atau	
  tidak	
  paddingnya.	
  Server	
  boleh	
  mengirimkan	
  response	
  pada	
  client	
  apakah	
  
MAC	
   valid	
   atau	
   tidak	
   tanpa	
   ada	
   resiko	
   kebocoran	
   informasi	
   karena	
   tidak	
   ada	
  
operasi	
   dekripsi	
   yang	
   dilakukan	
   dan	
   MAC	
   tidak	
   ada	
   hubungan	
   sama	
   sekali	
  
dengan	
  plaintext.	
  
	
  
4.	
  REFERENSI	
  
	
  
[1]	
   S.	
   Vaudenay.	
   Security	
   Flaws	
   Induced	
   by	
   CBC	
   Padding	
   Applications	
   to	
   SSL,	
  
IPSEC,	
  WTLS…	
  -­‐	
  2002	
  
[2]	
  T.	
  Duong,	
  J.	
  Rizzo.	
  Practical	
  Padding	
  Oracle	
  Attacks	
  -­‐	
  2010	
  
	
  

Contenu connexe

Tendances

Laporan program chatting
Laporan program chattingLaporan program chatting
Laporan program chattingganteng8
 
Kriptografi - Serangan Terhadap Kriptografi
Kriptografi - Serangan Terhadap KriptografiKriptografi - Serangan Terhadap Kriptografi
Kriptografi - Serangan Terhadap KriptografiKuliahKita
 
Program chatting
Program chattingProgram chatting
Program chattingAisy Cuyy
 
Kriptografi - Kriptografi Kunci Publik
Kriptografi - Kriptografi Kunci PublikKriptografi - Kriptografi Kunci Publik
Kriptografi - Kriptografi Kunci PublikKuliahKita
 
Laporan program chatting1
Laporan program chatting1Laporan program chatting1
Laporan program chatting1ichsanbarokah
 
Artikel 10105755
Artikel 10105755Artikel 10105755
Artikel 10105755Satya607
 
Kriptografi modern
Kriptografi modernKriptografi modern
Kriptografi modernniizarch
 

Tendances (10)

Laporan program chatting
Laporan program chattingLaporan program chatting
Laporan program chatting
 
Kriptografi - Serangan Terhadap Kriptografi
Kriptografi - Serangan Terhadap KriptografiKriptografi - Serangan Terhadap Kriptografi
Kriptografi - Serangan Terhadap Kriptografi
 
Program chatting
Program chattingProgram chatting
Program chatting
 
Kriptografi - Kriptografi Kunci Publik
Kriptografi - Kriptografi Kunci PublikKriptografi - Kriptografi Kunci Publik
Kriptografi - Kriptografi Kunci Publik
 
Laporan program chatting1
Laporan program chatting1Laporan program chatting1
Laporan program chatting1
 
Enkripsi Data
Enkripsi DataEnkripsi Data
Enkripsi Data
 
kriptografi kunci publik
kriptografi kunci publikkriptografi kunci publik
kriptografi kunci publik
 
Artikel 10105755
Artikel 10105755Artikel 10105755
Artikel 10105755
 
Kriptografi modern
Kriptografi modernKriptografi modern
Kriptografi modern
 
2. CodeBlocks & C++
2. CodeBlocks & C++2. CodeBlocks & C++
2. CodeBlocks & C++
 

Similaire à “Hollywood style cracking” pada Block Cipher mode CBC: Analisis and Pencegahan

Prakt modul 9 sym kriptografi
Prakt modul 9 sym kriptografiPrakt modul 9 sym kriptografi
Prakt modul 9 sym kriptografiKeisha Khairani
 
Aplikasi rc 4
Aplikasi rc 4Aplikasi rc 4
Aplikasi rc 4cuzein
 
Modul Praktikum Sistem Keamanan Jaringan STMIK Bumigora Versi 1.0
Modul Praktikum Sistem Keamanan Jaringan STMIK Bumigora Versi 1.0Modul Praktikum Sistem Keamanan Jaringan STMIK Bumigora Versi 1.0
Modul Praktikum Sistem Keamanan Jaringan STMIK Bumigora Versi 1.0I Putu Hariyadi
 
Advanced Encryption Standard (AES) DownloadEdit
Advanced Encryption Standard (AES) DownloadEditAdvanced Encryption Standard (AES) DownloadEdit
Advanced Encryption Standard (AES) DownloadEditLusiana Diyan
 
Analisis Algoritma dan Kinerja pad a Counter dengan CBC-MAC (CCM) sebagai Fun...
Analisis Algoritma dan Kinerja pad a Counter dengan CBC-MAC (CCM) sebagai Fun...Analisis Algoritma dan Kinerja pad a Counter dengan CBC-MAC (CCM) sebagai Fun...
Analisis Algoritma dan Kinerja pad a Counter dengan CBC-MAC (CCM) sebagai Fun...Repository Ipb
 
Jurnal RC4,RC5,RC6
Jurnal RC4,RC5,RC6Jurnal RC4,RC5,RC6
Jurnal RC4,RC5,RC6cuzein
 
Advance entryption-standard _AES
Advance entryption-standard _AESAdvance entryption-standard _AES
Advance entryption-standard _AESAdly Klan
 
5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar KriptografiRoziq Bahtiar
 
20111221 algoritma kriptografimodern-part1-1-2
20111221 algoritma kriptografimodern-part1-1-220111221 algoritma kriptografimodern-part1-1-2
20111221 algoritma kriptografimodern-part1-1-2Sunyo Andriyanto
 
20111221 algoritma kriptografimodern-part1-1-2
20111221 algoritma kriptografimodern-part1-1-220111221 algoritma kriptografimodern-part1-1-2
20111221 algoritma kriptografimodern-part1-1-2UkiUngga
 
Protokol keamanan
Protokol keamananProtokol keamanan
Protokol keamananlikut101010
 
KRIPTOGRAFI MODERN SIMESTIS.docx
KRIPTOGRAFI MODERN SIMESTIS.docxKRIPTOGRAFI MODERN SIMESTIS.docx
KRIPTOGRAFI MODERN SIMESTIS.docxShafiraCut1
 
Kriptografi - Block Cipher dan CBC
Kriptografi - Block Cipher dan CBCKriptografi - Block Cipher dan CBC
Kriptografi - Block Cipher dan CBCKuliahKita
 
2110165028 konjar lj_1
2110165028 konjar lj_12110165028 konjar lj_1
2110165028 konjar lj_1Nanda Afif
 

Similaire à “Hollywood style cracking” pada Block Cipher mode CBC: Analisis and Pencegahan (20)

Prakt modul 9 sym kriptografi
Prakt modul 9 sym kriptografiPrakt modul 9 sym kriptografi
Prakt modul 9 sym kriptografi
 
Aplikasi rc 4
Aplikasi rc 4Aplikasi rc 4
Aplikasi rc 4
 
Kelompok 5
Kelompok 5Kelompok 5
Kelompok 5
 
Kelompok 5
Kelompok 5Kelompok 5
Kelompok 5
 
Modul Praktikum Sistem Keamanan Jaringan STMIK Bumigora Versi 1.0
Modul Praktikum Sistem Keamanan Jaringan STMIK Bumigora Versi 1.0Modul Praktikum Sistem Keamanan Jaringan STMIK Bumigora Versi 1.0
Modul Praktikum Sistem Keamanan Jaringan STMIK Bumigora Versi 1.0
 
Advanced Encryption Standard (AES) DownloadEdit
Advanced Encryption Standard (AES) DownloadEditAdvanced Encryption Standard (AES) DownloadEdit
Advanced Encryption Standard (AES) DownloadEdit
 
Analisis Algoritma dan Kinerja pad a Counter dengan CBC-MAC (CCM) sebagai Fun...
Analisis Algoritma dan Kinerja pad a Counter dengan CBC-MAC (CCM) sebagai Fun...Analisis Algoritma dan Kinerja pad a Counter dengan CBC-MAC (CCM) sebagai Fun...
Analisis Algoritma dan Kinerja pad a Counter dengan CBC-MAC (CCM) sebagai Fun...
 
Jurnal RC4,RC5,RC6
Jurnal RC4,RC5,RC6Jurnal RC4,RC5,RC6
Jurnal RC4,RC5,RC6
 
Advance entryption-standard _AES
Advance entryption-standard _AESAdvance entryption-standard _AES
Advance entryption-standard _AES
 
5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi5 Macam Metode Dasar Kriptografi
5 Macam Metode Dasar Kriptografi
 
Enkripsi 102
Enkripsi 102Enkripsi 102
Enkripsi 102
 
Blowfish epod
Blowfish epodBlowfish epod
Blowfish epod
 
20111221 algoritma kriptografimodern-part1-1-2
20111221 algoritma kriptografimodern-part1-1-220111221 algoritma kriptografimodern-part1-1-2
20111221 algoritma kriptografimodern-part1-1-2
 
20111221 algoritma kriptografimodern-part1-1-2
20111221 algoritma kriptografimodern-part1-1-220111221 algoritma kriptografimodern-part1-1-2
20111221 algoritma kriptografimodern-part1-1-2
 
Protokol keamanan
Protokol keamananProtokol keamanan
Protokol keamanan
 
KRIPTOGRAFI MODERN SIMESTIS.docx
KRIPTOGRAFI MODERN SIMESTIS.docxKRIPTOGRAFI MODERN SIMESTIS.docx
KRIPTOGRAFI MODERN SIMESTIS.docx
 
CRPTOGRAFY
CRPTOGRAFYCRPTOGRAFY
CRPTOGRAFY
 
Kriptografi - Block Cipher dan CBC
Kriptografi - Block Cipher dan CBCKriptografi - Block Cipher dan CBC
Kriptografi - Block Cipher dan CBC
 
2110165028 konjar lj_1
2110165028 konjar lj_12110165028 konjar lj_1
2110165028 konjar lj_1
 
2863344
28633442863344
2863344
 

Plus de idsecconf

idsecconf2023 - Mochammad Riyan Firmansyah - Takeover Cloud Managed Router vi...
idsecconf2023 - Mochammad Riyan Firmansyah - Takeover Cloud Managed Router vi...idsecconf2023 - Mochammad Riyan Firmansyah - Takeover Cloud Managed Router vi...
idsecconf2023 - Mochammad Riyan Firmansyah - Takeover Cloud Managed Router vi...idsecconf
 
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...idsecconf
 
idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...
idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...
idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...idsecconf
 
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdf
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdfidsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdf
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdfidsecconf
 
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...idsecconf
 
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...idsecconf
 
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...idsecconf
 
Ali - The Journey-Hack Electron App Desktop (MacOS).pdf
Ali - The Journey-Hack Electron App Desktop (MacOS).pdfAli - The Journey-Hack Electron App Desktop (MacOS).pdf
Ali - The Journey-Hack Electron App Desktop (MacOS).pdfidsecconf
 
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...idsecconf
 
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdf
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdfRama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdf
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdfidsecconf
 
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...idsecconf
 
Nosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdf
Nosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdfNosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdf
Nosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdfidsecconf
 
Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...
Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...
Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...idsecconf
 
Utian Ayuba - Profiling The Cloud Crime.pdf
Utian Ayuba - Profiling The Cloud Crime.pdfUtian Ayuba - Profiling The Cloud Crime.pdf
Utian Ayuba - Profiling The Cloud Crime.pdfidsecconf
 
Proactive cyber defence through adversary emulation for improving your securi...
Proactive cyber defence through adversary emulation for improving your securi...Proactive cyber defence through adversary emulation for improving your securi...
Proactive cyber defence through adversary emulation for improving your securi...idsecconf
 
Perkembangan infrastruktur kunci publik di indonesia - Andika Triwidada
Perkembangan infrastruktur kunci publik di indonesia - Andika TriwidadaPerkembangan infrastruktur kunci publik di indonesia - Andika Triwidada
Perkembangan infrastruktur kunci publik di indonesia - Andika Triwidadaidsecconf
 
Pentesting react native application for fun and profit - Abdullah
Pentesting react native application for fun and profit - AbdullahPentesting react native application for fun and profit - Abdullah
Pentesting react native application for fun and profit - Abdullahidsecconf
 
Hacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabella
Hacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabellaHacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabella
Hacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabellaidsecconf
 
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...idsecconf
 
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi DwiantoDevsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwiantoidsecconf
 

Plus de idsecconf (20)

idsecconf2023 - Mochammad Riyan Firmansyah - Takeover Cloud Managed Router vi...
idsecconf2023 - Mochammad Riyan Firmansyah - Takeover Cloud Managed Router vi...idsecconf2023 - Mochammad Riyan Firmansyah - Takeover Cloud Managed Router vi...
idsecconf2023 - Mochammad Riyan Firmansyah - Takeover Cloud Managed Router vi...
 
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...
idsecconf2023 - Neil Armstrong - Leveraging IaC for Stealthy Infrastructure A...
 
idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...
idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...
idsecconf2023 - Mangatas Tondang, Wahyu Nuryanto - Penerapan Model Detection ...
 
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdf
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdfidsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdf
idsecconf2023 - Rama Tri Nanda - Hacking Smart Doorbell.pdf
 
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...
idsecconf2023 - Akshantula Neha, Mohammad Febri Ramadlan - Cyber Harmony Auto...
 
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...
idsecconf2023 - Aan Wahyu - Hide n seek with android app protections and beat...
 
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...
idsecconf2023 - Satria Ady Pradana - Launch into the Stratus-phere Adversary ...
 
Ali - The Journey-Hack Electron App Desktop (MacOS).pdf
Ali - The Journey-Hack Electron App Desktop (MacOS).pdfAli - The Journey-Hack Electron App Desktop (MacOS).pdf
Ali - The Journey-Hack Electron App Desktop (MacOS).pdf
 
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...
Muh. Fani Akbar - Infiltrate Into Your AWS Cloud Environment Through Public E...
 
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdf
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdfRama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdf
Rama Tri Nanda - NFC Hacking Hacking NFC Reverse Power Supply Padlock.pdf
 
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...
Arief Karfianto - Proposed Security Model for Protecting Patients Data in Ele...
 
Nosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdf
Nosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdfNosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdf
Nosa Shandy - Clickjacking That Worthy-Google Bug Hunting Story.pdf
 
Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...
Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...
Baskoro Adi Pratomo - Evaluasi Perlindungan Privasi Pengguna pada Aplikasi-Ap...
 
Utian Ayuba - Profiling The Cloud Crime.pdf
Utian Ayuba - Profiling The Cloud Crime.pdfUtian Ayuba - Profiling The Cloud Crime.pdf
Utian Ayuba - Profiling The Cloud Crime.pdf
 
Proactive cyber defence through adversary emulation for improving your securi...
Proactive cyber defence through adversary emulation for improving your securi...Proactive cyber defence through adversary emulation for improving your securi...
Proactive cyber defence through adversary emulation for improving your securi...
 
Perkembangan infrastruktur kunci publik di indonesia - Andika Triwidada
Perkembangan infrastruktur kunci publik di indonesia - Andika TriwidadaPerkembangan infrastruktur kunci publik di indonesia - Andika Triwidada
Perkembangan infrastruktur kunci publik di indonesia - Andika Triwidada
 
Pentesting react native application for fun and profit - Abdullah
Pentesting react native application for fun and profit - AbdullahPentesting react native application for fun and profit - Abdullah
Pentesting react native application for fun and profit - Abdullah
 
Hacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabella
Hacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabellaHacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabella
Hacking oximeter untuk membantu pasien covid19 di indonesia - Ryan fabella
 
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
Vm escape: case study virtualbox bug hunting and exploitation - Muhammad Alif...
 
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi DwiantoDevsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
 

“Hollywood style cracking” pada Block Cipher mode CBC: Analisis and Pencegahan

  • 1. “Hollywood  style  cracking”  pada  Block  Cipher  mode   CBC:  Analisis  and  Pencegahan     Rizki  Wicaksono   ilmuHacking.com,  email:  rizki@ilmuHacking.com         Abstrak   -­‐   Algoritma   enkripsi   standar   seperti   AES   sampai   sekarang   dikenal   sebagai   algoritma   enkripsi   yang   kuat   dan   sangat   direkomendasikan   sebagai   algoritma   yang   aman.   Namun   apakah   hanya   dengan   menggunakan   algoritma   kuat  seperti  AES  menjamin  data  akan  aman  ?  Jawabnya  adalah  tidak.  Algoritma   yang   kuat   hanya   satu   bagian   kecil   saja   dari   sistem   kriptografi   yang   utuh,   kekuatan   algoritma   tidak   akan   berarti   apa-­‐apa   tanpa   didukung   dengan   implementasi  algoritma  yang  aman.     Paper   ini   mencoba   menganalisa   serangan   praktis   terhadap   algoritma   enkripsi   block  cipher  dalam  mode  CBC.  Serangan  ini  menyerang  semua  algoritma  block   cipher  dalam  mode  operasi  CBC  termasuk  algoritma  standar  AES.  Tidak  hanya   mendekripsi   pesan   rahasia,   dalam   kondisi   tertentu   serangan   ini   juga   bisa   diaplikasikan  untuk  mengenkripsi  pesan  palsu.  Kemampuan  untuk  mendekripsi   sekaligus   mengenkripsi   pesan   tanpa   mengetahui   kunci   membuat   serangan   ini   sangat  berbahaya.     1.  PENDAHULUAN     Algoritma  enkripsi  block  cipher  sebenarnya  hanya  dirancang  untuk  memproses   satu  blok  plaintext  atau  blok  ciphretext  saja.  Sebagai  contoh,  algoritma  enkripsi   AES   hanya   dirancang   untuk   mengubah   plaintext   berukuran   128   bit   menjadi   ciphertext  berukuran  128  bit  juga.       Gambar  1:  Block  cipher     Enkripsi   dan   dekripsi   dapat   dilakukan   secara   langsung   bila   pesan   berukuran   tepat   satu   blok.   Namun   bila   ciphertext/plaintextnya   berukuran   lebih   dari   satu   blok,   tentu   harus   ada   cara   untuk   memproses   data   tersebut   agar   bisa   diterima   oleh   algoritma   block   cipher,   prosedur   ini   disebut   mode   operasi.   Dalam   mode   operasi   diatur   bagaimana   data   dipecah   menjadi   blok,   bagaimana   hubungan   antara  satu  blok  dengan  blok  lainnya,  blok  manakah  yang  harus  dienkrip/dekrip   duluan  dan  sebagainya.    
  • 2. 1.1  MODE  OPERASI  CBC     Dalam   mode   operasi   CBC   (cipher   block   chaining),   suatu   blok   dengan   blok   berikutnya   saling   terkait.   Setiap   blok   plaintext   diXOR   dengan   ciphertext   hasil   enkripsi   blok   plaintext   sebelumnya   baru   kemudian   hasil   operasi   XOR   ini   dienkrip   untuk   menghasilkan   blok   ciphertext.   Begitu   pula   sebaliknya   ketika   dekripsi.  Dekripsi  yang  dilakukan  terhadap  suatu  blok  ciphertext  tidak  langsung   menghasilkan  blok  plaintext,  hasil  dekripsi  tersebut  harus  di-­‐XOR  dulu  dengan   blok  ciphertext  sebelumnya  untuk  menghasilkan  blok  plaintext.         Gambar  2:  CBC  mode   Khusus   untuk   blok   pertama,   diperlukan   suatu   data   yang   berfungsi   sebagai   C0,   data   ini   disebut   dengan   IV   (initialization   vector).     Jadi   formula   matematika   enkripsi  dan  dekripsi  block  cipher  dalam  mode  operasi  CBC  adalah:     Ci  =  Ek(Pi  ⊕  Ci-­‐1)     Pi  =  Dk(Ci)  ⊕  Ci-­‐1     C0  =  IV     1.2  PADDING     Dalam  block  cipher  plaintext  dan  ciphertext  harus  dipotong-­‐potong  dan  disusun   dalam   blok-­‐blok   data   berukuran   sama.   Sebagai   contoh,   DES   dan   Blowfist   menggunakan  blok  berukuran  64  bit,  AES  menggunakan  blok  berukuran  128  bit.   Karena   data   harus   masuk   dalam   blok   berukuran   sama,   maka   dibutuhkan   padding   byte   sebagai   pengganjal   untuk   menggenapi   data   agar   pas   dengan   ukuran  blok.     Aturan   mengenai   padding   untuk   mode   CBC   dijelaskan   dalam   standar   PKCS#7   dan   PKCS#5   (Public   Key   Cryptographic   Standard).   Padding   dilakukan   dengan   mengisi   byte   bernilai   N   bila   dibutuhkan   padding   sebanyak   N   byte.   Sebagai   contoh,  bila  dibutuhkan  padding  3  byte,  maka  paddingnya  berisi  ’03  03  03′,  bila   dibutuhkan  padding  5  byte,  maka  paddingnya  berisi  ’05  05  05  05  05′.  
  • 3.   Gambar  3  dan  4  menunjukkan  beberapa  contoh  padding  yang  valid  dan  padding   yang  tidak  valid.       Gambar  3:  Contoh  valid  padding       Gambar  4:  Contoh  invalid  padding   2.  PADDING  ORACLE  ATTACK     Padding  oracle  attack  pertama  kali  dipublikasikan  pada  tahun  2002  oleh  Sergey   Vaudenay[1].   Kemudian,   pada   tahun   2010   Thai   Duong   and   Juliano   Rizzo[2]     mempublikasikan   paper   yang   menjelaskan   padding   oracle   attack   terhadap   banyak  framework  aplikasi  web  yang  populer  seperti  JavaServer  Faces,  Ruby  on   Rails  dan  ASP.NET.     Dalam   padding   oracle   attack,   yang   dimaksud   dengan   Oracle   disini   tidak   ada   hubungannya   sama   sekali   dengan   SQL   dan   database   Oracle.   Oracle   yang   dimaksud  adalah  validation  oracle,  dimana  client  bisa  bertanya  dan  dijawab  oleh   oracle  dengan  jawaban  boolean,  ya  atau  tidak,  benar  atau  salah.       Apapun  dan  bagaimanapun  cara  oracle  merespons  bila  client  bisa  membedakan   mana   respons   yang   berarti   ya,   dan   mana   respons   yang   berarti   tidak,   artinya   server  itu  telah  menjadi  ‘the  oracle’.     Gambar   5   menunjukkan   cara   kerja   padding   oracle   attack.   Seorang   attacker   mengirimkan   2   blok   ciphertext   ke   oracle   kemudian   mengamati   responsnya,   apakah  2  blok  ciphertext  tersebut  ketika  didekrip  memiliki  byte  padding  yang   valid  atau  tidak.     Blok  ciphertext  yang  akan  didekrip  adalah  blok  ciphertext  yang  kedua.  Blok  ini   tidak  perah  berubah  dalam  setiap  request.  Blok  ciphertext  pertama  selalu  diubah  
  • 4. setiap  dikirim  ke  oracle  untuk  menemukan  byte  yang  membuat  padding  menjadi   valid.   Jadi   attacker   mengirimkan   banyak   request   berisi   2   blok   ciphertext   tersebut   sampai   menemukan   blok   ciphertext   pertama   yang   mendapatkan   respons  padding  valid.       Gambar  5:  Padding  oracle  attack   Walaupun  oracle  tidak  pernah  memberitahukan  hasil  enkripsinya,  informasi  dari   oracle  bahwa  padding  valid  atau  invalid  saja  sudah  cukup  menjadi  petunjuk  bagi   attacker  untuk  menebak  hasil  dekripsinya.     2.1  CONTOH  KASUS     Bagaimana  padding  oracle  attack  ini  bekerja  akan  saya  jelaskan  dalam  sebuah   contoh   kasus.   Attacker   telah   berhasil   mendapatkan   2   blok   ciphertext   berikut:   2D7850F447A90B87   dan   123B36A038A8682F.   Ciphertext   tersebut   bisa   dikirimkan  ke  suatu  aplikasi  web  yang  bertindak  sebagai  Oracle.  Bila  ciphertext   tersebut  ketika  didekrip   oracle  menghasilkan  padding  yang  valid,  maka  oracle   akan   mengirimkan   response   “200   OK”,   sebaliknya   akan   mengirimkan   respons   “500  Internal  Server  Error”.      2.2  MENDEKRIP  BYTE  TERAKHIR     Seorang   attacker   bisa   memanfaatkan   oracle   untuk   mendekrip   ciphertext   tersebut.  Dalam  contoh  ini  attacker  mencoba  mendekrip  blok  C2  terlebih  dahulu   (mencari   P2).   Cara   melakukan   serangan   padding   oracle   attack   adalah   dengan   mengirimkan  banyak  ciphertext  ke  oracle  sampai  mendapatkan  respons  padding   valid  (brute  force).     Dekripsi  dilakukan  dimulai  dari  blok  terakhir.  Dua  blok  yang  dikirim  ke  oracle   adalah:   • Blok   pertama   C1   adalah   blok   ciphertext   yang   dipakai   untuk   mencari   padding  yang  valid.  Dalam  mendekrip  byte  terakhir,  blok  ciphertext  yang   dikirim   adalah   00-­‐00-­‐00-­‐00-­‐00-­‐00-­‐00-­‐XX   dengan   XX   nanti   bernilai   dari   00  sampai  FF.  
  • 5. • Blok   kedua   C2   adalah   blok   ciphertext   yang   ingin   didekrip   123B36A038A8682F     Gambar   6   menunjukkan   proses   dekripsi   dua   blok   ciphertext   yang   dikirim   attacker  dalam  mode  CBC.  Attacker  ingin  mengetahui  byte  terakhir  hasil  dekripsi   C2  (warna  hijau  dalam  gambar  6).  Kondisi  yang  diinginkan  attacker  adalah  ketika   byte   terakhir   P2   (warna   kuning   dalam   gambar   6)   bernilai   01.     Karena   byte   terakhir   P2  (kuning)   adalah   hasil   XOR   antara   byte   terakhir   C1   (biru)   dan   hasil   dekrip  C2  (hijau)  maka  bisa  dituliskan  A  XOR  B  =  01.         Gambar  6:  Dekripsi  byte  terakhir   A  dan  B  adalah  variabel  yang  tidak  diketahui.  Kita  butuh  bantuan  oracle  untuk   menyelesaikan   persamaan   ini.   Kita   bisa   menginterogasi   oracle   menanyakan   pertanyaan:   • Apakah  A  XOR  00  =  01  ?   • Apakah  A  XOR  01  =  01  ?   • Apakah  A  XOR  02  =  01  ?   • Apakah  A  XOR  03  =  01  ?   • Dan  seterusnya  sampai  255     Bila  oracle  menjawab  dengan  valid  padding,  artinya  attacker  mendapat  jawaban   Ya,  sebaliknya  berarti  attacker  mendapat  jawaban  Tidak.     Gambar   7   menunjukkan   bagaimana   cara   attacker   mengirimkan   ciphertext   ke   oracle   dan   menerima   respons   dari   oracle   sampai   suatu   saat   dia   akan   mendapatkan  jawaban  valid  padding.    
  • 6.   Figure  7:  Brute  force  byte  terakhir   Ketika   attacker   mendapatkan   jawaban   valid   padding   dari   oracle,   artinya   dia   sudah  mengetahui  byte  terakhir  C1  yang  membuat  byte  terakhir  P2  bernilai  01.   Dalam   contoh   ini   setelah   mencoba   dari   00,   01,   02   dan   seterusnya   sampai   akhirnya  diketahui  bahwa  bila  byte  terakhir  C1  bernilai  87,  maka  respons  yang   didapat   adalah   valid   padding.   Karena   respons   yang   diterima   adalah   valid   padding,    maka  attacker  yakin  bahwa  byte  terakhir  P2  bernilai  01.       Figure  8:  Byte  terakhir  ditemukan   Gambar  8  menunjukkan  situasi  yang  terjadi  ketika  byte  terakhir  C1  bernilai  87   dan  byte  terakhir  P2  bernilai  01.  Dalam  situasi  ini  hasil  dekrip  C2  (warna  hijau)   bisa  diketahui  dengan  mudah  yaitu  87  XOR  01  =  86.  Dengan  teknik  sederhana   ini,  dalam  maksimal  256  kali  percobaan,  seorang  attacker  bisa  mengetahui  hasil   dekrip  C2.     Setelah   mengetahui   hasil   dekrip   C2   seorang   attacker   bisa   mendapatkan   P2   dengan  mengXOR  dengan  byte  terakhir  ciphertext  sebelumnya.     2.3  MENDEKRIP  BYTE  KE-­‐7     Setelah   berhasil   mendekrip   byte   terakhir,   attacker   bisa   melanjutkan   untuk   mendapatkan   byte   ke-­‐7.   Caranya   mirip   dengan   sebelumnya,   namun   kali   ini   attacker   harus   mencari   byte   ke-­‐7   C1   yang   membuat   byte   ke-­‐7   P2   bernilai   02.  
  • 7. Attacker  juga  membuat  byte  terakhir  C1  bernilai  84  agar  byte  terakhir  P2  bernilai   02.     Gambar  7  menunjukkan  situasi  ketika  attacker  mencoba  mendekrip  byte  ke-­‐7.       Figure  9:  Mendekrip  byte  ke-­‐7     Gambar   10   menunjukkan   proses   ketika   attacker   melakukan   brute   force   untuk   mencari   byte   ke-­‐7.   Setelah   mencoba   beberapa   kali   akhir   attacker   berhasil   mendapatkan  respons  padding  valid  ketika  byte  ke-­‐7  bernilai  0A.         Gambar  10:  Percobaan  mencari  byte  ke-­‐7   Setelah   mengetahui   bahwa   ketika   2   byte   terakhir   C1   bernilai   0A-­‐84   menghasilkan   2   byte   terakhir   P2   02-­‐02,   maka   otomatis   attacker   juga   langsung   bisa   menghitung   byte   ke-­‐7   hasil   dekrip   C2  yaitu   08.   Gambar   10   menunjukkan   situasi  ketika  attacker  berhasil  mendekripsi  2  byte  terakhir  C2.      
  • 8.   Figure  11:  Dekripsi  byte  ke-­‐7   Sampai  tahap  ini  attacker  sudah  berhasil  mengetahui  2  byte  terakhir  hasil  dekrip   C2  .       Proses   ini   bisa   dilanjutkan   terus   untuk   mencari   byte   berikutnya   dengan   cara   yang  sama  dari  byte  terakhir  sampai  byte  pertama:   • Mencari   byte   ke-­‐6   dilakukan   dengan   mencari   3   byte   terakhir   C1   yang   membuat  3  byte  terakhir  P2  bernilai  03-­‐03-­‐03   • Mencari   byte   ke-­‐5   dilakun   dengan   mencari   4   byte   terakhir   C1   yang   membuat  4  byte  terakhir  P2  bernilai  04-­‐04-­‐04-­‐04.   • Dan  seterusnya.     3.  PENCEGAHAN     Sebagai  algoritma  enkripsi,  AES  sampai  saat  ini  masih  dianggap  algoritma  yang   aman.  Namun  ternyata  bila  tidak  diimplementasikan  dengan  baik  bisa  berakibat   fatal.  Dalam  serangan  yang  dibahas  dalam  paper  ini  sebenarnya  bukan  algoritma   enkripsinya   yang   bermasalah,   namun   implementasi   dalam   mode   CBC   yang   bermasalah.     Tadi   kita   sudah   melihat   bagaimana   mengubah   ciphertext   bisa   membuat   hasil   dekripsinya  menjadi  berubah  juga.  Gambar  12  menunjukkan  ketika  byte  terakhir   C1  diubah  dari  85  menjadi  87,  menghasilkan  pesan  yang  sama-­‐sama  valid  namun   isinya  berbeda.     Ketika  byte  terakhir  C1  bernilai  85,  hasil  dekripsinya  adalah  ‘ABCDEFGHIJKLM’,   namun   ketika   byte   terakhir   C1   diubah   sedikit   menjadi   87   hasil   dekripsinya   berubah   menjadi   ‘ABCDEFGHIJKLM’+03+03   (kini   03   dianggap   sebagai   data   karena  paddingnya  adalah  01).    
  • 9.   Figure  12:  Malleability   Bayangkan  bila  ada  attacker  yang  berperan  sebagai  man-­‐in-­‐the-­‐middle  mencegat   suatu   ciphertext,   kemudian   mengubah   satu   byte   saja   dari   ciphertext   tersebut   sebelum   meneruskan   ke   tujuan.   Setelah   tiba   di   tujuan,   ciphertext   yang   sudah   diubah   tadi   ketika   didekrip   menghasilkan   pesan   yang   berbeda   dengan   yang   dimaksud   dalam   pesan   aslinya.   Hal   ini   tentu   berbahaya   bila   isi   pesannya   berubah  dari  “kirim  uang  1  juta  ke  rekening  123″  berubah  menjadi  “kirim  uang  1   juta  ke  rekening  124″.     Serangan   ini   bisa   terjadi   karena   server   melakukan   dekripsi   pada   semua   ciphertext  yang  diterimanya  tanpa  peduli  apakah  ciphertext  tersebut  valid  atau   tidak.   Bila   server   bersedia   mendekrip   semua   ciphertext   yang   masuk,   maka   attacker   bisa   memanfaatkannya   untuk   mengirimkan   tampered   ciphertext   ke   server  dan  mengamati  respons  hasil  dekripsinya.     Serangan   padding   oracle   ini   bisa   dicegah   dengan   menempelkan   Message   Authentication   Code   pada   ciphertext.   Server   hanya   boleh   melakukan   dekripsi   pada   ciphertext   yang   authenticated,   artinya   ciphertext   yang   dijamin   integritas   dan  otentisitasnya  dengan  MAC.       Dengan   adanya   MAC,   attacker   tidak   bisa   lagi   mengubah   ciphertext   dengan   harapan  mengorek  informasi  dari  server  apakah  ciphertext  yang  dia  kirim  valid   atau  tidak  paddingnya.  Server  boleh  mengirimkan  response  pada  client  apakah   MAC   valid   atau   tidak   tanpa   ada   resiko   kebocoran   informasi   karena   tidak   ada   operasi   dekripsi   yang   dilakukan   dan   MAC   tidak   ada   hubungan   sama   sekali   dengan  plaintext.     4.  REFERENSI     [1]   S.   Vaudenay.   Security   Flaws   Induced   by   CBC   Padding   Applications   to   SSL,   IPSEC,  WTLS…  -­‐  2002   [2]  T.  Duong,  J.  Rizzo.  Practical  Padding  Oracle  Attacks  -­‐  2010