Come installare il client in sicurezza?

3

Sto scrivendo un programma in PHP che invia dati da un master a molti client (tutti i siti web Joomla). Quando il software client è installato, dovrebbe inviare un messaggio al master che si identifica da solo, e quindi il master risponderà con le informazioni di configurazione (inclusa una chiave che verrà utilizzata per verificare le comunicazioni future).

Qual è il modo migliore per attivare questa connessione in modo sicuro? Attualmente, il master ha un database con gli URL dei client consentiti e, affinché un client possa essere installato, deve essere aggiunto manualmente al database. Mi piacerebbe utilizzare un sistema che elimini l'errore umano, ma a parte leggere il messaggio occasionale Coding Horror , sono completamente nuovo in questo.

Sto principalmente cercando il modello concettuale che dovrò implementare. Mi piacerebbe che questa fosse un'esperienza di apprendimento. Le biblioteche potrebbero aiutare, ma voglio sapere perché sto facendo quello che sto facendo.

    
posta SomeKittens 22.06.2012 - 15:06
fonte

1 risposta

2

La tua domanda sembra essere un po 'ambigua per me perché non riesco a capire cosa vuoi esattamente attraverso di essa. Vuoi i passi teorici che devi seguire o gli algoritmi e le librerie pratiche per la tua lingua particolare che potrebbero aiutarti a farlo?

Se si tratta di una guida generale su come rendere sicura la sicurezza del software basato su architettura client-server, ecco una buona lettura: link

Come ho capito, vuoi un metodo per autenticare automaticamente una licenza e aggiungere l'IP del computer specifico. al tuo database di IP consentiti?

Un buon modo per farlo è usare un semplice algoritmo SALT + Hashing in cui:

  1. Ogni installazione viene fornita con un ID prodotto.
  2. Questo ID prodotto univoco deve essere passato dal client al server ogni volta prima dell'uso, in cui il server acquisisce l'ID prodotto, verifica se è valido, quindi genera un codice di accesso (in base al sale unico di quel giorno dipende da dì data e md5 di sale + prodID).
  3. Questo ID di accesso viene aggiunto alla tabella di accesso e restituito al client. In questo modo ogni giorno alla prima esecuzione il client verrà verificato per la sua validità.

Perché questo approccio è buono? Questo approccio ti lascia il metodo di validità. Vale a dire. Quando ricevi il prodID, puoi assicurarti più cose come:

  • Qualche altro computer ha provato a utilizzare questo ID prodotto oggi?
  • Questo ID prod è stato utilizzato per la prima volta? In tal caso, memorizza l'IP
  • Se non viene utilizzato per la prima volta, il cambio di IP è permesso? Se sì, quanto spesso?

A cura:

Bene, cambieremo leggermente la procedura sopra riportata per farlo funzionare. Presumo che tu voglia usarlo in una sorta di sistema di licenze.

  1. Configura il tuo sistema di pagamento per generare un prodotto o un ID di licenza per un acquisto riuscito. Questo ID può essere qualsiasi cosa, ma ricorda di memorizzarlo nel tuo database.
  2. Quando il client esegue per la prima volta l'estensione Joomla, ottieni l'estensione Joomla per prelevare l'ID prodotto dall'utente una volta e archiviarlo localmente. Poi passalo al server per la registrazione.
  3. Sul server la nostra tabella prodotti avrà due colonne (pID, URL) Se il prodotto ha un URL nullo, inseriamo il nostro URL nel record in cui pID = Our pID In caso contrario, e il nostro URL non è l'URL esistente, allora abbiamo un'installazione non autorizzata di un'installazione in una posizione separata da quella originale. Dovrebbe essere usato un metodo separato per riconvalidarlo.
risposta data 22.06.2012 - 15:24
fonte

Leggi altre domande sui tag