BAB II TINJAUAN PUSTAKA II.1 Kriptografi Kata cryptography berasal dari bahasa Yunani krupto (hidden atau secret) dan grafh (writing) yang artinya adalah secret writing. Definisi kriptografi menurut Schneier yaitu ilmu dan seni untuk menjaga keamanan pesan [SCH96]. Terdapat empat tujuan mendasar dari ilmu kriptografi yang juga merupakan aspek keamanan informasi yaitu [MUN09]: 1. Kerahasiaan Kerahasiaan adalah layanan yang digunakan untuk menjaga isi pesan dari siapapun yang tidak berhak untuk membacanya. 2. Integritas data Layanan yang menjamin bahwa pesan masih asli/utuh atau belum pernah dimanipulasi selama pengiriman. 3. Otentikasi Layanan untuk mengidentifikasi kebenaran pihak-pihak yang berkomunikasi (user authentication) dan untuk mengidentifikasi kebenaran sumber pesan (data origin authentication). 4. Non-repudiasi atau nirpenyangkalan Layanan untuk mencegah entitas yang berkomunikasi melakukan penyangkalan yaitu pengirim pesan menyangkal melakukan pengiriman atau penerima pesan menyangkal telah menerima pesan.
II-1
II-2 Terdapat dua tipe umum dari algoritma yang berbasis kunci yaitu algoritma simetrik dan asimetrik. Kedua tipe tersebut akan dipaparkan pada subbab berikutnya. II.1.1.
Algoritma Simetrik Algoritma simetrik adalah algoritma yang kunci enkripsinya dapat dihitung dari kunci
dekripsinya dan sebaliknya. Sebagian besar algoritma simetrik menggunakan kunci enkripsi dan dekripsi yang sama. Keamanan dari dari suatu algoritma simetrik bergantung pada kunci. Jika kunci sudah diketahui, maka siapa pun dapat mengenkripsi dan mendekripsi pesan tersebut. Jika komunikasi harus tetap rahasia, maka kunci juga harus tetap rahasia. Algoritma simetrik dapat dibagi menjadi 2 kategori yaitu stream cipher dan block cipher. Algoritma stream cipher beroperasi pada suatu bit sedangkan algoritma block cipher beroperasi pada kumpulan bit. Kelebihan algoritma simetri antara lain [MUN09]: 1. Algoritma kriptografi simerti dirancang sehingga proses enkripsi atau dekripsi membutuhkan waktu yang lebih singkat. 2. Ukuran kunci simetri relatif pendek 3. Algoritma kriptografi simetri dapat digunakan untuk membangkitkan bilangan acak. 4. Algortima kriptografi simetri dapat disusun untuk menghasilkan cipher yang lebih kuat. 5. Otentikasi pengirim pesan langsung diketahui dari cipherteks yang diterima karena kunci hanya diketahui oleh pengirim dan penerima pesan saja. Kelemahan kriptografi simetri antara lain [MUN09]: 1. Kunci simetri harus dikirim melalui saluran yang aman. Kedua entitas yang berkomunikasi harus menjaga kerahasiaan kunci ini. 2. Kunci harus sering diubah, mungkin pada setiap sesi komunikasi.
II-3 II.1.2.
Algoritma Asimetrik Algoritma asimetrik atau algoritma kriptografi kunci-publik didesain agar kunci yang
digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Artinya, kunci dekripsi tidak dapat dihitung dari kunci enkripsi. Kunci enkripsi dapat disebut sebagai kunci publik sedangkan kunci dekripsi dapat disebut dengan kunci privat. Gambar II-1 menunjukkan sistem kriptografi kunci publik.
e
plainteks
enkripsi
d
cipherteks
dekripsi
plainteks semula
Gambar II-1 Sistem kriptografi kunci-publik [MUN09]
Sistem kriptografi kunci-publik cocok digunakan untuk kelompok pengguna di lingkungan jaringan komputer. Setiap pengguna jaringan mempunyai kunci-publik dan kunci rahasia yang bersesuaian. Kunci-publik biasanya disimpan dalam basis data kunci yang dapat diakses oleh orang lain karena bersifat tidak rahasia. Hanya penerima pesan yang berhak yang dapat mendekripsi pesan karena ia mempunyai kunci rahasia. Kelebihan kriptografi asimetri antara lain [MUN09]: 1. Hanya kunci privat yang perlu dijaga kerahasiaannya oleh setiap entitas yang berkomunikasi. Tidak ada kebutuhan mengirim kunci privat sebagaimana pada sistem simetri. 2. Pasangan kunci publik dan kunci privat tidak perlu diubah, bahkan dalam periode waktu yang panjang. 3. Dapat digunakan untuk mengamankan pengiriman kunci simetri.
II-4 4. Beberapa algoritma kunci-publik dapat digunakan untuk memberikan tanda tangan digital pada pesan. Kelemahan kriptografi kunci-publik antara lain [MUN09]: 1. Enkripsi dan dekripsi data umumnya lebih lambat daripada sistem simetri karena enkripsi dan dekripsi menggunakan bilangan yang besar dan melibatkan operasi perpangkatan yang besar. 2. Ukuran cipherteks lebih besar daripada plainteks. 3. Ukuran kunci relatif lebih besar daripada ukuran kunci simetri. 4. Karena kunci publik diketahui secara luas dan dapat digunakan setiap orang, maka cipherteks tidak memberikan informasi mengenai otentikasi pengirim. 5. Tidak ada algoritma kunci-publik yang terbukti aman. Kebanyakan algoritma mendasarkan keamanannya pada sulitnya memecahkan persoalan-persoalan aritmatik yang menjadi dasar pembangkitan kunci.
II.2 Algoritma Diffie Hellman Diffie Hellman adalah algoritma kunci publik pertama yang pernah diciptakan pada tahun 1976. Keamanan dalam algoritma ini didapatkan dari sulitnya menghitung logaritma diskrit dalam suatu batasan tertentu jika dibandingkan dengan mudahnya menghitung eksponensiasi dengan batasan yang sama. Algoritma ini dapat digunakan untuk distribusi kunci dan tidak dapat digunakan untuk mengenkripsi atau mendekripsi pesan. Algoritma ini memiliki beberapa tahapan. Untuk lebih mudah dalam menjelaskan tahapan dalam algoritma ini, kita akan memisalkan pihak pertama dengan nama Alice dan pihak kedua dengan nama Bob. Pertama, Alice dan Bob menyetujui suatu n dan g yang merupakan suatu bilangan prima yang besar. g adalah primitif dari mod n. Kedua bilangan bulat ini, tidak harus rahasia. Protokol kemudian berjalan seperti berikut:
II-5 (1) Alice memilih suatu bilangan bulat acak besar x dan mengirimkannya kepada Bob X = gx mod n
(II-1)
(2) Bob memilih suatu bilangan bulat acak besar y dan mengirimkannya kepada Alice Y = gy mod n
(II-2)
k = Yx mod n
(II-3)
k’ = Xy mod n
(II-4)
(3) Alice menghitung
(4) Bob menghitung
kedua k dan k’ bersesuaian dengan gxy mod n. Orang lain hanya mengetahui n, g, X, dan Y. Walaupun orang lain bisa menghitung logaritma diskrit dan mendapatkan nilai x atau y, mereka tidak dapat memecahkan masalah tersebut. Jadi, k adalah kunci rahasia yang dapat dihitung oleh Alice dan Bob secara independen. Pemilihan g dan n dapat memberikan suatu dampak yang penting dalam hal keamanan dari sistem tersebut. Bilangan (n-1)/2 harus prima dan yang penting nilai n harus besar. Keamanan dari sistem berbasis pada sulitnya memfaktorkan bilangan-bilangan pada ukuran yang sama dengan n.
II.3 Algoritma RSA RSA merupakan algoritma yang mudah dimengerti dan diimplementasikan. Algoritma ini juga sangat terkenal. Singkatan RSA berasal dari ketiga penemunya yaitu Ron Rivest, Adi Shamir dan Leonard Adleman yang sudah berkecimpung dalam bidang kriptanalisis ekstensif selama bertahun-tahun. Keamanan RSA didapatkan dari sulitnya memfaktorkan bilangan yang besar. Kunci privat dan publik adalah fungsi dari suatu pasangan dari dua bilangan prima besar. Pencarian plainteks dari kunci publik dan cipherteks sama dengan memfaktorkan produk dari dua bilangan prima.
II-6 Untuk membangkitkan kedua kunci, dipilih dua bilangan prima besar p dan q. Untuk keamanan yang maksimal, pilih p dan q yang panjangnya sama. Hitung hasil dari n = pq
(II-5)
Lalu secara acak pilih kunci enkripsi e sehingga e dan (p-1)(q-1) sehingga p dan q relatif prima. Terakhir, gunakan algoritma Euclidean yang sudah diperluas untuk menghitung kunci dekripsi d sehingga ed = 1 (mod(p-1)(q-1))
(II-6)
d = e-1 mod ((p-1)(q-1))
(II-7)
atau dalam bentuk lain
d dan n juga harus relatif prima. Bilangan e dan n adalah kunci publik dan d adalah kunci privat. Bilangan prima p dan q sudah tidak dibutuhkan lagi. Untuk mengenkripsi suatu pesan m, pertama bagi pesan m menjadi blok-blok numerik yang lebih kecil dari n. Jika kedua p dan q adalah 100 digit prima, maka n hanya akan dibawah 200 digit dan setiap blok pesan, mi. Pesan yang telah terenkripsi yaitu c akan terdiri atas pesan yang memiliki panjang blok yang sama yaitu ci. Formula enkripsi dalam algoritma ini adalah sebagai berikut. ci = mie mod n
(II-8)
untuk mendekripsi pesan, ambil setiap blok yang sudah terenkripsi yaitu ci lalu hitung mi = cid mod n.
(II-9)
II.4 Algoritma Rijndael National Institute of Standards and Technology (NIST) mengusulkan kepada pemerintah federal Amerika Serikat untuk membuat sebuah standard kriptografi yang baru. Oleh karena itu, NIST mengadakan lomba untuk membuat standard algoritma kriptografi
II-7 yang baru. Standard tersebut kelak diberi nama Advanced Encryption Standard (AES). Pada bulan Oktober 2000, NIST mengumumkan untuk memilih Rijndael. Pada bulan November 2001, Rijndael ditetapkan sebagai AES. Algoritma Rijndael dibuat oleh dua kritografer asal Belgia yaitu Joan Daemen dan Vincent Rijmen. II.4.1.
Gambaran Umum Algoritma Algoritma Rijndael secara umum dapat digambarkan sebagai berikut
A. Ekspansi Kunci B. Ronde awal a. AddRoundKey C. Ronde a. SubByte b. ShiftRows c. MixColumns d. AddRoundKey D. Ronde Final a. SubBytes b. ShiftRows c. AddRoundKey II.4.2.
Desain Ada 3 kriteria dalam desain algoritma Rijndael yaitu : 1. Ketahanan terhadap semua serangan yang diketahui. 2. Kecepatan dan kekompakan kode dalam platform yang luas. 3. Kesederhanaan desain.
II-8 Pada sebagian besar cipher, transformasi ronde memiliki struktur feistel. Dalam struktur ini, biasanya bagian dari bit-bit pada state pertengahan secara sederhana ditranspos tanpa diubah ke posisi lainnya. Transformasi ronde pada Rijndael tidak memiliki struktur feistel. II.4.3.
Spesifikasi Algoritma Rijndael adalah suatu cipher blok iteratif yang memiliki suatu variabel panjang blok
dan variabel panjang kunci. Panjang blok dan kunci dapat secara independen dispesifikasikan sebesar 128, 192 atau 256 bit. II.4.4.
State, Kunci Cipher dan Jumlah Ronde. Secara internal, operasi algoritma AES dilakukan pada suatu senarai dua dimensi
yang berisi byte-byte yang disebut dengan state. Dalam state terdiri atas empat baris byte yang masing-masing mengandung Nb byte. Nb adalah suatu panjang blok yang dibagi oleh 32. Senarai state didenotasikan oleh simbol s yang masing-masing byte memiliki dua indeks yaitu nomor baris r pada range 0 ≤ r < 4 dan nomor kolom c dalam range 0 ≤ c < Nb. Oleh karena itu, individual byte pada state dilambangkan dengan sr,c atau s[r,c]. Gambar II-2 menggambarkan senarai state masukan dan keluaran.
Gambar II-2 Senarai state masukan dan keluaran
Kunci cipher dapat digambarkan sebagai suatu senarai persegi dengan empat baris. Jumlah kolom dari kunci cipher didenotasikan oleh Nk dan sebanding dengan panjang kunci dibagi oleh 32. Gambar II-3 menunjukkan contoh kunci cipher dengan Nk = 4.
II-9
Gambar II-3 Contoh kunci cipher dengan Nk = 4
Pada beberapa instans, blok-blok ini juga dapat ditentukan sebagai senarai satu dimensi dari vektor 4 byte dengan masing-masing vektor terdiri atas kolom yang bersesuaian dalam representasi senarai persegi. Senarai ini dapat memiliki panjang 4, 6, atau 8 dan indeks dengan range 0..3, 0..5, 0..7. Vektor 4 byte dapat disebut dengan istilah word. Jumlah ronde yang didenotasikan oleh Nr dan bergantung kepada nilai Nb dan Nk. Diberikan pada Tabel II1 jumlah ronde (Nr) sebagai suatu fungsi dari panjang blok dan kunci. Tabel II-1 Jumlah ronde (Nr) sebagai suatu fungsi dari panjang blok dan kunci.
Nr
Nb = 4
Nb = 6
Nb = 8
Nk = 4
10
12
14
Nk = 6
12
12
14
Nk = 8
14
14
14
II.4.4.1. Transformasi Ronde Transformasi ronde terdiri atas empat transformasi yang berbeda yaitu: 1. ByteSub 2. ShiftRow 3. MixColumn 4. AddRoundKey Ronde final dari cipher terdiri atas tiga transformasi yaitu: 1. ByteSub 2. ShiftRow
II-10 3. AddRoundKey II.4.4.2. Transformasi ByteSub Transformasi ByteSub merupakan suatu substitusi byte nonlinear yang beroperasi pada setiap state byte secara independen. Tabel substitusi atau S-box dapat diinvers dan dikonstruksikan oleh komposisi dari dua transformasi yaitu: 1. Pertama, ambil invers multiplikatif dalam GF(28). 2. Aplikasikan suatu transformasi affine (atas GF(2))
Gambar II-4 ByteSub berperan dalam individual byte dari state.
Gambar II-4 mengilustrasikan transformasi ByteSub yang berperan dalam individual byte dari state. II.4.4.3. Transformasi ShiftRow Dalam ShiftRow, baris-baris pada state secara siklik dipindahkan ke offset yang berbeda. Baris ke 0 tidak dipindahkan, baris ke 1 dipindahkan sebanyak C1 byte, baris 2 sebanyak C2 byte dan baris 3 sebanyak C3 byte. Perpindahan offset C1, C2 dan C3 bergantung pada panjang blok Nb. Nilai yang berbeda dispesifikasikan pada Tabel II-2.
II-11 Tabel II-2 Offset perpindahan untuk panjang blok yang berbeda
Nb
C1
C2
C3
4
1
2
3
6
1
2
3
8
1
3
4
Gambar II-5 mengilustrasikan efek dari transformasi ShiftRow terhadap state.
Gambar II-5 ShiftRow beroperasi pada baris-baris pada state.
Invers dari ShiftRow adalah suatu perpindahan secara siklik dari 3 baris bawah ke NbC1, Nb-C2 dan Nb-C3 byte sehingga byte pada posisi j dalam row i berpindah ke posisi (j+Nb –Ci) modulo Nb. II.4.4.4. Transformasi MixColumn Dalam MixColumn, kolom-kolom pada state ditentukan sebagai polinomial terhadap GF(28) dan dikalikan modulo x4 + 1 dengan polinomial tetap c(x) yang diberikan dengan c(x) = ‘03’ x3 +’01’ x2 + ‘01’ x + ‘02’ Gambar II-6 mengilustrasikan efek dari transformasi MixColumn terhadap state.
Gambar II-6 MixColumn beroperasi pada kolom pada state.
(II-10)
II-12 Invers
dari
MixColumn
adalah
sama
dengan
MixColumn.
Setiap
kolom
ditransformasikan dengan mengalikannya dengan suatu perkalian polinomial tertentu yang didefinisikan oleh (‘03’ x3 +’01’ x2 + ‘01’ x + ‘02’)
d(x) = ‘01’
(II-11)
yang diberikan oleh d(x) = ‘0B’ x3 + ‘0D’ x2 + ‘09’ x + ‘0E’
(II-12)
II.4.4.5. Penambahan Round Key Dalam operasi ini, suatu Round Key diaplikasikan kepada state dengan suatu operasi bit EXOR. Round Key diturunkan dari kunci cipher dari jadwal kunci. Panjang Round Key ekivalen dengan panjang blok Nb. Transformasi ini diilustrasikan pada Gambar II-7.
Gambar II-7 Dalam penambahan kunci Round Key adalah suatu operasi bit EXOR kepada state.
II.4.5.
Penjadwalan Kunci (Key Schedule) Round Key diturunkan dari kunci cipher sesuai dengan jadwal kunci. Hal ini terdiri
atas dua komponen yaitu ekspansi kunci dan seleksi round key. Prinsip dasarnya adalah sebagai berikut: 1. Jumlah total dari bit round key setara dengan panjang blok dikalikan dengan jumlah ronde tambah 1. 2. Kunci cipher diekspansi kedalam suatu kunci yang sudah diekspansi (expanded key) 3. Round Key diambil dari Expanded Key dengan cara Round Key pertama yang terdiri atas Nb word pertama, kedua Nb word berikutnya dan seterusnya.
II-13 Expanded Key adalah suatu senarai linier berisi word 4 byte dan didenotasikan oleh W[Nb*(Nr+1)]. Nk word pertama berisi kunci cipher. Semua word yang lain didefinisikan secara rekursif dalam istilah word dengan indeks yang lebih kecil. Fungsi ekspansi kunci bergantung kepada nilai dari Nk. Dalam pemilihan Round Key, Round Key ke i diberikan oleh buffer word Round Key W[Nb*i] ke W[Nb*(i+1)]. Hal ini diilustrasikan pada Gambar II-8.
Gambar II-8 Ekspansi kunci dan pemilihan Round Key untuk Nb = 6 dan Nk = 4.
II.5 Secure Hash Algorithm (SHA) SHA adalah fungsi hash satu-arah yang dibuat oleh NIST dan digunakan bersama DSS (Digital Signature Standard). NSA menyatakan SHA sebagai standard fungsi hash satuarah. SHA didasarkan pada MD4 yang dibuat oleh Ronald L. Rivest dari MIT. SHA dianggap aman karena ia dirancang sedemikian rupa sehingga secara komputasi tidak mungkin menemukan pesan yang berkoresponden dengan message digest yang diberikan. Algoritma SHA 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. Walaupun message digest (nilai hash) yang dihasilkan lebih besar ukurannya, SHA memberikan jaminan keamanan dalam hal integritas data yang lebih baik dibandingkan dengan MD5. Gambaran pembuatan message digest dengan algoritma SHA diperlihatkan pada Gambar II-9
II-14
L x 512 bit = N x 32 bit
K K bit < 264
Padding bits (1 – 512 bit)
Pesan
512
512
Y0
Y1 512
ABCDE
160
1000...000
512
512
Yq
YL-1
512
HSHA
512
HSHA 160
Panjang Pesan
512
HSHA 160
160
HSHA 160
160
160 Message Digest
Gambar II-9 Pembuatan message digest dengan algoritma SHA [MUN09]
Langkah-langkah pembuatan message digest secara garis besar adalah sebagai berikut: 1. Penambahan bit-bit pengganjal (padding bits) 2. Penambahan nilai panjang pesan semula 3. Inisialisasi penyangga (buffer) MD 4. Pengolahan pesan dalam blok berukuran 512 bit. II.5.1.
Penambahan Bit-Bit Pengganjal 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 memroses 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,
II-15 panjang bit-bit pengganjal adalah 1 sampai 512. Bit-bit pengganjal terdiri dari sebuah bit 1 diikuti dengan sisanya bit 0. Panjangnya seperti yang telah dijelaskan adalah antara 1 sampai 512. II.5.2.
Penambahan Nilai Panjang Pesan Semula Pesan yang telah diberi bit-bit pengganjal selanjutnya akan ditambah lagi dengan 64
bit yang menyatakan panjang pesan semula. Panjang pesan semula merupakan ukuran pesan asli sebelum ditambahkan dengan bit-bit pengganjal. Ukuran pesan semula ini dinyatakan dengan ukuran byte. Setelah ditambah dengan 64 bit, panjang pesan selanjutnya menjadi 512 bit. II.5.3.
Inisialisasi Penyangga MD SHA membutuhkan 5 buah penyangga (buffer) yang masing-masing panjangnya 32
bit (MD5 hanya mempunyai 4 buah penyangga) sehingga total panjang penyangga adalah 160 bit. Kelima penyangga ini diberi nama A, B, C, D, dan E. Setiap penyangga diinisialisasi dengan nilai-nilai (dalam notasi HEX) sebagai berikut: A = 67452301 B = EFCDAB89 C = 98BADCFE D = 10325476 E = C3D2E1F0 II.5.4.
Pengolahan Pesan dalam Blok Berukuran 512 Bit 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 160-bit, dan proses ini disebut HSHA. Pengolahan pesan dalam blok berukuran 512 bit ini
II-16 banyak menggunakan fungsi-fungsi logika dengan kombinasi yang berbeda pada tiap-tiap tahap putaran. Hasil pengolahan pada suatu blok pesan 512 bit menjadi masukan bagi blok pesan 512 bit berikutnya. Demikian seterusnya sampai pengolahan blok ini sampai pada blok pesan 512 bit yang terakhir seperti pada Gambar II-10.
MDq 512 A
B
C
D
E
ABCDE ← f(ABCDE, Yq, K0)
A
B
C
D
E
ABCDE ← f(ABCDE, Yq, K1)
A
B
C
D
E
ABCDE ← f(ABCDE, Yq, K79)
+
+
+
+
160 MDq + 1
Gambar II-10 Pengolahan blok 512 bit (Proses HSHA) [MUN09]
Proses HSHA terdiri dari 80 buah putaran (MD5 hanya 4 putaran) dan masing-masing menggunakan bilangan penambah K, yaitu: Putaran 0 ≤ t ≤ 19 Kt = 5A827999 Putaran 20 ≤ t ≤ 39 Kt = 6ED9EBA1 Putaran 40 ≤ t ≤ 59 Kt = 8F1BBCDC
II-17 Putaran 60 ≤ t ≤ 79 Kt = CA62C1D6 Pada Gambar II-11, 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 diperlihatkan pada Gambar II-11.
Gambar II-11 Operasi dasar SHA dalam satu putaran (fungsi f) [MUN09]
Operasi dasar SHA yang diperlihatkan pada Gambar II-11 dapat ditulis dengan persamaan.. a, b, c, d, e ← (CLS5(a) + fr(b,c,d) + e + Wt + Kt), a, CLS30(b), c, d
(II-13)
yang dalam hal ini, a, b, c, d, e
= lima buah peubah penyangga 32-bit (berisi nilai penyangga A, B, C, D, E)
t
= putaran 0 ≤ t ≤ 79
II-18 ft
= fungsi logika
CLSs
= circular left shift sebanyak s bit
Wt
= word 32-bit yang diturunkan dari blok 512 bit yang sedang diproses
Kt
= konstanta penambah
+
= operasi penambahan modulo 232
atau dapat dinyatakan dalam kode program berikut: for t ← 0 to 79 do TEMP ← (a <<< 5) + ft(b,c,d) + e + Wt + Kt e ← d d ← c c ← b <<< 30 b ← a a ← TEMP endfor Kode program operasi SHA
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 II-3.
Tabel II-3 Fungsi logika ft pada setiap putaran [RIN06]
Putaran
ft(b,c,d)
0 .. 19
(b and c) or (~b and d)
20 .. 39
b xor c xor d
40 .. 59
(b and c) or (b and d) or (c and d)
60 .. 79
B xor c xor d
II-19
Nilai W1 sampai W16 berasal dari 16 word pada blok yang sedang diproses, sedangkan nilai Wt berikutnya didapatkan dari persamaan II-14. Wt = Wt-16 xor Wt-14 xor Wt-8 xor Wt-3
(II-14)
Setelah putaran ke-79, a, b, c, d, dan e ditambahkan ke A, B, C, D, dan E dan selanjutnya algoritma memroses untuk blok data berikutnya (Yq+1). Keluaran akhir dari algoritma SHA adalah hasil penyambungan bit-bit di A, B, C, D, dan E.
II.6 Algoritma A3 Algoritma A3 adalah algoritma otentikasi dalam model keamanan GSM. Fungsinya adalah untuk membangkitkan respon SRES (Signed RESponse) kepada random challenge MSC (Mobile services Switching Center) yaitu RAND yang diterima oleh MSC dari HLR. Algoritma A3 mendapatkan RAND dari MSC serta kunci rahasia Ki dari SIM (Subscriber Identity Module) sebagai masukan dan membangkitkan keluaran 32 bit yang disebut sebagai respon SRES. RAND dan Ki memiliki panjang 128 bit. Diagram kalkulasi respon SRES dapat dilihat pada Gambar II-12.
Gambar II-12 Diagram kalkulasi respon SRES [PES99]
Hampir setiap operator GSM di dunia menggunakan suatu algoritma yang disebut dengan COMP128 untuk algoritma A3 dan A8. COMP128 adalah algoritma referensi yang ditunjuk oleh konsorsium GSM.
II-20
II.7 Algoritma A5 Algoritma A5 adalah suatu cipher aliran yang digunakan untuk mengenkripsi transmisi melalui udara. Cipher aliran diinisialisasi secara berkali-kali pada setiap frame yang dikirim. Cipher aliran diinisialisasi dengan kunci sesi, Kc, dan jumlah frame yang sedang dienkripsi atau didekripsi. Kc yang sama digunakan melalui panggilan, tetapi nomor frame 22 bit berubah selama panggilan sehingga membangkitkan suatu kunci aliran yang unik untuk setiap frame. Pada Gambar II-13 dapat dilihat pembangkitan kunci aliran.
Gambar II-13 Pembangkitan kunci aliran [PES99]
Algoritma A5 yang digunakan di wilayah Eropa terdiri atas tiga LSFR (Linear Shift Feedback Register) dengan panjang yang berbeda. Keluaran-keluaran dari ketiga register tersebut, kemudian di-XOR-kan secara bersamaan dan XOR merepresentasikan satu bit aliran kunci. LFSR tersebut adalah sepanjang 19, 22 dan 23 bits dengan beberapa feedback polinomial. Ketiga register tersebut dijadwalkan berdasarkan bit tengah pada register. Suatu register dijadwalkan jika bit tengahnya sesuai dengan nilai mayoritas dari tiga bit tengah register lainnya. Sebagai contoh, jika bit-bit tengah dari ketiga register adalah 1, 1 dan 0, maka kedua register pertama dijadwalkan atau jika bit-bit tengahnya adalah 0,1 dan 0, maka register pertama dan ketiga dijadwalkan. Paling tidak dua register dijadwalkan pada setiap putaran.
II-21
Gambar II-14 Konstruksi LSFR pada A5 [PES99]
Tiga LSFR pada Gambar II-14 diinisialisasi dengan kunci sesi, Kc dan nomor frame. Kc 64 bit pertama kali dimuat ke dalam register bit demi bit. LSB dari kunci di-XOR-kan dengan setiap LSFR. Register-register kemudian dijadwalkan semuanya. Semua kunci 64 bit dimuat ke dalam register dengan cara yang sama. Nomor frame 22 bit juga dimuat ke dalam register dalam cara yang sama kecuali aturan penjadwalan mayoritas diaplikasikan. Setelah register-register diinisialisasi dengan Kc dan nomor frame yang sekarang, semua register dijadwalkan seribu kali dan menghapus bit-bit aliran kunci yang dibangkitkan. Hal ini dilakukan untuk menggabungkan nomor frame dan material penguncian secara bersamaan. Sekarang 228 bit keluaran aliran kunci telah dibangkitkan. 114 bit pertama digunakan untuk mengenkripsi frame dari MS (Mobile Subscriber) ke BTS (Base Tower Station) dan 114 bit berikutnya digunakan untuk mengenkripsi frame dari BTS ke MS. Setelah ini, algoritma A5 diinisialisasi lagi dengan Kc yang sama dan nomor untuk frame berikutnya. Sejak pertama kali jaringan GSM ada, algoritma selain A5 telah didesain dan diimplementasikan. Motivasi utamanya adalah karena algoritma enkripsi A5 yang orisinil sangat sulit untuk diterapkan di timur tengah. Sehingga algoritma A5 yang orisinil diganti namanya menjadi A5/1. Algoritma lain yang termasuk di dalamnya yaitu A5/0 yang berarti
II-22 tidak ada enkripsi sama sekali, dan A5/2 yaitu suatu algoritma privasi melalui udara yang paling lemah. Secara umum, algoritma A5 setelah A5/1 memiliki nama A5/x. Sebagian besar algoritma A5/x lebih lemah dibandingkan dengan algoritma A5/1 yang memiliki kompleksitas 254 seperti yang telah diperlihatkan sebelumnya. Perkiraan waktu kompleksitas A5/2 lebih rendah yaitu 216.
II.8 Algoritma A8 Algoritma A8 adalah algoritma pembangkitan kunci dalam model keamanan GSM. A8 membangkitkan kunci Kc, dari random challenge, RAND diterima dari MSC dan dari kunci rahasia Ki. Algoritma A8 mengambil dua masukan 128 bit dan membangkitkan suatu keluaran 64 bit darinya yaitu kunci sesi Kc. Kalkulasi kunci sesi (Kc) dapat dilihat pada Gambar II-15.
Gambar II-15 Kalkulasi kunci sesi (Kc) [PES99]
COMP128 membutuhkan algoritma A3 dan A8 pada sebagian besar jaringan-jaringan GSM. COMP128 membangkitkan respon SRES dan kunci sesi dalam sekali jalan. 54 bit akhir dari keluaran COMP128 membentuk kunci sesi Kc sampai MS diotentikasi lagi. Kalkulasi COMP128 dapat dilihat pada Gambar II-16.
Gambar II-16 Kalkulasi COMP128 [PES99]
Kedua algoritma A3 dan A8 disimpan pada SIM untuk mencegah orang-orang yang mempengaruhinya yang artinya operator dapat memilih algoritma yang digunakan secara
II-23 independen dari produsen perangkat keras dan operator jaringan lainnya. Otentikasi bekerja pada wilayah-wilayah lainnya dengan baik karena jaringan lokal menanyakan HLR dari jaringan asal pelanggan tentang 5 triples. Jaringan lokal tidak perlu mengetahui apapun tentang algoritma A3 dan A8 yang digunakan.
II.9 Tanda Tangan Digital Pada subbab II.1, terdapat 4 tujuan mendasar dari ilmu kriptografi yang juga merupakan aspek keamanan informasi yaitu kerahasiaan, integritas data, otentikasi dan nirpenyangkalan. Tiga tujuan terakhir yaitu, integritas data, otentikasi dan nirpenyangkalan dapat diselesaikan dengan teknik otentikasi pesan. Teknik otentikasi adalah prosedur yang digunakan untuk membuktikan keaslian pesan, keaslian identitas pengirim, dan pengirim tidak dapat melakukan penyangkalan terhadap isi pesan. Terdapat dua alternatif cara yang digunakan untuk otentikasi yaitu: 1. Menandatangani pesan Pesan ditandatangani oleh pengirim. Pemberian tanda tangan adalah secara digital. Pesan yang sudah ditandatangani menunjukkan bahwa pesan tersebut otentik baik isi maupun pengirim. 2. Menggunakan MAC (Message Authentication Code) MAC adalah kode yang ditambahkan pada pesan. Kode tersebut dibangkitkan oleh suatu algoritma dan bergantung pada pesan dan kunci rahasia. Tanda tangan digital adalah tanda tangan pada data digital. Yang dimaksud dengan tanda tangan digital bukanlah tanda tangan yang di-digitisasi dengan alat scanner, tetapi suatu nilai kriptografis yang bergantung kepada pesan dan pengirim pesan. Dengan tanda tangan digital, maka integritas data dapat dijamin, disamping itu ia juga digunakan untuk membuktikan asal pesan.
II-24 Menandatangani pesan dapat dilakukan dengan salah satu dari dua cara: 1. Enkripsi pesan Mengenkripsi pesan dengan sendirinya juga menyediakan ukuran otentikasi. Pesan yang terenkripsi sudah menyatakan bahwa pesan tersebut telah ditandatangani. 2. Tanda tangan digital dengan fungsi hash Tanda tangan digital dibangkitkan dari hash terhadap pesan. Nilai hash adalah kode ringkas dari pesan. Tanda tangan digital berlaku seperti tanda-tangan pada dokumen kertas. Tanda tangan digital ditambahkan pada pesan. II.9.1.
Penandatanganan dengan Cara Mengenkripsi Pesan
II.9.1.1. Menandatangani Pesan dengan Algoritma Simetri Pesan yang dienkripsi dengan algoritma simetri sudah memberikan solusi untuk otentikasi pengirim dan keaslian pesan, karena kunci simetri hanya diketahui oleh pengirim dan penerima. Jadi, jika B menerima pesan dari A, maka ia percaya pesan itu dari A dan isinya tidak mengalami perubahan, karena tidak ada orang lain yang mengetahui kunci selain merek a berdua. Namun, algoritma simetri tidak dapat menyediakan suatu mekanisme untuk mengatasi masalah penyangkalan, yaitu jika salah satu dari dua pihak, A dan B membantah isi pesan atau telah mengirim pesan. II.9.1.2. Menandatangani Pesan dengan Algoritma Kunci-Publik Jika algoritma kunci-publik digunakan, maka setiap enkripsi pesan dengan kunci publik tidak dapat digunakan untuk otentikasi, karena setiap orang potensial mengetahui kunci-publik. Namun, jika enkripsi pesan menggunakan kunci privat si pengirim dan dekripsi pesan juga menggunakan kunci-publik si pengirim, maka kerahasiaan pesan dan otentikasi dapat dicapai sekaligus. Ide ini ditentukan oleh Diffie dan Hellman.
II-25 Beberapa algoritma kunci-publik seperti RSA dapat digunakan untuk menandatangani pesan dengan cara mengenkripsinya, asalkan algoritma tersebut memenuhi sifat: DSeK(EPK(M)) = M dan DPK(ESK(M)) = M, dengan PK = kunci publik dan SK = kunci privat. Proses penandatanganan pesan dengan algoritma kunci-publik adalah sebagai berikut: 1. Misalkan M adalah pesan yang akan dikirim. Pesan M ditandatangani menjadi pesan terenkripsi S dengan menggunakan kunci privat (SK) si pengirim S = ESK(M)
(II-15)
yang dalam hal ini. E adalah fungsi enkripsi dari algoritma kunci-publik. Selanjutnya, S dikirim melalui saluran komunikasi. 2. Di tempat penerima, pesan dibuktikan otentikasinya dengan menggunakan kunci publik (PK) pengirim, M = DPK(S)
(II-16)
yang dalam hal ini, D adalah fungsi enkripsi dari algoritma kunci-publik. S dikatakan absah apabila pesan M yang dihasilkan merupakan pesan yang mempunyai makna. Dengan menggunakan algoritma kunci-publik, penandatanganan pesan tidak membutuhkan pihak penengah. II.9.2.
Tanda-tangan dengan Menggunakan Fungsi Hash
II.9.3.
Proses Pemberian Tanda-tangan Digital Proses pemberian tanda tangan digital diawali dengan mengubah pesan yang akan
dikirim menjadi bentuk yang ringkas yang disebut message digest. Message digest (MD) diperoleh dengan mentransformasikan pesan M dengan menggunakan fungsi hash satu arah (one-way) H, MD = H(M)
(II-17)
II-26 Pesan yang sudah diubah menjadi message digest oleh fungsi hash tidak dapat dikembalikan lagi menjadi bentuk semula walaupun digunakan algoritma dan kunci yang sama. Sembarang pesan yang berukuran apapun diubah oleh fungsi hash menjadi message digest yang berukuran tetap. Message digest disebut juga nilai hash (hash value) dari fungsi hash H. Selanjutnya, MD dienkripsi dengan algoritma kunci-publik menggunakan kunci privat (SK) pengirim. Hasil enkripsi inilah yang dinamakan dengan tanda-tangan digital S. S = ESK(MD)
(II-18)
Pesan M disambung dengan tanda tangan digital S, lalu keduanya dikirim melalui saluran komunikasi. Dalam hal ini, kita katakan bahwa pesan M sudah ditandatangani oleh pengirim dengan tanda-tangan digital S. Di tempat penerima, tanda-tangan diverifikasi untuk dibuktikan keotentikannya dengan cara berikut: 1. Tanda tangan digital S didekripsi dengan menggunakan kunci-publik (PK) pengirim pesan, menghasilkan message digest semula yaitu MD. 2. Penerima kemudian mengubah pesan M menjadi MD’ menggunakan fungsi hash satu arah yang sama dengan fungsi hash yang digunakan oleh pengirim. 3. Jika MD’ = MD, berarti tanda-tangan yang diterima otentik dan berasal dari pengirim yang benar. Skema tanda tangan digital dengan menggunakan fungsi hash dapat digambarkan pada Gambar II-17.
II-27 Signer Message
Verifier Message
Message
Signature
Signature
Message
Fungsi Hash Signature Message Digest (MD)
Secret Key
Encrypt
Fungsi Hash Public Key
Signature
Decrypt
Message Digest (MD)
? =
Message Digest (MD')
Gambar II-17 Otentikasi dengan tanda-tangan digital yang menggunakan fungsi hash satu-arah [MUN09]
Otentikasi pesan dapat dijelaskan sebagai berikut: a. Apabila pesan M yang diterima sudah berubah, maka MD’ yang dihasilkan dari fungsi hash berbeda dengan MD semula. Ini berarti pesan tidak asli lagi. b. Apabila pesan M tidak berasal dari orang yang sebenarnya, maka message digest MD yang dihasilkan dari persamaan II-17 berbeda dengan message digest MD’ yang dihasilkan pada proses verifikasi. Hal ini dikarenakan kunci-publik yang digunakan oleh penerima pesan tidak berkoresponden dengan kunci rahasia pengirim. c. Bila MD = MD’ ini berarti pesan yang diterima adalah pesan yang asli dan orang mengirim adalah orang yang sebenarnya.
II.10 Protokol Protokol adalah suatu urutan langkah-langkah yang melibatkan dua atau lebih pihak yang dibuat untuk menyelesaikan suatu tugas tertentu. Protokol memiliki urutan langkahlangkah dari awal sampai akhir. Setiap langkah dalam protokol harus dijalankan secara
II-28 bergiliran. Suatu langkah tidak dapat dilakukan jika langkah sebelumnya belum selesai dilakukan. Protokol harus dilakukan oleh dua pihak atau lebih. Jika suatu hal hanya dilakukan oleh satu pihak saja, maka hal tersebut bukanlah protokol. Protokol juga harus memiliki tujuan tertentu untuk diselesaikan. Jika ada suatu hal yang mirip dengan protokol tetapi tidak memiliki suatu tujuan, maka hal tersebut bukanlah protokol. Protokol memiliki karakteristik-karakteristik tertentu yaitu : 1) Setiap orang yang terlibat di dalam protokol harus mengetahui protokol tersebut dan semua langkah-langkah yang harus dilakukan. 2) Setiap orang yang terlibat di dalam protokol harus setuju untuk mengikutinya. 3) Protokol harus tidak ambigu. Setiap langkah harus dibuat dengan baik dan tidak menimbulkan kesalahpahaman. 4) Protokol harus selesai yang artinya protokol harus memiliki suatu aksi yang spesifik untuk semua situasi yang mungkin terjadi. Protokol kriptografik adalah suatu protokol yang menggunakan kriptografi. Dalam protokol ini, pihak-pihak dapat berupa teman yang saling percaya satu sama lain secara implisit atau sebaliknya tidak saling mempercayai satu sama lainnya. Algoritma kriptografi berperan dalam protokol ini. Tujuan utama penggunaan kriptografi dalam protokol adalah untuk mencegah atau mendeteksi adanya pencurian pesan dan kecurangan. II.10.1. Tipe-tipe protokol Menurut [SCH96] terdapat tiga tipe protokol yaitu : 1. Arbitrated Protocol 2. Adjudicated Protocol 3. Self Enforcing Protocol
II-29 II.10.1.1.
Arbitrated Protocol
Suatu arbitrator adalah suatu pihak ketiga yang dipercaya dan netral untuk menyelesaikan suatu protokol. Dipercaya maksudnya adalah semua orang yang terlibat dalam protokol mempercayai sepenuhnya kepada pihak ketiga. Arbitrator dapat membantu menolong menyelesaikan protokol-protokol antara dua pihak yang tidak saling mempercayai. Ada beberapa masalah dengan arbitrator komputer antara lain: 1. mudah untuk mencari dan mempercayai suatu pihak ketiga yang netral jika kita dapat melihat siapa pihak tersebut dan dapat melihat wajahnya. 2. jaringan komputer harus menangani biaya perawatan dari suatu arbitrator. 3. terdapat suatu delay biasa dalam setiap arbitrated protocol. 4. arbitrator harus berhadapan dengan setiap transaksi. Arbitrator merupakan suatu hambatan dalam implementasi protokol apapun dalam skala besar. Menambah jumlah arbitrator dalam implementasi dapat menyelesaikan masalah tetapi akan menambah biaya. 5. karena setiap orang harus mempercayai arbitrator, dia merepresentasikan suatu titik lemah untuk siapapun yang ingin menyingkirkan jaringan. II.10.1.2.
Adjudicated Protocol
Karena biaya yang tinggi dalam menyewa arbitrator, arbitrated protocol dapat dibagi menjadi dua subprotocol tingkat rendah. Pertama adalah suatu nonarbitrated protocol, dieksekusi ketika setiap pihak ingin menyelesaikan protokol. Kedua adalah suatu anarbitrated subprotocol yang dieksekusi hanya pada kondisi tertentu. Suatu adjudicator adalah suatu pihak ketiga yang tidak tertarik dengan suatu pihak tertentu dan dipercaya. Tidak seperti arbitrator, adjudicator tidak secara langsung terlibat dalam setiap protokol. Adjudicator hanya dipanggil untuk menentukan apakah suatu protokol berjalan dengan adil.
II-30 II.10.1.3. Self Enforcing Protocol Suatu self enforcing protocol adalah tipe protokol yang terbaik. Protokol itu sendiri menjamin keadilan. Tidak ada arbitrator yang dibutuhkan untuk menyelesaikan protokol dan tidak dibutuhkan suatu adjudicator untuk menyelesaikan konflik. Protokol dibuat agar tidak terjadi suatu ketidaksetujuan antar pihak. Jika suatu pihak mencoba untuk melakukan kecurangan, maka pihak lain segera mengetahui adanya kecurangan dan protokol akan berhenti. II.10.2. Serangan-serangan terhadap protokol Terdapat 2 macam serangan terhadap protokol yaitu antara lain serangan aktif dan serangan pasif. Untuk lebih mudah dalam memahami serangan-serangan tersebut, akan dijelaskan satu persatu. Pada serangan pasif, suatu pihak yang tidak terlibat dalam protokol dapat mengambil sebagian atau semua protokol. Penyerang tidak mempengaruhi protokol. Penyerang hanya mengobservasi protokol dan berusaha untuk mendapatkan informasi. Karena serangan pasif sulit untuk dideteksi, maka protokol harus dibuat berfokus pada pencegahan serangan pasif daripada mendeteksinya. Serangan yang melibatkan intervensi secara aktif disebut dengan serangan aktif. Pada seranganan ini seorang penyerang dapat mencoba berpura-pura sebagai seseorang, membuat pesan baru, menghapus pesan, mengganti suatu pesan dengan pesan lainnya, menginterupsi suatu saluran komunikasi dan sebagainya.
II-31
II.11 SMS (Short Message Service) SMS merupakan kepanjangan dari short message service. SMS merupakan layanan nirkabel yang diterima secara global yang memungkinkan transmisi pesan alfanumerik antara para pelanggan mobile dan sistem eksternal seperti surat elektronik dan sistem surat suara. SMS memberikan suatu mekanisme dalam mengirimkan pesan pendek ke dan dari alat-alat nirkabel. Layanan tersebut menggunakan fungsi dari SMSC yang berperan sebagai sistem store-and-forward untuk pesan-pesan pendek. Jaringan nirkabel memberikan mekanisme yang dibutuhkan untuk mencari stasiun tujuan dan membawa pesan pendek antara SMSC-SMSC dan stasiun-stasiun nirkabel Karakteristik dari SMS yaitu pengiriman paket out-of-band dan pengiriman pesan dengan bandwidth yang rendah yang menghasilkan pengiriman semburan data pendek dengan efisiensi yang tinggi. Aplikasi dasar dari SMS berfokus dalam menghilangkan pager alfanumerik dengan mengizinkan fungsi umum dalam pengiriman pesan dua arah dan layanan notifikasi. Dalam dunia yang kompetitif, perbedaan merupakan suatu faktor yang signifikan dalam kesuksesan suatu pemberi layanan. SMS memberikan suatu dasar untuk memberikan perbedaan dalam layanan. Jika pasar mengizinkan hal tersebut, SMS juga dapat dijadikan sebagai sumber tambahan bagi pemberi layanan. Keuntungan dasar dari SMS antara lain pengiriman notifikasi dan pemberitahuan, jaminan pengiriman pesan, handal, mekanisme komunikasi yang rendah biaya untuk informasi ringkas, kemampuan untuk menampilkan pesan dan mengembalikan panggilanpanggilan dalam suatu cara yang selektif dan menambah produktivitas para pelanggan. Keuntungan bagi pelanggan lanjut antara lain pengiriman pesan-pesan ke banyak pelanggan dalam satu waktu, kemampuan untuk menerima informasi yang berbeda-beda,
II-32 generasi email, pembuatan kelompok-kelompok pengguna, dan integrasi dengan data lain dan aplikasi berbasis internet. Keuntungan bagi pemberi layanan antara lain kemampuan untuk menambah pendapatan rata-rata untuk setiap pengguna, suatu layanan alternatif pengganti layanan pager, kemampuan untuk memungkinkan akses data nirkabel untuk para penggunan korporat, dan sebagainya.
II.12 SMS-Banking SMS-Banking merupakan suatu layanan perbankan melalui jalur elektronik yang memungkinkan para nasabah bank tertentu untuk melakukan berbagai transaksi perbankan melalui fasilitas SMS pada telepon seluler. Layanan ini bertujuan untuk memberi kemudahan kepada nasabah dalam memperoleh informasi keuangan dan melakukan transaksi dimanapun dan kapanpun tanpa harus mengunjungi ATM atau bank tempat mereka menjadi nasabah [ALM07]. Layanan ini sudah ditawarkan oleh berbagai bank di Indonesia. Fasilitas-fasilitas yang ditawarkan dalam layanan ini hampir sama dengan layanan ATM (Anjungan Tunai Mandiri) pada umumnya, kecuali dalam fasilitas penarikan uang tunai. Berikut beberapa layanan yang disediakan oleh Bank untuk dapat melakukan transaksi melalui SMS: -
cek saldo
-
cek kurs valuta asing
-
cek tiga transaksi terakhir
-
pembayaran kartu kredit
-
transfer antar rekening
II-33 Layanan ini menjanjikan mobilitas yang tinggi, bisa dilakukan kapanpun dan dimanapun, bahkan saat roaming internasional sekalipun, tentu saja dengan syarat sistem yang digunakan GSM dan nomor ponsel sudah terdaftar untuk roaming internasional. II.12.1. Tinjauan SMS-Banking yang Sudah Ada Pada saat ini terdapat beberapa contoh bank yang sudah menyediakan layanan SMSBanking yaitu misalnya Bank BNI dan Bank Niaga. Pada Bank BNI, penggunaan layanan SMS-Banking masih menggunakan SMS biasa. Pengguna dapat menggunakan layanan SMSBanking dengan cara mengirimkan SMS dengan sintaks yang sudah ditentukan kepada nomor layanan tertentu. Dengan cara ini, setiap nasabah yang mempunyai telepon seluler dapat menggunakan layanan ini tanpa terhambat oleh spesifikasi telepon seluler yang mereka punya. Pada Bank Niaga, nasabah dapat menggunakan layanan SMS-Banking jika penggunanya memiliki telepon seluler yang mendukung Java MIDP 2.0. Dengan menggunakan aplikasi tambahan, keamanan layanan SMS-Banking dapat ditingkatkan. Namun, cara ini memiliki kelemahan dalam hal terbatasnya pengguna yang memiliki telepon seluler yang mendukung aplikasi Java.