Mantenere segreti algoritmi preziosi

2

Dato un algoritmo di negoziazione di titoli che è molto efficace e quindi molto prezioso, come lo si mantiene segreto e protetto da furti o copie? Quali tecniche o architetture sono le migliori?

L'algoritmo richiederà ovviamente alcuni dati di input e produrrà alcuni dati. Avrà anche bisogno di manutenzione e sviluppo.

Preferibilmente sarebbe connesso alla rete, ma poi ci sono tutti i tipi di minacce e possibilità di violazioni della sicurezza.

Le persone stanno lavorando su diverse parti dell'algoritmo sia come sviluppatori software, tester, amministratori o come utenti. Le persone in se stesse pongono dei rischi per la sicurezza in quanto possono copiare le parti a cui hanno accesso.

Ecco alcuni dei miei pensieri fino ad ora:

Alcune organizzazioni hanno una rete interna che non è connessa alla rete esterna se non attraverso umani e chiavette USB. Il virus Stuxnet mostra che l'approccio con chiavetta USB non è sufficiente per mantenere segreti i segreti. Gli esseri umani hanno una larghezza di banda molto limitata e hanno la tendenza a introdurre molti errori di trasmissione.

Alcune organizzazioni invece di una connessione di rete diretta hanno una semplice analisi e comprensione della connessione seriale RS232 verso il mondo esterno con una larghezza di banda molto limitata, e se vengono trasmessi troppi dati, interrompono la connessione finché non hanno analizzato quali dati era stato inviato e perché.

L'estrazione della parte preziosa dalle parti standard in avanti dell'algoritmo riduce l'area di destinazione.

L'esecuzione su OpenBSD può aiutare a evitare diversi tipi di problemi.

  • Reverse proxy
  • Firewall
  • Antivirus aggiornato
  • Vaschette per miele per rilevare le intrusioni
  • Memorizza tutto su volumi TrueCrypt
  • Evitare linguaggi tolleranti come PHP, C, C ++ e preferire linguaggi che eseguono controlli aggiuntivi come C # o Java.

Penso che Warren Buffett abbia la massima sicurezza per il suo algoritmo in quanto lo tiene nella sua testa e non usa un computer o un telefono cellulare.

    
posta tomsv 04.05.2012 - 12:14
fonte

2 risposte

4

Ci sono due parti per questa domanda:

  1. Non permettere alle persone di vedere l'algoritmo, l'implementazione, ecc. Questa è la sicurezza IT standard e di seguito discuterò alcune possibili difese.

  2. Non permettere alle persone di imparare qualcosa dalla loro interazione con l'algoritmo. Questa parte potrebbe essere un po 'meno ovvia, ma se permetti alle persone che non ti fidi di inviare input a l'algoritmo e osservare le uscite, quindi (a seconda delle specifiche della situazione) potrebbero essere in grado di imparare qualcosa della tua salsa segreta. Dovrai determinare se è effettivamente così, e come difenderci da esso (ad esempio limitando l'accesso a input o output all'algoritmo).

Per quanto riguarda la protezione dell'algoritmo e la sua implementazione, esiste una gamma di possibili difese. Ognuno ha i suoi compromessi e dovrai valutarli nel contesto del loro impatto sul business e del livello di rischio che stai affrontando.

  • Isolamento. Esegui il codice sul proprio server. Memorizza il codice sorgente su un sistema completamente separato. Scegli un gruppo limitato di sviluppatori a cui viene concesso l'accesso. Tienilo separato da tutti i tuoi soliti sistemi.

  • Indurimento. Configura il server che esegue questo codice in modo altamente sicuro. Non eseguire nient'altro sul server. Blocca la configurazione. Configurare i firewall e il controllo rigoroso degli accessi. Se esegui una ricerca su questo sito, troverai una grande quantità di informazioni sul rafforzamento del server.

  • Separazione di rete. Esegui il server solo su una rete locale locale, che è completamente disconnessa da Internet (nessun computer su quella rete locale è connesso a Internet o a qualsiasi cosa che sia connesso a Internet, a qualsiasi cosa connessa a, ecc., a tutto ciò che è connesso a Internet, in modo transitorio). Ti consiglio di utilizzare la separazione rigorosa in rosso / nero , in quanto contribuisce a garantire la separazione.

  • Airgapping. In alternativa, disconnetti completamente il server da ogni rete e usa solo sneakernet. Tuttavia, invece di trasportare dati su chiavette USB, raccomanderei l'uso di supporti scrivibili una sola volta (ad esempio, CD-R, DVD, ecc.), In quanto ciò riduce il rischio che i virus viaggino nella direzione sbagliata. Disattiva l'esecuzione automatica, ecc. Imposta il software sul server critico che controlla il contenuto del DVD prima di utilizzarlo (ad esempio, verificando che sia del tipo previsto, abbia il formato previsto e così via).

  • Sicurezza fisica. Limita l'accesso ai server su cui questo algoritmo e questo codice vengono eseguiti e vive, a un gruppo limitato di personale fidato.

Vedi anche Contratto mi obbliga a lavorare con IP sensibili, sanzioni severe per la perdita di dati a terze parti. Alcuni indicatori di protezione per alcune tecniche aggiuntive che potrebbero essere di interesse (anche se la situazione è leggermente diversa).

    
risposta data 07.05.2012 - 02:27
fonte
0

Avere una rete interna disconnessa da tutte le altre con connessioni USB ecc. spento, & consente solo ai dati di viaggiare utilizzando CD / DVD finalizzati? Dipende da quanti dati hai bisogno per uscirne.

Niente sarà sicuro al 100% ("L'unico computer sicuro è in una stanza chiusa, disconnesso da internet, spento e scollegato" ecc. ecc.), ma questo potrebbe essere almeno un passo avanti la giusta direzione.

    
risposta data 06.05.2012 - 23:15
fonte

Leggi altre domande sui tag