A. Pertimbangan Keamanan Web
Web menyajikan tantangan baru yang tidak secara umum dihargai dalam kontek keamanan komputer dan jaringan. Beberapa fakta yang terdapat dalam web antara lain:
- Web menggunakan jalur komunikasi dua-arah, sehingga rentan terhadap serangan.
- Sebagian besar web berfungsi sebagai suatu highly-visible outlet dari perusahaan yang menyajikan informasi tentang produk dan/atau merupakan platform transaksi bisnis.
- Kompleksitas software yang digunakan dalam web mungkin mengandung beberapa celah keamanan yang potensial.
- Web server yang terserang dapat dijadikan sebagai pintu akses terhadap data atau system.
- Pencegahan terhadap serangan serikali terlambat karena user tidak terlalu peduli terhadap resiko keamanan dan tidak mempunyai pengetahuan dan peralatan yang mendukung.
1. Ancaman Keamanan Web
Ancaman terhadap keamanan web dapat dibagi menjadi dua, yaitu serangan aktif dan pasif, dapat juga diklasifikasi berdasarkan letak ancaman.
2. Pendekatan Keamanan Trafik Web
IPSec mempunyai beberapa kelebihan, diantaranya adalah transparan terhadap user dan aplikasi, serta menyediakan general-purpose solution. Implementasi SSL/TLS dapat merupakan bagian dari protocol yang mendasarinya atau di-embed ke dalam aplikasi.
B. Secure Socket Layer
1. Arsitektur SSL
SSL didesain agar TCP dapat menyediakan layanan keamanan end-to-end. Secara khusus HTTP dapat dioperasikan diatas SSL, tiga protocol diatas SSL yang didefinisikan sebagai bagian dari SSL yaitu Handshake Protocol, Change Cipher Spec Protocol, dan Alert Protocol.
Konsep SSL yang paling penting adalah connection dan session.
- Connection
Connection dapat dioperasikan pada lapisan transport yang menyediakan jenis
layanan yang sesuai, didefinisikan dengan parameter-parameter sebagai berikut:
- Server and client random
- Server write MAC secret
- Client write MAC secret
- Server write key
- Client write key
- Initialization Vector
- Sequence number
- Session
Merupakan hubungan client-server yang mendefinisikan satu set parameter
keamanan dengan teknik kriptografi, antara lain:
- Session identifier
- Peer certificate
- Compression method
- Cipher spec
- Master secret
- Is resumable
2. SSL Record Protocol
SSL Record Protocol menyediakan dua layanan untuk koneksi SSL, yaitu confidentiality dan message integrity. Proses yang terjadi pada SSL Record Protocol di sisi pengirim
yaitu:
- fragmentasi yang menghasilkan manageable-blocks <= 214 byte/block
- kompresi(optional, lossless dan <=1024 byte overhead)
- penambahan MAC
hash(MAC_write_secret || pad_2||vhash(MAC_write_secret ||
hash(MAC_write_secret || pad_2||vhash(MAC_write_secret ||
pad_1||seq_num || SSLCompressed.type || SSLCompressed.length ||
SSLCompressed.fragment))
dimana
|| = concatenation
MAC_write_secret = shared secret key
hash = cryptographic hash algorithm; either MD5 or SHA-1
pad_1 = the byte 0x36 (0011 0110) repeated 48 times (384 bits) for MD5 and
40
times (320 bits) for SHA-1
pad_2 = the byte 0x5C (0101 1100)repeated 48 times for MD5 and 40 times
for SHA1
seq_num = the sequence number for this message
SSLCompressed.type = the higher-level protocol used to process this fragment
SSLCompressed.length = the length of the compressed fragment
SSLCompressed.fragment = the compressed fragment (if compression is not
used, this is the plaintext fragment)
- enkripsi
menggunakan algoritma enkripsi simetris dengan overhead maksimum 1024 byte.
Algoritma enkripsi yang digunakan antara lain:
- penambahan header
- Content type(8 bits)
- Major Version(8 bits)
- Minor Version(8 bits)
- Compressed length(16 bits)
sedangkan porses yang terjadi di sisi penerima yaitu:
- dekripsi
- verifikasi
- dekompresi
- dirangkai ulang
- dikirim ke lapisan di atasnya
3. Change Cipher Spec Protocol
Protocol ini berfungsi untuk menyalin pending-state ke current-state, yang akan mengupdate cipher suite yang akan digunakan dalam koneksi ini.
4. Alert Protocol
Protocol ini terdiri dari dua bagian, yaitu
- Level
- Warning
- Fatal, diikuti alert dengan tanda *; SSL dengan segera memutus koneksi.- Alert
- Unexpected_message*
- Bad_record_mac*
- Decompression faiure*
- Handshake_failure*
- Illegal_parameter*
- Close_notify
- No_certificate
- Bad_certificate
- Unsupported_certificate
- Certificate_revoked
- Certificate_expired
- Certificate_unknown
5. Handshake Protocol
Protocol ini mengijinkan client dan server saling melakukan autentikasi serta menegosiasikan algoritma enkripsi & MAC dan kunci kriptografi yang akan digunakan untuk melindungi data.
Format pesan yang digunakan yaitu:
- Type(1 byte)
- Length( 3 bytes)
- Content(>=0 byte)
a. Fase 1, Establish Security Capabilities
- Client_hello, dikirimkan oleh client dengan parameter-parameter sebagai
berikut:
- Version
- Random
- Session id
- CipherSuit,
- Key _exchange_method: RSA, Fixed D-H, Ephemeral D-H, Anonymous DH, atau Fortezza
- CipherSpec, yang terdiri dari CipherAlgorithm, MACAlgorithm,
CipherType, IsExportable, HashSize, KeyMaterial, dan IV Size.
- Compression method
- Server_hello, dikirimkan oleh server dengan parameter-parameter seperti pada
client_hello.
b. Fase 2, Client Server Authentication and Key Exchange
- Certificate; akan dikirimkan jika dibutuhkan suatu authentikasi (menggunakan key_exchange_method selain anonymous D-H)
- Server_key_exchange; tidak diperlukan jika server mengirimkan certificate dengan parameter fixed D-H, atau menggunakan RSA key_exchange Certificate_request; dikirimkan oleh server kecuali yang menggunakan anonymous D-H, terdiri dari dua parameter yaitu: certificate_type dan certificate_authorities.
- Server_done.
c. Fase 3, Client Authentication and Key Exchange
Client memeriksa validitas certificate dan parameter-parameter server_hello dapat diterima. Jika tidak terdapat error, maka client harus mengirimkan pesan balasan, antara lain:
- Certificate; dikirimkan jika client menerima certificate_request
- Client_key_exchange
- Certificate_verify; dikirim jika clientCertificate tidak menggunakan fixed D-H.
CertificateVerify.signature.md5_hash=
MD5(master_secret || pad_2 || MD5(handshake_messages ||
master_secret || pad_1));
CertificateVerify.signature.sha_hash=
SHA(master_secret || pad_2 || SHA(handshake_messages ||
master_secret || pad_1));
d. Fase 4, Finish
- Change_cipher_spec, untuk menyalin pendingCipherSpec ke currentCipherSpec
- Finished.
0 comments:
Post a Comment