Tähän kysymykseen on jo annettu vastauksia :

Kommentit

  • Lue RFC: t, jos haluat lisätietoja, suorita ssh-asiakas ja palvelin virheenkorjaustilassa saadaksesi selville, mitä hupun alla tapahtuu.
  • Se voi auttaa, jos selität, miksi ehdotettu kaksoiskappale ei ole '. Näyttää siltä, että se vastaa kysymykseesi.
  • Jos se vastaa kysymykseeni, se tekee sen tavalla, josta ei ole minulle apua. Siksi minun on kysyttävä itseltäni saadakseni ymmärrettävän vastauksen.
  • amflare – että toinen viesti peittää täällä pyytämäsi asiat. Olen sulkenut kopion niin kauan kuin et ole ' selittänyt, mitä muuta pyysit, vaikka muutkin pyysivät sinua.
  • Jotain, mitä voin todella ymmärtää (ja kyllä, Olen sanonut tämän aiemmin). Sanot minulle, että on olemassa vastaus, sanon, etten ymmärrä sitä '. Vastauksesi ei pitäisi olla " liian huono ".

Vastaa

Mikä tekee siitä periaatteessa paremman kuin todella pitkä salasana?

Niitä ei siirretä palvelimelle (koska jopa erittäin pitkä salasana on siirrettävä). Se ei ole epävarma ssh -tapauksessa (kanava on salattu, ellet käytä rikkinäisiä salakirjoituksia), mutta teoriassa sen voi keskeyttää Man In the middle tai haitallinen (super) käyttäjä etäpalvelin.

Ja miten julkinen avain toistaa asioita?

Tämä on epäsymmetrisen salauksen kohta. Yksityinen avain luo allekirjoituksen ja julkinen voi tarkistaa, että allekirjoitus on tehty vastaavalla julkisella avaimella. Lähetät palvelimen tarjoaman julkisen avaimen ja allekirjoituksen, ja tämä riittää palvelimelle sallimaan pääsyn (jos julkinen avain vastaa authorized_keys -kohdan avainta).

Kommentit

  • Joten se lähettää julkisen avaimen, jos se täsmää, paluu palaa salatuksi julkisella avaimella, jonka yksityinen avain voi sitten purkaa ? Ja päinvastoin yksityisen salauksen ja julkisen salauksen purkamisen kanssa?
  • salattu tällä julkisella avaimella, jonka yksityinen avain voi sitten purkaa – allekirjoitettu yksityisellä avaimella, minkä julkisen avaimen voi tarkista.
  • Mitä " signeerattu " tarkoittaa? Mikä estää jotain salauksen purkamisen, vaikka allekirjoitus ei tarkista?
  • @amflare: fi.wikipedia.org/wiki/Digital_signature Jos jotain, niin mahdollisen salauksen purkijan ' oma koodi.
  • Oikein, ymmärrän sen. Tästä syystä (ilmeisesti puutteellinen) olettamus, että avaimet mahdollistivat salauksen ja salauksen purkamisen. Mutta näyttää siltä, että jos olisin pahantahtoinen osapuoli, voisin siepata tiedot ja jättää huomiotta allekirjoituksen aitouden ja yrittää purkaa sen joka tapauksessa. Minusta tuntui, että avaimet estivät myös kolmansia osapuolia tekemästä sitä.

Vastaa

En ole varma, mitä verrataan SSH: ta ”erittäin pitkään salasanaan”. SSH tarjoaa turvallisen tavan lähettää käyttäjätunnuksesi ja salasanasi etäpalvelimelle. Tai voit käyttää asiakkaan julkista avainta. Epäsymmetrisiä avaimia on yleensä vaikea rikkoa, koska ne eivät ole alttiita käyttäjille, jotka luovat huonoja salasanoja. Julkiseen avaimeen perustuva todennus on tästä syystä suositeltava. Voit lisätä luetteloon tiettyjä julkisia avaimia käyttäjällesi (ja IP-osoitteellesi), jotta kukaan ei voi kirjautua sisään käyttäjänimelläsi ja miltä tahansa tietokoneelta. Tämä valkoinen luettelo sisältyy kohtaan /home/<user>/.ssh/authorized_keys.

SSH: n perusteet:

  1. Palvelin esittelee RSA: n julkisen avaimen osoitteeseen asiakas. Asiakas tarkistaa manuaalisesti, että se luottaa tähän avaimeen ennen jatkamista.

  2. SSH käyttää Diffie Hellmania yhteisen salaisen arvon luomiseen.

  3. Jaettu salaisuus ja paljon avaimenvaihtotietoja yhdistetään ja allekirjoitetaan palvelimen yksityisellä avaimella.

  4. Asiakas voi vahvistaa tämän allekirjoituksen palvelimen aiemmin luotettu julkinen avain.

  5. Molemmilla osapuolilla on nyt kaikki tarvittavat tiedot istuntoavainten luomiseen.

Kohdasta 7.2 RFC4253: sta

7.2. Output from Key Exchange The key exchange produces two values: a shared secret K, and an exchange hash H. Encryption and authentication keys are derived from these. The exchange hash H from the first key exchange is additionally used as the session identifier, which is a unique identifier for this connection. It is used by authentication methods as a part of the data that is signed as a proof of possession of a private key. Once computed, the session identifier is not changed, even if keys are later re-exchanged. Each key exchange method specifies a hash function that is used in the key exchange. The same hash algorithm MUST be used in key derivation. Here, we"ll call it HASH. Encryption keys MUST be computed as HASH, of a known value and K, as follows: o Initial IV client to server: HASH(K || H || "A" || session_id) (Here K is encoded as mpint and "A" as byte and session_id as raw data. "A" means the single character A, ASCII 65). o Initial IV server to client: HASH(K || H || "B" || session_id) o Encryption key client to server: HASH(K || H || "C" || session_id) o Encryption key server to client: HASH(K || H || "D" || session_id) o Integrity key client to server: HASH(K || H || "E" || session_id) o Integrity key server to client: HASH(K || H || "F" || session_id) Key data MUST be taken from the beginning of the hash output. As many bytes as needed are taken from the beginning of the hash value. If the key length needed is longer than the output of the HASH, the key is extended by computing HASH of the concatenation of K and H and the entire key so far, and appending the resulting bytes (as many as HASH generates) to the key. This process is repeated until enough key material is available; the key is taken from the beginning of this value. In other words: K1 = HASH(K || H || X || session_id) (X is e.g., "A") K2 = HASH(K || H || K1) K3 = HASH(K || H || K1 || K2) ... key = K1 || K2 || K3 || ... This process will lose entropy if the amount of entropy in K is larger than the internal state size of HASH. 

Kun salattu kanava on muodostettu, SSH-protokolla aloittaa asiakastodennuksen parametrien perusteella, jotka olet antanut. Kaikki tämä suoritetaan turvallisesti salatun kanavan kautta.

Vastaa

Haluan antaa korkean tason kuvan. Ymmärrät selvästi turvallisen viestinnän tarpeen, olipa se sitten SSH tai HTTPS. Suojattu tiedonsiirto tarkoittaa, että kanava on salattu.

Yleisesti ottaen kaikki salausalgoritmit jaetaan kahteen luokkaan:

  • Symmetrinen salaus. Yksi avain. Samaa avainta käytetään salaamiseen ja salauksen purkamiseen. Nopeasti. Esimerkiksi. AES.
  • Epäsymmetrinen salaus. Kaksi avainta. Kumpaakin voidaan käyttää salaamiseen, mutta vain toinen voi purkaa. Paljon hitaampi kuin symmetriset algoritmit. Esimerkiksi. RSA.

Symmetrinen salaus on nopeaa ja soveltuu siksi kahden osapuolen väliseen viestintään, johon liittyy paljon dataa. Se käyttää samaa avainta salaukseen ja salauksen purkamiseen – tämä avain on analoginen käsitteellesi erittäin pitkä salasana. Ongelma: miten jaat avaimesi / salasanasi ensinnäkin? Osoittautuu, että et voi käyttää suojattua kanavaa, joka on rakennettu pelkästään symmetriseen salausalgoritmiin, ilman että keksit tapaa jakaa avain / salasana ensin.

Täällä epäsymmetriset algoritmit tulevat sisään, mutta ovat huomattavasti hitaampia kuin symmetriset algoritmit. Suurten tietomäärien lähettäminen on epäkäytännöllistä, mutta hieno, jos lähetät tai vaihdat jotain pientä, kuten symmetrinen salausavain / salasana. Kun tämä on tehty, voit nyt käyttää symmetristä salausta viestintään.

Yksi epäsymmetrisen salauksen avaimista on nimetty julkiseksi ja toinen yksityiseksi. Julkinen avain voidaan jakaa kaikille, mutta yksityinen avain on pidettävä salassa.

You (has pub) Server (has prv + pub) asym-encrypt(pub, sym-key/pwd) ----> asym-decrypt(prv, encrypted-data) => sym-key/pwd 

pub = julkinen avain, prv = yksityinen avain

Joka tapauksessa tämä selitys on SSH: n oikean toiminnan yksinkertaistaminen. Kaksi muuta korostamisen arvoista asiaa:

  • Diffie Hellman on tyypillinen avaintenvaihdon epäsymmetrinen algoritmi. Diffie Hellmanin kanssa ei todellakaan tarvitse luoda symmetristä avainta . Molemmat osapuolet luovat symmetrisen avaimen yhdessä avaimen vaihdon aikana, mikä on mukava suojausominaisuus. Katso " Diffie-Hellman-avaimenvaihto " selkokielellä .

  • Selityksessäni oletin, että olet löytänyt palvelimen julkisen avaimen ja luotat siihen, että se on oikea. Mutta sinun on todella oltava varovainen, mitä julkisia avaimia sinä luottamus. Jos haluat luottaa julkiseen avaimeen, se on allekirjoitettava digitaalisesti. Allekirjoitettu julkinen avain tunnetaan myös nimellä varmenne.

Toivottavasti tämä selvittää pitkää salasanaa ja julkiset avaimet ja sillä on tarpeeksi tietoa, jotta voit kaivaa syvemmälle merkityksellisemmällä tavalla.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *