Hieroglifák elõnyben
Hiábavaló lehet a legnagyobb szoftveres elõvigyázatosság is, ha a felhasználónak hosszá jelszavakat használ, amiket általában nem jegyez meg, és Post-It-re felírva tárol lehetõleg a géphez közel, hogy mindig meglegyen, így sajnos nem csak neki. Gyakran nem választanak ki biztonságos jelszót sem, saját nevüket, gyerek, hozzátartozó nevét adják meg, amit könnyen ki lehet találni vagy ami még rosszabb, bankkártya PIN kódot, más belépési PIN kódokat használnak, hogy ne kelljen annyi mindent megjegyezni. Csakhogy a gép által kiírt sok pont csalóka. A Post-It-et dobd a megsemmisítõbe, találj ki egy számsorozatot betûkkel, számokkal, és jól jegyezd meg, ne írd fel sehova, legfeljebb addig, míg meg nem tanulod, lehetõleg minden fiókhoz külön. Nincs egyszerûbb megoldás? De van, használd ki az SSL (Secure Sockets Layer) titkosítási rendszert. Ezzel megvédheted digitális adataidat, jelszóidat. …s ez nehéz? Nem, egyszerûbb, mint összegyûrni a papírt.
A mindennapi biztonsági szokásaidat javíthatod a Mac OS X rendszerben telepített szoftverek használatával, lehetõleg minél egyszerûbben, hiszen nem mindenki biztonsági szakember. Több olyan biztonsági intézkedés van elõre telepítve, ami a személyes adatok védelmében használható, ilyen a tûzfal, az SSL támogatás, lehetõvé téve a titkosított adatforgalmat. A levelek címzettig történõ titkosítására szolgáló PGP (Pretty Good Privacy) igény szerint letölthetõ.
Az SSH használata különösen elõnyös a mindennap használt tevékenységben, a web böngészésében, a fájlok cserélésében (FTP) és az elektronikus levelezésben (e-mail). Ha titkosítás nélkül küldöd az adataidat, nemcsak az elérésedet - név, jelszó - lehet lelesni, hanem azt az adatot is, amit küldesz, az esetek többségében pedig bizalmas adatokról van szó. További elõnye, hogy ingyenes, elõre telepítve van és tökéletesen megfelel erre a célra.
Ha fikciónak hiszed, hogy a hálózaton történõ szaglászással jelszókat lehet ellopni, akkor gondold át. A következõ tcpflow (http://www.circlemud.org/~jelson/software/tcpflow) programmal, ami a telepített tcpdump parancs könyvtárait is használja, az adott porton menetelõ forgalmat le lehet olvasni. Ha az íróasztalra csomagoltad ki az állományt, a telepítést a következõ formában is megteheted:
# installer -pkg ~/Desktop/tcpflow-0.20-jaguar.pkg -target /
A manuált html formában a weboldalon is meg tudod találni, ha pedig már edzett felhasználó vagy, add ki a man tcpflow parancsot.
Kíváncsiságképp nézzük meg a freemail webmailes felületén, hogyan mászik fel az általad beírt felhasználónév és jelszó, nem biztonságos kapcsolaton.
Hoppá! Feketén fehéren látszik, mi a bejelentkezési név, és mi a jelszó. Mailbox dettó, hacsak nem https-en keresztül lépünk be, aminek a használatára fel is hívja figyelmünket, errõl késõbb.
Ha ezt a jelszót egyszerre több dologhoz is használod, pl.: PIN kód, akkor komoly bajba is kerülhetsz. A .mac webmailje titkosítva van, ha megnézed a webcím elejét, itt is https-sel kezdõdik.
De nemcsak a weben lehet nem titkosított adatokat küldeni.
Kedvenc levelezõprogramod is érthetõen küldi el a jelszavakat, ez alól a .mac fiók sem kivétel.
Nem csak a jelszavak, hanem a levelek maguk is szövegesen utaznak, akár küldésrõl, akár fogadásról van szó. Bármely FTP (File Transport Protocol) protokollt használó FTP kliens szintén. Mit is csinál a tcpflow? Egyszerûen lementi az adott porton közlekedõ információt, nemcsak a fejlécet, hanem az adatokat is, ezzel több, mint a tcpdump. A 80-as port a web, a 110-es a pop3-as levélkiszolgáló, a 21-es az FTP vezérlõ parancsai számára van fenntartva.
Nézzük, hogyan lehet titkosítani az általunk küldött információt, biztonságos adatátvitelt megvalósítani. A biztonságos azt jelenti, hogy harmadik fél nem férhet hozzá a küldés alatt lévõ információhoz.
Mi az SSH (Secure SHell)?
Az SSH-t a telnet biztonságos megfelelõjeként emlegetik, gyakran hívják shellnek, sok program alkalmazza az adatforgalmának titkosítása érdekében, egyfajta kölcsönös hitelesítési eljárással mûködik, digitális aláírásokkal és az üzenet titkosításával teszi lehetõvé a biztonságos adatforgalmat az SSL protokollon keresztül. Az SSL2 protokoll sok újítása között megtalálható a biztonságos FTP (Secure File Transport Protokoll) támogatása, adott titkosított alagútba tudja terelni az adatforgalmat, az SSL3 támogatja a láncolt tanúsítványok megtekintését is. A jelszómegadást is ki lehet vele ejteni, ha hitelesített kulcsokat határozol meg a gépekhez, akár NFS megosztások esetén is. Az SSH használata biztonságos, széles körben elterjedt.
Mi az a kölcsönös hitelesítési eljárás?
Az SSL protokoll egy nyilvános kulcsú titkosításon alapuló párbeszédet hoz létre a te számítógéped, illetve az e-mail, web vagy FTP szerver között, amire kapcsolódsz. Ez mindig egy kulcspárból áll, amelyet egy személyes és egy nyilvános kulcs alkot. A kulcsok mindegyike lehetõséget ad neked arra, hogy titkosítsd az üzenetedet, de mindig a másik kulcs az, amivel visszafejtheted a bekódolt információt, így hitelesítve vagy. A nyilvános kulcsodat hozd nyilvánosságra, akár úgy, hogy elküldöd a címzettnek, vagy nyilvánosan hozzáférhetõ kulcsszervereket is igénybe vehetsz. Így lehetséges például egy banki átutalásnál, hogy az ügyfél a bank nyilvános kulcsát felhasználva titkosított információban közli bizalmas adatait, amelyett csak a bank személyes kulcsával tud visszafejteni. Azonban a bank nyilvános kulcsát bárki megkaphatja, a feladó azonosítását az ujjlenyomata teszi lehetõvé.
Mire jó az ujjlenyomat?
Az általad titkosított üzenet feddhetetlenségét az ujjlenyomatoddal is növeled. Az ujjlenyomat egy adott hosszúságú, a te személyes kulcsoddal titkosított, az üzenetbõl nyert kivonat, ami jellemzõ az üzenetre, belõle az üzenet nem állítható elõ. Ezt az ujjlenyomatot a digitális aláírásodban küldöd el titkosítva az üzenet végéhez csatolva, amelyet kézhezvételkor összehasonlítanak az ott megfejtett üzenetbõl készített ujjlenyomattal. Mindehhez a te nyilvános kulcsodat használják fel, s ha a kettõ egyezik, az üzenet hiteles.
A digitális aláírásod az azonosításodra szolgál, képvisel a hálózaton, egyedi, hitelesíti az általad küldött adatokat, tartalmazza az ujjlenyomatodat is. Matematikai algoritmussal van elkészítve, a te személyes kulcsoddal készül és mivel kulcspárokról van szó, csak az általad elküldött vagy nyilvános helyrõl letöltött nyilvános kulcsoddal lehet az eredetiségét ellenõrizni. Ha pedig az ellenõrzés sikerül, az azt jelenti, hogy csak a te személyes kulcsoddal történhetett a titkosítás, mert a nyilvános kulcsoddal csak az általad titkosított üzeneteket lehet visszafejteni, tehát az információ valóban eredeti. Minden általad elküldött üzenet végére kerül, s ha a titkosított üzenet sérül, az azonnal kiderül az aláírás ellenõrzése során. Ugyanazt az aláírást nem lehet kétszer felhasználni, mert egy egyedi sorszámot is tartalmaz.
Mik azok a tanúsítványok?
Ha kapsz egy nyilvános kulcsot, az bizonyos, hogy csak annak a kulcsnak a személyes párjával lehet megtudni a küldött üzenetet, de semmi nem garantálja azt, hogy a személyes kulcs ahhoz tartozik, akinek küldeni akarod, illetve a másik félnél is felmerülhet ugyanez a probléma. Mindkét fél rendelkezhet egy tanúsítvánnyal. Ez egy igazolás, amit tanúsítványkibocsátó hatóságok (Cetificate Authority) írhatnak alá. Ha mindkét fél megbízik az ügynökségben, akkor biztos lehet abban, hogy a megfelelõ személlyel tart kapcsolatot. A tanúsítvány magában foglalja a nyilvános kulcsot, a kiállító hatóságot, az élettartamot, illetve a személyazonosság igazolására szolgáló adatokat. Lehetõség van saját tanúsítvány létrehozására, ami kevésbé kritikus esetekben megfelelõ, illetve nagy elõnye, hogy ingyenes a hatósági kiállítással szemben. A tanúsítványt a kulcshitelesítõ a saját személyes kulcsának használatával szignálja digitálisan, a nyilvános kulcsot letöltve megkaphatod az adott hatóság ujjlenyomatát a hitelesség ellenõrzése céljából.
Hol találom meg az SSH-t?
A verziószámát a következõ paranccsal kaphatod meg:
Kiderült, hogy a Mac OS X rendszer az OpenSSH-t használja, ami BSD-licenc alá tartozik, ingyenes. A honlapon mindig a legfrissebb infókat találhatod meg.
Mivel sok platformon használják az OpenSSH-t, képes hibamentesen együttmûködni, mint minden parancsnál itt is létezik:
SSH(1) BSD General Commands Manual
parancs. Ha csak az
parancsot ütöd be, a parancsok rövid leírását találod. Ha valami újat próbálsz ki a parancssorban, érdemes a parancs manuálját és az alapvetõ parancsait megnézni, hogy megismerkedj velük.
Nézzük, hogyan segít az SSH, ha biztonságosan szeretnéd a Webet böngészni - a mailbox támogatja a https protokollt -, amely az SSL-t használja. A http://www... használata helyett a https://www... kell beírnunk. A Safari támogatja a biztonságos böngészést, kapcsolódásnál a szerver végigpróbálja a lehetséges adatátviteli kapcsolódásokat, majd kiválasztja a kódkészletet, kiválasztja a kapcsolati kulcsot, majd a kliens ellenõrzi a szerver tanúsítványát, ha ez nem lehetséges, például egyedi tanúsítványt hoztál létre, akkor a klienstõl kér egy tanúsítványt, amelyet az SSH automatikusan létrehoz. A jobb felsõ sarokban megjelenõ kis lakat tudatja, hogy biztonságos a kapcsolatod a szerverrel. Az adat a 443-as porton áramlik, nem a 80-as porton.
Így már nem nagyon érthetõ, mirõl van szó, és pont ez a lényeg, a küldött és fogadott adataid biztonságban vannak.
Jelszóval történõ hitelesítés
Az SSH-t jelszavas hitelesítéssel a legegyszerûbb használni. Van egy biztonságosabb, ámbár nehezebben beállítható módja a hitelesítésnek, ha kulcsokat és ezeket feloldó jelmondatotokat állítasz be.
A jelszavas hitelesítés annak a kontónak a jelszavát használja fel, amivel az adott szerveren rendelkezel. Az SSH ahelyett, hogy érthetõ formában küldené el a hálózaton, titkosítja a jelszavadat.
Macintosh:~ root# ssh spoun@hashmark.hu
The authenticity of host 'hashmark.hu (213.163.0.233)' can't be established.
DSA key fingerprint is de:c5:bd:85:3c:68:d8:ff:74:27:d1:d2:a6:05:cb:72.
Warning: Permanently added 'hashmark.hu,213.163.0.233' (DSA) to the list of known hosts.
spoun@hashmark.hu's password:
Last login: Tue Dec 09 2003 14:03:02 +0100 from ktv31-156-71.cat
FreeBSD 4.9-RELEASE (Calliope) #0: Thu Nov 6 09:37:38 CET 2003
spoun@calliope$
Ha elsõ alkalommal csatlakozol erre a szerverre SSH-n keresztül, felajánlják neked, hogy elfogadod-e az adott szerver egyedi digitális aláírását, ezzel együtt megadja az ujjlenyomatát. Ha igennel ('yes') válaszolsz, akkor elfogadod, és automatikusan tárolod a szerver nyilvános kulcsát egy ismert gazdák ('known_hosts') fájlban a Saját Mappád (Home Folder) '.ssh' nevû almappájában. Ez lesz az a nyilvános kulcs, amire szükséged van, hogy a szervertõl kapott titkosított üzeneteket vissza tudd fejteni.
Ha egyszer eltároltad, a legközelebbi kapcsolódáskor nem kell újra, illetve ami sokkal fontosabb, minden egyes kapcsolódáskor összehasonlítja a szerveren lévõ nyilvános kulccsal, hogy ellenõrizze az adott szervert.
debug1: Host 'hashmark.hu' is known and matches the DSA host key.
debug1: Found key in /var/root/.ssh/knownõhosts:1
Ha a nyilvános kulcsok különböznek, lehetséges, hogy valaki egy közbülsõ szervert helyezett el közted, és a hitelesített szerver között, magát a hitelesített szervernek kiadva, és hozzáférkõzve a küldött adatokhoz. Az összehasonlítás miatt, kaphatsz egy figyelmeztetõ üzenetet, ha ez a helyzet, kiléphetsz a kapcsolatból, ha biztonsági problémára gyanakszol. Nem gyakori, de érdemes megemlíteni, miért is hasznos eltárolni a nyilvános kulcsot.
A tárolt nyilvános kulcsot megnézheted:
# cat .ssh/known_hosts
hashmark.hu,213.163.0.233 ssh-dss AAAAB3NzaC1kc3MAAACBAO8KEe4CF...
... és meg nagyon sok karakter. Nem túl érdekes, de sokat segít a megértésben. Ha letörlöd és újra kapcsolódsz újra felajánlja a kapcsolódást, amelyet megint el kell fogadnod, ha kapcsolódni akarsz. Próbáld ki!
Ezzel bejelentkeztél a távoli számítógépre, ahol egy parancsértelmezõt kapsz, amelybe parancsokat gépelhetsz. Ha probléma van a csatlakozásnál kipróbálhatod a '-vv' csatolót az ssh-nál, így minden lépésrõl értesülsz. Tehát biztonságosan bejelentkeztél. Hogy egy e-mail szolgáltató vagy egy webmailes felület támogatja-e az SSH-t, meg kell tudakolnod, mielõtt használni akarod. Ha a böngészõddel be tudsz lépni egy https oldalra, akkor támogatja, ilyen oldal pl. https://www.verisign.com, amely az egyik CA a sok közül.
A biztonságos fájlmásolás (SFTP)
Az SFTP magába foglalja az FTP parancs- és adatrészének a titkosítását is. Az FTP parancsai a 20-as, az adatok a 21-es porton közlekednek. A parancsok mondjak meg, hogy mit tegyen a szerver, illetve kliens az adattal, illetve a bejelentkezést, könyvtárváltást teszik lehetõvé. Vannak olyan FTP programok, amelyek csak a parancsrészt titkosítják, ami nem fontos adatok esetén elfogadható, de ha az adatok is bizalmas információkat tartalmaznak, akkor mindkét csatornát titkosítani kell. Az SFTP-nek hasonló parancsai vannak, mint az FTP-nek, a manuáljában részletes leírás található.
Léteznek grafikus kliensek is, amik támogatják az SFTP protokollt, sõt, egyre inkább kezdi kiszorítani a hagyományos FTP-t. Transmit, Interarchy, Fetch, mind támogatja a biztonságos kapcsolatokat. A parancsok ismerete szkriptelt alkalmazások esetén hasznos. Lehetséges a grafikus felülettel rendelkezõ SFTP kliensek AppleScript nyelven történõ automatizálása - akár távoli gépek esetén is -, de gyorsabb, ha közvetlen a BSD réteg parancsait használjuk ki helyben és távol, ha szkriptelni akarsz. A grafikus kliensek esetén a használt SSH/SFTP információk lehetõség szerint eltárolhatóak a kulcskarikában, így nem kell minden egyes csatlakozáskor begépelni õket. Olyan klienst kell kiválasztani, amely az adat- és a parancsfolyamot is titkosítja, és lehetõség szerint a BSD réteg parancsait használja.
A bejövõ és kimenõ levelek titkosítása
A postafiók szolgáltatásnak támogatnia kell az SSL protokollt a titkosítás megvalósításához, illetve ha alagutat akarsz létrehozni a számítógéped és a levelezõ szerver között, akkor arra a szerverre szóló ssh jogosultsággal kell rendelkezned. A Mail levelezõprogram és .mac fiók használatakor a bejövõ levelek titkosításához egyszerûen a fiók beállításainál a haladó (Advanced) fülön a Port mezõnél lévõ Használj SSL-t (Use SSL) jelölõnégyzetet kell bejelölni.
A kimenõ leveleket kezelõ szerver .mac fiók esetén szintén támogatja az SSL-t, a Használj SSL biztonsági alréteget (Use Secure Sockets Layer (SSL)) jelölõnégyzetet kell bejelölni.
Most már az ezen a fiókon küldött és fogadott levelek titkosítva érkeznek meg a számítógépedre.
Ha figyelmet fordítasz arra, hogy lehetõség szerint biztonságos kapcsolatokat használj, kevesebb kéretlen levélben, és váratlan meglepetésben lesz részed.
Ha kérdésed vagy problémád van SSH dolgokkal kapcsolatban, írj bátran!
Mátyás Ferenc Farkas