SSH come promiscuità per HTTPS

2

Voglio costruire qualcosa, ma non l'ho mai visto prima. Forse hai?

Mi piacerebbe creare un'app HTML5, pubblicata su browser e telefoni moderni da un microcomputer (ad esempio BBB ). Il microcomputer sarebbe un Access Point aperto (non necessariamente connesso a Internet)

I client potrebbero connettersi all'AP e vedere l'app. Pensa a un EULA clickrap su un AP wifi, ma ha fatto cose utili e carine per te. Un'app.

L'app ha bisogno di comunicazioni sicure. Se utilizzo HTTPS, avrei bisogno di un certificato SSL. Per quale nome di dominio? E uno per ogni microcomputer? Non potevo condividerli o sarebbero stati "compromessi" e revocati? Non sembra funzionare o scalare. Gli utenti sono addestrati a non accettare certificati autofirmati. È orribile UX lavorare contro e annullare quell'allenamento.

In realtà, ho solo bisogno di ciò che ha SSH:

  1. Imposta un nuovo server con SSH, rende le proprie chiavi.
  2. ssh su un nuovo server e ottieni una nuova impronta digitale: "Questo è nuovo, accetta?"
  3. ssh su un server conosciuto con un'impronta diversa: "Qualcosa non va!"

Questa domanda ha parlato di DANE / RFC 6698 . Ma questo richiede DNS (e una connessione a Internet), e non sembra essere supportato dai browser.

Voglio solo che sia buono come ssh. Non ho bisogno di identità centralizzata. Le versioni future gestivano l'identità condividendo le impronte digitali tra i clienti.

Nel passaggio fase 2 "nuove impronte digitali", i browser moderni mostrano un avvertimento spaventoso. Per i primi che vanno bene come inizio. Ma per gli utenti abituali, preferirei non spaventarli / liberarli. Quello che voglio veramente è un portachiavi come known_hosts .

Qualcuno ci sta pensando per HTTPS e browser?

Grazie!

    
posta Michael Cole 28.06.2015 - 15:24
fonte

1 risposta

2

Quello che descrivi è https con certificati autofirmati, cioè

  1. Setup a new server with SSH, it makes it's own keys.

Imposta un server https con un certificato autofirmato.

  1. ssh to a new server and get a new fingerprint: "This is new, accept?"

Connessione al nuovo server con il browser. Ricevi un avviso ma puoi dire al browser di aggiungere un'eccezione.

  1. ssh to a known server with a different fingerprint: "Something is wrong!"

Connetti di nuovo con il browser. Ti dirà che qualcosa non va perché l'eccezione non corrisponde più. Se hai usato HSTS, non avresti nemmeno la possibilità di eseguire l'override.

In entrambi i casi il secondo passaggio è quello critico, ovvero dovresti accettare il certificato dal server solo se hai verificato l'impronta digitale e hai ottenuto l'impronta digitale corretta in modo sicuro (magari durante la configurazione del server ).

    
risposta data 28.06.2015 - 15:59
fonte

Leggi altre domande sui tag