Perjalanan panjang autentikasi SSL pada Android.

Cerita dulu, apa itu SSL.

SSL aka Secure Socket Layer adalah protokol keamanan yang mengamankan segala bentuk lalu-lintas data atau transaksi pada sebuah domain. SSL disebut juga TSL(Transport Socket Layer).

Manfaat dari SSL adalah untuk kerahasiaan dan autentikasi. Dengan SSL, data transaksi internet lebih sulit untuk di sadap, karena membutuhkan authentication.

Setiap request ke domain, clien akan meminta Certificate dari server. Client atau browser biasanya sudah menyimpan daftar certificate yg sudah di approve kemudian digunakan untuk memverifikasi keabsahan Certificate.

howsslworkschart
sumber: https://www.entrust.com/

Domain yg terlindungi SSL dapat dilihat dari prefixnya yaitu https://

sslheroart

Autentikasi SSL pada aplikasi Android.

Kalo di aplikasi mobile, mekanismenya beda lagi. Di Android misalnya, certificate harus di download dari server kemudian di simpan dan di embed ke dalam aplikasi. Embeded certificate ini berbentuk keystore kemudian akan divalidasi bersamaan dengan httprequest.

sip

 

screenshot-certificate-viewer-github-com

screenshot-certificate-viewer-github-com-1

Certificate hasil download-an ini dapat disimpan dalam bentuk file berekstensi *.pem.

Kemudian untuk menggenerate certificate menjadi sebuah keystore dapat dilakukan dengan menggunakan keytool java punya. Atau pake tool yg lebih ciamik namanya portecle yg udah pake GUI punya.

http://portecle.sourceforge.net/

Jika menggunakan OkHttp bisa lebih mudah lagi karena dapat menggunakan CertificatePinner.

Trusting tanpa Autentikasi.

Boleh dibilang ini adalah metode yg tidak aman, karena langsung percaya saja tanpa identifikasi.

Referensi:

http://software.endy.muhardin.com/aplikasi/apa-itu-ssl/https://www.digicert.com/ssl.htmhttps://gist.github.com/Kursulla/0fd3549a99b8f594da8d

Leave a Reply

Your email address will not be published. Required fields are marked *