Mengenal Indikator Gembok (Https) pada URL Browser

Anda pasti pernah melihat kotak berwarna hijau, atau gembok berwarna hijau pada beberapa situs di internet. Tapi apakah anda mengetahui maksud adanya kedua simbol diatas? Pada post ini saya ingin membahas mengenai itu.

Arti sebenarnya dari simbol-simbol itu adalah aman atau tidaknya koneksi anda ke sebuah situs.

Sebelum kita membahas lebih jauh, kita perlu tahu,  seperti apa komunikasi yang aman? Tentunya komunikasi yang menjaga keamanan informasi. Definisi keamanan informasi menurut lembaga International Standard Organization adalah penjagaan kerahasiaan, integritas dan ketersedian informasi, walau ada berbagai-macam faktor lain yang dapat masuk dalam definisi keamanan informasi seperti keaslian, handal, bisa di pertanggung-jawabkan dan tidak bisa disangkal siapa yang mengirimkan informasi.

Keaslian berarti informasi tidak boleh berubah, informasi yang diterima penerima harus sesuai dengan saat dikirim dan harus ada cara untuk mengecek hal tersebut. Integritas berarti pertama, hanya penerima yang dimaksud oleh pengirim yang dapat melihat informasi dan kedua, tidak boleh ada yang pihak ketiga yang bisa berpura-pura menjadi salah satu pihak yang berkomunikasi. Ketersediaan informasi berarti kedua pihak yang berkomunikasi harus bisa melakukan komunikasi secara reliable, tidak bisa di interupsi atau diputuskan jalurnya oleh pihak lain.

Bagaimana cara browser anda menjamin faktor-faktor diatas dalam berkomunikasi? Salah satunya dengan melakukan koneksi menggunan protokol yang didesain untuk aman. Protokol adalah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data antara dua atau lebih titik komputer. Protokol SSL/TLS adalah salah satu protokol yang sampai sekarang masih aman. Protokol ini yang digunakan oleh browser anda.

Protokol SSL/TLS menggunakan sertifikat, hash dan enkripsi untuk menjamin keamanan saat berkomunikasi. Sertifikat adalah tanda yang hanya dapat dibuat oleh orang yang mengirimkan informasi. Tanda ini bisa di cek keasliannya. Kita dapat mengibaratkan sertifikat sebagai tanda-tangan. Hash adalah fungsi satu arah, dengan kata lain tidak dapat di kembalikan ke bentuk semula yang digunakan untuk mengubah pesan menjadi nilai unik. Nilai ini harus berbeda-beda untuk setiap pesan. Sertifikat dan hash digunakan untuk menjamin integritas pesan. Enkripsi digunakan untuk mengubah informasi, sehingga hanya bisa dilihat apabila menggunakan password yang sama. Enkripsi digunakan untuk menjamin informasi hanya bisa dibaca oleh pihak yang memiliki akses terhadap informasi tersebut.

Bagaimana cara mencegah penyerang berpura-pura menjadi penerima informasi dengan sertifikat palsu? Protokol SSL/TLS menggunakan sistem yang disebut dengan Certificate Authority, Disebut juga dengan CA. CA adalah organisasi yang tanda-tangannya(sertifikatnya) sudah dipercaya oleh semua pihak. CA menandatangani tanda-tangan (sertifikat) pihak yang ingin berkomunikasi. Sertifikat ini kemudian bisa di cek keasliannya dengan cara dibandingan dengan tanda-tangan CA. CA berkewajiban untuk memeriksa identitas asli pihak-pihak yang ingin berkomunikasi, untuk mencegah adanya sertifikat palsu yang ditanda-tangani oleh CA.

Hal ini membawa kita kepada topik awal kita, Kotak hijau dan gembok menggambarkan seberapa aman koneksi kita, tetapi, apa perbedaannya?

  1. Kotak hijau dengan gembok hijau.
    Screen Shot 2015-10-17 at 5.37.42 PM
    Kotak hijau dengan gembok berwarna hijau berarti koneksi sangat aman. Kotak hijau berarti sertifikat penyedia layanan menggunakan extended validation. Hal ini berarti CA melakukan validasi identitas secara menyeluruh, sehingga sangat menyulitkan penipu untuk meminta CA menandatangani-sertifikat palsu seperti yang sudah di jelaskan diatas. Proses untuk mendapatkan sertifikat extended validation biasanya memakan waktu sekitar 2 -3 minggu dan harganya sangat mahal.
  2. Gembok hijau
    Screen Shot 2015-10-17 at 5.38.02 PM
    Gembok berwarna hijau berarti koneksi amanTidak adanya kotak hijau berarti sertifikat penyedia layanan tidak menggunakan Extended Validation. Validasi yang digunakan hanya sebatas dilihat dari pemilik domain (whois) atau organisasi. Proses mendapatkan sertifikat ini hanya memakan waktu beberapa menit saja dan biasanya biayanya murah. Sertifikat jenis ini lebih mudah dipalsukan, apabila terjadi kebocoran informasi pemilik domain, contohnya seperti password email pemilik domain. Namun perlu ditekankan koneksi jenis ini tetap aman selama tidak terjadi kesalahan seperti disebut diatas.
  3. Gembok segitiga kuning.
    yellowlock

    Gembok berwana kuning berarti mungkin tidak aman. Hal ini bisa terjadi karena beberapa hal, salah satu kemungkinannya karena penyedia layanan tidak menggunakan standar-standar yang di rekomendasikan, atau standar yang sudah usang dan tidak di gunakan lagi, baik pada sertifikatnya maupun pada algoritma enkripsinya. Perlu di tekankan, Mungkin tidak aman belum tentu tidak aman.
  4. Gembok silang merah.
    Screen Shot 2015-10-17 at 5.47.37 PM
     Gembok dengan tanda silang berarti tidak aman. Anda sebaiknya tidak melanjutkan menggunakan situs tersebut, karena bisa jadi sertifikat yang di gunakan tidak valid, sehingga tidak bisa di jamin keaslian penyedia layanan. Bisa juga simbol gembok silang terjadi karena algoritma enkripsi yang di gunakan sudah sangat usang, sehingga mudah dilihat isinya oleh pihak yang tidak bertanggung jawab. Bayangkan apabila yang dilihat adalah informasi pribadi seperti nomor kartu kredit anda.

Demikian penjelasan mengenai indikator. silahkan lihat link dibawah untuk penjelasan lebih lanjut.

https://en.wikipedia.org/wiki/Transport_Layer_Security
https://support.google.com/chrome/answer/95617?hl=en
https://en.wikipedia.org/wiki/Certificate_authority
https://support.mozilla.org/en-US/kb/how-do-i-tell-if-my-connection-is-secure

Semoga bermanfaat!

Rapihkan Development Environment dengan Vagrant

Vagrant adalah tools untuk membuat, melakukan konfigurasi yang terisolasi untuk kebutuhan development. Environment contohnya seperti program apa saja yang dibutuhkan untuk menjalankan suatu aplikasi, lalu  konfigurasi-konfigurasi server seperti web server,  table dan isi database, permission dan lain-lain.

Terdapat beberapa skenario dimana kita membutuhkan Vagrant. Salah satu contohnya adalah saat melakukan testing. Dengan Vagrant,developer tidak perlu melakukan konfigurasi lagi pada komputer tester, dimana proses ini selain memakan waktu,  juga sangat rentan kesalahan. Menyebabkan test menjadi tidak jelas, apakah error terjadi karena aplikasi tersebut atau karena environmentnya.

Contoh lain adalah untuk mengisolasi environment antar proyek, hal ini berguna khususnya bagi orang yang melakukan beberapa proyek dalam satu komputer. Isolasi itu penting untuk mencegah terjadinya bentrok pada setting atau program yang digunakan.

Vagrant memecahkan kebutuhan diatas dengan cara membuat virtual machine. Setiap proyek akan di assign sebuah virtual machine. Ketika kita ingin memberikan proyek kita ke orang lain, maka kita cukup memberikan virtual machine yang kita gunakan, dan setiap proyek otomatis terisolasi.

Berikut adalah tutorialnya.

  1.  Install Vagrant, atau gunakan installer yang terdapat pada websitenya untuk sistem operasi lain seperti Windows dan Mac OS X. Berikut adalah syntax untuk Ubuntu 14.04
    sudo apt-get install virtualbox
    sudo apt-get install vagrant
  2. Buat folder baru, lalu masuk ke folder tersebut. Seluruh file di proyek kita akan masuk ke folder ini.
    mkdir testvagrant
    cd testvagrant
  3. Inisialisasi box baru, kamu bisa menggunakan berbagai jenis sistem operasi, atau menggunakan sistem operasi yang sudah di konfigurasi untuk kebutuhan tertentu seperti web server. List sistem operasi yang bisa digunakan oleh vagrant bisa kamu lihat di sini https://atlas.hashicorp.com/boxes/search
    sudo vagrant init ubuntu/trusty64
  4. Jalankan Vagrant
    sudo vagrant up
    
  5. Masuk ke dalam sistem dengan cara mengetik
    vagrant ssh
  6. Test sistem operasi yang baru dengan mengetik
    uname -a

    Apabila sudah seperti screenshot dibawah, selamat, anda telah berhasil menggunakan vagrant!

Screen Shot 2015-10-17 at 12.58.59 PM

 

Untuk mematikan Vagrant, gunakan perintah

exit
vagrant halt

Hal lain yang penting adalah networking, bagaimana cara kita membuka port. Berikut adalah contoh membuka port 8080.

  1. Pastikan vagrant sudah di halt.
  2. Buka vagrantfile yang otomatis di create pada folder saat melakukan vagrant init. (saya disini menggunakan editor nano, silahka sesuaikan dengan editor favorit masing-masing) , lalu scroll sampai bagian “config.vm.network “forwarded_port”
    nano Vagrantfile

    Screen Shot 2015-10-17 at 1.08.07 PM

  3. Hapus simbol “#” di depan “config.vm.network “forwarded_port”, lalu save file dengan klik ctrl+o, enter lalu ctrl+x.
  4. Nyalakan Vagrant, lalu apabila anda belum melakukan instalasi apache2, lakukan sekarang.
    sudo vagrant up
    vagrant ssh
    sudo apt-get install apache2
  5. Test pada browser anda dengan membuka : http://120.0.0.1:8080

Apabila sudah seperti screenshot dibawah, maka selamat, anda berhasil melakukan konfigurasi port pada vagrant!

Sebenarnya masih banyak sekali yang bisa dibahas, salah satu contohnya adalah bagaimana melakukan instalasi program dan konfigurasi otomatis saat vagrant di start, atau melakukan konfigurasi jaringan yang lebih advance. Mungkin di lain waktu kalau saya ada kesempatan.

Berikut adalah resource yang bisa dijadikan bahan pembelajaran.

https://docs.vagrantup.com/
https://en.wikipedia.org/wiki/Vagrant_(software) https://atlas.hashicorp.com/boxes/search

Tutorial Menjalankan Aplikasi ASP.NET MVC 5 pada Ubuntu Linux 14.04

ASP.NET adalah sebuah framework untuk membuat aplikasi pemrograman web sisi server. Salah satu alasan menggunakan ASP.NET adalah C#. Code C# terstruktur dengan baik sehingga mudah untuk dipahami dan dimaintenance. C# juga menyediakan beragam code hint, error hint sebelum code dijalankan.  C# dijalankan menggunakan sistem JIT, sehingga mungkin dapat berjalan lebih cepat dibanding bahasa-bahasa interpreted seperti PHP.

Sayangnya, sampai beberapa tahun yang lalu ASP.NET hanya dapat berjalan pada platform windows, hingga akhirnya ada beberapa proyek opensource seperti dotGNU dan mono. Karena ada beberapa yang masih merupakan paten Microsoft , proyek-proyek ini sulit berjalan secara maksimal dan cenderung terbatas kompabilitasnya, bahkan proyek dotGNU sampai berhenti pada tahun 2012.

Namun pada tahun 2014,  Microsoft membuat platform .NET menjadi opensource. Hal ini membuat developer mono bisa menggunakan komponen-komponen dari microsoft (sumber), menyebabkan mono berkembang dengan pesat dan bisa menjalankan framework kompleks seperti ASP.NET MVC 5.

Pada tutorial ini, akan dijelaskan bagaimana cara melakukan setup Ubuntu 14.04 LTS hingga dapat menjalankan aplikasi ASP.NET MVC 5. Selamat belajar!

Yang perlu dipersiapkan:
  1. Komputer dengan sistem operasi Ubuntu 14.04 LTS
  2. Proyek default ASP.NET MVC 5 yang telah di publish atau bisa download contoh yang saya buat disini
  3. Koneksi Internet
Tutorial:
  1. Pastikan sistem operasi anda sudah terupdate dengan menjalankan perintah berikut:
    sudo apt-get update && sudo apt-get dist-upgrade
  2. Instalasi paket apache2 dengan menjalankan perintah:
    sudo apt-get install apache2
  3. Masukan mono kedalam list paket sistem, hal ini perlu dilakukan agar versi mono yang akan di install selalu yang terbaru. pastikan anda menjalankan code di bawah baris demi baris.
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
    
    sudo echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
    
    sudo echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list
    
    sudo echo "deb http://download.mono-project.com/repo/debian alpha main" | sudo tee /etc/apt/sources.list.d/mono-xamarin-alpha.list
    
    sudo apt-get update && sudo apt-get dist-upgrade
  4. Install paket mono-complete
    sudo apt-get install mono-complete
    
  5. Install paket libapache2-mod-mono
    sudo apt-get install libapache2-mod-mono
    sudo a2enmod mod_mono_auto
  6. Set apache2, agar folder pada apache2 menggunakan mono. prosedur ini harus di ulang untuk setiap aplikasi baru
    sudo nano /etc/apache2/sites-available/testasp.conf
  7. Copy-paste baris berikut ke console, sesuaikan path dan nama apabila diperlukan. klik ctrl+o , enter lalu ctrl+x untuk menyimpan file.
      Alias /testasp "/var/www/html/testasp"
      MonoServerPath inventory "/usr/bin/mod-mono-server4"
      MonoDebug inventory true
      MonoSetEnv inventory MONO_IOMAP=all
      MonoApplications inventory "/testasp:/var/www/html/testasp"
      <Location "/testasp">
        Allow from all
        Order allow,deny
        MonoSetServerAlias inventory
        SetHandler mono
        SetOutputFilter DEFLATE
        SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary
      </Location>
      <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
      </IfModule>
    

    apache2site

  8. Buat folder baru di /var/www/html/testasp , sesuaikan permission folder apabila di perlukan. File-file asp.net akan di simpan di sini.
    sudo mkdir /var/www/html/testasp
  9. Enable konfigurasi site yang dibuat
    sudo a2ensite testasp
    sudo service apache2 restart
  10. Upload atau copy file ASP.NET MVC yang ingin dijalankan atau gunakan contoh proyek yang saya berikan ke dalam folder /var/www/html/testasp
    ftp
  11. Test situs di browser,  url adalah http://127.0.0.1/testasp.  sesuaikan url dengan IP mesin anda.
    jalan

Apabila hasil seperti langkah 11, maka selamat, anda telah berhasil menjalankan ASP.NET MVC 5 pada sistem operasi linux. Apabila belum, silahkan comment dan saya akan coba menjawab pertanyaan sebisa saya.

Dengan langkah-langkah diatas, bahkan saya telah berhasil mempublish situs yang cukup kompleks dengan database mysql.

Dibawah ini adalah link-link yang bisa membantu anda belajar lebih jauh lagi.

  1. http://www.mono-project.com/docs/getting-started/install/linux/
  2. https://help.ubuntu.com/community/ModMono
  3. http://www.asp.net/mvc/overview/getting-started/introduction/getting-started
  4. http://www.w3schools.com/aspnet/mvc_intro.asp

Semoga tutorial yang saya berikan bermanfaat.