Sicurezza Applicazione web RESTful in Java

1

Stiamo sviluppando due applicazioni web:

  1. Applicazione A: servizi Web riposanti in esecuzione su un server GlassFish.

  2. Applicazione B: applicazione web dinamica in esecuzione su un server Tomcat.

Sto accedendo all'Applicazione A solo tramite la mia Applicazione B, non voglio alcuna altra applicazione per accedere alla mia Applicazione A. Per questo ho pianificato di installare un certificato Client-server nei rispettivi server, in modo che la mia Applicazione A sarà accessibile solo dalla mia Applicazione B, voglio bloccare altre Applicazioni dall'accesso alla mia Applicazione A.

Puoi dirmi come installare i certificati client-server nei rispettivi server?

Se qualcuno ha un'alternativa migliore per ottenere questo, per favore spiegacelo.

Spiega con un esempio, se possibile.

    
posta PRIYANK SINHA 04.08.2015 - 13:58
fonte

3 risposte

1

In base alle informazioni limitate:

Al minimo i livelli di sicurezza che stai cercando di ottenere.

  1. Chiameremo questo DMZ. Questo è il livello in cui si accede all'Applicazione A o, più semplicemente, il punto di ingresso per la configurazione. Non vuoi nessuno oltre questo punto.
  2. Il livello successivo è il back-end. Questa è l'applicazione B e stai tentando di limitare l'accesso a questa applicazione solo tramite l'applicazione A.

A livello di rete, l'opzione migliore è l'elenco bianco dei nomi di dominio / IP. Se sei veramente solo in fase di sviluppo, e in pratica stai provando a limitare gli utenti / altri sviluppatori a fare confusione con un sistema che non è pronto, sarà sufficiente semplicemente elencare i tuoi server in FW.

Non è necessario avere un FW in mezzo per qualcosa di fondamentale (a meno che il tuo sviluppo richieda un certo livello di protezione sul quale non suggerirei di usare questi forum e assumere un professionista.Questo posto è ottimo per informazioni, ma impegni specifici non dovrebbero essere fatti qui)

Dovresti conoscere l'IP e le porte su cui le applicazioni A e B parlano e che cosa vuoi elencare nella lista bianca.

Se / quando spingi questo in produzione, farei alcune modifiche suggerite.

  1. A seconda del livello di sicurezza richiesto, utilizzare un firewall dedicato per separare la DMZ dal back-end (la tua organizzazione potrebbe già averlo).
  2. Utilizza i certificati firmati di terze parti, credo che le migliori pratiche attuali siano la lunghezza minima della chiave di 2048, le firme SHA2, in esecuzione su TLS 1.1 o versioni successive.
  3. Proteggi il server a livello di server. Imposta correttamente l'autorizzazione del tuo gruppo, ecc. Per l'applicazione. (Non includo le raccomandazioni sulla sicurezza del server, ma dovrebbe essere un dato).
  4. Conosci il tuo livello di accesso DMZ, e l'applicazione interna non deve essere accessibile da IP esterni, e il tuo team IT dovrebbe sapere quale schema IP usano e se sono davvero sulla palla, sapranno quale intervallo IP accederà all'applicazione per il gruppo di utenti dedicato.
risposta data 04.08.2015 - 18:53
fonte
0

Che ne dici delle regole del firewall basate su host basate su una lista bianca?

Server del set di regole A:

  • Incoming: IP (Server B)
  • Outgoing: IP (Server B)

Dovrebbe fare il lavoro per le applicazioni che non hanno requisiti di protezione elevati / molto elevati.

    
risposta data 04.08.2015 - 15:44
fonte
0

Potenzialmente potresti mettere l'applicazione A su una rete interna, impedendole l'accesso al mondo esterno (o al mondo esterno). Questo combinato con la regola del firewall Th0mas menzionata dovrebbe fare il trucco.

Modifica

Sembra che tu stia davvero tentando di convalidare ciò che ti sta chiamando, questo può essere fatto usando gli scambi di token csrf nel tuo JSP, vedi: link

Questa non è una garanzia che solo tu sei un'app web che sta chiamando l'API ma è una buona ipotesi.

    
risposta data 04.08.2015 - 17:51
fonte

Leggi altre domande sui tag