Category Archives

14 Articles
Masalah Serius Java

Masalah Serius Java

Bagi pengguna GNU/Linux, terutama Debian dan turunannya, terdapat dua masalah serius:

  1. Debian akan membuang Oracle Java dari repositorinya karena perubahan lisensi.
  2. Masalah keamanan serius pada protokol keamanan TLS/SSL yang menyebabkan seseorang dapat melakukan penyerangan (tidak spesifik GNU/Linux saja karena ini adalah kelemahan pada protokol).

Debian akan membuang Oracle Java dari repositorinya karena masalah lisensi. Hal ini terjadi karena lisensi SUN DLJ telah dicabut dan digantikan pada pembaharuan Java terbaru (J2SE 6 Update 29 dan J2SE 7). Oracle tampaknya mau mengusung OpenJDK sebagai satu-satunya solusi Java yang dapat didistribusikan oleh distro-distro GNU/Linux.

Kalau menurut pengalaman saya, OpenJDK kurang bagus. Terutama dalam bidang saya, kartu pintar. Saya melihat Oracle Java lebih stabil dalam mengimplementasi JSR 268. Waktu itu, mesin e-Akses yang menggunakan OpenJDK sering tidak responsif. Tentu saja, itu sudah lebih dari setahun yang lalu. Saya mungkin hendak mengujinya lebih lanjut.

Untuk pemakai akhir, setiap orang dapat mengunduh langsung Oracle Java di situsnya. Saya tidak tahu tentang perjanjian Canonical dan Oracle. Berhubung Oracle Java didistribusikan di repositori Canonical Partner, kemungkinan Ubuntu masih dapat mengakses Oracle Java.

Masalah yang kedua adalah ditemukan sebuah masalah serius pada protokol SSL 3.1 dan TLS 1.0. Galat yang bernama BEAST TLS (Browser Exploit Against SSL/TLS) ini membuat penyerang mengambil cookies dari situs yang terenkripsi sekalipun. Menurut BUG #689661 Mozilla, penyerang dapat mengambil cookies yang sedang aktif dan dapat menggunakan cookies tersebut untuk masuk ke dalam situs aman semacam Google, Paypal, atau situs mana pun yang menggunakan HTTPS.

Solusi sederhana dari Mozilla adalah dengan mematikan Java Plugin pada peramban. Kalau dari tulisan lain, mematikan dukungan SSL 3.0 dan TLS 1.0, hanya menggunakan protokol SSL 3.2, TLS 1.1, dan TLS 1.2 saja. Saya tidak tahu berapa situs yang sudah mendukung protokol TLS 1.1+. Lagipula, berapa, sih, versi peramban yang sudah mendukung TLS 1.1+?

Bagi rekan-rekan yang memiliki situs, tampaknya Anda perlu memperbaharui protokol HTTPS Anda dengan menggunakan protokol TLS 1.1+ atau SSL 3.2. Hal ini karena masalah BEAST bukan hanya spesifik pada Java.

TAMBAHAN:

Ternyata Oracle Java sudah tak lagi tersedia di Ubuntu. Pengguna Ubuntu juga harus mengunduhnya secara manual. Versi terakhir yang ada di Canonical Partner adalah J2SE 6 Update 26, sedangkan yang terbaru adalah Update 29.

Mozilla Menghentikan Dukungan Embedded Gecko

Mozilla Menghentikan Dukungan Embedded Gecko

Mozilla menghentikan dukungan untuk menyematkan mesin Gecko, mesin HTML mereka. Mereka hendak konsentrasi kepada Firefox. Hal ini berarti untuk setiap proyek yang menggunakan Gecko sebagai mesin pencetak HTML mereka harus melakukan penyesuaian atau pindah ke tempat lain. Saat ini memang kebanyakan orang-orang sudah berpindah ke Webkit.

Mungkin generasi selanjutnya dari mesin e-Akses pindah ke Webkit juga?

Yang paling berabe justru GNOME yang telah menggunakan libmozjs sebagai salah satu komponen inti mereka. Saya belum dapat kabar dari pihak Eclipse yang menggunakan Gecko sebagai salah satu mesin SWT.Browser mereka. Saatnya pindah, mungkin….

Bacaan lebih lanjut:

News@11: Mozilla gives the finger to embedders

There have been a lot of web browsers embedding the Gecko engine, especially through the gtkmozembed “library” (it was not really a proper library but let’s call it like that). I remember being a happy user of galeon, which went on as epiphany, but there were also all these small…

Mozilla kills embedding support for Gecko layout engine – Update

Mozilla has officially ended support for embedding the Gecko layout engine in applications other than Mozilla core applications. The move will have an impact on any application which has used the Firefox layout engine in their applications and the first to announce that it will have to make significant changes is the Camino browser.

https://groups.google.com/forum/#!topic/mozilla.dev.embedding/c_NMcO-N8wo/discussion

618381 – Add an API serial number to jsapi.h

No Description

Getting Posiflex or Any USB-Serial Printer To Work On Ubuntu

Getting Posiflex or Any USB-Serial Printer To Work On Ubuntu

Recent printers are using USB port as their connection to PC. This may be because of the parallel port is being deprecated. Many mainboards nowadays even doesn’t have parallel port. Using well-known “lp” driver couldn’t detect the USB printer. I was trying also to use “usblp”, a variant of “lp” driver, but it also failed.

The printer is Posiflex AURA 8000. This is a thermal printer. Luckily, my friend Idur, have discovered that it just needed module “pl2303”. The module depends on “usbserial”. So we edited the

/etc/modules

and added:

usbserial
pl2303

Rebooted and we found that the driver linked the device into “/dev/ttyUSB0”. This is undesirable because the old code would be “/dev/lp0”. So, we extract some information from the device:

# udevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)

The snippet of the command: (may differ on your system a little bit)

looking at parent device '/devices/pci0000:00/0000:00:1d.1/usb3/3-2/3-2:1.1/ttyUSB0':
    KERNELS=="ttyUSB0"
    SUBSYSTEMS=="usb-serial"
    DRIVERS=="pl2303"
    ATTRS{port_number}=="0"

From the finding, we add new UDEV rule. I named the file as

/etc/udev/rules.d/70-posiflex-printer-usbserial.rules

. It contains:

SUBSYSTEMS=="usb-serial", DRIVERS=="pl2303", NAME="lp%n"

Save it and reboot. Now, we would have the USB Serial printer at /dev/lp0 just like its Parallel port printer. If you have different printer, please comment and let me know that the trick also applicable to other USB Serial printer as well.

Driver for U.r.U 4500 in Kernel 2.6.36

Driver for U.r.U 4500 in Kernel 2.6.36

It seems the Linux kernel getting another ABI change for USB in 2.6.36. function

ioctl

is being deprecated for a while and now being removed. It is changed with function 

unlocked_ioctl

. The parameter also changed.

Here’s the chunk of changes that would gives you idea of what changed:

<2.6.36 2.6.36+
ioctl   = usbdpfp_ioctl
.unlocked_ioctl   = usbdpfp_ioctl
usbdpfp_ioctl(struct inode *inode, struct file *file, unsigned int cmd, usbdpfp_ioctl(struct file *file, unsigned int cmd,
static int usbdpfp_ioctl( static long usbdpfp_ioctl(

That’s not all of the code, but you get the idea. The

ioctl

is changed. Every

ioctl

calling is having one less parameter. The return is no longer

int

but

long

.

According to Alex comment in my previous post, the UDEV rule also changing. Every USB device is default installed in /dev/usb directory. That’s why we have to make an adjustment in udev rule. As usual, I’m uploading the whole code here. As usual, remove the .pdf extension.

The Year of The Smart

The Year of The Smart

Sewaktu melewati stasiun Pondok Cina, saya melihat sebuah pembaca RFID. Iseng-iseng saya mencoba menempelkan kartu mahasiswa dan terdeteksi kartu tidak dikenali. Benar dugaan saya, sepertinya teknologi kartu yang digunakan adalah MiFare Basic. Kartu UI juga memiliki emulasi MiFare, bahkan lebih dari itu, memiliki konformasi disain FIPS level 2, dan mendukung operasi EMV 4.x. Sangat menarik bila bisa digunakan yang lainnya.

Tentunya, dunia implementasi tidak seindah dunia teknis. Faktor regulasi yang belum siap dan segala macam faktor non teknis menyebabkan hal tersebut menjadi sulit terjadi. Namun intinya, sepertinya tahun ini PT KAI telah bersiap-siap untuk memasuki fase uji coba. Kuartal tahun kemarin sepertinya alat-alat tersebut hanya diujicobakan internal saja. Menarik sekali proses penerapan mereka terhadap teknologi ini. Cukup berhati-hati:

  1. Bulan-bulan awal mereka hanya menaruh mesin-mesin pembaca tiket.
  2. Mereka sempat membuat shell tempat tapping kartu nantinya. Belum ada mesinnya tapi sudah diproyeksikan.
  3. Mereka juga pelan-pelan membuat sekat dan pengamanan. Pelan sekali, bahkan, mungkin Anda tidak akan memperhatikan infrastruktur fisik pengamanan bertambah dari waktu ke waktu.
  4. Pelayanan juga semakin hari semakin membaik, tapi pelan. Mula-mula, beberapa kereta ekspres, kemudian beberapa kereta AC Ekonomi sudah dilengkapi dengan suara tujuan selanjutnya.
  5. PT KAI membentuk anak perusahaan untuk khusus mengurusi komuter JABODETABEK.
  6. Dan selanjutnya.

Hal yang menarik adalah bukan bagaimana proses peningkatan kerja berlangsung. Proses untuk mendukung sebuah infrastruktur yang menggunakan kartu pintar tidak sekedar bermodalkan infrastruktur IT yang kuat, tetapi juga layanan yang handal. Rekan dari sebuah bank penyedia micropayment pernah mengatakan banknya pernah diajak kerja sama oleh PT KAI namun kerja sama itu ditolak. Hal ini karena PT KAI belum bisa menjamin pelayanannya. Memang, waktu itu lebih banyak orang yang tidak membeli tiket ketimbang membeli tiket dan orang ramai-ramai memilih nangkring di atas kereta.

Memang, masih lama sepertinya PT KAI untuk meluncurkan tiket elektronik ini. Tetapi, saya tetap salut dengan adanya kemauan untuk berubah.  Semoga tahun ini kita bisa mengejar ketertinggalan dalam pelayanan modern.

OpenSC di Smart Card UI: Pembuatan Kunci

OpenSC di Smart Card UI: Pembuatan Kunci

Berawal dari idaman untuk dapat menggunakan kartu pintar UI  sebagai token autentikasi untuk berbagai kebutuhan. Saya melirik kembali penggunaan MUSCLE  Card dan OpenSC.

Applet MUSCLE Card

Applet ini didapatkan dari 0.9.12. Ada juga versi SVN-nya di Allioth. Aplikasi sudah dibereskan.

OpenSC

Untuk dapat menggunakan MUSCLE sebagai salah satu token OpenSC:

Inisialisasi dengan mengisi semua PIN menjadi “00000000”. Ingatkan nanti di versi produksi untuk menggunakan angka acak.

$ opensc-tool -s 00:A4:04:00:06:A0:00:00:00:01:01 -s B0:2A:00:00:38:08:4D:75:73:63:6C:65:30:30:04:01:08:30:30:30:30:30:30:30:30:08:30:30:30:30:30:30:30:30:05:02:08:30:30:30:30:30:30:30:30:08:30:30:30:30:30:30:30:30:00:00:17:70:00:02:01

Inisialisasi kartu untuk PKCS15:

$ pkcs15-init -E --create-pkcs15 --no-so-pin

Buat profil baru. PIN yang dimasukkan harus sama dengan Master PIN.

$ pkcs15-init --store-pin --auth-id 01 --label "Jan Peter Alexander Rajagukguk"

Segera ganti PIN profil 01 dengan yang baru:

$ pkcs15-tool --change-pin -a 01

Buat kunci RSA 2048 : (penasaran apakah Kartu UI mampu 4096)

$ pkcs15-init –generate-key rsa/2048 –auth-id 01 –split-key

Wuih, tentu saja kartu UI jauh lebih canggih dibandingkan dengan BCA Flazz. Segera dioptimalkan, ah… 😀

TODO:

  1. Implementasi kunci pada SSH.
  2. Implementasi kunci pada PAM.
  3. Implementasi pada OpenOffice.org, Thunderbird, Firefox, dll.
  4. Mempelajari APDU yang digunakan oleh MUSCLE dan OpenSC.
  5. Membuat klien inisialisasi sendiri.
  6. Membuat terminal yang mendukung OpenSC.
  7. Menguasai dunia. 😛
Install GlobalPlatform 6.0 and GPShell 1.4.4 on Maverick

Install GlobalPlatform 6.0 and GPShell 1.4.4 on Maverick

Prerequisite for this post:

  • Knows about GlobalPlatform and Javacard development (or else this post is unuseful).
  • Already install pcscd, libpcsclite1-dev, and pcsc-tools.
  • Already install
    built-essential.

The build sequence so far I did was:

  1. Install development headers.
  2. Install GlobalPlatform 6.0.
  3. Install
  4. Install GPShell

Install development headers.

GlobalPlatform 6.0 needs OpenSSL and ZLIB:

$ sudo apt-get install libssl-dev zlib1g-dev

Install GlobalPlatform 6.0

  1. GlobalPlatform 6.0 downloaded from sourceforge, extract it.
    $ tar xvfz globalplatform-6.0.0.tar.gz
    $ cd globalplatform-6.0.0/
  2. Enable debug and no static built is optional, I kind of like those.
    $ ./configure --prefix=/usr --enable-debug --disable-static
  3. Make them (-j4 is making four threads of compilling. Faster if you have multicores CPU, which nowadays not so strange)
    $ make -j4
  4. Install
    $ sudo make install

Install GP <–> PCSC connection plugin

  1. Download from sourceforge and extract it.
    $ tar xvfz gppcscconnectionplugin-1.1.0.tar.gz && cd gppcscconnectionplugin-1.1.0
  2. Enable debug and no static built is optional, I kind of like those.
    $ ./configure --prefix=/usr --enable-debug --disable-static
  3. Make them (-j4 is making four threads of compilling. Faster if you have multicores CPU, which nowadays not so strange)
    $ make -j4
  4. Install
    $ sudo make install

Install GPShell

  1. You know the drill.
    $ tar xvfz gpshell-1.4.4.tar.gz && cd gpshell-1.4.4
  2. And the rest:
    $ ./configure --prefix=/usr --enable-debug --disable-static && make -j4 && sudo make install

Done.

Getting Omnikey 5321 To Work On Maverick

Getting Omnikey 5321 To Work On Maverick

It didn’t work with the

pcsc-omnikey

package. I have reinstalled the

pcscd

package with compiling from source. I’ve configured with

"--enable-libusb --disable-libhal"

to use libusb instead of HAL. Those failed.

Then it turned out I have to install the driver from HID Global (the producer of the said card reader) and installed it. The way:

  1. Download driver from: http://www.hidglobal.com/driverDownloads.php?techCat=19&prod_id=171#
  2. Untar the driver to a directory and cd to it.
  3. $ sudo ./install -d /usr/lib/pcsc/drivers/
  4. Restart pcscd:
    $ sudo invoke-rc.d pcscd restart
  5. Done.

Then we have the Omnikey back.

Mundur Dari Dunia Bleeding Edge

Mundur Dari Dunia Bleeding Edge

Setelah berhasil memasang Debian 64 bit pada laptop dengan konfigurasi sebagai berikut:

  • partisi utama dan data semua pada LVM2 dengan format ReiserFS,
  • kernel Liquorix seri 2.6.36, dan
  • KDE 4.4.5 dari Debian SID,

saya memutuskan untuk kembali ke jalan yang benar, yakni dengan memasang Ubuntu 10.10 32 bit. Kejadian ini terjadi karena beberapa hal yang sungguh menyesakkan:

  1. UrU 4500 menggunakan driver tertutup (OneTouchID) yang tergantung pada libc++5 yang notabene merupakan peninggalan prasejarah. Sayangnya, FPRINT hanya mendukung UrU 4000/B yang sudah tidak dilanjutkan lagi.
  2. Pengembangan applet untuk Javacard menggunakan Java 1.3 SDK, yang merupakan barang dari zaman jahiliyah.
  3. SDK Android membutuhkan ia32-emul-java-libs yang artinya menggunakan SDK i386.
  4. Flash versi 64 bit rusak.

Seperti biasa, cara yang dilakukan adalah membuat sebuah Ubuntu 32 bit ke stik USB dengan debootstrap. Dari 64 ke 32 berjalan biasa saja. Lalu, dari 32 bit itu, saya debootrap partisi saya. Ternyata, Ubuntu tidak bisa boot langsung ke LVM. Terpaksa harus ditambah hal-hal berikut:

  1. Memasang LVM2 pada Ubuntu.
  2. Menambah “dm-mod” pada berkas /etc/initramfs-tools/modules. Kemudian, initramfs diperbaharui kembali.
  3. Menambah repo Ubuntu Partner karena SUN JDK ada di sana.

Ugh, sungguh paradoks, ketika hendak terdepan di dalam teknologi, kita harus mundur ke belakang.

REFERENSI:

http://blog.terryburton.co.uk/2007/04/ubuntu-feisty-fawn-with-root-on-lvm_18.html

Sedang Masak Apa?

Sedang Masak Apa?

Ugh, sebal sekali! Opera 10.60 saya baru saja menghapus sebuah entri panjang telah capek saya tulis! Ini sudah yang kesekian kali. Ingatkan saya untuk menulis blog dengan peramban yang stabil. [Ugh, padahal saya pencinta Opera, tidaaaaak…. ;-(] Maka, kali ini saya menulis dari Firefox 3.6.8 versi (jauh lebih) ringkas dari apa yang saya tadi tulis. Intinya, minggu ini adalah minggu optimasi dengan topik:

  1. Penataran aplikasi e-Akses dengan kemampuan CSS3, HTML5, dan Javascript.
  2. Penggunaan Hoard untuk Proxy.
  3. Optimasi kernel linux 2.6.35 untuk penggunaan I/O yang berat (dah-dah lemot!)

Read More

Driver for U.r.U 4500 in Kernel 2.6.31

Driver for U.r.U 4500 in Kernel 2.6.31

I was having trouble with using kernel 2.6.21 that get supported by default UrU kernel, the X server refused to run. So, in my despair, I view some LKML threads, patch here and there: Voila! I got a working  Kernel driver for U.r.U fingerprint for Linux kernel 2.6.31. [NOTE: Remove the .pdf extension.]This patched driver has been working in Debian’s 2.6.31-trunk and Ubuntu Karmic, my fave distro at the momen. The installation is simple and described here.For the sake of KISS, I will try to cover it for you.

$ mv dpfp-2.6.31.tar.gz.pdf dpfp-2.6.31.tar.gz
$ tar xvfz dpfp-2.6.31.tar.gz
$ cd source
$ make

And then install it to your kernel:


$ sudo mkdir /lib/modules/`uname -r`/kernel/drivers/biometric
$ sudo cp mod_usbdpfp.ko /lib/modules/`uname -r`/kernel/drivers/biometric/
$ sudo depmod -aq

Then you can abuse it the way you feel. This kernel has been tested worked on UrU 4500 and UrU4000B.