Pada postingan kali ini, saya ingin memberitahu cara mempersiapkan CentOS 7 untuk ‘ngobrol’ secara aman dengan Luna 7 (yang selanjutnya akan saya sebut dengan HSM) melalui NTL (Network Trust Links). Tujuan sebenarnya adalah agar aplikasi (EJBCA) dapat berkomunikasi dengan HSM, namun terlebih dahulu level Sistem Operasi lah yang harus bisa melakukannya.
Menurut Safenet, NTL (Network Trust Links) adalah koneksi jaringan yang aman dan terautentikasi antara HSM dengan clientsnya. NTLs ini menggunakan autentikasi sertifikat digital 2 arah dan data enkripsi SSL untuk melindungi data sensitif yang melewati jalur antara partisi HSM pada Luna SA dan client. Port yang digunakan pada HSM untuk NTLs adalah 1792.
NTLs terdiri atas 3 bagian yaitu:
- Network Trust Link Service (NTLS) yang berada pada HSM.
- Network Trust Link Agents (NTLA) yang terinstal pada Clients.
- Network Trust Link itu sendiri, sebuah koneksi aman yag terbentik antara NTLS dan sebuah NTLA yang terautentikasi
Alat dan Bahan:
- Server CentOS 7 (alamat IP: 192.168.1.12)
- Luna 7 (alamat IP: 192.168.1.2)
- Paket Safenet yang akan diinstall pada CentOS Server sebagai client.
Baca juga: cara menerbitkan sertifikat SSL melalui EJBCA
Konfigurasi pada HSM
- Ketika pertama kali dinyalakan, HSM belum memiliki IP Address. Untuk itu kita perlu untuk memberikan IP Address kepada HSM ini guna mempermudah proses pengaksesannya di masa mendatang dan juga untuk keperluan teknis lainnya.
Pertama, hubungkan HSM dengan server melalui koneksi serial. Pada Luna 7, Port Serial tidak lagi sama seperti seri HSM sebelumnya. Kini sudah menggunakan USB Port dan letaknya ada di bagian belakang dari HSM. - Kalau sudah terhubung, login menggunakan user admin dan masukkan password yang kita tentukan. Perlu diingat bahwa password ini tidak boleh hilang atau lupa karena kalau lupa maka tidak bisa di reset.

Login ke dalam HSM - Setelah masuk, jalankan perintah hsm show terlebih dahulu untuk melihat details dari HSM. Mulai dari Software Version, Partitions Details dan lainnya.

HSM Show Dari gambar di atas, kita bisa melihat kalau dalam HSM ini memiliki 5 partisi namun belum ada partisi yang dibuat. Saya juga belum memberikan label dan HSM Admin login di sini adalah untuk login ke dalam partisi.
- Sebelum memberikan label, terlebih dahulu kita akan menambahkan Static IP Address. Jalankan perintah network untuk melihat opsi apa saja yang ada untuk memberikan IP.

Command Network - Secara lengkap, perintah untuk menambahkan IP adalah seperti berikut:
network interface -device <nama_device> -ip <alamat_ip> -netmask <netmask> -gateway <alamat_gateway>

Pemberian IP Address Pada contoh di atas, alamat IP yang saya berikan pada eth3 adalah 192.168.1.5.
Alamat IP yang saya gunakan sebenarnya adalah 192.168.1.2 pada eth0. Di atas hanyalah contoh perintah untuk menambahkan alamat IP.
Untuk melihat daftar IP yang tersedia, jalankan perintah network show.
- Nah, setelah memberikan IP Address, barulah sekarang kita memberikan Label kepada HSM ini. Jalankan perintah hsm init untuk mengetahui opsi dalam proses inisiasi saat memberikan nama label.

Perintah hsm init - Secara lengkap, perintah untuk memberikan label adalah seperti berikut:
hsm init -label <nama_label>

Pemberian label Dalam proses inisiasi, pertama kali kita akan diminta untuk memasukkan Token Biru ke dalam PED key yang kedepannya berfungsi sebagai admin. Terdapat nilai M/N yang harus ditentukan dan juga password untuk token tersebut. M adalah nilai untuk mengaktifkan HSM, sedangkan N adalah total yang memegang token tersebut. Sebagai contoh, misalkan kamu memberikan nilai M=2 dan N=5, Itu berarti diperlukan 2 admin untuk mengaktifkan HSM dari 5 admin yang tersedia.
Setelah selesai, kita diminta untuk login kembali dengan Token Biru yang baru saja kita set. Baru setelah itu, PED akan meminta kita untuk memasukkan Token Merah yang berfungsi sebagai Domain. Cabut Token Biru tersebut, kemudian masukkan Token merah untuk memasukkan nama domain.
Yang perlu diperhatikan saat memasukkan Token, baik biru ataupun merah, adalah password minimal yang bisa dimasukkan adalah 4 karakter.
- IP Address sudah ada, Label sudah dibuat, tahap selanjutnya adalah login. Jalankan perintah hsm login dan kemudian masukkan kembali Token Biru yang digunakan sebagai proses otentikasi. Pastikan kalau login yang kamu lakukan sukses.

hsm login - Salah satu keuntungan menggunakan HSM ini adalah banyak partisi yang bisa kita gunakan di dalamnya dan user yang di-assign untuk satu partisi tidak bisa mengakses partisi lainnya. Namun sebelum kita bisa menggunakan partisi tersebut, terlebih dahulu kita harus membuat partisinya. Setelah login, jalankan perintah partition create untuk melihat opsi dalam membuat partisi.

Perintah Partition Create - Secara lengkap, perintah untuk memberikan partisi adalah seperti berikut:
partition create -partition <nama_partisi>

Pemberian partisi Pada contoh di atas, nama partisi yang sukses saya buat adalah cobacoba.
- Setelah membuat partisi tersebut, sekarang waktunya untuk melihat details dari partisi tersebut. Caranya adalah dengan menjalankan perintah partition show dan partition list

perintah partition show dan partition list - Tahap selanjutnya adalah membuat certificate dan key untuk HSM. caranya jalankan perintah syscon regenCert.

Generate Key dan cert untuk HSM Jalankan perintah syscon regenCert cukup satu kali saja, karena jika kita menjalankannya berulang-ulang, maka cert dan key akan di-generate baru.
Konfigurasi pada CentOS 7
- Untuk bisa terhubung dengan HSM, terlebih dahulu kita perlu melakukan instalasi paket-paket yang diperlukan. Masuk ke dalam folder LunaClient_7.0.0-956_Linux/64 yang didapat dari CD saat membeli. Setelah itu jalankan perintah ls untuk melihat paket apa saja yang tersedia di dalamnya

Paket-paket yang tersedia dan siap untuk diinstal - Kalau dilihat, di dalam folder tersebut sudah tersedia file install.sh yang bisa kita eksekusi langsung guna menginstall semua paket. Eksekusi file tersebut dengan perintah sh install.sh
Ketika ada pertanyaan “Do you agree ………”, tekan y kemudian tekan enter.
Proses eksekusi file install.sh - (Masih dalam proses ekskusi file install.sh) Ketika ada pilihan Produk Luna yang ingin diinstal, tekan 1 kemudian tekan N.

Pilih 1 untuk Luna Network 
Setelah itu pilih next - Ketika ada pilihan Komponen Luna yang ingin diinstal, tekan 1 kemudian tekan I. Kini ada 3 komponen yang akan diinstal yaitu Luna SDK, Luna JSP, Luna JCProv.

Tekan 1 
kemudian tekan I untuk Install - SIlahkan seduh kopi dan biarkan proses instalasinya selesai.

instalasi selesai - Berikutnya, copy cert milik HSM ke dalam CentOS 7 ini. Caranya:
cd /usr/safenet/lunaclient mkdir servercert cd servercert scp admin@192.168.1.2:server.pem .

Copy cert milik HSM ke dalam server - Setelah berhasil meng-copy cert milik HSM, sekarang waktunya menambahkan HSM ini ke dalam server list. Caranya:
cd /usr/safenet/lunaclient/bin ./vtl addserver -n <ip_HSM> -c <lokasi_cert_dari_HSM>

Menambahkan HSM ke dalam server list - Sekarang waktunya kita membuat cert dan key untuk server CentOS kita. Caranya:
./vtl createcert -n <common_name>

create cert dan key untuk server CentOS Pada contoh di atas, saya menggunakan alamat IP sebagai Common Name. Kalian bisa menggantinya dengan yang lain.
- Setelah cert berhasil dibuat, selanjutnya copy-kan cert tersebut ke dalam HSM. Caranya:
scp <lokasi_cert> <username>@<ip_HSM>:

Meng-copy cert server ke dalam HSM lokasi file cert pada contoh di atas adalah /usr/safenet/lunaclient/cert/client/192.168.1.12.pem
sedangkan untuk user HSM adalah admin dan alamatnya 192.168.1.2
Kembali ke HSM
- HSM dan CentOS server sudah saling bertukar sertifikat. Selanjutnya kita akan menambahkan client yang bisa terhubung ke dalam HSM ini. Untuk melihat apakah sudah ada client yang terhubung, jalankan perintah client list:

client list: cara untuk melihat client yang terhubung - Jika sudah ada client dan memang kita ingin menghapus client tersebut, jalankan perintah dengan syntax berikut:
client delete -c <nama_client>

cara menghapus client Pada contoh di atas, saya menghapus client dengan nama 10.10.10.3 dan io. Setelah itu saya menjalankan kembali perintah client list untuk melihat apakah clients tersebut sudah benar terhapus atau belum.
- Sekarang mari kita daftarkan client baru. caranya:
client register -c <nama_client> -ip <alamat_ip>

mendaftarkan client baru Pada contoh di atas, saya menambahkan client dengan nama cobacobaclient yang memiliki ip address 192.168.1.12
- Proses pendaftaran client dapat terjadi karena HSM dan Server sudah saling bertukar sertifikat. Sekarang mari kita coba untuk medaftarkan client secara asal. Kita ubah alamat IP-nya menjadi 192.168.1.10

Proses gagal proses gagal karena HSM tidak bisa menemukan cert dari client.
- Sebelumnya, kita sudah membuat partisi dengan nama cobacoba. Sekarang kita akan menempelkan client yang sudah kita buat (cobacobaclient) pada partisi cobacoba. Caranya:
client assignPartition -c <nama_client> -p <nama_partisi>

assignPartition: menempelkan si partisi dengan client Gunakanlah perintah assignPartition untuk melihat opsi apa saja yang tersedia pada perintah tersebut.
- Untuk melihat client yang sudah terdaftar, gunakan perintah client list dan kemudian jalankan perintah partition list untuk melihat partisi yang ada.

terlihat kalau cobacobaclient sudah terdaftar sebagai client - Untuk melihat partisi mana yang sudah berhasil ditambahkan pada cobacobaclient, jalankan perintah berikut:
client show -client <nama_client>

cara untuk melihat partisi yang berhasil ditambahkan ke client - Sekarang waktunya me-restart service NTLS. Caranya:
ntls bind all service restart ntls

restart service ntls - Setelah di restart, sekarang kita akan melihat apakah IP dari client bisa melakukan NTLS. Caranya:

Pemeriksaan IP client - Untuk lebih jelasnya, jalankan perintah ntls information show

Menampilkan informasi NTLS Dari gambar di atas terlihat kalau belum ada koneksi klien terhadap HSM.
- Untuk membuat koneksi antara HSM dengan Server. Kini kita perlu kembali lagi ke Server.
Kembali ke Server
Untuk membuat koneksi dengan HSM yang sudah mendaftarkan Server ini sebagai client, jalankan perintah berikut:
cd /usr/safenet/lunaclient/bin ./vtl verify

Kembali lagi ke HSM
Setelah porses vtl verify yang dilakukan pada clien, kembali kita akan mnjalankan perintah ntls information show untuk melihat hasil terbarunya

Menambahkan Objek ke dalam Partisi
Belum lengkap rasanya apabila kita belum menambahkan objek ke dalam partisi yang baru saja di assign kepada klien. Untuk mengujinya, Luna SA Client sudah menyediakan fungsi untuk itu. Caranya:
- Pada CentOS Server, masuk ke dalam direktori safenet
cd /usr/safenet/lunaclient/bin
- Eksekusi file lunacm
./lunacm

lunacm - Kalau dilihat, slot 0 dimana client ini di-assign, belum memiliki label. Untuk memberikan label, jalankan perintah berikut:
partition init -l <nama_label> -p <password>
Pada contoh ini, saya akan memberikan nama label cobacoba dengan tanpa menggunakan password
partition init -l cobacoba
Saat memberikan label ini, proses inisiasi akan dimulai. Kembali tancapkan token biru pada PED Key. Gunakan Token Biru yang baru, bukan Token Biru yang digunakan sebagai admin HSM tadi. Kita sebut TOken Biru yang baru ini sebagai Token Biru Partition.
Proses yang sama akan dimulai, kita diminta untuk menentukan nilai M/N kembali. Untuk saran saya, kali ini gunakanlah nilai M=1 dan N=1.
Kalau sudah, cabut Token Biru dan lanjutkan dengan Token Merah. Untuk Token yang berwarna merah ini, kita bisa menggunakan Token yang sama dengan token merah sebelumnya karena ini adalah partition pertama dan (mungkin) berada pada domain yang sama.
*Catatan: slot yang saya miliki di atas hanya satu. Untuk menggunakan slot yang tersedia, jalankan perintah slot set -slot <nomor_set>
- Setelah selesai, keluarlah dari lunacm dan kembali jalankan ./vtl verify. Kini sudah ada labelnya.

Sekarang sudah ada labelnya - Di dalam folder /usr/safenet/lunaclient/bin , terdapat sebuah file bernama ckdemo. Ckdemo berfungsi sebagai simulation lab sehingga kita bisa mencoba melakukan beberapa hal pada HSM. Pada kesempatan kali ini kita akan mencoba untuk menambahkan objek. Eksekusi perintah berikut:
./ckdemo

ckdemo - Setelah itu akan banyak opsi yang muncul, pilih opsi 1 untuk membuka sesi lalu pilih slot 0

membuka sesi dan memilih slot - Berikutnya pilih opsi 20 lalu opsi 0 untuk menambahkan objek berupa data.

Object Management 
Menambahkan data - Karena ini hanya contoh, maka kita gunakan saja template yang sudah disediakan. Pilih 0

Gunakan template yang sudah ada - Data sudah berhasil ditambahkan. Untuk membuktikan apakah data tersebut sudah ada di dalam partisi, keluar dari ckdemo dan masuk kembali ke dalam lunacm. Jalankan perintah partition contents
exit ./lunacm partitions contents

Obejk sudah berada di dalam partisi
Managing Luna HSM 7 PPSO
SafeNet Luna Network HSM mengizinkan kita untuk membuat Per-Partition Security Officer (PPSO) Partition. HSM Administrator bukanlah Security Officer (SO) untuk PPSO Partition. HSM SO memutuskan untuk membuat sebuah partisi sebagai tipe PPSO, yang membuat sebuah struktur kosong yang dipegang oleh owner baru, yang menginisialisasi sebuah partisi untuk membuat Partition Security Officer (PSO). PSO kemudian akan membuat Crypto Officer (CO) bagi sebuah partisi untuk mengontrol cryptographic operation dari klien pada partisi tersebut.
Tahapan untuk membuat CO adalah sebagai berikut:
- Masuk ke dalam folder bin yang ada di safenet dan eksekusi perintah lunacm. Caranya:
cd /usr/safenet/lunaclient/bin ./lunacm
- Login ke sebagai PO (Partition Owner) dengan cara:
role login -name po

PO Login Saat Login, kita akan diminta untuk memasukkan Token Biru Partition untuk proses otentikasi.
- Selanjutnya kita akan menginisiasi pembuatan CO (Crypto Officer). Caranya:
role init -name co

CO init Saat proses di atas, kita akan diminta untuk memasukkan token yang baru bagi CO dan saya menyebutnya sebagai Token Hitam. Set juga PIN untuk Token tersebut seperti Token Biru dan Token Merah yang sudah diset sebelumnya.
- Kalau sudah selesai. jalankan perintah role logout untuk keluar.
- Sekarang login sebagai CO. Caranya:
role login - name co

CO Login Masukkan kembali Token Hitam untuk login sebagai CO
- Setelah itu jalankan perintah partition show dan pastikan semua opsinya no
Change Policy
Untuk dapat membuat HSM Luna 7 ini bekerja dengan Truted Path Authentication (TPA), ada beberapa Policy yang harus diganti yaitu Policy nomor 22 dan 23. Policy ini berlaku per partisi, jadi bisa saja partisi yang satu dengan partisi yang lainnya memiliki policy yang berbeda.

Untuk mengubah policy nomor 22 dan 23. Jalankan perintah berikut pada lunacm:
partition changepo -slot <nomor_slot> -p policy <nomor_policy -v 1 -f

Sekarang Policy-nya telah berubah

****
Itu tadi sedikit tutorial dari saya. Dari aktifitas di atas, ada beberapa poin yang kita dapat, yaitu:
- Kta sudah menentukan secure admin password untuk Safenet Luna 7.
- Kita sudah menentukan IP Safenet Luna 7 agar dapat bekerja pada network yang kita inginkan.
- Menginisialisasi Safenet Luna 7.
- Membuat dan bertukar sertifikat antar Safenet Luna 7 dan mesin kita sebagai klien.
- Membuat Partisi yang nantinya akan digunakan oleh EJBCA.
- Mendaftarkan mesin kita sebagai klien dan menjalankan perintah vtl verify untuk menampilkan partisi dari Safenet Luna 7.
- Menginisialisasi partisi dengan PED.
- Mengaktifkan Prtition Policy nomor 22 dan 23.
Mohon maaf kalau ada bahasa yang kurang jelas atau bahkan cenderung salah. Silahkan dikoreksi dan jangan ragu untuk memberitahu saya lewat kolom comment.
Terima kasih. Sampai jumpa di tulisan selanjutnya.
Aufwiedersehen

Comments are closed.