Warung Bebas TV Streaming

    Rabu, 21 Mei 2014

    Modul 12
    Keamanan Jaringan
    Pengantar
    ● Bagaimana kita dapat melindungi transaksi dalam suatu sistem jaringan
    komputer?
    • 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 dan
    sesumber lain yang dimiliki oleh individu ataupun organisasi dapat
    meliputi 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 akses
    informasi dan sesumber hanya untuk pemakai yang memiliki hak akses.
    ● Ancaman keamanan:
    ● Leakage (Kebocoran) : pengambilan informasi oleh penerima yang
    tidak berhak
    ● Tampering : pengubahan informasi yang tidak legal
    ● Vandalism (perusakan) : gangguan operasi sistem tertentu. Si
    pelaku tidak mengharap keuntungan apapun.
    Jaringan Komputer – Budi Susanto, S. Kom. 1
    1965-75 1975-89 1990-99 Current
    Platforms Multi-user
    timesharing
    computers
    Distributed systems
    based on local
    networks
    The Internet, widearea
    services
    The Internet + mobile
    devices
    Shared
    resources
    Memory, files Local services (e.g.
    NFS), local networks
    Email, web sites,
    Internet commerce
    Distributed objects,
    mobile code
    Security
    requirements
    User identification
    and
    authentication
    Protection of
    services
    Strong security for
    commercial
    transactions
    Access control for
    individual objects,
    secure mobile code
    Security
    management
    environment
    Single authority,
    single authorization
    database (e.g. /etc/
    passwd)
    Single authority,
    delegation, replicated
    authorization
    databases (e.g. NIS)
    Many authorities,
    no network-wide
    authorities
    Per-activity
    authorities, groups
    with shared
    responsibilities
    Instructor’s Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3
    © Addison-Wesley Publishers 2000
    ● Serangan pada sistem terdistribusi tergantung pada pengkasesan ke
    saluran komunikasi yang ada atau membuat saluran baru yang
    menyamarkan (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 sebelum
    dilanjutkan ke penerima sebenarnya. “man-in-the-middle attack”
    adalah bentuk message tampering dengan mencegat pesan pertama
    pada pertukaran kunci enkripsi pada pembentukan suatu saluran
    yang aman. Penyerang menyisipkan kunci lain yang memungkinkan
    dia 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 pesan
    yang 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 kebijakan
    dan mekanisme keamanan. Contoh : Pembeli harus dilindungi terhadap
    penyingkapan kode credit number selama pengiriman dan juga terhadap
    penjual yang tidak bersedia mengirim barang setelah menerima
    pembayaran. Vendor harus mendapatkan pembayaran sebelum barang
    dikirim, sehingga perlu dapat memvalidasi calon pembeli sebelum memberi
    mereka akses
    Jaringan Komputer – Budi Susanto, S. Kom. 2
    Kebijakan dan Mekanisme Keamanan
    ● Pemisahan antara kebijakan dan mekanisme keamanan akan membantu
    memisahkan kebutuhan implementasinya
    • Kebijakan menspesifikasikan kebutuhan
    • Mekanisme menerapkan spesifikasi kebijakan tersebut
    ● Berdasar spesifikasi dari OSI, sebuah layanan (kebijakan) keamanan
    meliputi :
    • Access Control, Perlindungan terhadap pemakaian tak legak
    • Authentication, Menyediakan jaminan identitas seseorang
    • Confidentiality (kerahasiaan), Perlindungan terhadap pengungkapan
    identitas tak legak
    • Integrity, Melindungi dari pengubahan data yang tak legak
    • Non-repudiation (penyangkalan), Melindungi terhadap penolakan
    komunikasi yang sudah pernah dilakukan
    ● Untuk mencapai layanan keamanan tersebut, mekanisme-mekanisme
    yang dapat diterapkan :
    • Enkripsi
    • Digunakan untuk menyediakan kerahasiaan, dapat
    menyediakan authentication dan perlindungan integritas
    • Digital Signature
    • Digunakan untuk menyediakan authentication, perlindungan
    integritas, dan non-repudiation
    • Algoritma Checksum/Hash
    • Digunakan untuk menyediakan perlindungan integritas, dan
    dapat menyediakan authentication
    • Satu atau lebih mekanisme dikombinasikan untuk menyediakan
    security service
    ● Berikut adalah gambaran model hubungan antara kebijakan (layanan)
    dengan mekanisme keamanan :
    Jaringan Komputer – Budi Susanto, S. Kom. 3
    Pada paket JSSE (atau JDK 1.4.2 ke atas) yang di dalamnya terdapat paket
    java.security.*, javax.crypto.*, javax.net.*, memberikan beberapa layanan
    keamanan yang siap Anda gunakan. Berikut beberapa layanan tersebut :
    TrustManagerFactory
    CertPathValidator
    SSLContext
    CertStore
    AlgorithmParameterGenerator
    KeyGenerator
    Mac
    Cipher
    Signature
    MessageDigest
    KeyStore
    SecureRandom
    KeyPairGenerator
    CertificateFactory
    KeyManagerFactory
    AlgorithmParameters
    KeyAgreement
    SecretKeyFactory
    GssApiMechanism
    KeyFactory
    CertPathBuilder
    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 K
    untuk menjadi ciphertext.
    • Pesan didekripsi dengan menggunakan fungsi D dan kunci L
    Jaringan Komputer – Budi Susanto, S. Kom. 4
    E(K,M) = {M}K
    ● Kunci kriptografi adalah parameter yang digunakan dalam algoritma
    enkripsi dimana hasil enkripsi tidak dapat didekripsi jika tanpa kunci yang
    sesuai
    ● 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 ke
    ukuran standard yang digunakan, dan setiap block dienkrip secara
    independent
    • Block pertama tersedia untuk transmisi setelah enkripsi selesai
    • Stream Chiper
    • menghasilkan keystream dari setiap enkripsi kunci dengan
    initialization vector (IV)
    ● Ada dua tipe algoritma enkripsi :
    ● Symmetric (secret-key)
    ● Pengirim dan penerima harus berbagi kunci dan tidak diberikan
    kepada 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
    Key E
    Plaintext + Chipertext
    Key E
    Chipertext + Plaintext
    ● Contoh : DES (Data Encryption Standard), Triple DES
    ● AES (Advanced Encryption Standard) yang disponsori oleh
    NIST (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 yang
    diskriminatif
    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 temporary
    SecretKey key =
    KeyGenerator.getInstance("DES").generateKey();
    ecipher = Cipher.getInstance("DES");
    ecipher.init(Cipher.ENCRYPT_MODE, key);
    Jaringan Komputer – Budi Susanto, S. Kom. 6
    dcipher = Cipher.getInstance("DES");
    dcipher.init(Cipher.DECRYPT_MODE, key);
    // Enkripsi dimulai
    byte[] enc = ecipher.doFinal(teks.getBytes());
    String teksEnc =
    new sun.misc.BASE64Encoder().encode(enc);
    System.out.println("Hasil enkripsi DES '" +
    teks + "' adalah " + teksEnc);
    // Dekripsi dimulai
    byte[] 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=' adalah
    Ini percobaan saja dari Budsus
    ● Asymmetric (public-key)
    ● Pengirim pesan menggunakan public key (kunci yang
    dipublikasikan 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 function
    yang dapat dibalikkan dengan hanya adanya secret key
    ● contoh : RSA
    Berikut adalah contoh program yang dapat menghasilkan kunci
    Public/Private Key dengan menggunakan algoritma RSA
    Jaringan Komputer – Budi Susanto, S. Kom. 7
    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 pair
    keyGen = 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 pair
    keyGen = 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 untuk
    membentuk suatu mekanisme kemanan, seperti yang ditunjukkan pada
    gambar skema berikut :
    Jaringan Komputer – Budi Susanto, S. Kom. 8
    Digital Signature
    ● Didasarkan pada suatu ikatan tanda (yang tak dapat dirubah) ke suatu
    pesan 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 secure
    digest function.
    ● Contoh ilustrasinya :
    ● A ingin menandatangani dokumen M, sehingga penerima dapat yakin
    bahwa 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 menghitung
    Digest(M).
    ● B mendekrip dengan {Digest(M)}KApriv menggunakan KApub dan
    membandingkan isinya dengan hasil perhitungan Digest(M). Jika
    sama, tandatangan adalah valid.
    Jaringan Komputer – Budi Susanto, S. Kom. 9
    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(M+K) h'
    h
    h = h'?
    K
    M
    signed doc
    M
    K
    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 atau
    mengubah datanya
    Jaringan Komputer – Budi Susanto, S. Kom. 11
    Solusinya...
    ● Sebuah Certification Authority (CA) dapat memecahkan masalah tersebut
    ● CA menandatangani kunci Alice untuk menyakinkan Bob. Mallet tidak
    dapat mengganti dengan kuncinya selama CA tidak bersedia
    menandatanganinya
    Mendapatkan Sertifikat
    1.Alice menghasilkan
    pasangan kunci dan
    menandatangani public key
    dan informasi ID dengan
    private key
    2.CA memeriksa tandatangan
    Alice pada public key dan
    informasi ID. (Dapat melalui
    email, telepon)
    3.CA menandatangani public
    key dan informasi ID dengan
    kunci CA untuk membuat
    sertifikat
    • CA telah mensahkan
    public key dan ID
    4.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 dan
    pemakai dapat menyusun dan menterjemahkannya
    • Persetujuan terhadap cara urutan pembuatan sertifikat
    Jaringan Komputer – Budi Susanto, S. Kom. 12
    ● Format sertifikat pertama kali yang digunakan X.509 untuk melindungi
    mekanisme 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 -alias
    budsus -storepass serverpwd -keypass serverpwd
    What is your first and last name?
    [Unknown]: Budi Susanto
    What is the name of your organizational unit?
    [Unknown]: FTI
    What is the name of your organization?
    [Unknown]: UKDW
    What is the name of your City or Locality?
    [Unknown]: Yogyakarta
    What is the name of your State or Province?
    [Unknown]: DIY
    What is the two-letter country code for this unit?
    [Unknown]: ID
    Is 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.cer
    Enter keystore password: 12345678
    Owner: CN=Budi Susanto, OU=FTI, O=UKDW, L=Yogyakarta,
    ST=DIY, C=ID
    Issuer: CN=Budi Susanto, OU=FTI, O=UKDW, L=Yogyakarta,
    ST=DIY, C=ID
    Serial number: 406aff78
    Valid from: Thu Apr 01 00:27:20 GMT+07:00 2004 until:
    Wed Jun 30 00:27:20 GMT+07
    :00 2004
    Certificate fingerprints:
    MD5: 09:2B:EF:29:9C:F6:97:ED:9D:80:A5:2C:D0:D1:4A:B3
    SHA1:1F:DC:E9:72:DD:4F:51:71:6A:A1:E1:F4:BB:A1:1C:3C:AA:
    44:13:99
    Trust this certificate? [no]: y
    Certificate was added to keystore
    Jaringan Komputer – Budi Susanto, S. Kom. 13
    Manajemen Sertifikat pada M$ Internet Explorer
    Jaringan Komputer – Budi Susanto, S. Kom.

    0 komentar:

    Posting Komentar

    luvne.com resepkuekeringku.com desainrumahnya.com yayasanbabysitterku.com