2016-04-27 19 views
5

Ho un'applicazione che sta per avviare un server Web ad hoc per servire un'applicazione Web (disponibile solo tramite la rete Wi-Fi locale) con comunicazione front-end/backend tramite SignalR. Questo verrà impostato su computer casuali, quindi SSL non sarà disponibile ma entrambi i lati della comunicazione possono facilmente condividere una password fuori banda.SignalR con crittografia simmetrica

Non possiamo supporre che non ci saranno attori malintenzionati sulla rete wifi (in effetti, questo verrà utilizzato nelle scuole e odierò per un bambino intelligente per "hackerarlo" con uno spionaggio della rete molto semplice e espellere).

Senza ssl, mi piacerebbe fare è andare vecchia scuola e avere la persona su ogni estremità immettere una passphrase, e quindi utilizzare tale passphrase per crittografare tutte le comunicazioni tra il client e il server. Sono felice di utilizzare AES o qualsiasi algoritmo di crittografia simmetrica stabilito.

Il problema che sto avendo è che non ho idea di come collegarlo a SignalR. Specificamente, dato che ho le funzioni C#/javascript encrypt(str, key) e decrypt(str, key) - come posso dire a SignalR di usarle sia sul client che sul server per crittografare/decodificare i messaggi?

Per chiarire come sembra esserci una certa confusione; la condivisione delle chiavi non è un problema in questo caso, integrando qualsiasi schema di crittografia/decrittografia che invento in SignalR. Qualsiasi aiuto è gradito

risposta

1

Non penso che sia necessario che SignalR faccia effettivamente qualcosa con encrypt/decrypt. È possibile consentire al client di gestire la crittografia/decrittografia con informazioni di routing in testo normale che possono ottenere il payload crittografato dove necessario.