Ez a kérdés már itt megválaszolta :

Megjegyzések

  • Olvassa el az RFC-ket, ha további részletekre van szüksége, futtassa az ssh klienst és szervert hibakeresési módban hogy megtudja, mi történik a motorháztető alatt.
  • Segíthet, ha elmagyarázza, miért nem érvényes a javasolt másolat '. Úgy tűnik, valóban megválaszolja a kérdésedet.
  • Ha válaszol a kérdésemre, akkor oly módon teszi, hogy nekem nem lenne segítségem. Ezért ahhoz, hogy választ kapjak, amit megértek, fel kell tennem magamnak a kérdést.
  • amflare – ez a másik bejegyzés fedi le azokat a dolgokat, amelyeket itt kért. Annyi példányt zártam le, amennyit még nem ' nem magyaráztam el, amit még kérdeztek, annak ellenére, hogy mások ezt kérték tőletek.
  • Valamit, amit valóban megértek (és igen, Mondtam már ilyet). Azt mondod, hogy van válasz, azt mondom, hogy nem értem '. Válasza nem lehet " túl rossz ".

Válasz

Alapvetően mitől jobb, mint egy igazán hosszú jelszó?

Nem kerülnek át a szerverre (mivel még a nagyon hosszú jelszót is át kell adni). Nem bizonytalan a ssh esetben (a csatorna titkosítva van, hacsak nem használ titkosított titkosítást), de elméletileg a Középső közepén lévő ember vagy a rosszindulatú (szuper) felhasználó a távoli szerver.

És hogyan játszik a nyilvános kulcs dolgokat?

Ez az aszimmetrikus kriptográfia pontja. A privát kulcs létrehozza az aláírást, és a nyilvános ellenőrizheti, hogy az aláírást a megfelelő nyilvános kulcs tette-e meg. Ön elküldi a nyilvános kulcsot és a szerver által kínált adatok aláírását, és ez elegendő ahhoz, hogy a kiszolgáló engedélyezze a hozzáférést (ha a nyilvános kulcs megegyezik az authorized_keys mezőben szereplővel).

Megjegyzések

  • Tehát elküldi a nyilvános kulcsot, ha egyezik, akkor a visszaforduló adatokat ezzel a nyilvános kulccsal titkosítják, amelyet a privát kulcs visszafejthet ? És fordítva a privát titkosítással és a nyilvános dekódolással?
  • azzal a nyilvános kulccsal titkosítva, amelyet a titkos kulcs aztán visszafejthet – aláírva privát kulccsal, melyik nyilvános kulcs képes igazolja.
  • Mit jelent az " aláírt "? Mi akadályozza meg annak visszafejtését, még akkor is, ha az aláírás nem érvényes?
  • @amflare: hu.wikipedia.org/wiki/Digital_signature Ha valami, akkor a leendő dekódoló ' saját kódja.
  • Rendben, értem. Ezért (látszólag hibásan) feltételeztem, hogy a kulcsok lehetővé tették a titkosítást és a visszafejtést. De úgy tűnik, ha rosszindulatú fél lennék, elfoghatnám az adatokat, és figyelmen kívül hagynám az aláírás hitelességét, és megpróbálnám visszafejteni. Az volt a benyomásom, hogy a kulcsok arra is szolgáltak, hogy megakadályozzák harmadik feleket abban.

Válasz

Nem tudom, mit hasonlítasz az SSH-val a „nagyon hosszú jelszóval”. Az SSH biztonságos módon biztosítja a felhasználói bejelentkezés és jelszó távoli kiszolgálóra történő elküldését. Vagy használhat egy kliens nyilvános kulcsát. Az aszimmetrikus kulcsokat általában nehezebb feltörni, mert azok nem tartoznak ahhoz, hogy a felhasználók rossz jelszavakat hozzanak létre. Ezért a nyilvános kulcson alapuló hitelesítést részesíti előnyben. Felveheti a felhasználóhoz (és az IP-hez) tartozó nyilvános kulcsokat, hogy ne bárki tudjon bejelentkezni a felhasználónevével és bármilyen számítógépről. Ez a fehér lista a /home/<user>/.ssh/authorized_keys mappában található.

Az SSH alapjai:

  1. A szerver bemutatja RSA nyilvános kulcsát a az ügyfél. Az ügyfél a folytatás előtt manuálisan ellenőrzi, hogy megbízik-e ebben a kulcsban.

  2. Az SSH Diffie Hellman segítségével hozza létre a megosztott titkos értéket.

  3. A megosztott titkot és a sok kulcscsereadatot összekeverik és aláírják a szerver magánkulcsával.

  4. Az ügyfél a szerver korábbi használatával ellenőrizheti ezt az aláírást megbízható nyilvános kulcs.

  5. Mindkét fél rendelkezik a munkamenetkulcsok létrehozásához szükséges összes információval.

A RFC4253 7.2

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. 

A titkosított csatorna létrehozása után az SSH protokoll megkezdi az ügyfél-hitelesítést paraméterek alapján adta meg. Mindezt biztonságosan hajtják végre a titkosított csatornán keresztül.

Válasz

Engedje meg, hogy magas szintű képet adjak. Nyilvánvaló, hogy megérti a biztonságos kommunikáció szükségességét, legyen az SSH vagy HTTPS. A biztonságos kommunikáció azt jelenti, hogy a csatorna titkosítva van.

Általánosságban elmondható, hogy az összes titkosítási algoritmus a két kategória egyikébe tartozik:

  • Szimmetrikus titkosítás. Egy kulcs. Ugyanaz a kulcs a titkosításhoz és visszafejtéshez. Gyors. Például. AES.
  • Aszimmetrikus titkosítás. Két kulcs. Bármelyik használható titkosításra, de csak a másik képes visszafejteni. Sokkal lassabb, mint a szimmetrikus algoritmusok. Például. RSA.

A szimmetrikus titkosítás gyors, ezért alkalmas két fél közötti sok adatot magában foglaló kommunikációra. Ugyanazt a kulcsot használja a titkosításhoz és a visszafejtéshez – ez a kulcs analóg a nagyon hosszú jelszó koncepciójával. Probléma: Hogyan osztja meg a kulcsát / jelszavát? Kiderült, hogy nem használhat olyan biztonságos csatornát, amely kizárólag szimmetrikus titkosítási algoritmusra épül, anélkül, hogy kitalálná a kulcs / jelszó első megosztási módját.

Itt jönnek be az aszimmetrikus algoritmusok, de lényegesen lassabbak, mint szimmetrikus algoritmusok. Nem praktikus nagy mennyiségű adat továbbítása, de nagyon jó, ha valami apróságot, például szimmetrikus titkosítási kulcsot / jelszót továbbít vagy kicserél. Miután ez megtörtént, most már szimmetrikus titkosítást használhat a kommunikációhoz.

Az aszimmetrikus titkosításhoz használt két kulcs egyikét nyilvános, a másikat pedig magánkulcsnak nevezik. A nyilvános kulcs mindenkinek elosztható, de a titkos kulcsot titokban kell tartani.

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

pub = nyilvános kulcs, prv = magánkulcs

Mindenesetre ez a magyarázat egy az SSH tényleges működésének egyszerűsítése. Két további dolgot érdemes kiemelni:

  • Diffie Hellman a tipikus kulcscsere-aszimmetrikus algoritmus. Diffie Hellman-nal valójában nem kell szimmetrikus kulcsot létrehozni . Mindkét fél együtt hozza létre a szimmetrikus kulcsot a kulcscsere során, ami jó biztonsági funkció. Lásd: " Diffie-Hellman kulcscsere " egyszerű angol nyelven .

  • Magyarázatomban azt feltételeztem, hogy megtalálta a szerver nyilvános kulcsát, és bízik benne, hogy ez a helyes. De valóban ügyelnie kell arra, hogy mely nyilvános kulcsokat használja bizalom. A nyilvános kulcs megbízhatóságához digitálisan kell aláírni. Az aláírt nyilvános kulcsot tanúsítványnak is nevezik.

Remélhetőleg ez tisztázza a hosszú jelszóval és a nyilvános kulcsokat, és elegendő információval rendelkezik ahhoz, hogy értelmesebb módon mélyebbre áshasson.

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük