Implementasi Kriptografi Untuk Pengamanan Data Sensitif Pada Aplikasi Rekam Medis Charisma Putra J*, Bambang Setiawan, Radityo Prasetianto Wibowo Jurusan Sistem Informasi, Fakultas Teknologi Informasi, Institut Teknologi Sepuluh Nopember, Surabaya, Indonesia *Email:
[email protected] Abstrak Rekam medis adalah data yang bersifat sangat pribadi dan menjadi salah satu informasi penting yang harus dimiliki oleh seorang pasien. Rekam medis berisi tentang catatan-catatan kesehatan pasien seperti identitas pasien, riwayat penyakit pasien, diagnose, dan tindakan dokter. Rekam medis dianggap sebagai data rahasia yang hanya boleh dibuka oleh pihak-pihak tertentu. Salah satu cara untuk menyimpan dan menjaga kerahasiaan data rekam medis adalah dengan menggunakan metode kriptografi. Dengan kriptografi, data-data sensitif yang ada pada rekam medis dapat diamankan. Rekam medis juga erat kaitannya dengan unit bisnis lain seperti Instalasi Rawat Jalan dan Rawat Inap. Sampai saat ini, Rekam Medis yang ada masih terbagi antara Rekam Medis Rawat Jalan dan Rawat Inap tetapi belum terintegrasi diantara keduanya. Metode yang dirujuk untuk melakukan pengamanan data adalah dengan menggunakan sebuah algoritma kriptografi, yaitu sebuah algoritma yang digunakan untuk melakukan enkripsi dan dekripsi. Dengan penerapan algoritma ini data sensitif pada Rekam Medis dapat dijaga kerahasiannya dan tidak mempengaruhi terhadap kecepatan akses aplikasi. Adapun untuk melakukan pengintegrasian dengan aplikasi lain, teknologi yang diterapkan dalam penelitian ini adalah Enterprise Service Bus (ESB). Dengan ESB, suatu aplikasi dapat diintegrasikan satu sama lain meskipun dikembangkan dengan menggunakan bahasa pemrograman yang berbeda. Hasil penelitian ini adalah penerapan kriptografi pada aplikasi rekam medis tidak banyak mempengaruhi performa aplikasi berdasarkan selisih waktu proses antara aplikasi sebelum dan sesudah menerapkan kriptografi. Kata Kunci : Rekam Medis, Kriptografi, Enkripsi, Dekripsi, ESB
1. Pendahuluan Rekam medis (medical record) adalah data yang bersifat sangat pribadi dan menjadi salah satu informasi penting yang harus dimiliki oleh seorang pasien. Rekam medis berisi tentang catatan-catatan kesehatan pasien seperti identitas pasien, riwayat penyakit pasien, diagnose, dan tindakan dokter. Sampai saat ini, rekam medis yang ada masih menggunakan media kertas. Sistem konvensional ini sebenarnya memiliki kelemahan dalam pengamanan data. Karena sifatnya yang sangat rahasia dibutuhkan suatu ruang yang cukup aman dalam penyimpanan data rekam medis ini agar data-data yang ada dalam rekam medis dapat tersimpan dengan aman. Dari awal permasalahan inilah penulis mengembangkan suatu aplikasi rekam medis. Oleh karena rekam medis merupakan dokumen yang sifatnya rahasia dan hanya dapat diakses oleh pihak-pihak tertentu yang mempunyai hak akses terhadap rekam medis tersebut, aplikasi dikembangkan dengan mengimplementasikan pengamanan data menggunakan metode kriptografi sehingga keamanan pada data-data penting dapat terjaga kerahasiannya. Rekam medis juga erat kaitannya dengan unit bisnis lain seperti Instalasi Rawat Inap dan
Rawat Jalan. Rekam medis pasien dibutuhkan oleh Rawat Inap pada saat dokter akan membutuhkan data pasien dan riwayat penyakit pasien pada saat akan melakukan diagnosa dan tindakan medis terhadap pasien. Begitu juga dengan Instalasi Rawat Jalan, rekam medis diperlukan oleh dokter untuk melakukan diagnosa penyakit terhadap pasien. Untuk mengatasi permasalah ini, aplikasi yang telah menerapkan kriptografi ini kemudian diintegrasikan dengan aplikasi lain yang saling berhubungan. Teknologi yang digunakan adalah Enterprise Service Bus (ESB) yaitu sebuah teknologi yang dapat memungkinkan aplikasi-aplikasi yang dikembangkan dapat terintegrasi dengan baik.
2. Tinjauan Pustaka Dalam pembangunan aplikasi, digunakan beberapa dasar dari beberapa sumber bacaan. A. Rekam Medis Dalam penjelasan Pasal 46 ayat (1) UU Praktik Kedokteran, yang dimaksud dengan rekam medis adalah berkas yang berisi catatan dan dokumen tentang identitas pasien, pemeriksaan, pengobatan, tindakan dan pelayanan lain yang telah diberikan kepada pasien.
Dalam Peraturan Menteri Kesehatan Nomor 749a/Menkes/Per/XII/1989 tentang Rekam Medis dijelaskan bahwa rekam medis adalah berkas yang berisikan catatan dan dokumen tentang identitas pasien, pemeriksaan, pengobatan, tindakan dan pelayanan lain kepada pasien pada sarana pelayanan kesehatan. (Konsil Kedokteran Indonesia, 2006) B. Framework OHIS OHIS adalah suatu framework yang memberikan solusi alternatif bagi pengembangan sistem informasi rumah sakit dengan hanya membuat desain perangkat lunak sebagai modul service dan membuat database untuk tiap modul untuk bisa mengimplementasikannya (Mahananto, P.W., N.A., & E.R., 2010). Dengan diterapkannya OHIS, pengembang bisa melakukan pembangunan aplikasi dimulai dari yang kecil ataupun menerapkan yang sudah kompleks sekalipun dikarenakan sudah adanya standar framework dalam penulisan kode pada setiap aplikasi baru yang akan dibuat. Selain itu, juga terdapat dukungan framework SOA didalam OHIS yang menggunakan teknologi webservice yang mampu mengintegrasikan antar modul pada framework OHIS. Hal yang juga penting pada framework ini adalah adanya service locator,service loader, dan service requester yang memungkinkan untuk terjadinya integrasi antar modul, seperti yang terdapat pada gambar 1 :
-
-
Password Identitas pengenal Yaitu informasi sensitif yang berupa identitas sesorang misalnya no. kartu kredit, no. kartu atm, no. rekening bank. Informasi sensitif lain Yaitu informasi sensitif yang berupa catatan penting misalnya adalah rekam medik pasien, data konseling seseorang, tanggal lahir, tanggal kadaluarsa kartu kredit, teknik produksi, daftar gaji, formula suatu produk.
D. Kriptografi Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan yang bertujuan untuk menjaga kerahasiaan informasi yang terkandung dalam data sehingga informasi tersebut tidak dapat diketahui oleh pihak yang tidak bertanggung jawab. Dalam kriptografi terdapat dua konsep utama yakni enkripsi dan dekripsi. Enkripsi adalah proses dimana informasi/data yang hendak dikirim diubah menjadi bentuk yang hampir tidak dikenali sebagai informasi awalnya dengan menggunakan algoritma tertentu. Dekripsi adalah kebalikan dari enkripsi yaitu mengubah kembali bentuk tersamar tersebut menjadi informasi awal. Dari hasil penelitian sebelumnya yang dilakukan oleh Setyorini, S.L (2008), didapatkan beberapa informasi penting yang berhubungan dengan pengimplementasian kriptografi untuk data sensitif. Setyorini, S.L (2008) melakukan suatu uji coba untuk menguji beberapa algoritma kriptografi untuk menentukan algoritma yang dapat diterapkan sesuai dengan kebutuhan. Adapun uji coba yang dilakukan adalah sebagai berikut: Berdasarkan kecepatan waktu proses Tabel 1 hasil uji coba berdasarkan kecepatan waktu proses panja ng asal (kara kter) 4
5
Gambar 1 Arsitektur Framework OHIS.
C. Definisi Informasi Sensitif Informasi sensitif adalah informasi yang dapat menimbulkan kerugian terhadap privasi seseorang atau organisasi, apabila diketahui orang-orang yang tidak berkepentingan. (Setyorini, 2008). Klasifikasi jenis informasi sensitf :
8
10
12
cipher
waktu proses DES Enkrip si Dekrip si Enkrip si Dekrip si Enkrip si Dekrip si Enkrip si Dekrip si Enkrip si
Tripl eDES
AES
RSA
0.175
0.372
0.158
0.444
0.192
0.896
0.317
3.502
0.161
0.227
0.155
0.504
0.192
0.243
0.186
3.304
0.205
0.26
0.191
0.561
0.278
0.385
0.265
4.087
0.276
0.339
0.207
3.778
0.276
0.339
0.207
3.778
1.216
0.287
0.209
3.086
MD5 0.019
0.018
0.018
0.019
0.018
16
19
25
53
125
-
Dekrip si Enkrip si Dekrip si Enkrip si Dekrip si Enkrip si Dekrip si Enkrip si Dekrip si Enkrip si Dekrip si
1.216
0.287
0.209
3.086
0.174
0.232
0.153
0.52
0.213
0.579
0.192
3.11
0.193
0.272
0.264
0.455
0.227
0.524
0.223
3.302
0.185
0.231
0.162
0.431
0.201
0.274
0.19
3.41
0.17
0.256
0.158
0.403
0.191
0.269
0.186
3.05
0.349
0.47
0.331
1.132
0.602
0.907
0.372
3.737
Berdasar panjang dihasilkan
data
luaran
0.021
0.025
0.029
0.12
0.21
yang
Tabel 2 panjang data luaran yang dihasilkan panjang asal (karakter)
panjang data luaran cipher DES
TripleDES
AES
RSA
JCE berisi set paket-paket yang menyediakan framework dan implementasi untuk enkripsi, key generation, key agreement, dan algoritma Message Authentication Code (MAC). (Setyorini, 2008) F. Enterprise Service Bus ESB adalah infrastruktur perangkat lunak yang berlaku sebagai lapisan perantara dari middleware yang menjembatani persyaratan yang tidak bisa dipenuhi oleh webservice, seperti : • Integrasi antar webservice dan teknologi middleware yang berbeda, • Tingkat keamanan, ketergantungan dan robustness yang tinggi • Kontrol dan pengelolaan dari komunikasi dan servis dari webservice Gambar 2 adalah arsitektur aplikasi apabila sudah terdapat ESB sebagai lapisan perantara:
MD5
4
16
16
32
128
32
5
16
16
32
128
32
8
32
32
32
128
32
10
32
32
32
128
32
12
32
32
32
128
32
16
48
48
64
128
32
25
64
64
64
128
32
53
112
112
128
128
32
125
256
256
256
384
32
E. Java Cryptography Extension (JCE) Java Cryptography Extension (JCE) adalah sebuah program aplikasi antarmuka (API) yang menyediakan kerangka seragam untuk pelaksanaan fitur keamanan di Java. Hal ini awalnya dikembangkan untuk melengkapi Java 2 Software Developer Kit (SDK), Standard Edition, versi 1.2.x dan 1.3.x, tetapi sejak itu telah diintegrasikan ke dalam versi Java 2 SDK, 1.4. JCE mendukung beberapa aplikasi keamanan digital, seperti berikut: - Symmetric cipher - Asimetris cipher - Stream cipher - Blok cipher - Kunci generasi - Kunci penyimpanan - Kunci pencarian - Stream aman - Sealed benda - tanda tangan digital - Pesan Authentication Code (MAC) algoritma (JCERefGuide, 2004)
Gambar 2 Arsitektur umum aplikasi setelah menggunakan ESB.
3. Pembahasan Pembangunan aplikasi Rekam Medis yang selanjutnya disebut dengan RM dilakukan dengan menggunakan tools Netbeans, Framework ZK untuk membuat tampilan aplikasi, AES sebagai algoritma kriptografi dan JCE sebagai penyedia kriptografi dalam Java, SOAP untuk webservice dan WSO2 sebagai esb yang nantinya menjadi jembatan komunikasi antar aplikasi RM dengan aplikasi lainnya. Dalam pembangunan aplikasi RM ini dilakukan beberapa tahapan, yaitu: • Studi literatur dan pembahasan • Survey dan pengambilan dokumen yang diperlukan. • Perancangan desain system • Standarisasi web service • Pembuatan aplikasi o Implementasi aplikasi o Implementasi kriptografi o Implementasi webservice o Impelentasi esb • Pengujian sistem
•
3.1. Studi literatur Studi literatur yang dilakukan dalam pembuatan tugas akhir ini adalah pembelajaran dan pemahaman literatur yang berkaitan dengan permasalahan yang ada. Beberapa yang akan dipelajari seperti penerapan algoritma kriptografi pada aplikasi lain, cara membuat webservice, contoh sistem informasi rumah sakit, membuat sistem informasi menggunakan Java Persistance API (JPA), ZK, dan teknologi pendukung lainnya. Literatur didapatkan dari banyak sumber seperti buku, video tutorial dan halaman website.
Struktur kelas tampilan Pada implementasi pengembangan aplikasi Rekam Medis (RM) penulis menggunakan ZK. Fungsi kelas antar muka adalah sebagai membuat tampilan aplikasi yang nantinya akan digunakan oleh pengguna aplikasi. Gambar 3 menunjukkan salah satu contoh kelas tampilan yang digunakan.
3.2. Survey dan pengambilan dokumen yang diperlukan Tahapan ini menghasilkan informasi mengenai proses bisnis dari RM yang nantinya akan diterapkan dalam aplikasi RM. Hasil dari tahapan ini menjadi acuan dalam pembuatan aplikasi.
Gambar 3. Contoh potongan kode kelas tampilan.
3.3. Perancangan desain sistem.
3.5.2. Implementasi Kriptografi
Tahapan ini menghasilkan 1) GUI Storyboard yang digunakan sebagai acuan untuk jalannya aplikasi RM dilihat dari desain tampilannya, 2) Domain model yang menunjukkan objek-objek yang digunakan dalam pembangunan aplikasi, 3) Diagram dan deskripsi use case yang menunjukkan alur yang mungkin terjadi ketika menggunakan aplikasi, 4) Diagram sequence yang menunjukkan jalannya aplikasi dilihat dari sisi aplikasi, 5) Test case merupakan rancangan yang digunakan dalam tahapan pengujian aplikasi dari sisi fungsional.
3.4. Standarisasi web service Pada tahapan ini menghasilkan katalog servis yang berisi kebutuhan data aplikasi lain terhadap RM di mana RM bertindak sebagai server. Pada tabel 3 dibawah ini adalah contoh dari hasil pembahasan standarisasi webservice. Tabel 3. Servis katalog pada aplikasi IRNA
Client Service
Servis
Rawat Inap dan Rawat Jalan Aplikasi Akuntan si
List -Token (ip, code) data -getListPasien pasien -logout -(token)
Mengirimkan daftar pasien
Detail pasien
Mengirimkan detail pasien berdasar nomer RM
Flow Servis
Keterangan
Berdasarkan hasil penelitian sebelumnya, algoritma kriptografi yang digunakan adalah algoritma AES. Algoritma ini telah termasuk dalam library Java Cryptography Extension (JCE) yang menjadi satu dengan paket Java 2 SDK. Implementasi kriptografi pada aplikasi rekam medis dimulai dengan membuat sebuah class yang akan mendefinisikan algoritma kriptografi yang akan digunakan, proses enkripsi yang mengubah data asli (plaintext) ke dalam bentuk ciphertex, dan proses dekripsi yang akan mengembalikan data ciphertext ke dalam bentuk asli (plaintext).
Gambar 4. potongan kode kriptografi.
3.5.3. Implementasi webservice
-Token (ip, code) -getPasien(norm) -logout (token)
3.5. Pembuatan Aplikasi Hasil dari tahapan sebelumnya digunakan dalam tahapan pembuatan aplikasi ini.
3.5.1. Implementasi aplikasi
Pembuatan servis pada aplikasi ini mengikuti servis katalog yang sudah dibahas pada bab sebelumnya. Berikut salah satu contoh potongan kode pada implementasi web servis sebagai server dapat dilihat pada gambar 5.
menggunakan parameter –n sebesar 1000 yang artinya total request yang dilakukan adalah 1000 request, sedangkan untuk parameter –c diubahubah mulai dari 10 sampai 100 untuk bisa mendapatkan grafik dari halaman yang paling sedikit request per second nya : Tabel 4. Tabel hasil uji coba request per second. concurency level
Halaman yang diakses
Gambar 5. Contoh potongan kode untuk implementasi webservice
3.5.4. Implementasi esb Sesuai dengan tujuan pada tugas akhir ini, aplikasi RM akan diintegrasikan dengan aplikasi lain menggunakan teknologi Enterprise Service Bus (ESB). Fungsi ESB adalah untuk melakukan pengintegrasian antar aplikasi yang ada melalui webservice antar aplikasi.Pada gambar 6 dibawah ini adalah salah satu contoh penerpan esb pada aplikasi.
10
50
100
1000
Halaman login
33.6
25.14
41.28
89.16
halaman pasien halaman anamnesa halaman tindakan
36.4
29.12
47.91
89.03
20.43
26.13
48.38
87.45
33.81
31.69
43.17
93.85
Hasil lain yang didapatkan adalah perbandingan waktu yang diperlukan dalam satu request pada halaman yang diuji. Tabel 5 adalah perbandingan waktu satu request pada aplikasi Rekam Medis. Tabel 5. Tabel hasil uji coba request per second Halaman yang diakses Halaman login halaman pasien halaman anamnesa halaman tindakan
Gambar 6. Contoh penerapan esb.
3.6. Pengujian sistem Tahapan ini meluputi 2 tahapan pengujian yaitu 1) uji coba fungsional aplikasi menggunakan test case yang telah dibuat sebelumnya 2) uji coba non fungsional dengan menguji performa dari system. Hasil dari uji coba fungsional adalah aplikais telah menunjukkan pemenuhan kebutuhan fungsional. Uji coba Non Fungsional atau uji coba performa sistem. Untuk uji coba performa ini dilakukan terlebih dahulu dengan menggunakan Apache Benchmark untuk mendapatkan halaman yang memiliki request time paling lama, kemudian halaman yang paling lambat tersebut diuji lagi dengan menggunakan fitur yang ada pada Netbeans 6.8 yaitu profiler project. Dengan menggunakan fitur ini, dapat terlihat method mana yang membuat load time menjadi lama, sehingga bisa dilakukan optimasi lebih lanjut pada method atau fungsi tersebut. Tabel 4 adalah hasil uji performa aplikasi RM dengan Apache Benchmark. Setting yang dilakukan pada saat melakukan uji coba adalah
concurency level
10
50
100
1000
297.649
1989.003
2422.684
11216.42
274.716
1716.783
2087.284
11232.02
489.373
1913.343
2067.004
11434.82
295.777
1577.943
2316.604
10654.819
Perbedaan kecepatan akses halaman disebabkan pada banyaknya data dan hubungan antar tabel yang ada. Misalkan pada halaman anamnesa yang memiliki waktu request paling lama. Hal ini desebabkan pada di dalam halaman anamnesa terdapat beberapa tabel yang saling berhubungan seperti tabel pasien, anamnesa dan tindakan sehingga dibutuhkan waktu yang cukup lama jika dibandingakan dengan halaman lain seperti halaman pasien yang hanya berisi tabel pasien. Uji coba berikutnya adalah menguji pengaruh kriptografi dalam proses aplikasi RM. Hasil yang didapat pada uji coba kali ini menyebutkan bahwa selisih waktu antara aplikasi sebelum dan sesudah mengimplementasikan kriptografi tidak berbeda jauh. Gambar 7 adalah grafik perbandingan waktu proses antara aplikasi sebelum dan sesudah mengimplementasikan kriptografi.
http://java.sun.com/j2se/1.4.2/docs/guide/security/jce /JCERefGuide.html [5]Keith, M., & Schincariol, M. (2009). Pro JPA 2 Mastering the Java Persistence API (Expert Voice in Java Technology). i M. Keith, & M. Schincariol, Pro JPA 2 Mastering the Java Persistence API (Expert Voice in Java Technology) (ss. 13-15). New York: Appress. [6]Kemastuti, E., Noor Ali, A. H., & Mahananto, F. (n.d.). Pembangunan Modul Rawat Inap (IRNA) Dan Pengintegrasian Dalam Purwarupa Sistem Informasi Rumah Sakit Terpadu (SIRST) Berbasis SOA. Gambar 7 perbandingan aplikasi RM sebelum dan sesudah mengimplementasikan kriptografi
4. Kesimpulan Dari pembahasan di atas, dapat diambil beberapa kesimpulan sebagai berikut. 1. Karakteristik data sensitif pada Rekam Medis terdiri dari identitas pasien, anamnesa diagnosa pasien, kondisi klinis pasien, dan tindakan dokter yang hanya berhak diketahui oleh yang berwenang untuk melihatnya. 2. Selisih waktu proses antara aplikasi rekam medis sebelum dan sesudah menerapkan kriptografi tidak berbeda jauh. 3. Aplikasi Rekam Medis terintegrasi dengan baik dengan aplikasi lain menggunakan Enterprise Service Bus (ESB). 4. Penerapan kriptografi pada aplikasi rekam medis sedikit mempengaruhi performa aplikasi, melainkan penggunaan framework ZK yang paling banyak mempengaruhi performa aplikasi
5. Daftar Pustaka [1]Chen, Henri (2008). ZK - Ajax without JavaScript. Apress. p. 125. ISBN 978-1590599013. [2]Doug Rosenberg, Matt Stephens. Use Case Driven Object Modeling with UML Theory and Practice. [3]Holil Noor Ali, A., P.W., Radityo., Er, Mahendrawati., & Nisafani, A. S. (n.d.). Restructuring Components of Integrated Health Information System In Outpatient and Inpatient Departement Using Service Oriented Architecture. [4]JCERefGuide, January 2004, JavaTM Cryptography Extension (JCE) Reference Guide for the JavaTM 2 Platforms Standard Edition Development Kit (JDK) 5.0, Sun Microsystems, Inc.
[7]Mahananto, F., P.W, Radityo., Holil N.A, A., & Er, Mahendrawati. (n.d.). OHIS : SOA Based Growable Healthcare Information System. [8]Nufus, H. (2009). Pembuatan Aplikasi Kriptografi Algoritma BASE64 Menggunakan JAVA JDK 1.6. [9]Raja. (u.d.). article: 5-introduction-to-javapersistence-apijpa-1. Hämtat från javabeat: http://www.javabeat.net/articles/5-introduction-tojava-persistence-apijpa-1.html den 30 december 2010 [10]Setyorini, S.L (2008). Implementasi Kriptografi Untuk Pengamanan Informasi Sensitif Menggunakan Java Cryptography Extension. [11]Sjamsuhidajat, Alwy, S. Manual Rekam Medis. Konsil Kedokteran Indonesia, 2006. [12] Wolper, L.F,. Administrasi Layanan Kesehatan. EGC, Jakarta, 2001 [13]W3School. (n.d.). Introduction to Web Services. Retrieved from W3School: http://www.w3schools.com/webservices/ws_intro.as p