Anda di halaman 1dari 69

Keamanan Jaringan Dan Komputer

KRIPTOGRAFI Cryptography (kriptografi): Kriptografi berasal dari bahasa Yunani, terdiri dari dua suku kata yaitu kripto dan graphia. Kripto artinya menyembunyikan, sedangkan graphia artinya tulisan. Kriptografi adalah ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti kerahasiaan data, keabsahan data, integritas data, serta autentikasi data (Menezes, Oorschot and Vanstone, 1997). Kriptografi dapat pula diartikan sebagai ilmu atau seni untuk menjaga keamanan pesan. Ketika suatu pesan dikirim dari suatu tempat ke tempat lain, isi pesan tersebut mungkin dapat disadap oleh pihak lain yang tidak berhak untuk mengetahui isi pesan tersebut. Untuk menjaga pesan, maka pesan tersebut dapat diubah menjadi suatu kode yang tidak dapat dimengerti oleh pihak lain.Plaintext atau cleartext: Pesan yang dapat dibaca atau pesan yang belum disamarkan Chipertext: Pesan yang sudah disamarkan.Enkripsi: Proses mengubah plaintext jadi chipertext, dengan kata lain menyandikan pesan.Dekripsi: Kebalikan dari enkripsi. Yaitu mengubah chipertext menjadi plaintext. Cryptanalysis (kriptoanalisis): Kriptoanalisis adalah kebalikan dari kriptografi, yaitu suatu ilmu untuk memecahkan mekanisme kriptografi dengan cara mendapatkan kunci dari cipherteks yang digunakan untuk mendapatkan plainteks. Cryptology (kriptologi): Kriptologi adalah ilmu yang mencakup kriptografi dan kriptoanalisis. Cryptosystem (sistem kriptografi) adalah suatu 5-tuple (P, C, K, E, D), dimana memenuhi kondisi sebagai berikut. P adalah himpunan berhingga plaintekt, C adalah himpunan berhingga ciphertekt, K adalah himpunan berhingga kunci, Untuk setiap K terdapat E dan D. Setiap :PC dan :CP merupakan fungsi sedemikian hingga untuk setiap plaintektP.Mungkin kata yang

kurang familiar bagi yang bukan orang matematika adalah tuple, artinya sendiri adalah himpunan pasangan berurutan. Terus maksudnya fungsi adalah fungsi matematis seperti yang pernah diajarkan di SMA dulu. Salah satu contoh sistem kriptografi yang paling sederhana adalah Caesar Chiper, jadi jaman dahulu kala cara ini digunakan untuk mengirimkan pesan saat peperangan dimana pesannya disandikan dengan cara menggeser huruf misalnya jika digeser tiga maka huruf 'a' menjadi 'd', dst... Berikut salah satu contoh implementasi Caesar Chiper yang saya bikin pake program java, mungkin bukan program yang bagus, bagi para programmer java mohon jangan kecewa saya malah butuh saran dan kritikannya. Buat yang pengen belajar java silahkan download listingnya, lumayan buat belajar GUI ma action event sederhana, trus juga ada sedikit manipulasi string dan tentu saja anda bisa belajar Caesar Chiper atau mungkin lebih tepat disebut Shift Chiper.

Data Encryption Standard (DES)

A. Sejarah DES(Data Encryption Standart) Algoritma DES dikembangkan di IBM dibawah kepemimpinan W.L. Tuchman pada tahun 1972. Algoritma ini didasarkan pada algoritma LUCIFER yang dibuat oleh Horst Feistel. Algoritma ini telah disetujui oleh National Bureau of Standard (NBS) setelah penilaian kekuatannya oleh National Security Agency (NSA) Amerika Serikat.

B. Tinjauan Umum DES termasuk ke dalam sistem kriptografi simetri dan tergolong jenis cipher blok. DES beroperasi pada ukuran blok 64 bit. DES mengenkripsikan 64 bit plainteks menjadi 64 bit cipherteks dengan menggunakan 56 bit kunci internal (internal key) atau upa-kunci (subkey). Kunci internal dibangkitkan dari kunci eksternal (external key) yang panjangnya 64 bit. Skema global dari algoritma DES adalah sebagai berikut (lihat Gambar 1): 1. Blok plainteks dipermutasi dengan matriks permutasi awal (initial permutation atau IP). 2. Hasil permutasi awal kemudian di-enciphering- sebanyak 16 kali (16 putaran). Setiap putaran menggunakan kunci internal yang berbeda. 3. Hasil enciphering kemudian dipermutasi dengan matriks permutasi balikan (invers initial permutation atau IP-1 ) menjadi blok cipherteks. Plainteks

IP

16 kali

Enciphering

IP-1 Cipherteks Gambar 1. Skema Global Algoritma DES Di dalam proses enciphering, blok plainteks terbagi menjadi dua bagian, kiri (L) dan kanan (R), yang masing-masing panjangnya 32 bit. Kedua bagian ini masuk ke dalam 16 putaran DES. Pada setiap putaran i, blok R merupakan masukan untuk fungsi transformasi yang disebut f. Pada fungsi f, blok R dikombinasikan dengan kunci internal Ki. Keluaran dai fungsi f di-XOR-kan dengan blok L untuk mendapatkan blok R yang baru. Sedangkan blok L yang baru langsung diambil dari blok R sebelumnya. Ini adalah satu putaran DES. Secara matematis, satu putaran DES dinyatakan sebagai Li = Ri 1 Ri = Li 1 f(Ri 1, Ki) Gambar 2 memperlihatkan skema algoritma DES yang lebih rinci.

P la in te k s

IP

L
1

= R

R1 = L0 f ( R 0 , K 1 )

L
2

= R

R 2 = L1 f ( R1 , K 2 )

15

= R

14

R15 = L14 f ( R14 , K 15 )

16

R16 = L15 f ( R15 , K 16 )


L = R

16

15

IP

-1

C ip h e rte k s

Gambar 2. Algoritma Enkripsi dengan DS

Catatlah bahwa satu putaran DES merupakan model jaringan Feistel (lihat Gambar 3).
L
i - 1

Ri 1

L
i

Ri

Gambar 3. Jaringan Feistel untuk satu putaran DES Perlu dicatat dari Gambar 2 bahwa jika (L16, R16) merupakan keluaran dari putaran ke-16, maka (R16, L16) merupakan pracipherteks (pre-ciphertext) dari enciphering ini. Cipherteks yang sebenarnya diperoleh dengan melakukan permutasi awal balikan, IP-1, terhadap blok pra-cipherteks.

C. Permutasi Awal Sebelum putaran pertama, terhadap blok plainteks dilakukan permutasi awal (initial permutation atau IP). Tujuan permutasi awal adalah mengacak plainteks sehingga urutan bit-biit di dalamnya berubah. Pengacakan dilakukan dengan menggunakan matriks permutasi awal berikut ini: 58 62 57 61 50 54 49 53 42 46 41 45 34 38 33 37 26 30 25 29 18 22 17 21 10 14 9 13 2 6 1 5 60 64 59 63 52 56 51 55 44 48 43 47 36 40 35 39 28 32 27 31 20 24 19 23 12 16 11 15 4 8 3 7

Cara membaca tabel/matriks di atas: dua entry ujung kiri atas (58 dan 50) berarti: pindahkan bit ke-58 ke posisi bit 1 pindahkan bit ke-50 ke posisi bit 2, dst D. Pembangkitan Kunci Internal Karena ada 16 putaran, maka dibutuhkan kunci internal sebanyak 16 buah, yaitu K1, K2, , K16. Kunci-kunci internal ini dapat

dibangkitkan sebelum proses enkripsi atau bersamaan dengan proses enkripsi. Kunci internal dibangkitkan dari kunci eksternal yang diberikan oleh pengguna. Kunci eksternal panjangnya 64 bit atau 8 karakter. Misalkan kunci eksternal yang tersusun dari 64 bit adalah K. Kunci eksternal ini menjadi masukan untuk permutasi dengan menggunakan matriks permutasi kompresi PC-1 sebagai berikut: 57 10 63 14 49 2 55 6 41 59 47 61 33 51 39 53 25 43 31 45 17 35 23 37 9 27 15 29 1 19 7 21 58 11 62 13 50 3 54 5 42 60 46 28 34 52 38 20 26 44 30 12 18 36 22 4

Dalam permutasi ini, tiap bit kedelapan (parity bit) dari delapan byte kunci diabaikan. Hasil permutasinya adalah sepanjang 56 bit, sehingga dapat dikatakan panjang kunci DES adalah 56 bit. Selanjutnya, 56 bit ini dibagi menjadi 2 bagian, kiri dan kanan, yang masing-masing panjangnya 28 bit, yang masing-masing disimpan di dalam C0 dan D0: C0: berisi bit-bit dari K pada posisi 57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18 10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36 D0: berisi bit-bit dari K pada posisi 63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22 14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4 Selanjutnya, kedua bagian digeser ke kiri (left shift) sepanjang satu atau dua bit bergantung pada tiap putaran. Operasi pergeseran bersifat wrapping atau round-shift. Jumlah pergeseran pada setiap putaran ditunjukkan pada Tabel 1 sbb: Tabel 1. Jumlah pergeseran bit pada setiap putaran Putaran, i 1 2 3 4 Jumlah pergeseran bit 1 1 2 2

5 6 7 8 9 10 11 12 13 14 15 16

2 2 2 2 1 2 2 2 2 2 2 1

Misalkan (Ci, Di) menyatakan penggabungan Ci dan Di. (Ci+1, Di+1) diperoleh dengan menggeser Ci dan Di satu atau dua bit. Setelah pergeseran bit, (Ci, Di) mengalami permutasi kompresi dengan menggunakan matriks PC-2 berikut: 14 23 41 44 17 19 52 49 11 12 31 39 24 4 37 56 1 26 47 34 5 8 55 53 3 16 30 46 28 7 40 42 15 27 51 50 6 20 45 36 21 13 33 29 10 2 48 32

Dengan permutasi ini, kunci internal Ki diturunkan dari (Ci, Di) yang dalam hal ini Ki merupakan penggabungan bit-bit Ci pada posisi: 14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10 23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2

dengan bit-bit Di pada posisi: 41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32 Jadi, setiap kunci internal Ki mempunyai panjang 48 bit. Proses pembangkitan Gambar 4. kunci-kunci internal ditunjukkan pada

Bila

jumlah pergeseran bit-bit pada Tabel 1 dijumlahkan semuanya, maka jumlah seluruhnya sama dengan 28, yang sama dengan jumlah bit pada Ci dan Di. Karena itu, setelah putaran ke-16 akan didapatkan kembali C16 = C0 dan D16 = D0.

K u n c i e k s te rn a l P e rm u ta s i P C -1 C D

L e ft S h ift C

L e ft S h ift D

P e rm u ta s i P C -2

L e ft S h ift

L e ft S h ift

C
j

D
j

P e rm u ta s i P C -2

L e ft S h ift C

L e ft S h ift D

16

16

P e rm u ta s i P C -2

16

Gambar 4. Proses pembangkitan kunci-kunci internal DES

Enciphering Proses enciphering terhadap blok plainteks dilakukan setelah permutasi awal (lihat Gambar 1). Setiap blok plainteks mengalami 16 kali putaran enciphering (lihat Gambar 2). Setiap putaran enciphering merupakan jaringan Feistel yang secara matematis dinyatakan sebagai Li = Ri 1 Ri = Li 1 f(Ri 1, Ki) Diagram komputasi fungsi f diperlihatkan pada Gambar 5.

R 3 2 b it E (R 4 8 b it

i-1

E k s p a n s i m e n ja d i 4 8 b it
i-1 )

4 8 b it 4 8 b it

E ( Ri 1 ) K i = A

...
B

M a trik s s u b s titu s i

3 2 b it P (B ) 3 2 b it

Gambar 5. Rincian komputasi fungsi f E adalah fungsi ekspansi yang memperluas blok Ri 1 yang panjangnya 32-bit menjadi blok 48 bit. Fungsi ekspansi direalisasikan dengan matriks permutasi ekspansi sbb: 32 8 16 24 1 9 17 25 2 10 18 26 3 11 19 27 4 12 20 28 5 13 21 29 4 12 20 28 5 13 21 29 6 14 22 30 7 15 23 31 8 16 24 32 9 17 25 1

Selanjutnya, hasil ekpansi, yaitu E(Ri 1), yang panjangnya 48 bit di-XOR-kan dengan Ki yang panjangnya 48 bit menghasilkan vektor A yang panjangnya 48-bit: E(Ri 1) Ki = A

Vektor A dikelompokkan menjadi 8 kelompok, masing-masing 6 bit, dan menjadi masukan bagi proses substitusi. Proses substitusi dilakukan dengan menggunakan delapan buah kotak-S (S-box), S1

sampai S8. Setiap kotak-S menerima masukan 6 bit dan menghasilkan keluaran 4 bit. Kelompok 6-bit pertama menggunakan S1, kelompok 6-bit kedua menggunakan S2, dan seterusnya. (cara pensubstitusian dengan kotak-S sudah dijelaskan pada materi Prinsip-prinsip Perancangan Cipher Blok) Kedelapan kotak-S tersebut adalah: S1: 14 0 4 15 4 15 1 12 13 7 14 8 1 4 8 2 2 14 13 4 15 2 6 9 11 13 2 1 8 1 11 7 3 10 15 5 10 6 12 11 6 12 9 3 12 11 7 14 5 9 3 10 9 5 10 0 0 3 5 6 7 8 0 13

S2: 15 3 0 13 S3: 10 13 13 1 S4: 7 13 10 3 S5: 2 14 4 11 S6: 12 11 2 8 4 2 1 12 1 12 11 7 7 4 10 1 10 7 13 14 11 13 7 2 6 1 8 13 8 5 15 6 5 0 9 15 3 15 12 0 15 10 5 9 13 3 6 10 0 9 3 4 14 8 0 5 9 16 14 3 13 8 6 15 14 11 9 0 3 5 0 6 0 6 12 10 6 15 11 1 9 0 7 13 10 3 13 8 1 4 15 9 2 7 1 4 8 2 3 5 5 12 14 11 11 1 5 12 12 10 2 7 4 14 8 2 15 9 4 14 0 7 6 10 9 0 4 13 14 9 9 0 6 3 8 6 3 4 15 9 15 6 3 8 5 10 0 7 1 2 11 4 13 8 1 15 12 5 2 14 7 14 12 3 11 12 5 11 4 11 10 5 2 15 14 2 8 1 7 12 1 13 14 8 8 4 7 10 14 7 11 1 6 15 10 3 11 2 4 15 3 8 13 4 4 14 1 2 9 12 5 11 7 0 8 6 2 1 12 7 13 10 6 12 12 6 9 0 0 9 3 5 5 11 2 14 10 5 15 9

12 10 9 4 S7: 4 13 1 6 S8: 13 1 7 2

1 15 14 3

10 4 15 2

15 2 5 12

9 7 2 9

2 12 8 5

6 9 12 15

8 5 3 10

0 6 7 11

13 1 0 14

3 13 4 1

4 14 10 7

14 0 1 6

7 11 13 0

5 3 11 8

11 8 6 13

11 0 4 11 2 15 11 1

2 11 11 13 8 13 4 14

14 7 13 8 4 8 1 7

15 4 12 1 6 10 9 4

0 9 3 4 15 3 12 10

8 1 7 10 11 7 14 8

13 10 14 7 1 4 2 13

3 14 10 9 10 12 0 15

12 3 15 5 9 5 6 12

9 5 6 0 3 6 10 9

7 12 8 15 14 11 13 0

5 2 0 14 5 0 15 3

10 15 5 2 0 14 3 5

6 8 9 3 12 9 5 6

1 6 2 12 7 2 8 11

Keluaran proses substitusi adalah vektor B yang panjangnya 48 bit. Vektor B menjadi masukan untuk proses permutasi. Tujuan permutasi adalah untuk mengacak hasil proses substitusi kotak-S. Permutasi dilakukan dengan menggunakan matriks permutasi P (P-box) sbb: 7 8 20 24 21 14 29 32 12 27 28 3 17 9 1 19 15 13 23 30 26 6 5 22 8 11 31 4 10 25

16 2

Bit-bit P(B) merupakan keluaran dari fungsi f. Akhirnya, bit-bit P(B) di-XOR-kan dengan Li 1 untuk mendapatkan Ri (lihat Gambar 6): Ri = Li 1 P(B)

Jadi, keluaran dari putaran ke-i adalah (Li, Ri) = (Ri 1 , Li 1 P(B))

L 3 2 b it

i-1

R 3 2 b it
i

Gambar 6. Skema perolehan Ri E. Permutasi Terakhir (Inverse Initial Permutation) 40 38 36 34 8 6 4 2 Permutasi terakhir dilakukan setelah 16 kali putaran terhadap gabungan blok kiri dan blok kanan. Proses permutasi menggunakan matriks permutasi awal balikan (inverse initial permutation atau IP-1 ) sbb: 48 46 44 42 16 14 12 10 56 54 52 50 24 22 20 18 64 62 60 58 32 30 28 26 39 37 35 33 7 5 3 1 47 45 43 41 15 13 11 9 55 53 51 49 23 21 19 17 63 61 59 57 31 29 27 25

F. Dekripsi Proses dekripsi terhadap cipherteks merupakan kebalikan dari proses enkripsi. DES menggunakan algoritma yang sama untuk proses enkripsi dan dekripsi. Jika pada proses enkripsi urutan kunci internal yang digunakan adalah K1, K2, , K16, maka pada proses dekripsi urutan kunci yang digunakan adalah K16, K15, , K1. Untuk tiap putaran 16, 15, , 1, keluaran pada setiap putaran deciphering adalah Li = Ri 1 Ri = Li 1 f(Ri 1, Ki) yang dalam hal ini, (R16, L16) adalah blok masukan awal untuk deciphering. Blok (R16, L16) diperoleh dengan mempermutasikan cipherteks dengan matriks permutasi IP-1. Pra-keluaran dari

deciphering adalah adalah (L0, R0). Dengan permutasi awal IP akan didapatkan kembali blok plainteks semula. Tinjau kembali proses pembangkitan kunci internal pada Gambar 4. Selama deciphering, K16 dihasilkan dari (C16, D16) dengan permutasi PC-2. Tentu saja (C16, D16) tidak dapat diperoleh langsung pada permulaan deciphering. Tetapi karena (C16, D16) = (C0, D0), maka K16 dapat dihasilkan dari (C0, D0) tanpa perlu lagi melakukan pergeseran bit. Catatlah bahwa (C0, D0) yang merupakan bit-bit dari kunci eksternal K yang diberikan pengguna pada waktu dekripsi. Selanjutnya, K15 dihasilkan dari (C15, D15) yang mana (C15, D15) diperoleh dengan menggeser C16 (yang sama dengan C0) dan D16 (yang sama dengan C0) satu bit ke kanan. Sisanya, K14 sampai K1 dihasilkan dari (C14, D14) sampai (C1, D1). Catatlah bahwa (Ci 1, Di 1) diperoleh dengan menggeser Ci dan Di dengan cara yang sama seperti pada Tabel 1, tetapi pergeseran kiri (left shift) diganti menjadi pergeseran kanan (right shift).

G. Mode DES DES dapat dioperasikan dengan mode ECB, CBC, OFB, dan CFB. Namun karena kesederhanaannya, mode ECB lebih sering digunakan pada paket program komersil meskipun sangat rentan terhadap serangan. Mode CBC lebih kompleks daripada EBC namun memberikan tingkat keamanan yang lebih bagus daripada mode EBC. Mode CBC hanya kadang-kadang saja digunakan.

H. Implementasi Hardware dan Software DES DES sudah diimplementasikan dalam bentuk perangkat keras. Dalam bentuk perangkat keras, DES diimplementasikan di dalam chip. Setiap detik chip ini dapat mengenkripsikan 16,8 juta blok (atau 1 gigabit per detik). Implementasi DES ke dalam perangkat lunak dapat melakukan enkripsi 32.000 blok per detik (pada komputer mainframe IBM 3090).

I. Keamanan DES Isu-isu yang menjadi keamanan DES: 1. Panjang kunci 2. Jumlah putaran 3. Kotak-S perdebatan kontroversial menyangkut

J. Panjang kunci Panjang kunci eksternal DES hanya 64 bit atau 8 karakter, itupun yang dipakai hanya 56 bit. Pada rancangan awal, panjang kunci yang diusulkan IBM adalah 128 bit, tetapi atas permintaan NSA, panjang kunci diperkecil menjadi 56 bit. Alasan pengurangan tidak diumumkan. Tetapi, dengan panjang kunci 56 bit akan terdapat 256 atau 72.057.594.037.927.936 kemungkinan kunci. Jika diasumsikan serangan exhaustive key search dengan menggunakan prosesor paralel mencoba setengah dari jumlah kemungkinan kunci itu, maka dalam satu detik dapat dikerjakan satu juta serangan. Jadi seluruhnya diperlukan 1142 tahun untuk menemukan kunci yang benar.

Tahun 1998, Electronic Frontier Foundation (EFE) merancang dan membuat perangkat keras khusus untuk menemukan kunci DES secara exhaustive search key dengan biaya $250.000 dan diharapkan dapat menemukan kunci selama 5 hari. Tahun 1999, kombinasi perangkat keras EFE dengan kolaborasi internet yang melibatkan lebih dari 100.000 komputer dapat menemukan kunci DES kurang dari 1 hari. Jumlah putaran Sebenarnya, delapan putaran sudah cukup untuk membuat cipherteks sebagai fungsi acak dari setiap bit plainteks dan setiap bit cipherteks. Jadi, mengapa harus 16 kali putaran? Dari penelitian, DES dengan jumlah putaran yang kurang dari 16 ternyata dapat dipecahkan dengan known-plaintext attack lebih mangkus daripada dengan brute force attack.

Kotak-S

Pengisian kotak-S DES masih menjadi misteri tanpa ada alasan mengapa memilih konstanta-konstanta di dalam kotak itu.

Kunci Lemah dan Kunci Setengah Lemah DES mempunyai beberapa kunci lemah (weak key). Kunci lemah menyebabkan kunci-kunci internal pada setiap putaran sama (K1 = K2 = = K16). Akibatnya, enkripsi dua kali berturut-turut terhadap plainteks menghasilkan kembali plainteks semula. Kunci lemah terjadi bila bit-bit di dalam Ci dan Di semuanya 0 atau 1, atau setengah dari kunci seluruh bitnya 1 dan setengah lagi seluruhnya 0. Kunci eksternal (dalam notasi HEX) yang menyebabkan terjadinya kunci lemah adalah (ingat bahwa setiap bit kedelapan adalah bit paritas). Kunci lemah (dengan bit paritas) 0101 0101 0101 0101 1F1F 1F1F 1F1F 1F1F E0E0 E0E0 F1F1 F11F FEFE FEFE FEFE FEFE Kunci sebenarnya

0000000 0000000 0000000 FFFFFFF FFFFFFF 0000000 FFFFFFF FFFFFFF

Selain kunci lemah, DES juga mempunyai sejumlah pasangan kunci setengah-lemah (semiweak key). Pasangan kunci setengahlemah mengenkripsikan plainteks menjadi cipherteks yang sama. Sehingga, satu kunci dalam pasangan itu dapat mendekripsi pesan yang dienkripsi oleh kunci yang lain di dalam pasangan itu. Kunci setengah-lemah terjadi bila: 1. Register C dan D berisi bit-bit dengan pola 01010101 atau 10101010 2. Register yang lain (C atau D) berisi bit-bit dengan pola 0000 0000, 11111111, 01010101, atau 10101010 Ada 6 pasang kunci setengah lemah (dalam notasi HEX): a. 01FE 01FE 01FE 01FE dan FE01 FE01 FE01 FE01 b. 1FE0 1FE0 0EF1 0EF1 dan E01F E01F F10E F10E c. 01E0 01E0 01F1 01F1 dan E001 E001 F101 F101 d. 1FFE 1FFE 0EFE 0EFE dan FE1F FE1F FE0E FE0E e. 011F 011F 010E 010E dan 1F01 1F01 0E01 0E01

f. E0FE E0FE F1FE F1FE dan FEE0 FEE0 FEF1 FEF1

AES (Advanced Encryption Standard) I.Pengertian AES AES (Advanced Encryption Standard) adalahlanjutan dari

algoritma enkripsi standar DES (Data Encryption Standard) yang masaberlakunya dianggap telah usai karena faktorkeamanan. Kecepatan komputer yang sangatpesat dianggap sangat membahayakan DES,sehingga pada tanggal 2 Maret tahun 2001ditetapkanlah algoritma baru Rijndael sebagaiAES. Rijndael dipilih dari 15 algoritma yang didaftarkanoleh berbagai kalangan industri dan akademik diseluruh dunia ke NIST (National Institute ofStandard and Technology), Amerika.Tulisan ini bersifat review pengetahuanmengenai desain algoritma enkripsi standar internasional AES. Pada makalah ini akandijelaskan berbagai komponen yang terdapatdi 3kriteria dalam utama yaitu : AES, pemilihan keamanan, dan AES harga, fungsikomponenkomponentersebut.Kriteria didasarkanpada

dankarakteristik

algoritma

beserta

implementasinya.

Keamanan

merupakan faktor terpenting dalam evaluasi (minimal seamana triple DES), yang meliputi ketahanan terhadap semua analisis sandi yang telah diketahui dan diharapkan dapat menghadapi analisis sandi yang belum diketahui. Disamping itu, AES juga harus dapat digunakan secara bebas tanpa harus membayar royalti, dan juga murah untuk diimplementasikan pada smart card yang memiliki ukuran memori kecil. AES juga harus efisien dan cepat (minimal secepat Triple DES) dijalankan dalamberbagai mesin 8 bit hingga 64 bit, danberbagai perangkat lunak.DES menggunakan stuktur Feistel yang memiliki kelebihan bahwa struktur enkripsi dandekripsinya sama, meskipun menggunakan fungsi F yang tidak invertibel. Kelemahan Feistel yang utama adalah bahwa pada setiap ronde, hanya setengah data yang diolah. Sedangkan AES menggunakan struktur SPN (Substitution Permutation Network) yang memiliki derajat paralelisme yang lebih besarsehingga diharapkan lebih cepat dari pada Feistel.Kelemahan SPN pada umumnya (termasuk pada Rijndael) adalah berbedanya struktur enkripsi dandekripsi sehingga diperlukan dua algoritma yang berbeda untuk enkripsi dan dekripsi. Dan tentu pula tingkat keamanan enkripsi dan dekripsinya menjadi berbeda. AES[4] memiliki blok masukan dan keluaran serta kunci 128 bit. Untuk tingkat keamanan yang lebih tinggi, AES dapat menggunakan kunci 192 dan256 bit. Setiap masukan 128 bit plaintext dimasukkan ke dalam state yang berbentuk bujursangkar berukuran 4x4 byte. State ini di-XOR dengan key dan selanjutnya diolah 10 kali dengan subtitusi-transformasi linear-Addkey. Dan di akhir diperoleh ciphertext. II.OPERASI RIJNDAEL (AES) Berikut ini adalah operasi Rijndael (AES) yangmenggunakan 128 bit kunci: Ekspansi kunci utama (dari 128 bit menjadi1408 bit)Pencampuran subkey. Ulang dari i=1 sampai i=10 Transformasi

ByteSub

(subtitusi

per

byte)ShiftRow

(Pergeseren

byte

perbaris)MixColumn (Operasi perkalian GF(2) per kolom) Pencampuran subkey (dengan XOR) Transformasi : ByteSub dan ShiftRow Pencampuran subkey III. DESAIN AES Ekspansi kunci utama bertujuan untuk memperoleh subkey sebanyak 1280 bit,sedangkan user hanya diminta memberikan 128 bit key. Pencampuran subkey berupa operasi XOR antara subkey dengan state (plaintext atau cipher antara).Substitusi dapat dilakukan dengan melihat tabel kotak-substitusi jika diperlukan operasi yang cepat, namun tabel ini membutuhkan ruang yang lebih besar pada implementasi perangkat keras. Substitusi juga dapat diperoleh dengan operasi inversi masukan dalam GF(28) dalam mod m(x) di mana m(x) = x8 + x4 + x3 + x + 1, dan hasilnya kemudian dikalikan dengan matriks L berukuran 8x8 dalam GF(2) seperti berikut : 10001111 11000111 11100011 11110001 11111000 01111100 00111110 00011111 L = Operasi ini dilakukan dalam mod 257d. Hasilnya di-XOR-kan dengan konstanta c=01100011. Masukan 0 dipetakan ke 0 pula.

Secara formal[1], proses subtitusi dapat dinyatakan sebagai berikut : 1:F _ F, f {10 00 f if f if f - = L:f (x4 + x3 + x2 + x + 1)f mod x8 + 1 2 :F _ F, f _ x6 + x5 + x + 1 + f Di mana permutasi dari grup simetri 256 elemen dipecah menjadi 3 permutasi 1, L dan 2 Contoh :

Masukan kotak-S berupa x = 98hex = 100110002 =x7 + x4 +x3, maka cari x-1. x.x-1 mod m(x) = 1.Diperoleh x-1 = 2Ax. Lalu x-1.L + c = 46x. Sehingga bila masukan kotak-S x = 98x, maka keluarannya adalah 46x.Operasi shiftrow dilakukan dengan menggeser baris kedua ke kiri satu byte, baris ketiga kekiri dua byte, baris ketiga ke kiri tiga byte, dan baris pertama tidak digeser. Operasi Mixcolumn dilakukan dengan mengambil setiap kolom yang diperlakukan sebagai vektor kolom GF(28) dan dikalikan dengan matrik 02 03 01 01 01 02 03 01 01 01 02 03 03 01 01 02 mod (x4+1) IV.NALISIS DESAIN AES AES didesain berdasarkan wide trail strategy yang dicetuskan pendesain Rijndael, Daemen, dalam disertasinya. Strategi ini mengusulkan agar cipher terdiri dari tiga komponen utama : Infomatek Volume 5 pencampuran kunci, transformasi tidak linear dan transformasi linear. Pencampuran kunci bertujuan agar keamanan algoritma tidak terletak pada dirahasiakannya algoritma,melainkan pada kerahasiaan kunci. Transformasi nonlinear bertujuan agar bila diketahui keluaran, maka tidak dapat diketahui masukannya. Hal ini dapat dilakukan dengan kotak-S. Transformasi linear bertujuan agar sebanyak mungkin transfomasi nonlinear yang aktif. Dengan memisahkan transformasi linear dengan non linear, diharapkan kita dapatmendesain transformasi nonlinear terbebas dari transformasi linear dan sebaliknya. Daemen menekankan betapa perlunya desain transformasi linear yang baik. Analisis sandi pada DES menunjukkan betapa buruknya transformasi

linear pada DES (permutasi) sehingga tidak dapat menahan analisis sandi linear dan diferensial. Pada awal dan akhir cipher, diberikan operasi Pre-whitening dan dengansubkey. post-whitening, Operasi ini yangberupaXORplaintext/ciphertext

bertujuan meningkatkan keamanan seperti halnya pada DES-X. Sedangkan pada awal dan akhir DES hanyaterdapat permutasi yang tidak meningkatkankeamanan. Kotak Substitusi Kotak-S pada AES didesain dengan rumusanmatematika untuk menghilangkan kecurigaan akan ditanamnya backdoor pada kotak-S. Penggunaan inversi x-1 pada GF(28) dikarenakan ketahanan operasi ini terhadap analisis sandi linear dan diferensial. Maksimum peluang propagasi diferensialnya DPmaks = 2-6 dan korelasi linear maksimumnya LPmaks = 2-3. Meskipun inversi ini sudah mengamankan AES dari analisis sandi diferensial (ASD) dan linear (ASL), namun karena kesederhanaannya, maka dikuatirkan kotak-S ini mudah diserang dengan algebra attack, khususnya interpolation attack. Karena itulah ditambahkan transformasi linear yang memiliki sifat tidak mempengaruhi ketahanan terhadap ASD dan ASL, namun menghilangkan kesempatan penyerang untuk mengeksploitasi kesederhanaan aljabar AES. Karena itu dikalikanlah dengan matrik L dalam GF(2). Ketidakkompatibelan operasi antara GF(28) dan GF(2) ini mempersulit serangan aljabar terhadap AES. Kemudian, untuk menghindari pemetaan 0 ke 0, maka ditambahkan konstanta c. Pemetaan 0 ke 0 dalam kotak-S pada DES membuat DES[3] rentan terhadap serangan ASD dan ASL. Dalam ASD, pemetaan semacam ini memudahkan penyerang mendapatkan karakteristik iteratif sehingga DES dapat dipecahkan. Kotak-S juga didesain agar memungkinkan operasi berjalan secara paralel penuh.

Pada setiap ronde, ke-16 kotak-S AES dapat dioperasikan bersamaan, khususnya pada Desain AES (Advanced Encrypion Standart) perangkat keras, sehingga operasi dapatberjalan dengan sangat cepat. AES hanya memiliki satu macam kotak-S, sehingga menghemat jumlah gerbang yang diperlukan pada perangkat keras. Kotak-S ini juga invertible sehingga inversinya dapat digunakan pada proses dekripsi. Berikut ini adalah ringkasan kriteria kotak-S a. Invertibility (untuk dekripsi) b. Minimisasi korelasi antara kombinasi linear bit-bit masukan dan kombinasi linear bit-bit keluaran (menahan ASL) c. Minimisasi nilai terbesar pada tabel XOR (menahan ASD) d. Kompleksitas ekspresi aljabar padaGF(28) (diperoleh dengantambahan L untuk menghalangi interpolation attack) e. Kesederhanaan deskripsi (mudah analisisnya) Operasi Mixcolumns Bersama dengan operasi ShiftRows, MixColumn merupakan

transformasi linear yang bertujuan untuk menyebarkan pengaruh transformasi nonlinear ke sebanyak mungkin komponen nonlinear di ronde selanjutnya. Bila shiftRows bertujuan menyebarkan pada arah baris, maka MixColumn bertujuan menyebarkan ke arah kolom. Dengan perpaduan dua operasi ini, diperolehlah difusi yang sangat baik. Dalam MixColumn diperkenalkan konsep jumlah cabang (yang dicetuskan Daemen dalam disertasinya[5]) entuk matrik M. Bila jumlah koefisien tidak-nol dalam vektor a dinyatakandengan wb(a), maka untuk ab= min { wb (a b) + wb (Ma Mb) } Matrik MixColumn M memiliki= 5. Artinyabahwa beda tidak nol dalam satu byte akan disebarkan paling sedikit ke beda tidak nol dalam empat byte, seperti terlihat pada gambar 1. Dari gambar 1 terlihat bahwa ASD dan

ASL untuk 4 ronde ke atas akan melibatkan sedikitnya 21 kotak-S aktif, sehingga DPmaks = (2-6)21 = 2-126 danLPmaks = 2(21-1)(2-3)21 = 2202-63 = 2-43.Gambar 1. ASD dan ASL AES KRITERIA EKSPANSI KUNCI Subkey pada tiap ronde dapat diperoleh dari umus :W[i] = W[i-6] W[i-1]W[6i] = W[6i-6] f(W[6i-1]) i mana f() merupakan fungsi penggunaankotak-S dan penambahan konstanta ronde.Penjadwalan kunci dapat diimplementasikan anpa eksplisit menggunakan array W. Jikajumlah yang tersedia kecil, maka kunci perronde dapat dihitung onthe-fly dan hanya embutuhkan buffer sebesar 64 byte. Rekursi ekspansi kunci bersifat invertible. Iniberarti bahwa mengetahui 4 word (64 byte) erurutan dari kunci terekspansi akan dapat membangkitkan seluruh tabel subkey. eskipun demikian, mengetahui sebagian bitsubkey (kurang dari 4 word) tidak akanmengijinkan mengetahui bit-bit subkey ataukey yang lain. Ekspansi kunci sederhana danefisien untuk banyak prosesor. Konstanta perronde menghilangkan sifat attack. simetri. Substitusi padaekspansi uncimemberikanketidaklinearansehingga dapat menghindari related-key

Digital Certificate Selalu ada keragu-raguan di sisi pengguna ketika akan ditanya mengenai informasi pribadi di situs kita. Sebagian besar pengguna internet meninggalkan situs yang sedang diaksesnya karena diminta informasi pribadinya pada halaman yang tidak dilengkapi oleh Digital Certificate.Tidak ada cara yang lebih tepat bagi kita, pemilik situs, untuk mendapatkan kepercayaan pengguna dalam hal transaksi data, kecuali dengan memasang sebuah SSL Certificate dari Certificate Authority yang terpercaya.Magnet Web Hosting menawarkan Digital Certificate dari Thawte dengan pilihan skalabilitas dan harga yang sesuai dengan kebutuhan anda Fitur Digital Certificate dari Thawte Wildcard Server Certificate tdk Verifikasi

Fitur

SSL

123Web

ServerSGC Supercert

Certificate Certificate

Step Up Verifikasi

tdk Domain

tdk Verifikasi

ya Verifikasi

Check Instant Waktu Penerbitan * Biaya Tahun @ 2

Otentikasi Bisnis

Otentikasi Bisnis

Otentikasi Bisnis

1 hari

2 hari

2 hari

2 hari

950.000

2.650.000

6.850.000

11.400.000

Biaya @ 1 Tahun 600.000 Perpanjangan @ 2 Tahun @ 1 Tahun Lisensi Tambahan @ 2 Tahun @ 1 Tahun 700.000 450.000 Order 950.000 600.000

1.550.000

4.000.000

7.200.000

2.500.000 1.450.000

5.900.000 3.150.000

11.400.000 7.200.000

1.700.000 900.000 Order

4.750.000 2.650.000 Order

8.150.000 4.750.000 Order

* Waktu penerbitan akan tergantung kepada proses verifikasi bisnis terhadap Digital Certificate yang bersangkutan. Brand dengan Kualitas Terbaik Thawte merupakan brand yang dikenal dengan baik dalam industri Digital Certificate. Dengan Thawte's Trusted Seal anda akan mendapatkan

kemudahan dalam menjalin kepercayaan dengan pengunjung situs dan pengguna layanan anda. Pilihan Sesuai dengan Kebutuhan Thawte memberikan pilihan dan tipe Digital Certificate untuk disesuaikan dengan kebutuhan anda. Semua akan tergantung kepada usaha yang anda jalankan dan perhatian anda terhadap pentingnya keamanan transaksi data pengguna layanan anda. Thawte Trusted Site Seal Dengan memilik Digital Certificate Thawte, anda dapat memasangThawte Trusted Site Seal di situs anda. Seal ini memberikan kenyamanan dan perasaan aman bagi pengunjung situs anda.

IP Security

IPSec (singkatan dari IP Security) adalah sebuah protokol yang digunakan untuk mengamankan transmisi datagram dalam sebuah internetwork berbasis TCP/IP. IPSec mendefiniskan beberapa standar untuk melakukan enkripsi data dan juga integritas data pada lapisan kedua dalam DARPA Reference Model (internetwork layer). IPSec melakukan enkripsi terhadap data pada lapisan yang sama dengan protokol IP dan menggunakan teknik tunneling untuk mengirimkan informasi melalui jaringan Internet atau dalam jaringan Intranet secara aman. IPSec didefinisikan oleh badan Internet Engineering Task Force (IETF) dan diimplementasikan di dalam banyak sistem operasi. Windows 2000 adalah sistem operasi pertama dari Microsoft yang mendukung IPSec. IPSec diimplementasikan pada lapisan transport dalam OSI Reference Model untuk melindungi protokol IP dan protokol-protokol yang lebih tinggi dengan menggunakan beberapa kebijakan keamanan yang dapat dikonfigurasikan untuk memenuhi kebutuhan keamanan pengguna, atau jaringan. IPSec umumnya diletakkan sebagai sebuah lapsian tambahan di dalam stack protokol TCP/IP dan diatur oleh setiap kebijakan keamanan yang diinstalasikan dalam setiap mesin komputer dan dengan sebuah skema enkripsi yang dapat dinegosiasikan antara pengirim dan penerima. Kebijakan-kebijakan keamanan tersebut berisi kumpulan filter yang diasosiasikan dengan kelakuan tertentu. Ketika sebuah alamat IP, nomor port TCP dan UDP atau protokol dari sebuah

paket datagram IP cocok dengan filter tertentu, maka kelakukan yang dikaitkan dengannya akan diaplikasikan terhadap paket IP tersebut. Dalam sistem operasi Windows 2000, Windows XP, dan Windows Server 2003, kebijakan keamanan tersebut dibuat dan ditetapkan pada level domain Active Directory atau pada host individual dengan menggunakan snap-in IPSec Management dalam Microsoft Management Console (MMC). Kebijakan IPSec tersebut, berisi beberapa peraturan yang menentukan kebutuhan keamanan untuk beberapa bentuk komunikasi. Peraturan-peraturan tersebut digunakan ntuk memulai dan mengontrol komunikasi yang aman berdasarkan sifat lalu lintas IP, sumber lalu lintas tersebut dan tujuannya. Peraturan-peraturan tersebut dapat menentukan metode-metode autentikasi dan negosiasi, atribut proses tunneling, dan jenis koneksi. Untuk membuat sebuah sesi komunikasi yang aman antara dua komputer dengan menggunakan IPSec, maka dibutuhkan sebuah framework protokol yang disebut dengan ISAKMP/Oakley. Framework tersebut ditentukan mencakup beberapa dan algoritma juga kriptografi yang telah dengan sebelumnya, dapat diperluas

menambahkan beberapa sistem kriptografi tambahan yang dibuat oleh pihak ketiga. Selama proses negosiasi dilakukan, persetujuan akan tercapai dengan metode autentikasi dan kemanan yang akan digunakan, dan protokol pun akan membuat sebuah kunci yang dapat digunakan bersama (shared key) yang nantinya digunakan sebagi kunci enkripsi data. IPSec mendukung dua buah sesi komunikasi keamanan, yakni sebagai berikut:

protokol Authentication Header (AH): menawarkan autentikasi pengguna dan perlindungan dari beberapa serangan (umumnya serangan man in the middle), dan juga menyediakan fungsi autentikasi terhadap data serta integritas terhadap data. Protokol

ini mengizinkan penerima untuk merasa yakin bahwa identitas si pengirim adalah benar adanya, dan data pun tidak dimodifikasi selama transmisi. Namun demikian, protokol AH tidak yang menawarkan fungsi enkripsi terhadap data

ditransmisikannya. Informasi AH dimasukkan ke dalam header paket IP yang dikirimkan dan dapat digunakan secara sendirian atau bersamaan dengan protokol Encapsulating Security Payload.

protokol

Encapsulating Security Payload

(ESP):

Protokol

ini

melakukan enkapsulasi serta enkripsi terhadap data pengguna untuk meningkatkan kerahasiaan data. ESP juga dapat memiliki skema autentikasi dan perlindungan dari beberapa serangan dan dapat digunakan secara sendirian atau bersamaan dengan Authentication dikirimkan. Beberapa perangkat keras serta perangkat lunak dapat Header. Sama seperti halnya AH, informasi mengenai ESP juga dimasukkan ke dalam header paket IP yang

dikonfigurasikan untuk mendukung IPSec, yang dapat dilakukan dengan menggunakan enkripsi kunci publik yang disediakan oleh Certificate Authority (dalam sebuah public key infrastructure) atau kunci yang digunakan bersama yang telah ditentukan sebelumnya (skema PreShared Key/PSK) untuk melakukan enkripsi secara privat

KERBEROS I.Pengertia Kerberos Kerberos merupakan suatu protocol autentikasi jaringan. Kerberos dirancang untuk memberikan autentikasi yang kuat untuk aplikasi client/server dengan menggunakan secret-key cryptography. Internet merupakan tempat yang tidak aman. Banyak protokol yang menggunakan Internet tidak memberikan sistem autentikasi yang aman. Tools untuk mencuri password sering digunakan oleh para hacker. Jadi, aplikasi yang mengirimkan password yang tidak dienkripsi melalui jaringan sangatlah rentan dan berbahaya. Kerberos diciptakan oleh MIT (Massachusetts Institute of Technology) sebagai solusi untuk masalah keamanan ini. Dalam tulisan ini akan dibahas mengenai Kerberos: Apa itu Kerberos, mengapa Kerberos, bagaimana cara kerja Kerberos, serta kelemahannya. Kerberos merupakan layanan autentikasi yang dikembangkan oleh MIT (Massachusetts Institute of Technology) Amerika Serikat, dengan bantuan dari Proyek Athena. Tujuannya adalah untuk memungkinkan pengguna (user) dan layanan (service) untuk saling mengautentikasi satu dengan yang lainnya. Dengan kata lain, saling menunjukkan identitasnya. Tentu saja ada banyak cara untuk menunjukkan identitas pengguna kepada layanan tersebut. Salah satu cara yang paling umum adalah dengan penggunaan password. Seseorang log in ke dalam server dengan mengetikkan username dan password, yang idealnya hanya diketahui oleh pengguna dan server

tersebut. Server tersebut kemudian diyakinkan bahwa orang yang sedang berusaha mengaksesnya password adalah ini benar-benar banyak pengguna.Namun,penggunaan memiliki

kelemahan. Misalnya seseorang memilih password yang mudah ditebak oleh orang lain dalam beberapa kali usaha percobaan. Dalam hal ini dikatakan bahwa password tersebut lemah. Masalah lainnya timbul ketika password ini akan dikirimkan melalui jaringan: Password tersebut harus melalui jaringan tanpa dienkripsi. Dengan kata lain, jika ada orang lain yang 7mendengarkan jaringan tersebut dapat mencegat Inovasi utama dalam Kerberos adalah password itu dan mendapatkannya kemudian menggunakannya untuk masuk sebagai pengguna. gagasan bahwa password tersebut dapat dilihat sebagai suatu shared secret, sesuatu rahasia yang hanya pengguna dan server yang mengetahuinya. Menunjukkan identitas dilakukan tanpa pengguna harus membuka rahasia tersebut. Ada suatu cara untuk membuktikan bahwa kita mengetahui rahasia tersebut tanpa mengirimnya ke jaringan.

II.

Dasar-Dasar Kerberos Pendekatan dasar dari Kerberos adalah menciptakan suatu layanan yang tujuan satu-satunya adalah untuk autentikasi. Alasannya adalah untuk membebaskan layanan tersebut dari keharusan untuk mengurusi record akun pengguna. Dalam pendekatan ini, pengguna dan layanan harus memercayai Kerberos authentication server (AS). AS ini berperan sebagai pengenal kepada mereka. Untuk melakukan hal ini, pengguna dan layanan harus mempunyai shared secret key yang telah terdaftar di AS. Key tersebut dinamakan long-term keys, karena memang digunakan dalam jangka waktu yang cukup lama, yaitu berminggu-minggu atau berbulan-bulan. Ada tiga langkah dasar dalam

proses autentikasi pengguna kepada layanan. Pertama, pengguna mengirimkan request kepada AS, meminta untuk mengautentikasi dirinya terhadap layanan. Dalam langkah kedua, memperkenalkan AS bersiap untuk pengguna dan layanan satu sama lainnya. Hal ini

dilakukan dengan cara menciptakan suatu secret key yang baru dan random yang akan dibagikan hanya kepada pengguna dan layanan. AS 8mengirimkan pesan kepada pengguna yang terdiri atas dua bagian. Satu bagian mengandung random key bersama nama layanan, yang dienkripsi dengan long-term key milik pengguna. Bagian lainnya mengandung random key yang sama bersama nama pengguna, yang dienkripsi dengan long-term key milik layanan. Dalam bahasa Kerberos, pesan yang pertama sering disebut credentials, sedangkan pesan yang kedua disebut ticket, dan random key tersebut disebut dengan session key. Pada tahap ini, hanya pengguna yang mengetahui session key. Pengguna membuat suatu pesan, misalnya timestamp, kemudian dienkripsi menggunakan session key. Pesan ini disebut authenticator. Pesan authenticator ini dikirimkan bersama key, dengan pada ticket kepada layanan. Kemudian layanan mendekripsikan ticket dengan long-term key-nya, mendapatkan session yang gilirannya digunakan untuk mendekripsikan authenticator. Layanan tersebut memercayai AS, sehingga ia dapat yakin bahwa hanya pengguna yang terdaftar yang dapat membuat authenticator semacam itu. Hal ini mengakhiri proses autentikasi pengguna terhadap layanan. Bagaimana Kerberos beroperasi atau bekerja akan dijelaskan dengan lebih detail pada bab selanjutnya. III. Ticket Granting Server

Salah satu ketidaknyamanan dalam penggunaan password adalah setiap kali kita mengakses layanan, maka kita harus mengetikkan

password tersebut. Hal tersebut dapat menjadi menyulitkan jika kita memiliki banyak akun dan kita harus memasukkan password tersebut satu per satu. Mungkin kita akan mencoba membuat password yang mudah untuk diketik, dan sebagai akibatnya maka password kita tersebut akan menjadi mudah untuk ditebak. Dan jika kita menggunakan password yang ditembus. 9sama untuk setiap akun kita, maka jika

password kita tersebut terbongkar, seluruh akun kita menjadi rentan Kerberos mengatasi masalah ini dengan memperkenalkan suatu layanan baru, yaitu Ticket Granting Server (TGS). TGS secara logika berbeda dari AS, meskipun mungkin mereka berada dalam satu mesin yang sama (keduanya sering disebut sebagai KDC Key Distribution Center) Tujuan dari TGS adalah untuk menambahkan layer tambahan sehingga pengguna hanya perlu untuk memasukkan password sebanyak satu kali saja. Ticket dan session key yang didapat dari password tersebut digunakan untuk ticket selanjutnya. Jadi, sebelum mengakses suatu layanan regular, pengguna meminta ticket dari AS untuk berbicara dengan TGS. Ticket ini disebut ticket granting ticket (TGT) , sering juga disebut sebagai initial ticket. Session key untuk TGT dienkripsi menggunakan long-term key milik pengguna, sehingga password dibutuhkan untuk mendekripsikannya kembali dari respon AS kepada pengguna. tetapi dari TGS. Lebih jauh Setelah menerima TGT, kapanpun lagi, jawabannya tidak dienkripsi pengguna ingin mengakses layanan, dia meminta ticket bukan dari AS menggunakan secret key milik pengguna, tetapi menggunakan session key yang datang bersama TGT, sehingga password pengguna tidak diperlukan untuk mendapatkan session key yang baru. Hal tersebut dapat diilustrasikan sebagai berikut. Bayangkan Anda adalah seorang karyawan di sebuah gedung. Anda menunjukkan kartu ID regular untuk mendapatkan kartu ID guest. Sekarang, ketika Anda ingin memasuki berbagai ruangan di gedung tersebut, Anda tidak menunjukkan kartu ID regular lagi dan

lagi, yang mungkin dapat mudah sekali hilang atau dicuri orang, tetapi Anda tinggal menunjukkan kartu ID guest yang 10hanya berlaku untuk suatu waktu yang singkat saja. Jika kartu ID guest tersebut hilang atau dicuri, Anda dapat dengan segera memblokirnya dan membuat kartu yang baru, suatu hal yang tidak dapat dilakukan terhadap kartu ID regular Keuntungan dari hal ini adalah jika password biasanya valid untuk jangka waktu yang panjang, misalnya berminggu-minggu atau berbulan-bulan, maka TGT hanya valid untuk jangka waktu yang pendek, misalnya hanya delapan hingga sepuluh jam saja. Setelah itu, TGT tidak dapat digunakan lagi oleh siapapun. TGT ini disimpan dalam credentials cache. IV.OPERASI KERBEROS Pada bab ini akan dijelaskan operasi atau cara kerja Kerberos secara lebih detail. Sebelum menjelaskan bagaimana kerberos beroperasi atau bekerja, kita harus mengetahui paket apa saja yang dikirim di antara pengguna dan KDC (AS dan TGS), dan antara pengguna dengan layanan selama proses autentikasi. Perlu diingat bahwa layanan tidak pernah berkomunikasi secara langsung dengan KDC (Key Distribution Center). Berikut adalah daftar paket-paket: AS_REQ adalah request autentikasi pengguna awal. Pesan ini

ditujukan kepada komponen KDC, yaitu AS. AS_REP adalah jawaban dari AS terhadap pesan sebelumnya. Pada dasarnya pesan ini mengandung TGT (dienkripsi menggunakan TGS secret key) dan session key (dienkripsi menggunakan secret key dari pengguna).

TGS_REQ

adalah request dari pengguna kepada Ticket Granting

Server (TGS) untuk mendapatkan service ticket. Paket ini mengandung TGT yang didapat dari pesan sebelumnya dan authenticator yang dibuat oleh pengguna dan dienkripsi dengan session key. TGS_REP adalah jawaban dari Ticket Granting Server terhadap pesan sebelumnya. Dalam paket ini terdapat service ticket yang diminta (dienkripsi dengan secret key dari layanan) dan session key milik layanan yang dibuat oleh TGS dan dienkripsi dengan session key sebelumnya yang dibuat oleh AS. 12 AP_REQ adalah request yang dikirimkan oleh pengguna kepada layanan/aplikasi agar dapat mengakses layanannya. Komponennya adalah service ticket yang didapat dari TGS dengan jawaban sebelumnya dan authenticator yang dibuat oleh pengguna, tetapi kali ini dienkripsi menggunakan session key milik layanan (dibuat oleh TGS). AP_REP adalah jawaban yang diberikan oleh layanan kepada

pengguna untuk membuktikan bahwa layanan tersebut adalah benar merupakan layanan yang ingin diakses oleh pengguna. Paket ini tidak selalu diminta.

Point-to-Point-Tunneling Protocol Point-to-Point-Tunneling Protocol (PPTP) merupakan teknologi jaringan yang mendukung multiprotocol jaringan pribadi virtual (VPN), jauh memungkinkan pengguna untuk mengakses jaringan perusahaan aman di Microsoft Windows NT Workstation, Windows 95, dan 98 sistem operasi Windows dan lain-titik-titik untuk protokol (PPP)diaktifkan untuk dial ke dalam sistem lokal penyedia layanan Internet aman untuk menyambung ke jaringan perusahaan mereka melalui Internet. Point ke Point Tunneling Protocol (PPTP) juga dapat digunakan untuk sebuah terowongan PPP sesi melalui jaringan IP. Dalam konfigurasi ini dalam terowongan PPTP dan PPP sesi berjalan antara dua mesin yang sama dengan pemanggil bertindak sebagai PNS. PPTP menggunakan arsitektur klien-server untuk decouple fungsi yang ada pada saat ini Jaringan Akses Server dan dukungan Jaringan Virtual Pribadi. PPTP menetapkan panggilan-kontrol dan manajemen protokol yang memungkinkan server untuk mengontrol akses untuk dial-in sirkuit beralih panggilan yang berasal dari PSTN atau ISDN, atau untuk melakukan sambungan keluar sirkuit dahulu. PPTP hanya dilaksanakan oleh PNS dan PAC. Tidak lain sistem harus menyadari PPTP. Dial jaringan dapat dihubungkan ke PAC tanpa sadar PPTP. Standar PPP klien perangkat lunak harus terus beroperasi pada tunneled PPP link. PPTP menggunakan suatu versi GRE untuk membawa pengguna paket PPP. Perangkat tambahan ini memungkinkan untuk low-tingkat kemacetan dan aliran kontrol yang akan diberikan pada terowongan digunakan untuk membawa data pengguna antara

PAC dan PNS. Mekanisme ini memungkinkan untuk efisien penggunaan bandwidth yang tersedia untuk menghindari terowongan dan tidak perlu retransmisions dan penyangga overruns. PPTP tidak mendikte khusus untuk algoritma ini digunakan untuk mengontrol tingkat rendah tetapi ia menetapkan parameter yang harus melakukan komunikasi untuk algoritma tersebut memungkinkan untuk bekerja. Fungsi tombol dari Microsoft PPTP telah dilindungi oleh L2TP, yang merupakan standar protokol IETF untuk tunneling. Network Monitoring and TroubleshootingEasy to use tool with comprehensive features at a fraction of the cost of others. Click here for free demo.Technical books, quick guides and posters Networking, telecom, computing, wireless, information technologies, security and much more ... Struktur protokol - pptp: menunjuk ke titik Tunneling Protokol 16 32 bit Panjang PPTP jenis pesan Magic cookie Kontrol jenis pesan Reserved 0 Versi protokol Reserved 1 Framing kemampuan Mengingat kemampuan Maksimum saluran Firmware revisi Nama Host (64 Octets) Vendor string (64 Octets) Panjang - Total panjang dalam octets ini termasuk pesan PPTP PPTP seluruh kepala. PPTP jenis pesan - Pesan jenis. Nilai yang mungkin adalah: 1Control pesan; 2Management pesan. Magic Cookie - Cookie adalah sihir yang selalu dikirim sebagai 0x1A2B3C4D konstan. Dasar dan tujuan adalah untuk memungkinkan penerima untuk memastikan bahwa itu benar disinkronkan dengan data TCP streaming. Pesan kontrol Jenis - Nilai dapat: Kontrol Koneksi Manajemen - 1StartControl-Permintaan sambungan-2 Mula-Control-Connection-Balas; 3Stop-

Control-Connection-Permintaan; 4Stop-Control-Connection-Balas; 5EchoPermintaan; 6Echo-Balas. Manajemen panggilan - 7Outgoing-panggilan-Permintaan; 8Outgoingpanggilan-Balas; panggilan-Balas; 9Incoming-panggilan-Permintaan; 11Incoming-panggilan-Hubungkan; 10Incoming12Call-Hapus-

Permintaan; 13Call-Putus-Beritahu Kesalahan Pelaporan - 14WAN-Kesalahan-Beritahu Acara Kontrol PPP - 15Set-Link-Info. Reserved 0 & 1 - Harus ditetapkan ke angka 0. Protokol versi - PPTP nomor versi Framing Kemampuan - Menunjukkan jenis pemasangan bahwa pengirim pesan ini dapat menyediakan: 1 Asynchronous Framing didukung; 2 sinkronis Framingdidukung Kemampuan P'bawa - Menunjukkan kemampuan pembawa bahwa pengirim pesan ini dapat menyediakan: 1 - Analog akses didukung; 2 Digital akses didukung Saluran maksimum - Jumlah individu PAC PPP sesi ini dapat mendukung. Revisi firmware - Berisi dengan firmware revisi jumlah penerbitan PAC, ketika dikeluarkan oleh PAC, atau versi PNS PPTP driver jika dikeluarkan oleh PNS. Nama host - Berisi nama DNS dari penerbitan PAC atau PNS. Nama vendor - Berisi yang spesifik vendor string yang menjelaskan jenis PAC yang digunakan, atau PNS jenis perangkat lunak yang digunakan jika permintaan ini dikeluarkan oleh PNS.

Layer 2 Tunneling Protocol Membangun tunneling Untuk membuat sebuah tunnel, diperlukan sebuah protokol pengaturnya sehingga tunnel secara logika ini dapat berjalan dengan baik bagaikan koneksi point-to-point sungguhan. Saat ini, tersedia banyak sekali protokol pembuat tunnel yang bisa digunakan. Namun, tunneling protocol yang paling umum dan paling banyak digunakan terdiri dari tiga jenis di bawah ini: 1. Layer 2 Tunneling Protocol (L 2 TP) L 2 TP adalah sebuah tunneling protocol yang memadukan dan mengombinasikan dua buah tunneling protocol yang bersifat proprietary, yaitu L 2 F (Layer 2 Forwarding) milik Cisco Systems dengan PPTP (Point-to-Point Tunneling Protocol) milik Microsoft. Pada awalnya, semua produk Cisco menggunakan L 2 F untuk mengurus tunneling-nya, sedangkan operating system Microsoft yang terdahulu hanya menggunakan PPTP untuk melayani penggunanya yang ingin bermain dengan tunnel. Namun saat ini, Microsoft Windows NT/2000 telah dapat menggunakan PPTP atau L 2 TP dalam teknologi VPN-nya. L 2 TP biasanya digunakan dalam membuat Virtual Private Dial Network (VPDN) yang dapat bekerja membawa semua jenis protokol komunikasi didalamnya. Selain itu, L 2 TP juga bersifat media independen karena dapat bekerja di atas media apapun. L 2 TP memungkinkan penggunanya untuk tetap dapat terkoneksi dengan jaringan lokal milik mereka dengan policy keamanan yang sama dan dari manapun mereka berada, melalui koneksi VPN atau VPDN. Koneksi ini sering kali dianggap sebagai sarana memperpanjang jaringan lokal milik penggunanya, namun melalui media publik.Namun, teknologi tunneling ini tidak

memiliki mekanisme untuk menyediakan fasilitas enkripsi karena memang benar-benar murni hanya membentuk jaringan tunnel. Selain itu, apa yang lalu-lalang di dalam tunnel ini dapat ditangkap dan dimonitor dengan menggunakan protocol analizer. 2. Generic Routing Encapsulation (GRE) Protokol tunneling yang satu

ini memiliki kemampuan membawa lebih dari satu jenis protokol pengalamatan komunikasi. Bukan hanya paket beralamat IP saja yang dapat dibawanya, melainkan banyak paket protokol lain seperti CNLP, IPX, dan banyak lagi. Namun, semua itu dibungkus atau dienkapsulasi menjadi sebuah paket yang bersistem pengalamatan IP. Kemudian paket tersebut didistribusikan melalui sistem tunnel yang juga bekerja di atas protokol komunikasi IP. Dengan menggunakan tunneling GRE, router yang ada pada ujung-ujung tunnel melakukan enkapsulasi paketpaket protokol lain di dalam header dari protokol IP. Hal ini akan membuat paket-paket tadi dapat dibawa ke manapun dengan cara dan metode yang terdapat pada teknologi IP. Dengan adanya kemampuan ini, maka protokol-protokol yang dibawa oleh paket IP tersebut dapat lebih bebas bergerak ke manapun lokasi yang dituju, asalkan terjangkau secara pengalamatan IP. Aplikasi yang cukup banyak menggunakan bantuan protokol tunneling ini adalah menggabungkan jaringan-jaringan lokal yang terpisah secara jarak kembali dapat berkomunikasi. Atau dengan kata lain, GRP banyak digunakan untuk memperpanjang dan mengekspansi jaringan lokal yang dimiliki si penggunanya. Meski cukup banyak digunakan, GRE juga tidak menyediakan sistem enkripsi data yang lalu-lalang di tunnel-nya, sehingga semua aktivitas datanya dapat dimonitor menggunakan protocol analyzer biasa saja. 3. IP Security Protocol (IP Sec) IP Sec adalah sebuat pilihan tunneling

protocol yang sangat tepat untuk digunakan dalam VPN level korporat. IP Sec merupakan protokol yang bersifat open standar yang dapat

menyediakan keamanan data, keutuhan data, dan autentikasi data antara kedua peer yang berpartisipasi di dalamnya. IP Sec menyediakan sistem keamanan data seperti ini dengan menggunakan sebuah metode pengaman yang bernama Internet Key Exchange (IKE). IKE ini bertugas untuk menangani masalah negosiasi dari protokol-protokol dan algoritma pengamanan yang diciptakan berdasarkan dari policy yang diterapkan pada jaringan si pengguna. IKE pada akhirnya akan menghasilkan sebuah sistem enkripsi dan kunci pengamannya yang akan digunakan untuk autentikasi pada sistem IP Sec ini.

RADIUS Remote Authentication Dial-In User Service (sering disingkat menjadi RADIUS) adalah sebuah protokol keamanan komputer yang digunakan untuk melakukan autentikasi, otorisasi, dan pendaftaran akun pengguna secara terpusat untuk mengakses jaringan. RADIUS didefinisikan di dalam RFC 2865 dan RFC 2866, yang pada awalnya digunakan untuk melakukan autentikasi terhadap akses jaringan secara jarak jauh dengan menggunakan koneksi dial-up. RADIUS, kini telah diimplementasikan untuk melakukan autentikasi terhadap akses jaringan secara jarak jauh dengan menggunakan koneksi selain dial-up, seperti halnya Virtual Private Networking (VPN), access point nirkabel, switch Ethernet, dan perangkat lainnya. Radius banyak dipakai oleh Provider dan ISP internet untuk authentikasi dan billingnya. Radius juga bisa dipakai oleh jaringan RT/RW-Net untuk authentikasi para penggunanya dan untuk mengamankan jaringan RT/RW-Net yang ada. Di indonesia sudah ada service radius, namun berbayar seperti indohotspot.net . Ada juga service yang tidak berbayar, dan dikelola oleh luar negeri seperti chillidog.org Selain lebih menghemat budget, dan juga menghemat biaya maintenance, sistem Radius yang di host di internet merupakan salah satu solusi murah untuk para penggagas sistem HotSpot.

Secure Hash Algorithm ( SHA ) Verifikasi dan otentikasi merupakan hal yang penting dalam pertukaran informasi. Hal ini dikarenakan dalam pertukaran informasi itu dibutuhkan suatu keaslian data dan keutuhannya. Asli di sini dalam arti datanya tidak berubah dan juga diketahui pengirim yang jelas dari data yang telah dikirimkan tersebut sehingga tidak terjadi penyangkalan terhadap data yang dikirimkan. Sedangkan keutuhan data di sini berarti data yang dikirimkan tersebut tetap dan tidak mengalami perubahan terhadap isi dari data yang dikirimkan tersebut. Fungsi hash merupakan salah satu fungsi yang memberikan layanan untuk verifikasi dan otentikasi karena fungsi hash ini menghasilkan suatu nilai yang unik untuk setiap pesan. Fungsi hash ini disebut juga fungsi satu arah ( one way hash function ) karena sangat sulit untuk mendapatkan kembali pesan awal dari hasil fungsi hash. Dan juga fungsi hash ini memiliki karakteristik berapa pun input yang diberikan akan menghasilkan output yang sama dengan nilai yang unik. Sebagian besar implementasi dari fungsi hash ini terdapat pada cryptography. Secure Hash Algorithm ( SHA ) merupakan salah satu algoritma fungsi hash yang digunakan. SHA adalah fungsi hash satu-arah yang dibuat oleh NIST dan digunakan bersama DSS (Digital Signature Standard). Oleh NSA, SHA dinyatakan sebagai standard fungsi hash satu-arah. SHA didasarkan pada MD4 yang dibuat oleh Ronald L. Rivest dari MIT. SHA disebut aman (secure) karena ia dirancang sedemikian sehingga secara komputasi tidak mungkin menemukan pesan yang berkoresponden dengan message digest yang diberikan.

Dengan mengubah sedikit pada pesan dengan probabilitas sangat tinggi akan menghasilkan message digest yang berbeda. Hal ini akan menjadikan kegagalan dalam verifikasi ketika secure hash algorithm ini digunakan dengan digital signature algorithm atau sebuah keyed-hash message authentication algorithm. SHA mempunyai empat spesifikasi, yaitu SHA-1, SHA-256, SHA-384 dan SHA-512. perbedaan dari keempat spesifikasi ini diperlihatkan pada tabel 1. Di sini akan dibahas tentang SHA-1 dan SHA-256. Tabel 1. Perbedaan pada spesifikasi pada secure hash algorithm

SHA-1 Algoritma

Algoritma SHA-1 menerima masukan berupa pesan dengan ukuran maksimum 264 bit (2.147.483.648 gigabyte) dan menghasilkan message digest yang panjangnya 160 bit, lebih panjang dari message digest yang dihasilkan oleh MD5. Gambaran pembuatan message digest dengan algoritma SHA-1 diperlihatkan pada Gambar 1.

Gambar 1. Pembuatan message digest dengan algoritma SHA-1

Langkah-langkah pembuatan message digest secara garis besar adalah sebagai berikut : 1. Penambahan bit-bit pengganjal (padding bits).
o

Pesan ditambah dengan sejumlah bit pengganjal sedemikian sehingga panjang pesan (dalam satuan bit) kongruen dengan 448 modulo 512. Ini berarti panjang pesan setelah ditambahi bit-bit pengganjal adalah 64 bit kurang dari kelipatan 512. Angka 512 ini muncul karena SHA-1 memperoses pesan dalam blok-blok yang berukuran 512.

Pesan dengan panjang 448 bit pun tetap ditambah dengan bit-bit pengganjal. Jika panjang pesan 448 bit, maka pesan tersebut ditambah dengan 512 bit menjadi 960 bit. Jadi, panjang bit-bit pengganjal adalah antara 1 sampai 512. Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0.

2. Penambahan nilai panjang pesan semula.

o o

Pesan yang telah diberi bit-bit pengganjal selanjutnya ditambah lagi dengan 64 bit yang menyatakan panjang pesan semula. Setelah ditambah dengan 64 bit, panjang pesan sekarang menjadi 512 bit.

3. Inisialisasi penyangga (buffer) MD.


o

SHA

membutuhkan

buah

penyangga

(buffer)

yang

masing-masing panjangnya 32 bit (MD5 hanya mempunyai 4 buah penyangga). Total panjang penyangga adalah 5 32 = 160 bit. Keempat penyangga ini menampung hasil antara dan hasil akhir.
o

Kelima penyangga ini diberi nama A, B, C, D, dan E. Setiap penyangga diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut: A B C D E C3D2E1F0 = = = = = 67452301 EFCDAB89 98BADCFE 10325476

4. Pengolahan pesan dalam blok berukuran 512 bit.


o

Pesan dibagi menjadi L buah blok yang masing-masing panjangnya 512 bit (Y0 sampai YL 1). Setiap blok 512-bit diproses bersama dengan penyangga MD menjadi keluaran 128-bit, dan ini disebut proses HSHA. Gambaran proses HSHA diperlihatkan pada Gambar 2.

Gambar 2. Pengolahan blok 512 bit (Proses HSHA)


o

Proses HSHA terdiri dari 80 buah putaran (MD5 hanya 4 putaran), dan masing-masing putaran menggunakan bilangan penambah Kt, yaitu:

Pada Gambar 2, Yq menyatakan blok 512-bit ke-q dari pesan yang telah ditambah bit-bit pengganjal dan tambahan 64 bit nilai panjang pesan semula. MDq adalah nilai message digest 160-bit dari proses HSHA ke-q. Pada awal proses, MDq berisi nilai inisialisasi penyangga MD. Setiap putaran menggunakan operasi dasar yang sama (dinyatakan sebagai fungsi f). Operasi dasar SHA-1 diperlihatkan pada Gambar 3.

Gambar 3. Operasi dasar SHA-1 dalam satu putaran (fungsi f)


o

Operasi dasar SHA-1 yang diperlihatkan pada Gambar 3 dapat ditulis dengan persamaan sebagai berikut :

yang dalam hal ini,

atau dapat dinyatakan dalam kode program sebagai berikut :

yang dalam hal ini, <<< menyatakan operasi pergeseran circular left shift. Fungsi ft adalah fungsi logika yang melakukan operasi logika bitwise. Operasi logika yang dilakukan dapat dilihat pada Tabel 2. Tabel 2. Fungsi logika ft pada setiap putaran

Catatan:

operator

logika

AND,

OR,

NOT,

XOR

masing-masing

dilambangkan dengan , U, ~, +

Nilai W1 sampai W16 berasal dari 16 word pada blok yang sedang diproses, persamaan sedangkan nilai Wt berikutnya didapatkan dari

Setelah putaran ke-79, a, b, c, d, dan e ditambahkan ke A, B, C, D, dan E dan selanjutnya algoritma memproses untuk blok data berikutnya (Yq+1). Keluaran akhir dari algoritma SHA adalah hasil penyambungan bit-bit di A, B, C, D, dan E. Teknik Otentikasi

Teknik otentikasi yang digunakan dalam SHA-1 ini yaitu dengan nilai hash atau hash value atau message digest yang nantinya akan digunakan untuk memverifikasi nilai hash dari message atau data yang diterima. Jika hasil perhitungan hashnya menghasilkan nilai yang

berbeda, maka pesan atau data yang diterima tersebut telah berubah. Bisa kemungkinan terjadi kesalahan atau bit error dalam pengiriman atau ada yang merubah pesan tersebut. Implementasi

SHA-1 ini dapat diimplementasikan dalam hardware, software maupun kombinasi antara hardware dan software. Selain itu bisa digunakan untuk otentikasi pada pengiriman berita rahasia, seperti pada publik key. SHA-1 bisa juga diimplementasikan ke dalam digital signature, message authentication code, password table, key derivation, universally unique identifier ( UUI ) dan globally unique identifier ( GUI ).

MD5 Dalam kriptografi, MD5 (Message-Digest algortihm 5) ialah fungsi hash kriptografik yang digunakan secara luas dengan hash value 128bit. Pada standart Internet (RFC 1321), MD5 telah dimanfaatkan secara bermacam-macam pada aplikasi keamanan, dan MD5 juga umum digunakan untuk melakukan pengujian integritas sebuah file.MD5 di desain oleh Ronald Rivest pada tahun 1991 untuk menggantikan hash function sebelumnya, MD4. Pada tahun 1996, sebuah kecacatan ditemukan dalam desainnya, walau bukan kelemahan fatal, pengguna kriptografi mulai menganjurkan menggunakan algoritma lain, seperti SHA-1 (klaim terbaru menyatakan bahwa SHA-1 juga cacat). Pada tahun 2004, kecacatan-kecacatan yang lebih serius ditemukan menyebabkan penggunaan algoritma tersebut dalam tujuan untuk keamanan jadi makin dipertanyakan.Daftar isi : 1 Sejarah dan kriptoanalisis 2 Efek nyata dari kriptoanalisis 3 Pengujian Integritas 4 Algortima 5 Pseudocode 6 Hash-hash MD5 7 Lihat pula 8 Pranala luar 8.1 Informasi MD5 8.2 Implementasi 8.3 Kerusakan

Sejarah dan kriptoanalisis

MD5 adalah salah satu dari serangkaian algortima message digest yang didesain oleh Profesor Ronald Rivest dari MIT (Rivest, 1994). Saat kerja analitik menunjukkan bahwa pendahulu MD5 MD4 mulai tidak aman, MD5 kemudian didesain pada tahun 1991 sebagai pengganti dari MD4 (kelemahan MD4 ditemukan oleh Hans Dobbertin).Pada tahun 1993, den Boer dan Bosselaers memberikan awal, bahkan terbatas, hasil dari penemuan pseudo-collision dari fungsi kompresi MD5. Dua vektor inisialisasi berbeda I dan J dengan beda 4-bit diantara keduanya. MD5compress(I,X) = MD5compress(J,X) Pada tahun 1996 Dobbertin mengumumkan sebuah kerusakan pada fungsi kompresi MD5. Dikarenakan hal ini bukanlah serangan terhadap fungsi hash MD5 sepenuhnya, hal ini menyebabkan para pengguna kriptografi menganjurkan pengganti seperti WHIRLPOOL, SHA1 atau RIPEMD-160.Ukuran dari hash 128-bit cukup kecil untuk terjadinya serangan brute force birthday attack. MD5CRK adalah proyek distribusi kelemahan mulai dari Maret MD5 2004 dengan dengan tujuan untuk menunjukka kompresi menemukan kerusakan

menggunakan brute force attack. Bagaimanapun juga, MD5CRK berhenti pada tanggal 17 Agustus 2004, saat [[kerusakan hash]] pada MD5 diumumkan oleh Xiaoyun Wang, Dengguo Feng, Xuejia Lai dan Hongbo Yu [1][2]. Serangan analitik mereka dikabarkan hanya memerlukan satu jam dengan menggunakan IBM P690 cluster.Pada tanggal 1 Maret 2005, Arjen Lenstra, Xiaoyun Wang, and Benne de Weger mendemontrasikan[3] kunstruksi dari dua buah sertifikat X.509 dengan public key yang berbeda dan hash MD5 yang sama, hasil dari demontrasi menunjukkan adanya kerusakan. Konstruksi tersebut melibatkan private key untuk kedua public key tersebut. Dan beberapa hari setelahnya, Vlastimil Klima menjabarkan[4] dan mengembangkan algortima, mampu membuat kerusakan Md5 dalam beberapa jam dengan menggunakan sebuah komputer notebook. Hal ini menyebabkan MD5 tidak bebas dari

kerusakan.Dikarenakan MD5 hanya menggunakan satu langkah pada data, jika dua buah awalan dengan hash yang sama dapat dibangun, sebuah akhiran yang umum dapat ditambahkan pada keduanya untuk membuat kerusakan lebih masuk akal. Dan dikarenakan teknik penemuan kerusakan mengijinkan pendahuluan kondisi hash menjadi arbitari tertentu, sebuah kerusakan dapat ditemukan dengan awalan apapun. Proses tersebut memerlukan pembangkitan dua buah file perusak sebagai file templat, dengan menggunakan blok 128-byte dari tatanan data pada 64-byte batasan, file-file tersebut dapat mengubah dengan bebas dengan menggunakan algoritma penemuan kerusakan. Efek nyata dari kriptoanalisis Saat ini dapat diketahui, dengan beberapa jam kerja, bagaimana proses pembangkitan kerusakan MD5. Yaitu dengan membangkitkan dua byte string dengan hash yang sama. Dikarenakan terdapat bilangan yang terbatas pada keluaran MD5 (2128), tetapi terdapat bilangan yang tak terbatas sebagai masukannya, hal ini harus dipahami sebelum kerusakan dapat ditimbulkan, tapi hal ini telah diyakini benar bahwa menemukannya adalah hal yang sulit.Sebagai hasilnya bahwa hash MD5 dari informasi tertentu tidak dapat lagi mengenalinya secara berbeda. Jika ditunjukkan informasi dari sebuah public key, hash MD5 tidak mengenalinya secata berbeda jika terdapat public key selanjutnya yang mempunyai hash MD5 yang sama.Bagaimanapun juga, penyerangan tersebut memerlukan Kedua kemampuan tersebut untuk tidak memilih dengan kedua mudah pesan untuk kerusakan. pesan

memberikan serangan preimage, menemukan pesan dengan hash MD5 yang sudah ditentukan, ataupun serangan preimage kedua, menemukan pesan dengan hash MD5 yang sama sebagai pesan yang diinginkan.Hash MD5 lama, yang dibuat sebelum serangan-serangan tersebut diungkap, masih dinilai aman untuk saat ini. Khususnya pada digital signature lama masih dianggap layak pakai. Seorang user boleh

saja tidak ingin membangkitkan atau mempercayai signature baru menggunakan MD5 jika masih ada kemungkinan kecil pada teks (kerusakan dilakukan dengan melibatkan pelompatan beberapa bit pada bagian 128-byte pada masukan hash) akan memberikan perubahan yang berarti.Penjaminan Situasi ini berdasar saja pada posisi saat ini dari tetapi kriptoanalisis. bisa berubah secara tiba-tiba,

menemukan kerusakan dengan beberapa data yang belum-ada adalah permasalahan yang lebih susah lagi, dan akan selalu butuh waktu untuk terjadinya sebuah transisi. Pengujian Integritas Ringkasan MD5 digunakan secara luas dalam dunia perangkat lunak untuk menyediakan semacam jaminan bahwa file yang diambil (download) belum terdapat perubahan. Seorang user dapat membandingkan MD5 sum yang dipublikasikan dengan checksum dari file yang diambil. Dengan asumsi bahwa checksum yang dipublikasikan dapat dipercaya akan keasliannya, seorang user dapat secara yakin bahwa dile tersebut adalah file yang sama dengan file yang dirilis oleh para developer, jaminan perlindungan dari Trojan Horse dan virus komputer yang ditambahkan pada perangkat lunak.Bagaimanapun juga, seringkali kasus yangterjadi bahwa checksum yang dipublikasikan tidak dapat dipercaya (sebagai contoh, checksum didapat dari channel atau lokasi yang sama dengan tempat mengambil file), dalam hal ini MD5 hanya mampu melakukan error-checking. MD5 akan mengenali file yang didownload tidak sempurna, cacat atau tidak lengkap. Algortima Gambar 1. Satu operasi MD5 MD5 terdiri atas 64 operasi, dikelompokkan dalam empat putaran dari 16 operasi. F adalah fungsi nonlinear; satu fungsi digunakan pada tiap-tiap putaran. Mi menujukkan blok 32-bit dari masukan pesan, dan Ki menunjukkan konstanta 32-bit,

berbeda untuk tiap-tiap operasi.s menunjukkan perputaran bit kiri oleh s; s bervariasi untuk tiap-tiap operasi. menunjukan tambahan modulo 232. MD5 memproses variasi panjang pesan kedalam keluaran 128-bit dengan panjang yang tetap. Pesan masukan dipecah menjadi dua gumpalan blok 512-bit; Pesan ditata sehingga panjang pesan dapat dibagi 512. Penataan bekerja sebagai berikut: bit tunggal pertama, 1, diletakkan pada akhir pedan. Proses ini diikuti dengan serangkaian nol (0) yang diperlukan agar panjang pesan lebih dari 64-bit dan kurang dari kelipatan 512. Bit-bit sisa diisi dengan 64-bit integer untuk menunjukkan panjang pesan yang asli. Sebuah pesan selalu ditata setidaknya dengan 1-bit tunggal, seperti jika panjang pesan adalah kelipatan 512 dikurangi 64-bit untuk informasi panjang (panjang mod(512) = 448), sebuah blok baru dari 512-bit ditambahkan dengan 1-bit diikuti dengan 447 bit-bit nol (0) diikuti dengan panjang 64-bit.Algortima MD5 yang utama beroperasi pada kondisi 128-bit, dibagi menjadi empat word 32-bit, menunjukkan A, B, C dan D. Operasi tersebut di inisialisasi dijaga untuk tetap konstan. Algoritma utama kemudian beroperasi pada masingmasing blok pesan 512-bit, masing-masing blok melakukan pengubahan terhadap kondisi.Pemrosesan blok pesan terdiri atas empat tahap, batasan putaran; tiap putasan membuat 16 operasi serupa berdasar pada fungsi non-linear F, tambahan modular, dan rotasi ke kiri. Gambar satu mengilustrasikan satu operasi dalam putaran. Ada empat macam kemungkinan fungsi F, berbeda dari yang digunakan pada tiap-tiap putaran: menunjukkan operasi logikan XOR, AND, OR dan NOT. Pseudocode Pseudocode pada algoritma MD5 adalah sebagai berikut. //Catatan: Seluruh variable tidak pada 32-bit dan dan wrap modulo 2^32 saat melakukan perhitungan

//Mendefinisikan r sebagai berikut var int[64] r, k r[ 0..15] := {7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22, 7, 12, 17, 22} r[16..31] := {5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20, 5, 9, 14, 20} r[32..47] := {4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23, 4, 11, 16, 23} r[48..63] := {6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21, 6, 10, 15, 21}

//Menggunakan bagian fraksional biner dari integral sinus sebagai konstanta: for i from 0 to 63 k[i] := floor(abs(sin(i + 1)) 2^32) //Inisialisasi variabel: var int h0 := 0x67452301 var int h1 := 0xEFCDAB89 var int h2 := 0x98BADCFE var int h3 := 0x10325476 //Pemrosesan awal: append "1" bit to message append "0" bits until message length in bits 448 (mod 512) append bit length of message as 64-bit little-endian integer to message //Pengolahan pesan paada kondisi gumpalan 512-bit: for each 512-bit chunk of message break chunk into sixteen 32-bit little-endian words w(i), 0 i 15 //Inisialisasi nilai hash pada gumpalan ini:

var int a := h0 var int b := h1 var int c := h2 var int d := h3 //Kalang utama: for i from 0 to 63 if 0 i 15 then f := (b and c) or ((not b) and d) g := i else if 16 i 31 f := (d and b) or ((not d) and c) g := (5i + 1) mod 16 else if 32 i 47 f := b xor c xor d g := (3i + 5) mod 16 else if 48 i 63 f := c xor (b or (not d)) g := (7i) mod 16 temp := d d := c c := b b := ((a + f + k(i) + w(g)) leftrotate r(i)) + b a := temp //Tambahkan hash dari gumpalan sebagai hasil: h0 := h0 + a h1 := h1 + b h2 := h2 + c h3 := h3 + d

var int digest := h0 append h1 append h2 append h3 //(diwujudkan dalam little-endian) Catatan: Meskipun rumusan dari yang tertera pada RFC 1321, berikut ini sering digunakan untuk meningkatkan efisiensi: (0 i 15): f := d xor (b and (c xor d)) (16 i 31): f := c xor (d and (b xor c)) Hash-hash MD5 Hash-hash MD5 sepanjang 128-bit (16-byte), yang dikenal juga sebagai ringkasan pesan, secara tipikal ditampilkan dalam bilangan heksadesimal 32-digit. Berikut ini merupakan contoh pesan ASCII sepanjang 43-byte sebagai masukan dan hash MD5 terkait: MD5("The quick brown fox jumps over the lazy dog") = 9e107d9d372bb6826bd81d3542a419d6 Bahkan perubahan yang kecil pada pesan akan (dengan probabilitas lebih) menghasilkan hash yang benar-benar berbeda, misalnya pada kata "dog", huruf d diganti menjadi c: MD5("The quick brown fox jumps over the lazy cog") = 1055d3e698d289f2af8663725127bd4b Hash dari panjang-nol ialah: MD5("") = d41d8cd98f00b204e9800998ecf8427e

SSH SEJARAH SSH Pada Helsinki seperti awalnya SSH dikembangkan oleh Tatu Yl nen di University telnet of Technology. SSH memberikan alternatif yang relogin.Protokol SSH mendukung otentikasi spoofing beberapa Blowfish) dan maupun protocol untuk suatu

secure terhadap remote session tradisional dan file transfer protocol dan terhadap remote host, yang dengan demikian meminimalkan ancaman pemalsuan identitas client lewat IP address manipulasi DNS. enkripsi dimulai virtual secret dengan private Selain key itu SSH mendukung (DES,TripleDES,IDEA,

membantu memastikan privacy dari keseluruhan komunikasi, yang username/password connection pada awal.SSH menyediakan application layer, mencakup

interactive logon protocol (ssh dan sshd) serta fasilitas untuk secure transfer file (scd). Setelah meng-instal SSH, mendisable telnet dan rlogin. sangat dianjurkan untuk Implementasi SSH pada

linuxdiantaranya adalah OpenSSH. SSH merupakan paket program yang digunakan sebagai pengganti yang aman untuk rlogin, rsh dan rcp. Ia menggunakan public-key cryptography untuk mengenkripsi komunikasi antara dua host, demikian pula untuk autentikasi pemakai. dapat digunakan untuk host, login secara aman ke remote host menyalin data antar Ia atau

sementara mencegah man-in-the-middle

attacks (pembajakan sesi) dan DNS spoofing atau dapat dikatakan Secure Shell adalahprogram yang melakukan loging terhadap komputer

lain dalam jaringan, mengeksekusi perintah lewat mesin secara remote, dan memindahkan file dari satu mesin ke mesin lainnya.

Secure Socket Layer (SSL)

SSL

(Secure

Socket

Layer)

dikembangkan

oleh

Netscape untuk mengamankan HTTPdan sampai sekarang masih inilah pemanfaatan utama SSL. SSL menjadi penting karena beberapa produk umum seperti Netscape Communicator, Internet Explorer, dan WS_FTP Pro,yang merupakan produk yang lazim digunakan, menggunakan SSL. Secure Sockets Layer,adalah metode enkripsi yang dikembangkan oleh Netscape untuk memberikan keamanan diInternet. Ia mendukung beberapa protokol enkripsi dan memberikan autentikasi client dan server. SSL beroperasi pada layer transpor, menciptakan saluran enkripsi yang aman untuk data,dan dapat mengenkripsi banyak tipe data. Hal ini dapat dilihat ketika mengunjungi site yang aman untuk melihat dokumen online aman dengan Communicator, dan berfungsi sebagai dasar komunikasi yang aman dengan Communicator, juga dengan enkripsi data Netscape Communication lainnya. Atau dapat dikatakan bahwa SSL merupakan Protokol berlapis. Dalam tiap lapisannya, sebuah data terdiri dari panjang, deskripsi dan isi. SSL mengambil data untuk dikirimkan, dipecahkan kedalam blok-blok yang teratur, kemudian dikompres jika perlu,menerapkan MAC, dienkripsi, dan hasilnya

dikirimkan. Di tempat tujuan, data didekripsi,verifikasi, dekompres, dan disusun kembali. Hasilnya dikirimkan ke klien di atasnya Secure Sockets Layer atau yang disingkat SSL adalah sebuah protokol keamanan data yang digunakan untuk menjaga pengiriman data antara web server dan pengguna situs web tersebut.SSL umumnya sudah terinstall didalam mayoritas browser web yang ada (IE, Netscape, Firefox, dll), sehingga pengguna situs web dapat mengidentifikasi tingkat keamanan situs web tersebut yang menggunakan protokol keamanan SSL ini.Browser web secara otomatis akan mencek apakah sertifikat SSL dan identitas situs web valid dan situs tersebut terdaftar pada otoritas sertifikasi (CA) SSL (cth. Verisign). Dengan demikian, SSL ini menjadi sangat penting terutama untuk situs web yang menjalankan transaksi online.Koneksi SSL akan memproteksi informasi vital dengan meng-enkripsi informasi yang dikirim dan diterima antara pc pengguna situs dan web server, sehingga informasi yang berjalan tidak mungkin dapat diambil ditengah jalan dan dibaca isinya. Hal ini berarti pengguna tidak perlu ragu untuk mengirim informasi vital seperti nomor kartu kredit kepada situs web yang telah memasang SSL tersertifikat ini. A.CARAKERJASSL Seorang pelanggan masuk kedalam situs anda dan melakukan akses ke URL yang terproteksi (ditandai dengan awalan https atau dengan munculnya pesan dari browser).Server anda akan memberitahukan secara otomatis kepada pelanggan tersebut mengenai sertifikat digital situs anda yang menyatakan bahwa situs anda telah tervalidasi sebagai situs yang menggunakan SSL.Browser pelanggan akan mengacak session key dengan public key situs anda sehingga hanya situs anda yang akan dapat membaca semua transaksi yang terjadi antara browser pelanggan dengan situs anda.Hal diatas semua terjadi dalam hitungan detik dan tidak memerlukan aktifitas apapun dari pelanggan.

Cara kerja SSL dapat kita lihat dengan tahapan tahapan : Langkah 1 Client membentuk koneksi awal ke server dan meminta koneksi SSL. Langkah 2 Bila server yang dihubungi telah dikonfigurasi dengan benar, maka server ini akanmengirimkan client public key miliknya. Langkah 3 Client membandingkan sertifikat dari server ke basisdata trusted authorities. Bila sertifikat initerdaftar di situ, artinya client mempercayai (trust) server itu dan akan maju kelangkah 4. Bilasertifikat itu terdaftar, maka pemakai harus menambahkan sertifikat ini ke trusted databasesebelum maju ke langkah 4. Langkah 4 Client menggunakan Public Key yang didapatnya untuk menenkrip sesi dan mengirimkansession key ke server. Bila server meminta sertifikat client di langkah2, maka clent harusmengirimkannya sekarang. Langkah5 Bila server di-setup untuk menerima sertifikat, maka server akan membandingkan sertifikatyang diterimanya dengan basisdata trusted authorities dan akan menerima atau menolakkoneksi yang diminta. Bila kondisi ditolak, suatu pesan kegagalan akan dikirimkan ke client. Bila koneksi diterima,atau bila server tidak di-setup untuk menerima sertifikat, maka server akan men-decode sessionkey yang didapat dari client dengan privete key milik server dan mengirimkan pesan berhasil keclient yang dengan demikian membuka suatu secure data chanel.

SECURITY TOKEN
Token atau Access Token, dalam arsitektur Windows NT adalah sebuah objek sistem operasi (yang diberi nama "Token") yang merepresentasikan subjek dalam beberapa operasi pengaturan akses (access control). Objek Token umumnya dibuat oleh layanan logon (logon service) untuk merepresentasikan informasi keamanan yang diketahui mengenai sebuah pengguna yang lolos proses autentikasi (authenticated user). Objek token digunakan oleh komponen sistem operasi Windows NT yang menangani masalah keamanan, yaitu Security Reference Monitor (SRM). SRM menggunakan objek token untuk melakukan identifikasi konteks keamanan (security context) dari sebuah proses atau thread. Sebuah konteks keamanan berisi informasi-informasi yang menjelaskan hak (privilege), akun, dan grup yang diasosiasikan dengan proses atau thread. Ketika proses logon, proses Winlogon.exe akan membuat sebuah token awal untuk merepresentasikan pengguna yang sedang melakukan logon dan kemudian menempelkan token tersebut ke proses shell logon milik pengguna yang bersangkutan. Semua program yang dijalankan oleh pengguna tersebut akan mewarisi salinan dari token awal yang dibuat oleh Winlogon tersebut. Win32 API juga menyediakan fungsi untuk membuat token, yakni fungsi LogonUser() yang selanjutnya dapat digunakan untuk membuat sebuah proses yang berjalan di dalam konteks keamanan dari pengguna yang sedang logon dengan

menggunakan fungsi CreateProcessAsUser(). Ukuran token adalah bervariasi, karena akun pengguna yang berbeda akan memiliki hak dan group yang berbeda pula. Meskipun demikian, semua token Token mengandung informasi yang sama.Nama field Keterangan

Source Berisi deskripsi mengenai entitas yang membuat token yang bersangkutan. Program yang hendak mengetahui di mana sebuah token dibuat akan menggunakan field ini untuk membedakan sumber pembuat token.Impersonation Type Token ID Berisi informasi Locally Unique Identifier (LUID) yang dibuat oleh Security Reference Monitor terhadap token ketika membuat token. Windows akan memelihara sebuah daftar LUID yang disebut dengan Executive LUID, yang merupakan sebuah nilai yang digunakan untuk memberikan sebuah angka yang unik terhadap setiap token. Authentication ID Berisi informasi LUID yang dibuat oleh pembuat token yang bersangkutan. Proses lsass.exe biasanya merupakan pembuat token di dalam sistem, dan lsass.exe mendapatkan LUID dari Executive LUID. Selanjutnya lsass.exe akan menyalin field ini untuk semua token yang berasal dari token awal yang dibuat pada saat logon. Sebuah program juga dapat memperoleh nilai field ini untuk melihat apakah token tersebut berasal dari sesi logon yang sama atau tidak. Modified ID Field ini akan diperbarui oleh Executive LUID saat karakteristik sebuah token diubah. Sebuah program dapat menguji apakah sebuah token berubah atau tidak dengan melihat field ini dan membandingkannya dengan nilai yang sebelumnya. Expiration time Menentukan kapan waktu sebuah token mengalami kadaluwarsa. Field ini sebenarnya telah ada dari Windows NT 3.1 tapi tidak pernah digunakan. Default Primary Grou p Atribut keamanan yang diaplikasikan terhadap objek-objek yang dibuat oleh proses atau thread ketika menggunakan dalam token, token. Windows Dengan dapat memasukkan informasi keamanan

menjadikan sebuah proses atau thread untuk membuat objek dengan atribut keamanan karena proses atau thread tersebut tidak perlu lagi

melakukan request terhadap informasi keamanan yang berbeda untuk setiap objek yang dibuatnya.Default DACL Atribut keamanan yang diaplikasikan terhadap objek-objek yang dibuat oleh proses atau thread ketika menggunakan token. Dengan memasukkan informasi keamanan dalam token, Windows dapat menjadikan sebuah proses atau thread untuk membuat objek dengan atribut keamanan karena proses atau thread tersebut tidak perlu lagi melakukan request terhadap informasi keamanan yang berbeda untuk setiap objek yang dibuatnya.User Account SIDBerisi Security Identifier (SID) yang dimiliki oleh pengguna.Group 1 SID hingga Group n SID Berisi daftar group di mana pengguna menjadi anggota yang direpresentasikan dalam bentuk SID.Restricted SID 1 hingga Restricted SID n Berisi daftar group SID yang dinonaktifkan.Privilege 1 hingga Privilege n Berisi hak-hak yang dimiliki oleh sebuah token. Privilege tidak dapat dihapus tapi dapat dinonaktifkan. Kebanyakan privilege dinonaktifkan secara default untuk mencegah adanya kerusakan yang terjadi pada program yang didesain tanpa disertai dengan kesadaran akan masalah keamanan. Mekanisme keamanan dalam Windows 2000 menggunakan dua komponen token untuk menentukan apa yang dapat dilakukan oleh thread atau proses yang berjalan atas token tersebut. Satu komponen akan menangani field User Account SID dan Group SID di dalam Token. SRM kemudian menggunakan SID untuk menentukan apakah sebuah proses atau thread dapat memperoleh akses yang dimintanya terhadap objek yang dapat diamankan, seperti berkas dalam sistem berkas NTFS. Group SID dalam token dapat membedakan termasuk ke dalam group manakah akun pengguna yang bersangkutan. Sebuah aplikasi server dapat menonaktifkan group spesifik untuk membatasi token ketika aplikasi tersebut melakukan beberapa operasi yang diminta oleh klien. Menonaktifkan sebuah group dapat menyebabkan group tersebut seolah-olah tidak ada dalam token.

Komponen kedua dari dua komponen token yang digunakan oleh Windows 2000 yang menentukan apa yang dapat dilakukan oleh thread atau proses yang berjalan atas token tersebut, adalah larik privilege (privilege array). Larik privilege merupakan sebuah daftar hak yang diasosiasikan dengan token. Sebagai contoh dari privilege adalah hak yang dimiliki oleh proses atau thread untuk melakukan shutdown terhadap komputer. Objek token terbagi menjadi dua jenis, yakni: Primary Token, yakni token yang mengidentifikasikan konteks keamanan dari sebuah proses Impersonation Token, yakni token yang mengadopsi sebuah konteks keamanan yang berbeda (umumnya pengguna lainnya) secara sementara.

Anda mungkin juga menyukai