Signed applet nasıl yapılır ?

Applet Java programlarının, server bilgisayarlarındaki java kodlarının kullanıcı bilgisayarına otomatik olarak (browser aracılığı ile) indirilen ve çalıştırılan versiyonudur. Yani kullanıcı browseri aracılığı ile sizin yazdığınız programı kullanır.
Bu noktada appletin güvenliği devreye girer çünkü kullanıcı kodun içeriğini bilemiyeceği için güvenlik riski olan bir durum ortaya çıkar fakat Java nın yazarları buna çare olarak security manager adlı sistemi geliştirmişlerdir,böylece koda bazı sınırlamalar koyarak kullanıcıya zarar vermesi önlenir.
Appletlerdeki bu sınırlamayı aşmanın tek yolu signed applet yaratmaktır.Signed applet yapmak için şu adımları izleyin .

1.Öncelikle appletin gerekeceği bütün sınıfları bir jar içine alın.
jar cvf jar_adi.jar ilk.class (veya * gibi wildcard) varsa_klasor_adi
gibi jar komutu ile jar dosyasını oluşturun,eğer winrar gibi bir program var ise jar dosyası oluşturmak çok kolay yapmanız gereken klasörleri,dosyaları boş jar dosyası içine sürükleyip bırakmak.

2.Şimdi applet için gerekli private/public keyleri ve ilgili dosyasını oluşturalım bunun için
keytool -genkey -alias signFiles -keystore tayfunstore -keypass kpi135 -dname “cn=tayfun” -storepass ab987c
gibi bir komut işimiz görür.
bu komutta
genkey komutu işlemimizi yani “generate key” anahtar yarat direktifini verir
alias signFiles ilerki bir komutta referans olacak bir kelimedir.bir sonraki komutta anlarsınız
keystore oluşturulan publi/private keylerin hangi dosyada saklanacağı bilgisini bu komutla verirsiniz.
keypass bizim private keyimizin şifresi
dname “cn=tayfun” bunun manası applete açılırken applete izin verilip verilmeyeceğini soran dialog kutusunda görünecek bilgilerdir.bu direktif ile ilgili değerleri veririz.
storepass public/private key bilgilerinin koyulacağı dosyanın şifresi

3. Appleti signed yapmadaki son adımımız (benim işime bu 3 adım yaradı )
jarsigner -keystore tayfunstore -storepass ab987c -keypass kpi135 -signedjar SSignedApplet.jar SignedApplet.jar signFiles


keystore public/private keylerin koyulduğu dosyanın adı bir önceki işleme bakın
storepass bir önceki işlemde private/public key dosyasında erişim için şifreyi belirlemiştik.
keypass private keyimizin şifresi
signedjar bu komuttan sonra meydana çıkacak jarın adı
SignedApplet.jar signFiles ->bunlar ise sıra ile sign edilecek jarın adı, yalnız bu jarın tam adresi ile vermeniz gerekli eğer komutu verdiğiniz dizinde ise direkt adınız yazabilirsiniz ama aynı dizinde değilse tam adresini vermelisiniz.Relative yani ../../ tarzı adreslerde olabilir.
signFiles bir önceki komuttan hatırlarsanız alias olarak signFiles vermiştik işte şimdi bu alias işimize yarıyor böylece 1 önceki komuttaki değerleri bu komutta kullanabiliyor.

Bu 3 işlemden sonra buradaki örnekteki SSignedApplet.jar gibi sizin verdiğiniz isimde signed bir applet meydana gelir.

Bu applet signed olduğu için kendi bilgisayarınızdaki programdan farksızdır hertürlü işlemi bu appletin indirildiği kullanıcı bilgisayarında da yapabilirsiniz. Appletin sınırlarını kırarsınız, fakat kullanıcıyı mağdur etmemek için Applet öncelikle bu signed jarın çalıştırılıp çalıştırılmayacağını sorar, işte bu noktada kullanıcı böyle bir dialog kutusu gelince ne yapacağını şaşıracağı ve hayır diyebileceği için signed appletleri sık kullanmak sakıncalıdır.

9 responses to this post.

  1. Posted by ali on Şubat 25, 2007 at 5:04 pm

    Java platformunda yazdığımız kodlar varsayılan olarak jar uzantılı paketler içinde saklanır ve programımız bu jar paket içinden çalıştırılır. Örneğin paketin adı prog.jar ise programı çalıştırmak için java -jar prog.jar komutunu veririz.
    Aslında biz bu jar uzantısını kullanmak zorunda değiliz. paketin uzantısı herhangi bir sekans olabilir. .zip, .tzz, … önemli olan paketin zip formatı ile sıkıştırılmış olmasıdır (jar aslında bir zip formatı). Bu önerinin doğruluğunu en iyi kendiniz test ederek anlayabilirsiniz. prog.jar paketinin uzantısını prog.prg olarak değiştirin ve java -jar prog.prg komutunu vererek programı çalıştırmayı deneyin programınız çalışacaktır. Önemli olan -jar parametresini vermeyi unutmamaktır.
    Bunu bilmenin faydası ne olacak derseniz, öncelikle java’da illaki jar uzantılı dosyalar olacak diye bir gereklilik olmadığını kavrarsınız, ikinci fayda ise windows üzerinde jar uzantısı ile ilişkili program ile paketin direkt açılıp görülmesini engelleyebilirsiniz, eğer paketinizin ne olduğunun anlaşılmasını istemiyorsanız bu yöntemi kullanabilirsiniz, efektif değil ama bir fikir verebilir.

    Cevapla

  2. Ali bey, yorumu bir yazım ile yapmışsınız acaba birbiri ile çelişen yazılar mı yazdım diye baktım ama öyle bişey göremedim, acaba gördüğünüz bir kusur mu var, eğer varsa düzelteyim buna çok dikkat ediyorum çünkü.

    Cevapla

  3. Signed applet yaparken dikkat edilmesi gereken bir nokta daha varmış, eğer appletiniz bir kütüphane kullanıyorsa ve kullandığı kütüphane içinde soket, dosya vs gibi güvenlik gerektiren işlemler var ise, sadece appletin signed olması bütün izinlerin açılmasına yetmiyor, ayrıyetten kullandığınız kütüphaneleride signed yapmanız gerekli imiş.
    Tabi şöyle bir durum var eğer kullandığınız kütüphaneden çağırdığınız bir fonksiyon güvenlik izni gerektiren işlem yapıyorsa o kütüphane signed yapılmalı eğer güvenlik izni gerektirmeyen işlemler var ise signed yapmaya gerek yok.

    Cevapla

  4. Posted by m on Ocak 31, 2009 at 9:57 pm

    imzalanmış olan .jar dosyasını html içine nasıl embed edebiliriz? içindeki .class dosyasını mı çıkarmalıyız?

    Cevapla

  5. imzalanmış jar embed edilmez, applet taglarini biliyorsaniz orada parametre olarak gösteriyorsunuz.
    Örnek :
    param name=”codebase” value=”http://www.pegaa.com/applet/”
    param name=”archive” value=”SignedApplet.jar”

    Cevapla

  6. offffffffffff deli oldum ya lütfen yardim edin su sign etme işi için

    ben hiç kullaniciya calistirilsinmi komutunu göstermek istemiyorum

    ne yapmam lzımmmmmmmmmmmm

    maykil ceksin

    http://www.ankasecurity.com/blog/

    anka, anka kuşu, maykıl, maykılceksın,ankara,ankarasecurity,ankasecurity

    http://www.dijitalders.com/icerik-58-3850-ilk-java-jappletinin-calistirilmasi.html
    işe yaramadi

    http://www.dijitalders.com/icerik-58-4572-java-aplleti-imzalamak-signed-applet-.html

    işe yaramadi

    yardimlarinizi bekliyorum

    tesekkurler

    madmax hobby coder
    milk.inc@hotmail.com.tr

    Cevapla

    • maalesef o dialog kutusu için yapılabilecek bir şey yok, applet ilk kez yüklendi ise mutlaka gösteriliyor (signed applet ise) ve kullanıcı bu siteye her zaman güven demediği sürece her sayfa yüklenişinde tekrar çıkıyor.

      Cevapla

  7. Posted by Tuğra Toprak on Ekim 6, 2011 at 3:00 pm

    Burada oluşturduğumuz .jar dosyası kendi bilgisayarımızda çalşıyor mu acaba?

    Cevapla

  8. […] “Applet Java programlarının, server bilgisayarlarındaki java kodlarının kullanıcı bilgisayarına otomatik olarak (browser aracılığı ile) indirilen ve çalıştırılan versiyonudur. Yani kullanıcı browseri aracılığı ile sizin yazdığınız programı kullanır.Bu noktada appletin güvenliği devreye girer çünkü kullanıcı kodun içeriğini bilemiyeceği için güvenlik riski olan bir durum ortaya çıkar fakat Java nın yazarları buna çare olarak security manager adlı sistemi geliştirmişlerdir,böylece koda bazı sınırlamalar koyarak kullanıcıya zarar vermesi önlenir.Appletlerdeki bu sınırlamayı aşmanın tek yolu signed applet yaratmaktır.Signed applet yapmak için şu adımları izleyin . 1.Öncelikle appletin gerekeceği bütün sınıfları bir jar içine alın.jar cvf jar_adi.jar ilk.class (veya * gibi wildcard) varsa_klasor_adigibi jar komutu ile jar dosyasını oluşturun,eğer winrar gibi bir program var ise jar dosyası oluşturmak çok kolay yapmanız gereken klasörleri,dosyaları boş jar dosyası içine sürükleyip bırakmak. 2.Şimdi applet için gerekli private/public keyleri ve ilgili dosyasını oluşturalım bunun içinkeytool -genkey -alias signFiles -keystore tayfunstore -keypass kpi135 -dname “cn=tayfun” -storepass ab987cgibi bir komut işimiz görür.bu komutta–genkey komutu işlemimizi yani “generate key” anahtar yarat direktifini verir–alias signFiles ilerki bir komutta referans olacak bir kelimedir.bir sonraki komutta anlarsınız–keystore oluşturulan publi/private keylerin hangi dosyada saklanacağı bilgisini bu komutla verirsiniz.–keypass bizim private keyimizin şifresi–dname “cn=tayfun” bunun manası applete açılırken applete izin verilip verilmeyeceğini soran dialog kutusunda görünecek bilgilerdir.bu direktif ile ilgili değerleri veririz.–storepass public/private key bilgilerinin koyulacağı dosyanın şifresi 3. Appleti signed yapmadaki son adımımız (benim işime bu 3 adım yaradı )jarsigner -keystore tayfunstore -storepass ab987c -keypass kpi135 -signedjar SSignedApplet.jar SignedApplet.jar signFiles –keystore public/private keylerin koyulduğu dosyanın adı bir önceki işleme bakın–storepass bir önceki işlemde private/public key dosyasında erişim için şifreyi belirlemiştik.–keypass private keyimizin şifresi–signedjar bu komuttan sonra meydana çıkacak jarın adıSignedApplet.jar signFiles ->bunlar ise sıra ile sign edilecek jarın adı, yalnız bu jarın tam adresi ile vermeniz gerekli eğer komutu verdiğiniz dizinde ise direkt adınız yazabilirsiniz ama aynı dizinde değilse tam adresini vermelisiniz.Relative yani ../../ tarzı adreslerde olabilir.signFiles bir önceki komuttan hatırlarsanız alias olarak signFiles vermiştik işte şimdi bu alias işimize yarıyor böylece 1 önceki komuttaki değerleri bu komutta kullanabiliyor. Bu 3 işlemden sonra buradaki örnekteki SSignedApplet.jar gibi sizin verdiğiniz isimde signed bir applet meydana gelir. Bu applet signed olduğu için kendi bilgisayarınızdaki programdan farksızdır hertürlü işlemi bu appletin indirildiği kullanıcı bilgisayarında da yapabilirsiniz. Appletin sınırlarını kırarsınız, fakat kullanıcıyı mağdur etmemek için Applet öncelikle bu signed jarın çalıştırılıp çalıştırılmayacağını sorar, işte bu noktada kullanıcı böyle bir dialog kutusu gelince ne yapacağını şaşıracağı ve hayır diyebileceği için signed appletleri sık kullanmak sakıncalıdır.” Alıntıdır : https://yugruk.wordpress.com/2007/02/09/signed-applet-nasil-yapilir/ […]

    Cevapla

Yorum bırakın