Bonsoir à tous,

Je cherche à comprendre le fonctionnement d'une signature de confiance d'un applet

J'ai des bonne bases mais je ne suis pas sur de ce que je fais car j’apprends tous seul et donc il est difficile pour moi de me corriger

voici mon tp

test.java

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import java.applet.Applet;
import java.awt.Graphics;
import java.io.FileWriter;
import java.io.PrintStream;
 
public class test extends Applet
{
 
    public test()
    {
    }
 
    public void paint(Graphics g)
    {
        g.drawString("Hello applet!", 50, 25);
        System.out.println("plop");
        try
        {
            FileWriter filewriter = new FileWriter("C:\\test.txt");
            filewriter.write("test");
            filewriter.close();
        }
        catch(Exception exception)
        {
            g.drawString("Echec", 50, 75);
        }
    }
}
Code : Sélectionner tout - Visualiser dans une fenêtre à part
keytool -genkey -alias localhost -validity 365
je répond aux questions et j'obtiens un .keystore

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
C:\Program Files\Java\jdk1.7.0_03\bin>keytool -genkey -alias localhost -validity
 365
Entrez le mot de passe du fichier de clÚs :
Ressaisissez le nouveau mot de passe :
Quels sont vos nom et prÚnom ?
  [Unknown]:  localhost
Quel est le nom de votre unitÚ organisationnelle ?
  [Unknown]:  test
Quel est le nom de votre entreprise ?
  [Unknown]:  private
Quel est le nom de votre ville de rÚsidence ?
  [Unknown]:  paris
Quel est le nom de votre Útat ou province ?
  [Unknown]:  ile de france
Quel est le code pays Ó deux lettres pour cette unitÚ ?
  [Unknown]:  Fr
Est-ce CN=localhost, OU=test, O=private, L=paris, ST=ile de france, C=Fr ?
  [non]:  oui
 
Entrez le mot de passe de la clÚ pour <localhost>
        (appuyez sur EntrÚe s'il s'agit du mot de passe du fichier de clÚs) :
Ressaisissez le nouveau mot de passe :
 
C:\Program Files\Java\jdk1.7.0_03\bin>
ensuite je fais un fichier MANIFEST.MF que je laisse vide...

je lance ensuite ces commandes :

javac test.java

jar cvmf MANIFEST.MF test.jar test.class

et pour obtenir une signature de confiance je fais ceci

wget http://www.startssl.com/certs/sub.class1.server.ca.crt

keytool -import -alias startcom.ca.sub -file sub.class1.server.ca.crt

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
C:\Program Files\Java\jdk1.7.0_03\bin>keytool -import -alias startcom.ca.sub -fi
le sub.class1.server.ca.crt
Entrez le mot de passe du fichier de clÚs :
PropriÚtaire : CN=StartCom Class 1 Primary Intermediate Server CA, OU=Secure Dig
ital Certificate Signing, O=StartCom Ltd., C=IL
Emetteur : CN=StartCom Certification Authority, OU=Secure Digital Certificate Si
gning, O=StartCom Ltd., C=IL
NumÚro de sÚrie : 18
Valide du : Wed Oct 24 22:54:17 CEST 2007 au : Tue Oct 24 22:54:17 CEST 2017
Empreintes du certificat :
         MD5:  30:B0:5A:F7:B2:F4:BE:0C:28:67:15:EA:CC:5B:24:20
         SHA1 : F6:91:FC:87:EF:B3:13:53:54:22:5A:10:E1:27:E9:11:D1:C7:F8:CF
         SHA256 : CB:2D:B5:73:61:0F:40:1E:8D:60:29:17:BB:BE:6A:B4:16:22:55:F2:08
:EF:AD:90:9D:54:40:69:1A:A0:20:3C
         Nom de l'algorithme de signature : SHA1withRSA
         Version : 3
 
Extensionsá:
 
#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: EB 42 34 D0 98 B0 AB 9F   F4 1B 6B 08 F7 CC 64 2E  .B4.......k...d.
0010: EF 0E 2C 45                                        ..,E
]
]
 
#2: ObjectId: 2.5.29.35 Criticality=false
AuthorityKeyIdentifier [
KeyIdentifier [
0000: 4E 0B EF 1A A4 40 5B A5   17 69 87 30 CA 34 68 43  N....@[..i.0.4hC
0010: D0 41 AE F2                                        .A..
]
]
 
#3: ObjectId: 2.5.29.31 Criticality=false
CRLDistributionPoints [
  [DistributionPoint:
     [URIName: http://www.startssl.com/sfsca.crl]
, DistributionPoint:
     [URIName: http://crl.startssl.com/sfsca.crl]
]]
 
#4: ObjectId: 2.5.29.32 Criticality=false
CertificatePolicies [
  [CertificatePolicyId: [1.3.6.1.4.1.23223.1.2.1]
[PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 22 68 74 74 70 3A 2F   2F 77 77 77 2E 73 74 61  ."http://w
ww.sta
0010: 72 74 73 73 6C 2E 63 6F   6D 2F 70 6F 6C 69 63 79  rtssl.com/policy
0020: 2E 70 64 66                                        .pdf
 
], PolicyQualifierInfo: [
  qualifierID: 1.3.6.1.5.5.7.2.1
  qualifier: 0000: 16 28 68 74 74 70 3A 2F   2F 77 77 77 2E 73 74 61  .(http://w
ww.sta
0010: 72 74 73 73 6C 2E 63 6F   6D 2F 69 6E 74 65 72 6D  rtssl.com/interm
0020: 65 64 69 61 74 65 2E 70   64 66                    ediate.pdf
 
]]  ]
]
 
#5: ObjectId: 2.5.29.15 Criticality=true
KeyUsage [
  Key_CertSign
  Crl_Sign
]
 
#6: ObjectId: 1.3.6.1.5.5.7.1.1 Criticality=false
AuthorityInfoAccess [
  [
   accessMethod: ocsp
   accessLocation: URIName: http://ocsp.startssl.com/ca
,
   accessMethod: caIssuers
   accessLocation: URIName: http://www.startssl.com/sfsca.crt
]
]
 
#7: ObjectId: 2.5.29.19 Criticality=true
BasicConstraints:[
  CA:true
  PathLen:2147483647
]
 
Faire confiance Ó ce certificat ? [non] :  oui
Certificat ajoutÚ au fichier de clÚs
 
C:\Program Files\Java\jdk1.7.0_03\bin>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C:\Program Files\Java\jdk1.7.0_03\bin>keytool -list
Entrez le mot de passe du fichier de clÚs :
 
Type de fichier de clÚs : JKS
Fournisseur de fichier de clÚs : SUN
 
Votre fichier de clÚs d'accÞs contient 2 entrÚes
 
startcom.ca.sub, 9 dÚc. 2013, trustedCertEntry,
Empreinte du certificat (SHA1) : F6:91:FC:87:EF:B3:13:53:54:22:5A:10:E1:27:E9:11
:D1:C7:F8:CF
localhost, 9 dÚc. 2013, PrivateKeyEntry,
Empreinte du certificat (SHA1) : 95:93:A0:EA:A5:7F:DB:29:4C:08:51:AF:4F:3C:53:86
:C0:41:BB:DD
 
C:\Program Files\Java\jdk1.7.0_03\bin>
donc suivant ma logique qui n'est que la mienne bien sur si je fais :

jarsigner -verbose test.jar startcom.ca.sub

j'obtiens un jar signé qui fonctionne parfaitement mais l'éditeur reste inconnu
j'ai essayé plusieurs source pour comprendre mon erreur

mes conclusions sont

1: le crt n'est plus de confiance parce qu’il est gratuit ?!

2: je devrais obtenir un fichier .csr qui devrais être modifier avec http://localhost

3: je dois utiliser un fichier .jnlp avec all-permission dans mon jar ??

4: le fichier manifest doit être pré-remplis

voilà j'ai vraiment fais des recherches approfondi avant de poster

merci de votre aide