Doan P. Sinaga, Alex F. Manihuruk, Kevin G.A.T. Pardosi - “Securing SCADA System using RC-4 Encryption Algorithm and Hash-based Message Authentication Code"
Dokumen tersebut membahas mengenai pengamankan sistem SCADA menggunakan algoritma enkripsi RC-4 dan metode otentikasi berbasis hash untuk melindungi komunikasi data. Metode ini diimplementasikan menggunakan Raspberry Pi sebagai perangkat gateway untuk mengotentikasi entity dan mengamankan komunikasi antara client dan server SCADA.
Ähnlich wie Doan P. Sinaga, Alex F. Manihuruk, Kevin G.A.T. Pardosi - “Securing SCADA System using RC-4 Encryption Algorithm and Hash-based Message Authentication Code"
Ähnlich wie Doan P. Sinaga, Alex F. Manihuruk, Kevin G.A.T. Pardosi - “Securing SCADA System using RC-4 Encryption Algorithm and Hash-based Message Authentication Code" (20)
Devsecops: membangun kemampuan soc di dalam devsecops pipeline - Dedi Dwianto
Doan P. Sinaga, Alex F. Manihuruk, Kevin G.A.T. Pardosi - “Securing SCADA System using RC-4 Encryption Algorithm and Hash-based Message Authentication Code"
1. Securing SCADA System using RC-4 Encryption Algorithm and Hash-based Message
Authentication Code
Doan P. Sinaga, 11113062
Del Institute of Technology
Laguboti, Sumatera Utara
doansinaga60@gmail.com
Alex F. Manihuruk, 11113055
Del Institute of Technology
Laguboti, Sumatera Utara
if313055@students.del.ac.id
Kevin G.A.T. Pardosi, 11113100
Del Institute of Technology
Laguboti, Sumatera Utara
if313100@gmail.com
Abstrak— Pada saat ini, sudah banyak diciptakan produk
berupa sistem, aplikasi, perangkat automation dan sebagainya
yang digunakan untuk membantu mempermudah dan
menyelesaikan pekerjaan manusia. Perangakat automation
SCADA (Supervisory Control and Data Acquisition) merupakan
salah satu produk teknologi yang memiliki fungsi pengumpulan
data, pengolahan data dan distribusi data secara otomatis.
SCADA saat ini telah banyak digunakan secara luas di
diberbagai bidang seperti industri, pertambangan, bahkan
kelistrikan.
Konsep pada perangkat SCADA mengacu pada sebuah
sistem terpusat atau yang biasa disebut MTU (Master Terminal
Unit) yang bertugas untuk monitor dan control seluruh field yang
berada pada lingkup wilayah yang luas secara otomatis oleh RTU
(Remote Terminal Unit) atau dengan PLC (Programmable Logic
Controller). Kondisi perangkat di luar perangkat pusat SCADA
seperti field device, sensor, valve atau pump ditampilkan di HMI
(Human Machine Interface) menggunakan protokol ModBus
secara real-time. Perangkat SCADA terdahulu belum dilengkapi
metode authentication sebagai proses validasi dan autoriasi untuk
menggunakan aplikasi HMI dan aliran data antara client dan
server masih berbentuk plaintext. Celah keamanan sistem
SCADA ini yang membuat pengguna yang tidak terautorisasi
dapat mengakses HMI secara bebas yang memungkinkan adanya
ancaman-ancaman yang dapat membahayakan kerja sistem
SCADA dan juga memungkinkan paket dapat di sniffing.
Pada project ini akan ditambahkan metode authentication
dan encryption pada perangkat SCADA untuk mengamankan
sistem. Dengan metode authentication dan encryption tersebut
sistem akan lebih aman dan terhindar dari ancaman-ancaman
cyber-crime (Kejahatan Siber).
Kata Kunci : authentication, cyber crime, encryption, SCADA
I. PENDAHULUAN
A. Latar Belakang
SCADA merupakan sistem kendali industri berbasis
komputer yang dipakai untuk mengontrol dan memantau
proses yang berjalan pada plant secara remote. Sistem ini
terdiri dari hardware dan software yang menjalankan proses
penting dan menyediakan layanan untuk infrastruktur. Sistem
SCADA pada umumnya digunakan untuk jangka waktu yang
lama. Dikarenakan perangkat sudah dapat terhubung dengan
internet, maka perangkat dapat diakses dari dari mana saja
secara Real-Time. Perangkat SCADA yang akan ditangani ini
awalnya memiliki tingkat keamanan yang kurang memadai
seperti pengiriman data yang tidak melalui proses enkripsi dan
dekripsi sehingga data mudah di diperoleh dalam bentuk
plaintext. Hal ini dapat membahayakan proses kerja perangkat
SCADA maupun perangkat lainnya yang terhubung dengan
SCADA. Protokol ModBus yang sudah lama dirancang untuk
SCADA tidak memiliki keamanan seperti proses autentikasi
dikarenakan pada awalnya SCADA hanya terhubung ke
jaringan lokal sehingga tidak memiliki kerentanan terhadap
serangan[3]
. Hal ini yang menyebabkan perangkat dapat
dengan mudah diakses oleh siapapun tanpa harus melalui
proses authentication baik secara lokal maupun dari jaringan
luar selama pengguna sudah berhasil bergabung dengan
jaringan yang terhubung dengan perangkat SCADA. Hal ini
memungkinkan unauthorized user dapat mengakses sistem
dan melakukan modification, fabrication, unauthorized
command execution[3]
yang dapat membahayakan kerja dan
fungsi Perangkat SCADA yang bisa menyebabkan
kerusakan/kerugian. Metode autentikasi ini akan
diimplementasikan bersamaan dengan metode encryption RC4
untuk mengamankan komunikasi data. Dengan metode
encryption dan authentication, diharapkan perangkat SCADA
akan lebih aman.
B. Tujuan
Tujuan project ini adalah menyediakan proses autentikasi
dengan metode-metode autentikasi yang telah dipilih untuk
meningkatkan keamanan sistem SCADA. Dengan adanya
proses autentikasi, ancaman yang mungkin terjadi dapat
dihindari karena user yang akan mengakses sistem harus
terautentikasi, sehingga hanya user yang valid dapat mengakses
sistem dan mengirimkan perintah ke SCADA controller.
Metode autentikasi ini akan melindungi sistem dari
pengaksesan maupun modifikasi resource secara ilegal dan
pengiriman paket-paket berbahaya dari penyerang. Dalam
project ini juga akan dilakukan pengujian metode autentikasi
yang dapat diimplementasikan pada perangkat SCADA.
II. PEMBAHASAN
A. Sistem SCADA
SCADA merupakan singkatan dari Supervisory Control
and Data Acquisition. SCADA merupakan perangkat
automation yang mengendalikan pengumpulan, pengolahan
2. dan distribusi data dari sebuah obyek[8]
. Perangkat ini
menerapkan sistem client/server, dimana master SCADA
sebagai client dan slave SCADA sebagai server. HMI sebagai
Master dan controller sebagai Slave. Sistem SCADA
menerapkan konsep master/slave, karena memiliki 2 pusat
kendali. Master adalah pusat kendali untuk komunikasi oleh
operator sedangkan slave adalah pusat kendali kedua untuk
control perangkat SCADA yang lain. Kelebihan SCADA
adalah dapat melakukan pengawasan dan pengendalian banyak
plant dengan baik sekalipun device dari vendor dan tipe yang
berbeda-beda dengan konfigurasi kecil sampai besar
sekalipun[7]
.
B. Komponen Sistem
Terdapat beberapa tingkatan komponen pada sistem
SCADA. Adapun 4 tingkat utama pada sistem SCADA yaitu[8]
:
1. Field Instrumentation
Informasi dari proses yang dikendalikan diperoleh melalui
field instrumentation seperti perangkat fisik sensor, aktuator
serta komponen lainnya yang terdapat pada pompa atau valve.
Perangkat ini menghasilkan signal yang dapat dipantau oleh
PLC atau RTU. Pompa dikendalikan secara manual oleh
operator dengan perintah start/stop melalui HMI. Field
instrument telah disiapkan dengan respon sensor seperti limit
switch, yang menyediakan konektivitas untuk perangkat PLC
lokal atau RTU, yang mengirimkan seluruh data yang telah
dikumpulkan ke host SCADA.
2. PLC dan / atau RTU
PLC (Programmable Logic Controller) dan RTU (Remote
Terminal Unit) digunakan untuk menjadi perangkat yang
memiliki tugas yang hampir sama namun jelas berbeda. RTU
bertugas untuk menjalankan perintah dari master HMI dan juga
bertugas untuk akuisisi data dari field instrumentation dan
pengontrolan suatu terminal, dibutuhkan jika ada banyak
perangkat yang perlu dikontrol dan jarak perangkat terhadap
MTU jauh. RTU biasanya terhubung dengan perangkat fisik
seperti sensor, controller atau yang lainya. RTU juga bertugas
mengkonversi sinyal – sinyal dari perangkat yang dapat berupa
sinyal listrik, atau sinyal dari sensor menjadi sinyal digital.
Sinyal digital akan dikirimkan kembali ke server sebagai
sistem control yang akan ditampilkan pada HMI. RTU juga
dapat digantikan dengan PLC (Programmable Logic
Controller) yang melakukan fungsi kontrol. Lingkungan
tempat bekerja PLC hanya pada kondisi suhu tertentu.
3. Communication Network
Remote Communication Network perlu untuk transmisi data
dari RTU/PLC yang berada pada lokasi berbeda (luar field atau
sepanjang pipeline) ke SCADA host yang ditempatkan pada
pusat pengendalian data yang jaraknya jauh dari RTU/PLC
melalui media berupa kabel, telepon, dan radio. Komunikasi
menggunakan protokol ModBus yang berfungsi sebagai
pengendali komunikasi.
4. Human Machine Interface
Bagian terpenting dari sistem SCADA yang berfungsi
sebagai jembatan bagi operator untuk memahami proses yang
terjadi. Proses yang ditampilkan berupa keadaan perangkat
yang berjalan pada SCADA seperti valve terbuka/tertutup,
pompa air berjalan atau tidak dan sebagainya. Dari HMI
operator juga dapat dilakukan pengendalian proses.
Jenis SCADA yang diujicobakan pada project ini adalah
SCADA Delineation Plant. Arsitektur SCADA Delineation
Plant diperlihatkan lebih jelas lagi pada gambar.
Gambar 1. Arsitektur sistem SCADA
C. Modbus Protocol[6]
Modbus Protokol adalah protokol komunikasi standar di
indsutri yang digunakan untuk melakukan control dari master
seperti membaca data, menulis data, serta mengecek status
pada slave melalui perantara serial port (RS-232, RS-485, FO).
SCADA menggunakan beberapa jenis Modbus protokol untuk
menjalankan komunikasi.Berikut adalah gambar dari Modbus
communication layer :
Gambar 2. Modbus Protocol
3. D. Penggunaan Perangkat Gateway[11]
Gateway device adalah sebuah perangkat yang digunakan
untuk menghubungkan satu jaringan komputer dengan satu
atau lebih jaringan komputer yang menggunakan protokol
komunikasi yang berbeda sehingga dapat saling
berkomunikasi. Pada project ini, gateway device sebagai
perangkat yang berfungsi untuk mengautentikasi sebuah entity.
Gateway device diletakkan pada titik dekat dengan PLC
(SCADA Controller). Perangkat yang akan dipakai adalah
Raspberry Pi. Perangkat ini sering juga disingkat dengan nama
Raspi yang merupakan komputer papan tunggal Single Board
Circuit (SBC) yang memiliki ukuran sebesar kartu kredit.
Fungsi yang dapat dilakukan hampir menyerupai laptop, hanya
saja perangkat output-nya yang harus dihubungkan lagi dengan
monitor. Pada Rasberry Pi akan ditanamkan program java
socket yang berisi fungsi untuk menangkap pesan yang
dikirimkan dari PLC dan meneruskan pesan ke device
selanjutnya.
E. Enkripsi
Enkripsi adalah suatu proses untuk merubah sebuah pesan,
data atau informasi yang masih berbentuk plaintext menjadi
ciphertext sehingga informasi tersebut tidak dapat dibaca oleh
orang lain yang tidak berkenan. Sedangkan proses
kebalikannya yaitu untuk memperoleh plaintext dari chipertext
disebut dekripsi. Pada project ini, aloritma enkripsi yang
digunakan untuk mengamankan sistem adalah algoritma RC-4.
Sebuah perusahaan di UK, Javamex UK melakukan
pengukuran kecepatan enkripsi pada berbagai algoritma yang
tersedia sebagai standar di SunJDK.Berikut adalah grafik dari
pengukuran yang dilakukan.
Gambar 3. Grafik kecepatan algoritma enkripsi
F. Proses Autentikasi
Autentikasi merupakan suatu mekanisme untuk
memverifikasi suatu identitas apakah valid atau tidak. Dengan
menggunakan autentikasi sistem dapat terhindar dari akses
terlarang yang dapat membahayakan sistem.
Metode autentikasi yang digunakan pada project adalah
Hash-base Message Authentication (HMAC). Pada metode ini
akan digunakan hashing terhadap pesan yang akan dikirim.
Pesan akan dihashing menggunakan secret key yang telah di
dibagikan ke client (HMI) dan server (Raspberry Pi). Proses
hashing pada client dan server menggunakan operasi yang
sama dan menghasilkan output HMAC yang dijadikan
parameter autentikasi. Jika hasil hashing pada client dan server
otentik maka, pesan tersebut merupakan pesan yang valid dan
tidak mengalami modifikasi.Setelah berhasil dan terautentika,
pesan akan diteruskan ke SCADA controller.
III. IMPLEMENTASI
A. Enkripsi RC-4
Algoritma ini didesain oleh Ron Rivest yang berasal dari
RSA Data Security Inc (RSADSI) pada tahun 1987. RC4
termasuk ke dalam algoritma simetri dimana menggunakan
kunci yang sama untuk proses enkripsi dan dekripsi[1]
.
Secara garis besar algoritma RC4 terbagi menjadi dua
bagian yaitu:
1. Key setup/ Key Scheduling Algorithm (KSA)
Pada bagian ini kunci yang akan digunakan dimasukkan ke
dalam array berukuran 256 byte. Jika panjang key kurang dari
256 maka key akan disusun berulang. Kemudian dilakukan
permutasi pada S-Box yang sudah ditentukan sehingga akan
dihasilkan pengacakan S-Box berdasarkan key yang digunakan.
2. Pseudo Random Generation (PRGA)
Pada tahap ini dihasilkan nilai pseudo random dikenakan
operasi XOR untuk menghasilkan chipertext ataupun
sebaliknya untuk menghasilkan plaintext.
Skema algoritma RC4 dapat dilihat pada gambar :
Gambar 4. Skema Algoritma RC-4
Selain RC4 mudah penerapannya, berikut beberapa keunggulan
dari algoritma RC4:
1. Proses enkripsi cepat karena berbasis stream chiper
yang melakukan enkripsi “one byte at a time”.
2. Sulit untuk diretas karena kemungkinan kombinasi
permutasi pada S-Box sebanyak 21700
(256! X 2562
).
3. Mendukung penggunaan kunci yang panjang,bisa
sampai 2048 bit.
4. Algoritma RC4 ini akan digunakan untuk melakukan
enkripsi terhadap message dan hasil hashing yang akan
dikirimkan oleh client. Berikut adalah output message yang
telah di enkripsi :
Dan berikut adalah output hasil enkripsi dari hashing yang
dilakukan pada client :
B. Hash-base Message Authentication
Pada metode ini akan digunakan hashing terhadap pesan
yang akan dikirim. Sebelum pesan dienkripsi menggunakan
RC-4 yang telah dilakukan sebelumnya, pesan akan melalui
proses hashing. Pesan akan dihashing menggunakan secret key
yang telah di dibagikan ke client (HMI) dan server (Raspberry
Pi). Proses hashing pada client dan server menggunakan
operasi yang sama dan menghasilkan output HMAC yang
dijadikan parameter autentikasi. Berikut adalah skenario
metode autentikasi yang akan diterapkan pada sistem dapat
dilihat dalam bentuk block diagram dan flowchart.
Berikut tahapan berjalannya proses metode MAC address:
1. Client dan Server telah mendapatkan kunci rahasia (secret
key) yang telah diset secara internal.
2. Pesan yang akan dikirim dari client akan melalui proses
hashing dengan menggunakan secret key yang telah
didapatkan.
3. Output dari hasil hashing yang telah dilakukan akan di
digabungkan dengan pesan asli.
4. Gabungan dari hasil hashing dan pesan asli akan dienkripsi
dengan metode RC4 dan diteruskan ke server dan
selanjutnya dilakukan dekripsi.
5. Setelah didekripsi, pesan akan melalui proses hashing yang
sama seperti yang dilakukan pada client dan key yang sama
juga.
6. Selanjutnya akan dilakukan compare terhadap hasil hashing
yang telah dilakukan pada client dan server.
7. Jika otentik maka dapat dipastikan pesan tersebut valid dan
tidak mengalami modifikasi, dan pesan diteruskan ke
SCADA controller
Code Generate HMAC :
public class HmacSignature {
private static final String HMAC_SHA1_ALGORITHM =
"HmacSHA1";
private static String toHexString(byte[] bytes) {
Formatter formatter = new Formatter();
for (byte b : bytes) {
//formatter
formatter.format("%02x", b); }
return formatter.toString(); }
//calculate data with key
public static String calculateRFC2104HMAC(String data,
String key)
throws SignatureException, NoSuchAlgorithmException,
InvalidKeyException {
SecretKeySpec signingKey = new SecretKeySpec
(key.getBytes(), HMAC_SHA1_ALGORITHM);
Mac mac = Mac.getInstance(HMAC_SHA1_ALGORITHM);
mac.init(signingKey);
return toHexString(mac.doFinal(data.getBytes()));
}
public static void main(String[] args) throws Exception {
//data dan secret
String hmac = calculateRFC2104HMAC
("68dc00000008000f006300010100", "secret");
System.out.println(hmac);
}}
Message
Original
E
HMAC
Function
(SHA1)
Message
HMAC Result
Message
HMAC Result
Message
Original HMAC
Function
(SHA1)
?
K Secret Key
Secret Key
K
K
Compare
Ciphertext Ciphertext
Client Server
||
D
Gambar 5. Block Diagram H MAC Address Authentication
Gambar 6. Flowchart Operator Hash-base Message Authentication
5. Gambar 7. Flowchart Hash-base Message Authentication
Berikut pseudocode dari metode Hash-base Message
Authentication
Client:
request Socket
//Generate HMAC result
HMAC Signature (“data”, “key”)
//Send HMAC result
send(HMAC)
//Receive(response)From Server
if(response valid){
//encryption with RC4
Encrypt (“Message”)
Send Message() /ON,OFF Pump
}
Connection.close()
Else{
Authentication
failed
Send notification
Send Exit
}
Server:
create Socket
//Waiting for connection
Connection.accept()
//Receive HMAC result
receive(HMAC)
//Generate HMAC result
HMAC Signature (“data”,”key”)
//Compare HMAC result
If(HMACClient equals HMACServer){
Receive Message()
//Decryption with RC4
Decrypt(“message”)
Send Real Message -> SCADA
Controller
}
Else{
Authentication failed
Send notification
Connection closed
}
Berikut adalah tampilan output pada client dan server :
Gambar 8. Client side (Human Machine Interface)
Gambar 9. Server side (Raspberry Pi)
IV. KESIMPULAN
6. Proses enkripsi dan autentikasi yang diterapkan dapat
meningkatkan keamanan sistem SCADA. Enkripsi data dengan
algoritma RC-4 menjadikan aliran data antara client dan server
menjadi secure dan terhindar dari sniffing attack. Proses
Autentikasi akan memverifikasi identitas user apakah valid
atau tidak. Dengan menggunakan autentikasi sistem dapat
terhindar dari akses terlarang yang dapat membahayakan
sistem. Autentikasi output metode HMAC yang digenerate
pada client dan server akan menjadi parameter validasi user.
Pengiriman hasil hashing dari client menuju server juga telah
terenkripsi untuk lebih meningkatkan keamanan sistem.
V. REFERENSI
[1] Infosec, diakses pada tanggal 2015-10- 22. Sumber :
http://resource.infosecinstitute.com/improving-scada-
system-security
[2] Wikipedia, diakses pada tanggal 2015-10-20. Sumber
: https://id.wikipedia.org/wiki/SCADA
[3] Igor Nai Fovino, Andrea Carcano, Marcelo Masera
and Alberto Trombetta, “Design And Implementation
Of A Secure Modbus Protocol”
[4] Albert Sagala, Epelin Manurung, Iroma Situmorang,
Adi Gunawan. (2014) . “Secured Communication
Among HMI and Controller using RC-4 Algorithm
and Raspberry Pi”
[5] Albert Sagala, Franky Silalahi, Elni Manurung. (2015)
. “SCADA Network Delineation Plant Assessments”
[6] Curtis R. Taylor, Craig A. Shue, Nathanael R. Paul,
“A Deployable SCADA Authentication Technique for
Modern Power Grids”
[7] Latar Belakang, Alur Data, Aplikasi & Keterbatasan
Protocol Modbus
http://www.arisulistiono.com/2011/04/latar-belakang-
alur-data-aplikasi.html#.VqCnBtIa7X0
[8] What is SCADA? Supervisory Control and Data
Acquisition, diakses pada 25 Januari 2016. Sumber:
https://inductiveautomation.com/what-is-scada
[9] Anitya Permata Utama, Bima Rizky Putra, Setio
Pambudi (2014). “Makalah Sistem SCADA”
[10] Protokol Komunikasi SCADA, diakses pada tanggal
25 Januari 2016. Sumber:
http://luckita90.blogspot.co.id/2014/11/protokol-
komunikasi-scada-perbedaan.html
[11] Mengenai GUI pada Java, diakses pada tanggal 12
November 2015. Sumber:
http://bocahsampah.blogspot.co.id/2012/08/mengenal-
gui-pada-java.html
[12] Gateway Jaringan Komputer, diakses pada tanggal 29
Oktober 2015. Sumber:
https://dimas05.wordpress.com/2008/10/20/gateway-
jaringan-komputer/