system keamanan jaringan 1

Upload: prima-arca-n

Post on 09-Apr-2018

223 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/8/2019 System Keamanan Jaringan 1

    1/14

    Modul 12

    Keamanan Jaringan

    Pengantar

    Bagaimana kita dapat melindungi transaksi dalam suatu sistem jaringankomputer?

    Dapatkah kita melindungi pengiriman data?

    Dapatkan kita mensetup saluran yang aman untuk komunikasi?

    Dapatkan kita menentukan pengirim data?

    Kebutuhan untuk melindungi kesatuan dan rahasia informasi dansesumber lain yang dimiliki oleh individu ataupun organisasi dapatmeliputi keamanan fisik maupun data digital.

    Kebutuhan ini muncul karena sesumber tersebut digunakan bersama

    Beberapa Ancaman dan Serangan

    Tujuan utama dengan adanya keamanan adalah untuk membatasi aksesinformasi dan sesumber hanya untuk pemakai yang memiliki hak akses.

    Ancaman keamanan:

    Leakage (Kebocoran) : pengambilan informasi oleh penerima yangtidak berhak

    Tampering : pengubahan informasi yang tidak legal

    Vandalism (perusakan) : gangguan operasi sistem tertentu. Sipelaku tidak mengharap keuntungan apapun.

    Jaringan Komputer Budi Susanto, S. Kom. 1

    1965-75 1975-89 1990-99 Current

    Platforms Multi-usertimesharingcomputers

    Distributed systemsbased on localnetworks

    The Internet, wide-area services

    The Internet + mobiledevices

    Sharedresources

    Memory, files Local services (e.g.NFS), local networks

    Email, web sites,Internet commerce

    Distributed objects,mobile code

    Securityrequirements

    User identificationandauthentication

    Protection ofservices

    Strong security forcommercialtransactions

    Access control forindividual objects,secure mobile code

    Securitymanagementenvironment

    Single authority,single authorizationdatabase (e.g. /etc/passwd)

    Single authority,delegation, repli-cated authorizationdatabases (e.g. NIS)

    Many authorities,no network-wideauthorities

    Per-activityauthorities, groupswith sharedresponsibilities

    Instructor s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3

    Addison-Wesley Publishers 2000

  • 8/8/2019 System Keamanan Jaringan 1

    2/14

    Serangan pada sistem terdistribusi tergantung pada pengkasesan kesaluran komunikasi yang ada atau membuat saluran baru yangmenyamarkan (masquerade) sebagai koneksi legal

    Penyerangan Pasive, Hanya mengamati komunikasi atau data

    Penyerangan Aktif, Secara aktif memodifikasi komunikasi atau data

    Pemalsuan atau pengubahan Email

    TCP/IP Spoofing

    Beberapa Metode Penyerangan

    Eavesdropping, mendapatkan duplikasi pesan tanpa ijin

    Masquerading, Mengirim atau menerima pesanmenggunakan identitas

    lain tanpa ijin mereka Message tampering,

    Mencegat atau menangkap pesan dan mengubah isinya sebelumdilanjutkan ke penerima sebenarnya. man-in-the-middle attackadalah bentuk message tampering dengan mencegat pesan pertamapada pertukaran kunci enkripsi pada pembentukan suatu saluranyang aman. Penyerang menyisipkan kunci lain yang memungkinkandia untuk mendekrip pesan berikutnya seelum dienkrip oleh

    penerima Replaying, menyimpan pesan yang ditangkap untuk pemakaian

    berikutnya.

    Denial of Service, membanjiri saluran atau sesumber lain dengan pesanyang bertujuan untuk menggagalkan pengaksesan pemakai lain

    Keamanan Transaksi Elektronik

    Keamanan sangat dibutuhkan pada kebanyak transaksi

    E-commerce

    Banking

    E-mail

    Transaksi elektronik dapat aman jika dilindungi dengan kebijakandan mekanisme keamanan. Contoh : Pembeli harus dilindungi terhadappenyingkapan kode credit number selama pengiriman dan juga terhadappenjual yang tidak bersedia mengirim barang setelah menerimapembayaran. Vendor harus mendapatkan pembayaran sebelum barangdikirim, sehingga perlu dapat memvalidasi calon pembeli sebelum memberimereka akses

    Jaringan Komputer Budi Susanto, S. Kom. 2

  • 8/8/2019 System Keamanan Jaringan 1

    3/14

    Kebijakan dan Mekanisme Keamanan

    Pemisahan antara kebijakan dan mekanisme keamanan akan membantumemisahkan kebutuhan implementasinya

    Kebijakan menspesifikasikan kebutuhan

    Mekanisme menerapkan spesifikasi kebijakan tersebut

    Berdasar spesifikasi dari OSI, sebuah layanan (kebijakan) keamananmeliputi :

    Access Control, Perlindungan terhadap pemakaian tak legak

    Authentication, Menyediakan jaminan identitas seseorang

    Confidentiality (kerahasiaan), Perlindungan terhadap pengungkapanidentitas tak legak

    Integrity, Melindungi dari pengubahan data yang tak legak

    Non-repudiation (penyangkalan), Melindungi terhadap penolakankomunikasi yang sudah pernah dilakukan

    Untuk mencapai layanan keamanan tersebut, mekanisme-mekanismeyang dapat diterapkan :

    Enkripsi

    Digunakan untuk menyediakan kerahasiaan, dapatmenyediakan authentication dan perlindungan integritas

    Digital Signature

    Digunakan untuk menyediakan authentication, perlindunganintegritas, dan non-repudiation

    Algoritma Checksum/Hash

    Digunakan untuk menyediakan perlindungan integritas, dandapat menyediakan authentication

    Satu atau lebih mekanisme dikombinasikan untuk menyediakansecurity service

    Berikut adalah gambaran model hubungan antara kebijakan (layanan)dengan mekanisme keamanan :

    Jaringan Komputer Budi Susanto, S. Kom. 3

  • 8/8/2019 System Keamanan Jaringan 1

    4/14

    Pada paket JSSE (atau JDK 1.4.2 ke atas) yang di dalamnya terdapat paketjava.security.*, javax.crypto.*, javax.net.*, memberikan beberapa layanankeamanan yang siap Anda gunakan. Berikut beberapa layanan tersebut :

    TrustManagerFactoryCertPathValidatorSSLContextCertStore

    AlgorithmParameterGeneratorKeyGenerator

    MacCipher

    SignatureMessageDigestKeyStoreSecureRandomKeyPairGeneratorCertificateFactoryKeyManagerFactory

    AlgorithmParameters

    KeyAgreementSecretKeyFactoryGssApiMechanismKeyFactoryCertPathBuilder

    Enkripsi

    Enkripsi adalah proses pengkodean pesan untuk menyembunyikan isi

    Algoritma enkripsi modern menggunakan kunci (key).

    Pesan M (plaintext) di enkodekan dengan fungsi E dan sebuah kunci Kuntuk menjadi ciphertext.

    Pesan didekripsi dengan menggunakan fungsi D dan kunci L

    Jaringan Komputer Budi Susanto, S. Kom. 4

    E(K,M) = {M}K

  • 8/8/2019 System Keamanan Jaringan 1

    5/14

    Kunci kriptografi adalah parameter yang digunakan dalam algoritmaenkripsi dimana hasil enkripsi tidak dapat didekripsi jika tanpa kunci yangsesuai

    Berikut beberapa mode Cipher :

    Cipher Block Chaining

    Untuk ukuran block data yang tetap, yang populer adalah 64 bit

    Pesan dibagi ke dalam block, dan block terakhir di padding keukuran standard yang digunakan, dan setiap block dienkrip secaraindependent

    Block pertama tersedia untuk transmisi setelah enkripsi selesai

    Stream Chiper

    menghasilkan keystream dari setiap enkripsi kunci denganinitialization vector (IV)

    Ada dua tipe algoritma enkripsi : Symmetric (secret-key)

    Pengirim dan penerima harus berbagi kunci dan tidak diberikankepada orang lain.

    One-way function.

    Jaringan Komputer Budi Susanto, S. Kom. 5

    D(K,E(K,M)) = M

    +

    E

    IV

    P0

    C0

    +

    E

    P1

    C1

    Key

    +

    E

    P1

    C1

    IV

    Key

    +

    D

    P0

    C0

    +

    D

    P1

    C1

    +

    D

    P2

    C2

    EKey

    +Plaintext Chipertext

    EKey

    +Chipertext Plaintext

  • 8/8/2019 System Keamanan Jaringan 1

    6/14

    Contoh : DES (Data Encryption Standard), Triple DES

    AES (Advanced Encryption Standard) yang disponsori olehNIST (National Institute of Standards and Technology)menetapkan beberapa algoritma enkripsi AES :

    Rijndael (Joan Daemen dan Vincent Rijmen)

    Serpent (Ross Anderson, Eli Biham, Lars Knudsen)

    Twofish (dari Bruce Schneier)

    RC6 (dari RSA Laboratories)

    MARS (dari IBM)

    Algoritma AES harus memenuhi :

    symmetric block chiper

    panjang kunci 128, 192 dan 256

    dimungkinkan implementasi pada software maupun hardware

    Algoritma harus umum atau berlisensi tanpa persiaratan yangdiskriminatif

    Berikut contoh program untuk melakukan enkripsi dan dekripsi DES :

    import java.security.*;import javax.crypto.*;

    public class EnDeDES {public static void main(String[] args) {

    Cipher ecipher;Cipher dcipher;String teks = args[0];

    try {

    //menghasilkan kunci temporarySecretKey key =

    KeyGenerator.getInstance("DES").generateKey();

    ecipher = Cipher.getInstance("DES");ecipher.init(Cipher.ENCRYPT_MODE, key);

    Jaringan Komputer Budi Susanto, S. Kom. 6

  • 8/8/2019 System Keamanan Jaringan 1

    7/14

    dcipher = Cipher.getInstance("DES");dcipher.init(Cipher.DECRYPT_MODE, key);

    // Enkripsi dimulaibyte[] enc = ecipher.doFinal(teks.getBytes());String teksEnc =

    new sun.misc.BASE64Encoder().encode(enc);System.out.println("Hasil enkripsi DES '" +

    teks + "' adalah " + teksEnc);

    // Dekripsi dimulaibyte[] dec = dcipher.doFinal(enc);System.out.println("Hasil dekripsi DES '" +\

    teksEnc + "' adalah " + new String(dec));

    } catch (Exception e) {}}

    }

    Hasil eksekusi adalah sebagai berikut :

    $ java EnDeDES "Ini percobaan saja dari Budsus"

    Hasil enkripsi DES 'Ini percobaan saja dari Budsus'

    adalah y4OhBZX/T923EdH07f1x9kf65l6jE38Q0dq9fabwucE=

    Hasil dekripsi DES'y4OhBZX/T923EdH07f1x9kf65l6jE38Q0dq9fabwucE=' adalahIni percobaan saja dari Budsus

    Asymmetric (public-key)

    Pengirim pesan menggunakan public key (kunci yangdipublikasikan ke penerima) untuk mengenkrip pesan

    Penerima menggunakan private key yang cocok (miliknya)untuk mendekrip pesan.

    Pola public key dimunculkan pertama oleh Diffie Hellman (1976)

    Dasar public key : trap-door function adalah one-way functionyang dapat dibalikkan dengan hanya adanya secret key

    contoh : RSA

    Berikut adalah contoh program yang dapat menghasilkan kunciPublic/Private Key dengan menggunakan algoritma RSA

    Jaringan Komputer Budi Susanto, S. Kom. 7

  • 8/8/2019 System Keamanan Jaringan 1

    8/14

    import javax.net.*;import javax.net.ssl.*;import java.security.*;

    public class getPublicPrivateKey {public static void main(String[] args) {

    try {//1024-bit Digital Signature Algorithm (DSA)KeyPairGenerator keyGen =

    KeyPairGenerator.getInstance("DSA");keyGen.initialize(1024);KeyPair keypair = keyGen.genKeyPair();PrivateKey privateKey = keypair.getPrivate();PublicKey publicKey = keypair.getPublic();

    System.out.print("Public Key : " + publicKey);System.out.print("Private Key : " + privateKey);

    // Generate a 576-bit DH key pairkeyGen = KeyPairGenerator.getInstance("DH");keyGen.initialize(576);keypair = keyGen.genKeyPair();privateKey = keypair.getPrivate();publicKey = keypair.getPublic();

    System.out.print("Public Key : " + publicKey);System.out.print("Private Key : " + publicKey);

    // Generate a 1024-bit RSA key pairkeyGen = KeyPairGenerator.getInstance("RSA");keyGen.initialize(1024);keypair = keyGen.genKeyPair();privateKey = keypair.getPrivate();

    publicKey = keypair.getPublic();System.out.print("Public Key : " + publicKey);System.out.print("Private Key : " + privateKey);

    }catch (java.security.NoSuchAlgorithmException e) {}}

    }

    Hasilnya? Silahkan Anda coba sendiri.

    Ada kemungkinan juga, bahwa kedua algoritma tersebut digabungkan untukmembentuk suatu mekanisme kemanan, seperti yang ditunjukkan padagambar skema berikut :

    Jaringan Komputer Budi Susanto, S. Kom. 8

  • 8/8/2019 System Keamanan Jaringan 1

    9/14

    Digital Signature

    Didasarkan pada suatu ikatan tanda (yang tak dapat dirubah) ke suatupesan atau dokumen yang hanya diketahui oleh si penandatangan.

    Hal ini dapat dicapai dengan cara mengenkrip sebuah pesan terkompresi(digest) dengan menggunakan private key

    Digest memiliki ukuran yang tetap yang dihasilkan dari sebuah securedigest function.

    Contoh ilustrasinya :

    A ingin menandatangani dokumen M, sehingga penerima dapat yakinbahwa M adalah berasal dari A.

    A menghitung digest dokumen dengan fungsi Digest(M).

    A mengenkrip digest dengan private keynya, dan ditambahkan ke M,

    sehingga menghasilkan {Digest(M)}KApriv.

    B menerima dokumen tersebut dan mengambil M dan menghitungDigest(M).

    B mendekrip dengan {Digest(M)}KAprivmenggunakan KApub danmembandingkan isinya dengan hasil perhitungan Digest(M). Jikasama, tandatangan adalah valid.

    Jaringan Komputer Budi Susanto, S. Kom. 9

  • 8/8/2019 System Keamanan Jaringan 1

    10/14

    MAC (Message Authentication Code)

    Menghasilkan random password/key untuk suatu hash

    Hanya pemegang password yang dapat menghasilkan MAC

    Beberapa fungsi Digest :

    MD5 (Message Digest 5) oleh Rivest (1991)

    Dapat ditemukan di RFCs 1319-1321

    Panjang digest : 128 bit

    SHA (Secure Hash Algorithm)

    Panjang digest : 160 bit

    Didasarkan pada algoritma MD4

    Jaringan Komputer Budi Susanto, S. Kom. 10

    M

    Signing

    Verifying

    H(M+K) h

    h'H(M+K)

    h

    h = h'?

    K

    M

    signed doc

    M

    K

  • 8/8/2019 System Keamanan Jaringan 1

    11/14

    Berikut contoh sederhana dengan JSSE untuk digital signature tersebut :

    import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;

    public class ContohDigest {public static void main(String args[])

    throws NoSuchAlgorithmException {MessageDigest sha =

    MessageDigest.getInstance("SHA");sha.update("Sistem Terdistribusi".getBytes());byte[] shaHash = sha.digest();

    System.out.println(new String(shaHash));MessageDigest md5 =

    MessageDigest.getInstance("MD5");md5.update("Sistem Terdistribusi".getBytes());byte[] md5Hash = md5.digest();System.out.println(new String(md5Hash));

    }}

    Masalah Distribusi Kunci

    Alice memelihara private key dan mengirim public key ke Bob

    Mallet mencegat kunci tersebut dan mengganti dengan miliknya

    Mallet dapat mendekrip dan menghasilkan tanda tangan palsu ataumengubah datanya

    Jaringan Komputer Budi Susanto, S. Kom. 11

  • 8/8/2019 System Keamanan Jaringan 1

    12/14

    Solusinya...

    Sebuah Certification Authority (CA) dapat memecahkan masalah tersebut

    CA menandatangani kunci Alice untuk menyakinkan Bob. Mallet tidakdapat mengganti dengan kuncinya selama CA tidak bersediamenandatanganinya

    Mendapatkan Sertifikat

    1.Alice menghasilkanpasangan kunci danmenandatangani public keydan informasi ID denganprivate key

    2.CA memeriksa tandatangan

    Alice pada public key daninformasi ID. (Dapat melaluiemail, telepon)

    3.CA menandatangani publickey dan informasi ID dengankunci CA untuk membuatsertifikat

    CA telah mensahkan

    public key dan ID4.Alice memeriksa kunci, ID dan tandatangan CA

    Menyakinkan bahwa CA tidak mengubah keu dan ID

    Melindungi sertifikat selama pengiriman

    5.Alice dan/atau CA mempublishkan sertifikat

    Format Sertifikat Standard Untuk membuat sertifikat bermanfaat, diperlukan :

    Format standard dan representasi sehingga pembuat sertifikat danpemakai dapat menyusun dan menterjemahkannya

    Persetujuan terhadap cara urutan pembuatan sertifikat

    Jaringan Komputer Budi Susanto, S. Kom. 12

  • 8/8/2019 System Keamanan Jaringan 1

    13/14

    Format sertifikat pertama kali yang digunakan X.509 untuk melindungimekanisme pengaksesan server direktori (X.500 saat ini dikenal LDAP)

    Untuk pemrograman Sertifikat pada Java, silahkan kunjungi tutorial di

    http://www.onjava.com/pub/a/onjava/2001/05/03/java_security.html

    Contoh menghasilkan sertifikat dengan JSSE

    $ keytool -genkey -keystore certs -keyalg rsa -aliasbudsus -storepass serverpwd -keypass serverpwdWhat is your first and last name?

    [Unknown]: Budi SusantoWhat is the name of your organizational unit?

    [Unknown]: FTIWhat is the name of your organization?

    [Unknown]: UKDWWhat is the name of your City or Locality?

    [Unknown]: YogyakartaWhat is the name of your State or Province?

    [Unknown]: DIYWhat is the two-letter country code for this unit?

    [Unknown]: IDIs CN=Budi Susanto, OU=FTI, O=UKDW, L=Yogyakarta,

    ST=DIY, C=ID correct?[no]: y

    Untuk mengimport sertifikat server :

    $ keytool -import -keystore jssecacerts -alias budsus-file server.cerEnter keystore password: 12345678Owner: CN=Budi Susanto, OU=FTI, O=UKDW, L=Yogyakarta,ST=DIY, C=IDIssuer: CN=Budi Susanto, OU=FTI, O=UKDW, L=Yogyakarta,ST=DIY, C=IDSerial number: 406aff78

    Valid from: Thu Apr 01 00:27:20 GMT+07:00 2004 until:Wed Jun 30 00:27:20 GMT+07:00 2004Certificate fingerprints:

    MD5: 09:2B:EF:29:9C:F6:97:ED:9D:80:A5:2C:D0:D1:4A:B3SHA1:1F:DC:E9:72:DD:4F:51:71:6A:A1:E1:F4:BB:A1:1C:3C:AA:44:13:99Trust this certificate? [no]: yCertificate was added to keystore

    Jaringan Komputer Budi Susanto, S. Kom. 13

  • 8/8/2019 System Keamanan Jaringan 1

    14/14

    Manajemen Sertifikat pada M$ Internet Explorer

    Jaringan Komputer Budi Susanto, S. Kom. 14