Le principali situazioni in cui ho riscontrato applet Java a scopo di autenticazione sono firme . Considera che il server o il client potrebbero essere un attaccante; tipicamente, un sito di banca / borsa online. L'utente può inviare ordini di compravendita e può in seguito provare a fare difetto sui suoi ordini, sostenendo che non li ha mai inviati in primo luogo e che la banca sta cercando di incastrarlo. A quel punto, il cliente e la banca vanno a vedere un giudice.
In una tipica autenticazione password-over-SSL, dal lato tecnico delle cose, la banca perde. In effetti, la banca può essere ragionevolmente certa che il cliente è effettivamente arrivato e ha inviato gli ordini; ma non può dimostrarlo . Per una dimostrazione, è necessaria una firma digitale : il cliente firma l'ordine, con una chiave privata che la banca non conosce. Un certificato client per SSL non è sufficiente, perché la firma del client è quindi sugli elementi della sessione SSL, non sui dati dell'applicazione.
Quindi alcuni codici personalizzati devono essere eseguiti sul computer client. Quel codice deve essere verosimilmente onesto dal momento che il cliente proverà a sostenere che qualsiasi codice inviato dalla banca potrebbe produrre firme senza che lui lo sappia. Javascript non è sufficiente per questo. Ma un'applet Java firmata può fare il trucco: i file .jar
verranno memorizzati nella cache sulla macchina del cliente, firmati (quindi la banca non può ripudiarli), e potrebbero essere decodificati (questo è non così difficile per bytecode Java).
Si noti che, analogamente, la firma dell'applet protegge il cliente, poiché qualsiasi crimine dalla banca stessa potrebbe essere scoperto in quel modo; la firma rende le frodi più rischiose, quindi (presumibilmente) meno probabili.
Non sto affermando che questo è ciò che fa il tuo specifico esempio di applet Java, ma almeno è uno scenario in cui le applet Java hanno vantaggi per la sicurezza.