Anda di halaman 1dari 37

Security & Cryptography

Metode Penggunaan Enkripsi


End-to-End pada Pertukaran
Pesan di Whatsapp
Disusun oleh :
Aditya Zahid Pamuncak (07111540000105)
Vina Amalia Fitriaingrum (07111745000022)
Konten :

“ ◂ Pendahuluan
◂ Dasar Teori
◂ Metode Penelitian
◂ Pembahasan
◂ Kesimpulan
2
PENDAHULUAN
Tentang whatsapp, perlunya
secure data dan metode
yang secure yang digunakan
PENDAHULUAN
Whatsapp merupakan aplikasi/platform social media pada
smartphone yang digunakan untuk berkomunikasi.
Layanan : messages (text, images, files, videos, voice
messages, chats, group chats), voice call, dan video call.
Jumlah pengguna :1500 juta
Tanggung jawab untuk menjaga informasi yang bersifat
privasi. Dengan jumlah pengguna yang banyak maka
dapat membahayakan privasi sekitar 10% .

4
PENDAHULUAN (Lanj.)

◂ Open Whisper System melakukan kerja sama


dengan Whatsapp untuk menyediakan enkripsi
end-to-end.

◂ Open Whisper System menggunakan 2 teknik :


1. enkripsi end-to-end
2. double ratchet algorithm
Meningkatkan keamanan, dengan melakukan pencegahan pihak
ketiga melakukan pencurian informasi
5
DASAR TEORI
Teori dasar yang berkaitan
dengan secure pesan dalam
Whatsapp
DASAR TEORI CONTENT

◂ Public Key Cryptosystem


◂ Securing Hash Algorithm (SHA)
◂ Hash Message Authenticatio Code
(HMAC)
◂ Advanced Encryption Standard

7
Public Key Cryptosystem

◂ Algoritma ini memiliki karakteristik penting


berikut,
1. Secara komputasi tidak memungkinkan untuk
mencari kunci dekripsi hanya dari pengetahuan
mengenai algoritma kriptografi dan kunci untuk
enkripsi.
2. Salah satu dari 2 kunci yang berkaitan dapat
digunakan untuk enkripsi, sementara yang lain
dapat digunakan untuk dekripsi

8
◂ Encryption with public key
9
◂ Encryption with private key
10
Aplikasi dari Public Key Cryptosystem

◂ Confidentiality : kerahasiaan pesan


◂ Authentication : keaslian pesan
◂ Authentication and Secrecy :
kerahasiaan dan keaslian pesan

11
Confidentiality : kerahasiaan pesan

12
Authentication : keaslian pesan

13
Authentication and Secrecy :
kerahasiaan dan keaslian pesan

14
Public Key Cyptosystem

◂ Diklasifikasikan menjadi 3 kategori,


1. Encryption/Decryption, pengirim melakukan
enkripsi terhadap pesan dan penerima
melakukan dekripsi terhadap pesan
2. Digital Signature, pengirim memberikan
“signs” di pesan beserta private key
3. Key Exchange, pengirim dan penerima
melakukan pertukaran session key

15
◂ Berdasarkan algoritma, pengaplikasian
public key cryptosystem sebagai berikut,

16
Elliptic Curve

◂ Aplikasi dari public key cryptosystem. Pada sistem


enkripsi Whatsapp menggunakan elliptic
curve25519. Curve25519 adalah kurva eliptik
dengan menggunakan 128 bit untuk keamanan
dan dirancang dengan skema Elliptic Curve Diffie-
Hellman (EDCH).
◂ Kurva 25519 menggunakan persamaan y2 = x3 +
48862x2 + x. Menggunakan kurva Montgomery.
Dengan bilangan prima 2255 – 19. Dengan nilai
basis x = 9.

17
Securing Hash Algorithm (SHA)

◂ SHA merupakan algoritma hashing


digunakan untuk kata sandi hashing
(dan info penting lain).
◂ SHA memiliki tujuan untuk autentikasi.
Sehingga menciptakan Message
Authentication Code (MAC).

18
Perbandingan parameter-parameter
SHA

19
Hash Message Authenticatio Code
(HMAC)

◂ HMAC adalah satu tipe dari Message


Authentication Code(MAC) yang berbasis
fungsi kriptografi hash satu arah. MAC sendiri
adalah fungsi satu-arah yang menggunakan
kunci privat dalam pembangkitan nilai hash.
◂ Pada HMAC ini menggunakan IV (Initival
Value to Hash Function) sebagai
pemanfaatan fungsi hash pada MAC.

20
Advanced Encryption Standard
◂ AES merupakan standar enkripsi, algoritma enkripsi
yang memiliki cara untuk mendapatkan data asli,
dengan kunci simetris kunci yang sama dapat
digunakan sebagai enkripsi dan deskripsi. Algoritma AES
adalah blok chipertext simetrik yang dapat
mengenkripsi (encipher) dan dekripsi (decipher)
informasi.

◂ AES yang digunakan pada Whatsapp adalah AES-256


(panjang kunci 256 bit).

21
Parameter AES

22
PEMBAHASAN
Membahas tentang tahap
tahap dalam pengamanan
pesan
PEMBAHASAN

◂ Public Key Type


◂ Session Key Type
◂ Client Registration
◂ Initiating Session Setup
◂ Receiving Session Setup
◂ Exchanging Messages

24
Public Key Type
◂ Identitiy Key Pair : long term curve25519 key.
Dibangkitkan saat pertama kali digunakan
◂ Signed Pre Key : medium term curve25519 key.
Dibangkitkan saat pertama kali digunakan.
Menghasilkan kunci sebagai sign untuk identity key
◂ One Time Pre Key : sebuah antrian dari pasangan kunci
dari curve25519. Dibangkitkan saat pertama kali
digunakan dan diganti dengan yang lain saat
dibutuhkan

25
Session Key Type

◂ Root Key : kunci 32 byte untuk membuat Chain


Keys
◂ Chain Key : kunci 32 byte untuk membuat
Message Keys
◂ Message Key : kunci 80 byte untuk enkripsi pesan
◂ 32 byte untuk AES-256 key
◂ 32 byte untuk HMAC-SHA 256 key
◂ 16 byte untuk IV (Initial Value)

26
Client Registration

◂ Saat registrasi, Whatsapp clients


mengirimkan public key ke server. Server
Whatsapp menyimpan public key yang
terkait pengidentifikasian pengguna.
Server Whatsapp tidak memiliki akses ke
salah satu private key yang dimiliki oleh
clients.

27
Initiating Session Setup

◂ Proses ini dilakukan ketika ingin


membuat sebuah sesi. Sesi yang
dimaksud disini adalah ketika
pengirim ingin mengirimkan
informasi ke penerima yang
dinginkan. Proses ini berisikan
enkripsi pesan dari pengirim.

28
Initiating Session Setup

◂ Proses :
◂ Initiating Client (“Initiator”) yang merupakan user yang pertama kali
meminta komunikasi dengan user lain meminta public identitiy key,
public signed pre key, dan 1 public one time pre key milik user lain ke
server
◂ Server menjawab permintaan Initiator dengan memberikan suatu
nilai public key. One time pre key hanya bisa digunakan sekali .
Setelah diterima oleh Initiator maka one time pre key tadi akan
dihapus dari storage server
◂ Initiator menyimpan Identity Key penerima sebagai Irecepient. Signed
Pre Key penerima sebagai Srecepient. One Time Pre Key penerima
sebagai Orecepient
◂ Initiator membangkitkan kunci curve25519 sebagai Einitiator
29
Initiating Session Setup (Lanj.)
◂ Initiator mengisi Identity Key dengan Iinitiator
◂ Initiator menghitung untuk mencari master_secret
dengan cara,
[master_secret = ECDH(Iinitiator, Srecepient) || ECDH(Einitiator,
Irecepient) || ECDH(Einitiator, Srecepient) || ECDH(Einitiator, Orecepient)]

◂ Jika tidak ada One Time Pre Key, maka ECDH terakhir
dapat dihilangkan
◂ Initiator menggunakan HKDF untuk membangkitkan
Root Keys dan Chain Keys dari master_secret

30
Receiving Session Setup
◂ Setelah melakukan enkripsi dan melakukan pembentukan sesi,
maka pengirim dapat segera mulai mengirim pesan ke penerima
walaupun penerima sedang offline. Sampai sebelum penerima
merespon, semua informasi yang dibutuhkan untuk membentuk
corresponding session disimpan di header pada semua pesan dari
Initiator (Einitiator, Iinitiator) Proses yang terjadi pada receiving session
adalah sebagai berikut,
1. Penerima menghitung master_secret dengan menggunakan private
key dan public key yang ada di header pada semua pesan.
2. Penerima menghapus One Time Pre Key
3. Initiator menggunakan HKDF untuk mendapatkan Root Keys dan
Chain Keys dari master_secret
31
Exchanging Messages
◂ Pada Whatsapp pertukaran pesan antar klien dilindungi
dengan Messages Key dengan menggunakan enkripsi
AES-256 pada mode CBC (Cipher Block Chaining) serta
menggunakan HMAC-SHA256 sebagai integritas data.
Proses enkripsi end-to-end pada pengamanan
Whatsapp sebagai berikut,

32
Proses Enkripsi End-to-End

33
Maka :
◂ Pesan langsung dikirim dari A ke B setelah melalui
proses enkripsi. Message Key yang sudah digunakan
untuk mengenkripsi pesan tidak dapat digunakan
untuk mengenkripsi ulang pada pesan lain. Curve25519
hanya digunakan untuk pengiriman pesan saat itu saja.
Berikut contoh pengiriman pesan hasil enkripsi end-to-
end,

34
KESIMPULAN
KESIMPULAN
◂ Penggunaan enkripsi end-to-end memiliki tingkat keamanan
yang tinggi karena berbagai parameter :
1. Penggunaan 1 jalur sebagai jalur komunikasi antara pengirim
dan penerima.
2. Informasi yang dikirim hanya bisa dibuka oleh penerima tanpa
bisa diketahui oleh orang ketiga. Whatsapp servers tidak
memiliki akses terhadap private keys dari pengguna sehingga
pesan tidak dengan mudah di dekripsi.

◂ Enkripsi end-to-end menggunakan teknik enkripsi AES-256


sebagai keamanan dan HMAC-SHA256 sebagai integritas data.
Menggunakan public key dan session key untuk meningkatkan
enkripsi pesan.
36
37

Anda mungkin juga menyukai