Best practice per l'impostazione delle connessioni client a un server con credenziali dell'app

2

Il titolo della domanda è ... brutto per non dire altro. Ecco una panoramica di ciò che ho:

  • Lavoro su uno strumento online. I dati vengono inviati ad esso, elabora i dati (un'attività intensiva) e restituisce i risultati.
  • Lo strumento viene venduto alle organizzazioni che desiderano includere la funzionalità nei loro siti web e applicazioni pubblici per i loro clienti. Lo strumento rimane sui nostri server (nessun client ha accesso al codice o ai binari)
  • Ho bisogno di bloccare le organizzazioni non autorizzate che utilizzano lo strumento nei loro siti e app.

All'interno di un browser, l'autorizzazione è semplice; Semplicemente controllo l'intestazione ORIGIN quando le richieste sono fatte e tutto va bene (i singoli utenti che hanno hackerato le loro intestazioni non sono importanti).

Nelle app è una storia diversa. Innanzitutto, devo impedire alle applicazioni di utilizzare semplicemente l'interfaccia del browser (o piuttosto, rendere l'interfaccia del browser uguale all'interfaccia dell'app), quindi ho bisogno di usare chiavi o simili per autorizzare i client consentiti.

Mi rendo conto che indipendentemente dall'autorizzazione che ho inserito nelle app, può sempre essere compromessa perché sono pubbliche, ma questa non può essere una situazione unica, quindi mi chiedo quali soluzioni siano già state sviluppate. (Dal momento che ho una conoscenza limitata della terminologia di sicurezza è difficile da cercare!)

    
posta Dave 21.03.2013 - 02:25
fonte

1 risposta

1

La tua domanda riguarda essenzialmente DRM.

Non riesco a distinguere un fatto importante sullo strumento. Questo strumento è ospitato sui tuoi server o sui tuoi server clienti?

Se lo strumento è ospitato sui tuoi server, questo rende la situazione molto più semplice. Impostare un sistema di autorizzazione basato su chiavi API e consentire ai client di utilizzare lo strumento solo se nella richiesta viene inviata una chiave API accettata. In questo scenario, devi assicurarti che nessuna parte rilevante (di elaborazione dati) del codice sia nelle mani del cliente.

Se lo strumento è ospitato sui server dei client, il sistema di chiavi API funziona ancora. Avere una funzionalità che consente ai client di generare e revocare le chiavi API per consentire loro l'accesso a quella particolare istanza dello strumento.

Se la tua domanda è come impedire a organizzazioni non autorizzate di installare lo strumento nei propri server, questo problema è probabilmente difficile da risolvere tecnicamente. Potresti voler fare affidamento su contratti legali per impedire che le organizzazioni autorizzate perdano il tuo codice.

    
risposta data 21.03.2013 - 04:01
fonte

Leggi altre domande sui tag