## PERANCANGAN ALGORITMA ANGGI (AA)  DENGAN
MEMANFAATKAN DIFFIE-HELLMAN DAN RONALD RIVEST (RC4)

## UNTUK MEMBANGUN SISTEM KEAMANAN BERBASIS PORT KNOCKING
A nggi Sri  Septiani  Suhendar, Haruno Sajati, Yenni Astuti Teknik Informatika STTA Yogyakarta informatika@stta .ac.id

## ABSTRA CT
In  managing  a  server,  an  administrator  takes  a  variety  o f ways  fo r   ensuring  the  safety  and cosiness  o f  the system.  One  type  o f threat  that attack on  the  server  is  done  on  a  port  that  is  in  an  open state,  thus  making people who  do  not have  access  rights  to perform  port scanning  to  infiltrate  into  the server.  One  solution  to  cope  with  the  attack  on  the  port  can  be  done  by  using  port  knocking.  Port knocking  is  a  method  that  can  be  applied  to  the  server with  the workings  o f such  a  code  to  unlock  the safe.  Port knocking  is  done  by  inserting a predetermined port  sequenced  to  open  a  specific port.  At  the port sequenced delivery process  takes  an additional authentication  likes keyport. Anggi algorithm (AA) is  an  algorithm  that  is  built  by  combination  o f Diffie-Hellman  and  RC4.  The  algorithm  is  used fo r encryption  and  descriptions  a  keyport from   client  side  to  the  server  side.  In  the  process  o f sending  a keyport  to  be  modified  by  using  the  arithmetic  calculation.  Process  o f   encryption  and  description keyport is  done  to prevent some  attacks on  the server by hackers with extracting such  information  after successfully  breaking  into  a  port.  The  results  o f implementation  AA  algorithm  on  the  process  o f port knocking can secure the delivery process o f keyport and improve  the security o f server.
Keywords: Port Knocking, Sequenced Port, AA Algorithms, Keyport

## 1. PENDAHULUAN
Berbagai  jenis  serangan  yang  dapat  terjadi  pada  jaringan  internet  menjadikan  alasan penting  adanya  sebuah  sistem  keamanan.  Salah  satu  jenis  ancaman  pada  server  adalah serangan  yang  dilakukan  pada  suatu  port  yang  berada  dalam  keadaan  terbuka,  sehingga m embuat  orang  yang  tidak  mempunyai  hak  akses  dapat  melakukan  port  scanning  untuk menyusup  ke  dalam  server.  Salah  satu  solusi  untuk  mengatasi  serangan  pada  port  dapat dilakukan dengan menggunakan metode port knocking.
Dalam   proses  melakukan  knocking  pada  suatu  server  masih  terdapat  suatu  masalah keamanan,  yaitu  ketika  informasi  sequenced  port  yang  dikirimkan  ke  server  kemungkinan masih  dapat  disadap  oleh  orang  yang  tidak  bertanggung jawab  yang  biasa  dikenal  dengan istilah Man  In  The M iddle  (MITM).  Oleh  karena  itu,  dibutuhkan  sebuah  autentikasi tambahan dalam  bentuk  keyport.  Definisi  keyport  merupakan  sebuah  passkey  (kunci  untuk  pengamanan jaluk masuk)  yang telah  disetujui  oleh  sisi  client  dan  sisi  server yang menjadi ukuran  legalitas bahwa  client  yang  melakukan  request  koneksi  ke  server  merupakan  client  yang  memiliki  hak akses.  Dalam   pengiriman  data  keyport  akan  dilakukan  proses  enkripsi  menggunakan Algoritma Anggi (AA).

## 2. LANDASAN T E O R I
2.1  T injau an Pustaka
Palmgren  (2009)  pada  Diffie-Helman  Key  Exchange  A-Non-Matematichian's  Explanation, menyatakan bahwa  Algoritma  Diffie-Helman diperkenalkan  oleh Whitfield  Diffie  dan  Martin Hellman  pada  tahun  1976.  Algoritma  ini  merupakan  sebuah  metode  kriptografi  yang menggunakan konsep aritmetika modulo.
Dalam  jurnal  penelitian  yang  dilakukan  oleh  Irwan  Sembiring,  Indrastati  R.  Widiasari, dan  Danu  Prasetyo  (2009),  membahas  mengenai  penerapan  metode  port  knocking  sebagai sistem keamanan  pada  server.  Hasil  dari  penelitian  tersebut  menyatakan bahwa  port knocking sangat  berguna  jika  diterapkan  sebagai  sistem  keamanan  pada  server.  Dengan  m elihat  rule pada  iptables  disisi  server  yang  menerapkan  port  knocking,  server  dapat  melakukan  monitoring terhadap client yang melakukan usaha untuk mengakses sebuah port pada server tersebut.

## 2.2  M etode P o r t K n ockin g
Port knocking merupakan sebuah metode  sistem keamanan yang di terapkan pada sebuah server .  Port  knocking  bekerja  menggunakan  sistem  ketukan  dari  sequenced  port  yang  telah ditentukan.  Jika  urutan  sequenced port benar,  maka  server memberikan ijin kepada  client untuk mengakses port tersebut.  Apabila urutan salah,  client tidak dapat mengakses port tersebut.
2.3  Algoritm a R o n a ld  R iv e s t (RC4)
Sistem  algoritma  RC4  dikembangkan  oleh  Ronald  Rivest  pada  tahun  1984.  RC4 menerapkan  sistem  sandi  stream  yang  bertujuan  agar  sistem  sandi  mampu  melakukan penyandian  unit  data  terkecil  secara  realtime.  RC4  menghasilkan  pseudorandom  stream  bit. Seperti  halnya  stream  cipher  lainnya,  algoritma  RC4  dapat  digunakan  untuk  mengenkripsi sebuah  plainteks  menjadi  chipertext  dengan  menggunakan  bit-wise  Xor  (Exclusive-or).  Proses dekripsinya dilakukan dengan cara yang sama.

## 2.4  Algoritm a A nggi  ( AA )
Algoritma AA didesain menjadi sebuah sistem keamanan pada proses pengiriman keyport dari  sisi  client  ke  sisi  server  yang  menerapkan  metode  port  knocking.  Konsep  algoritma  AA dibuat berdasarkan algoritma  enkripsi-deskripsi yang telah ada  sebelumnya,  yaitu kombinasi antara  Algoritma  Diffie-Helman  dan  Algoritma  RC4.  Dengan  Algoritma  AA,  proses pengiriman keyport akan dilakukan modifikasi menggunakan perhitungan aritmetika.

## 3. PERANCANGAN A LG O R ITM A
Algoritma  AA  merupakan  sebuah  algoritma baru yang  diciptakan  oleh  Anggi.  Ide  dasar pembuatan  algoritma  ini  dengan  mengkombinasikan  cara  kerja  algoritma  yang  telah  ada sebelumnya,  yaitu  Algoritma  Diffie-Hellman  dan  Algoritma  RC4  untuk  melakukan  proses enkripsi  dan  deskripsi  keyport.  Pada  proses  pengiriman  keyport  dilakukan  modifikasi menggunakan  perhitungan  aritmetika.  Proses  enkripsi  dan  deskripsi  keyport  dilakukan sebagai usaha  untuk mencegah  serangan pada  server seperti port scanning yang kemungkinan seorang  hacker  juga  dapat  melakukan  penyadapan  informasi  setelah  berhasil  menyusup  ke suatu  port.  Proses  perhitungan  dilakukan  dengan  mencari  nilai  modulus  seperti  yang dilakukan pada proses key exchange pada Algoritma Diffie Hellman.
Tabel 1 Proses Perhitungan Key Exchange Inisialisasi parameter x x Inisialisasi parameter y y Client (a) Server (b) Memilih bilangan acak (random secret) Proses  pengiriman  kunci dengan random
secret
menghasilkan public key
Proses  pemangkatan  key
exchange dengan  random secret menghasilkan private key A
Client m engirim (ya mod x) Client menghitung: (yb mod x)a mod x b Server m engirim (yb mod x)
Server m enghitung:
(ya mod x)b mod x
Untuk menghindari  adanya pihak yang melakukan penyadapan informasi keyport yang dikirimkan  oleh  client  ke  server,  selain  dengan  menerapkan  pertukaran  kunci,  keyport  juga akan  dienkripsi terlebih  dahulu  pada  sisi  client kemudian  dikirimkan  ke  server  dalam bentuk chipertext. Proses Algoritma AA dalam melakukan proses enkripsi-deskripsi keyport dijelaskan pada Gambar 1.
e n k rip s i C h ip p e rte x t d e s k rip s i
Untuk  menambah  sistem  keamanan  keyport,  sebelum  proses  enkripsi  pada  keyport  akan dihitung menggunakan Persamaan 3.1.
Keyport= keyport2/(2*5*^f 9 ) (3.1)
Saat proses deskripsi dilakukan proses menggunakan Persamaan 3.2
Keyport2= keyport* -(2*5*V9 ) (3.2)
Contoh perhitungan dari Persamaan 3.1  dan Persamaan 3.2  dijelaskan pada Tabel 2.
Tabel 2 Perhitungan Keyport Perhitungan Keyport2 Keyport Enkripsi  = 3GGG Enkripsi  =  1GGG Deskripsi = -3GGG Deskripsi = -1GGG
Pada  Tabel  2,  nominal  yang diinputkan  client  untuk melakukan  proses  ketukan  adalah keyport2 yaitu  3000,  pada  proses  pengiriman,  keyport  diolah  dengan  rumus  di  atas  dan  hasil perhitungan  dibandingkan  dengan  keyport  yang  telah  didefinisikan  sebelumnya  pada aplikasi.  Angka  pada  Persamaan  3.1  dan  3.2  didesain  melalui  tanggal  lahir  si  pembuat algoritma.  Flowchart  Algoritma  AA  dalam  proses  enkripsi  dan  deskripsi  keyport  ditunjukkan pada Gambar 2.
CLIENT SERVER (^" mulai "^)
mulai
Inisialisasi x
Inisialisasi y I Membangkitkan
1 I random secret a 1 I -X I Membangkitkan 1 I random secret b 1 1 Hitung kunci publik | Proses key 1 Hitung kunci publik | L | |
,  1 Hitung kunci privat
Hitung kunci privat (ya mod x)b i i / Output / / kunci privat / / Output / / kunci privat / I i / Input keyport / / dlm plaintext X / Input keyport / / dalam bentuk / X chipertext /
' 1 i I Hitung : keyport = 1 I keyport2/(2 *5 *^9) 1 I Hitung  : keyport2 = 1
I keyport*-(2*5*-^9~) 1
1 i
I Deskripsi dengan 1 O O 1 / Output : / / chipertext / / Output : / / Plaintext / I i

## Gambar 2 Flowchart Algoritma AA

## 4. IM PLEM EN TA SI DAN A N A LISA  HASIL
4.1  Penjelasan A plikasi
Penjelasan  aplikasi terdiri dari dua bagian,  yaitu pada  sisi  admin  dan  sisi  client.  Pada  sisi admin terdiri dari m enu login,  m enu utama,  m enu setting koneksi,  m enu setting user,  dan log. Pada sisi  client yang mengakses terdiri dari m enu utama,  m enu proses  open port,  m enu proses close port , m enu log,  dan m enu about.
Pada  halaman setting koneksi sisi admin digunakan untuk mengaktifkan program daemon dan me-nonaktifkan layanan port.  Halaman setting koneksi pada  sisi admin ditunjukkan pada Gambar 5.
W e b site R A d m in is t r a to r 8 , K IS Ji *
Port Knocking Application iiM m m am uoa ' Halaman Ulama ' AkUi Port - A k tlv a s l  P o rt  — DetiJuüoo Port II I

## Gambar 5 Halaman Setting Koneksi pada Sisi Admin
Pada  sisi  client,  terdapat  halaman  untuk  proses  open  port  digunakan  untuk  mengakses sebuah  layanan  port  pada  server.  Pada  halaman  ini,  client  harus  memasukkan  IP  server, sequenced port, dan keyport.  Halaman proses open port ditunjukkan pada Gambar 6.
*  i 'm Port Knocking application
vaiu RNM m nt mm non --------

## Gambar 6 Halaman Proses  Open Port pada Sisi Client

## 4.2 U ji Fungsi A plikasi
4.2.1  U ji  Coba pada Jaringan LAN
Pengujian  pada  jaringan  LAN  menggunakan  lima  buah  komputer  yang  sudah  diberi alamat  IP  komputer  agar  dapat  saling terhubung.  satu  buah  komputer  dijadikan  server,  dan empat  buah  komputer  dijadikan  sebagai  client.  Hasil  dari  client  yang  berhasil  melakukan knocking pada  proses  uji  coba  menggunakan  jaringan  LAN  menggunakan  empat  client. Dengan  format  tiga  client  merupakan  client  yang  sah  dan  satu  client  merupakan  seorang penyusup ditunjukkan pada  Gambar 7.
root@anggi:/home/anggi/anggi# iptables -nL chain i n p u t (policy a c c e p t )
target prot opt source destination ACCEPT tcp  --  192.168.6.28 0.0.0.0/0 ACCEPT tcp  --  192.168.6.26 0.0.0.0/0 ACCEPT tcp  --  192.168.6.24 0.Ô.0.6/0 DROP tcp  -- 0 . 0 . 0 . 0 /0 0.0.0.0/0 chain f o r w a r d (policy a c c e p t )
target prot opt source destination Chain  OUTPUT  (policy ACCEPT) target prot opt  source destination root@anggi:/home/anggi/anggi# | 1
Gambar 7 Hasil Uji Coba Knocking pada Jaringan LAN
Tabel hasil  uji  coba  pada jaringan  LAN  saat  client  mengakses  port  SSH  dijelaskan  pada Tabel 3.
Tabel 3 Hasil Uji Coba Akses Port SSH melalui Jaringan LAN NO IP client Username W aktu akses ke SSH 1 192.168.6.28 Anggi 00:00:05 2 192.168.6.24 Anggi 00:00:05 3 192.168.6.26 W awan 00:00:05
Dari  hasil  uji  coba  menggunakan  jaringan  LAN,  diperoleh  hasil  rata-rata  waktu  load untuk  mengakses  web  adalah  3  detik  dan  waktu  untuk  akses  ke  port  SSH  setelah  proses knocking berhasil adalah 5 detik.
4.2.2  U ji Coba pada Jaringan Internet
Uji  coba  ini  memanfaatkan  sebuah  server  untuk  menyimpan  hosting  file  dan m enanamkan  database  server.  Pada  pengujian  dengan jaringan  internet,  apabila  client berhasil
melakukan  proses  knocking,  client  dapat  mengakses  port  pada  server  dan  masuk  ke  port  yang ingin dituju.  Port yang dapat diakses oleh  client ditunjukkan pada Gambar 8.
Starting Mmap 5.21 (  http://nnap.org  'I at 291J-67-26 04:14 UTC Nmap scan report for host-202-169-224 204.jogj anedianet.con (202.169.224.294) Host is up (0.22s latency).
Not shown: 9 9 9 closed ports PORT STATE SERVICE 22/tcp open ssh
23/tcp open telnet 80/tcp open http 135/tcp filtered nsrpc 445/tcp filtered nicrosoft-ds 1935/tcp open rtmp 5900/tcp open vnc 8083/tcp open unknown 8086/tcp open unknown 100 OO/tcp open snet-sensor-mgnt
Gambar 8 Port yang dapat diakses oleh Client setelah Proses Knocking pada Uji coba dengan Jaringan Internet
Saat  client belum   melakukan  proses  knocking,  maka  saat melakukan  port  scanning,  client tidak  dapat  mengakses  seluruh  port  yang  aktif  pada  server.  Hal  tersebut  ditunjukkan  pada Gambar 9.
Gambar 9 Port Scanning ketika Port dalam Keadaan Tertutup pada Uji Coba dengan Jaringan Internet
Tabel  hasil  uji  coba  pada  jaringan  internet  saat  client  mengakses  port  SSH  dijelaskan pada Tabel 4.
Tabel 4 Hasil Uji Coba Akses Port SSH pada Jaringan Internet
NO IP client Username W aktu Akses ke SSH 1 203.78.123.244 Anggi 00:00:07 2 202.67.41.68 Anggi 00:00:10
Dari hasil  uji  coba  menggunakan jaringan  internet,  diperoleh  hasil  rata-rata waktu  load untuk  mengakses  web  adalah  7  detik  dan  waktu  untuk  akses  ke  port  SSH  setelah  proses knocking berhasil adalah 8 detik.
4.2.3  Penerapan Algoritm a AA pada A plikasi
Algoritma  AA  mengamankan  proses  enkripsi  dan  deskripsi  keyport,  ketika  server m enolak  request  dari  client  maka  pada  logging  di  sistem  akan  menampilkan  pesan  bahwa server menerima bad password dari client.  Proses tersebut ditunjukkan pada Gambar 10.
Gambar 10 Uji Coba Keyport
Sementara itu apabila proses knocking gagal dilakukan,  maka akan muncul M essage Box seperti yang ditunjukkan pada Gambar 11.
C o n n e c t io n   r e f u s e d ,  t r y   a g a in   !

## Gambar l l  Message Box Proses Knocking Gagal dilakukan

## 5. A N A LISA
Pada  uji  coba  pada  jaringan  LAN  menggunakan  lima  buah  komputer,  satu  buah komputer  dijadikan  server  dan  empat buah  komputer  bertindak  sebagai  client.  Hasil  uji  coba memperoleh  rata-rata  waktu  yang  dibutuhkan  untuk  me-load  halaman  web  adalah  3  detik dan waktu untuk akses ke port SSH  setelah proses knocking berhasil adalah 5 detik.
Pengujian  pada  jaringan  internet  dilakukan  dengan  menggunakan  dua  buah  komputer sebagai  client,  dan  memanfaatkan  sebuah  server  dedicated  untuk  menjadi  server  yang menerapkan  port  knocking.  Hasil  uji  coba  diperoleh  hasil  rata-rata  waktu  load  untuk mengakses  web  adalah  7  detik  dan  waktu  untuk  akses  ke  port  SSH  setelah  proses  knocking berhasil  adalah  S  detik.  Waktu  yang  dibutuhkan  untuk  menerapkan  aplikasi  via  jaringan LAN lebih cepat dibandingkan pada jaringan internet.  Hal tersebut disebabkan uji coba pada jaringan internet sangat tergantung pada kestabilan koneksi jaringan internet yang dipakai.
Pengujian  terakhir,  yaitu  pengujian  pada  Algoritma  AA  yang  digunakan  dalam  proses enkripsi dan deskripsi keyport.  Hasil uji coba diperoleh apabila keyport tidak sesuai, maka akan muncul  peringatan  bahwa  proses  knocking  gagal  dilakukan  dan  pada  logging  akan menerima pesan  "m enerim a  bad  password",  apabila  proses  berhasil  maka  server  akan  menerima  akses client yang melakukan proses knocking.

## 6. K ESIM PU LA N  DAN SARAN
6.1  Kesim pulan
1. Aplikasi  yang  dirancang  dalam  tugas  ini  dapat  digunakan  untuk  meningkatkan keamanan  pada  server  dengan  cara  menerapkan  aturan  rule  iptables  pada  sisi  IN PU T dalam penerapan metode port knocking.
2. Penerapkan  metode  port  knocking  memungkinkan  seorang  admin  atau  client  yang memiliki  hak  akses  masih  dapat  membuka  port  meskipun  sever  telah  menutup  semua layanan port.
3. Algoritma  AA  pada  metode  port  knocking  dapat  mengamankan  pengiriman  keyport  dari sisi client ke sisi server dengan adanya key-exchange dan proses enkripsi keyport.
6.2  Saran
1. Aplikasi  ini  dapat  dikembangkan  dalam  platform  yang  berbeda  atau  dalam  bentuk mobile.
2. Dapat  mengembangkan  aplikasi  ini  dengan  membuat  sebuah  keyport  dan  sequenced  port yang berbeda untuk setiap  client yang memiliki hak akses.

## D A FTA R PUSTAKA
Dede, Sopandi. 2006. Instalasi dan Konfigurasi Jaringan Komputer.  Informatika.  Bandung.
Kurniawan,  Agus.  2012.  Network  Forensics  Panduan  Analisis  &  Investigasi  Paket  Data  Jaringan menggunakan Wireshark.. Andi Offset.  Yogyakarta.
Palmgren,  Keith.  2006.  Diffie-Helman  Key  Exchange  A-Non-Matematichian's  Explanation.  NetIP, Inc.  United  States.  (https://learningnetwork.cisco.com/servlet/JiveServlet/download/294583- 67040fWP_Palmgren_DH.pdf, diakses pada 12 Februari 2013).
Sadikin,  Rifki.  2012.  Kriptografi  Untuk Keamanan Jaringan.  Andi Offset. Yogyakarta.
Sembring,  Irwan  dkk.  November  2009.  Analisa  dan  Implementasi  Sistem  Keamanan  Jaringan Komputer  dengan  Iptables  sebagai  Firewall  menggunakan  M etode  Port  Knocking. Jurnal Informatika Volume V Nomor II,  November 2009, hal 1-15,  ISSN 1693-7279.  Salatiga.
Stallings, William.  2006.  Cryptography and Network Security.  Fourth Edition,  Pearson Education. New Jersey.