SSH Cursus informatiebeveiliging Eric Laermans – Tom Dhaene
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 2 SSH SSH (Secure SHell) protocol voor beveiligde remote login ondersteunt ook tunneling (VPN-gebruik) –TCP getunneld door SSH connectie kan ook gebruikt worden om bestanden over te dragen m.b.v. geassocieerde protocols SCP (Secure CoPy) of SFTP (SSH File Transfer Protocol) oorspronkelijk ontwikkeld door SSH Communications Security Corp., Finland twee distributies beschikbaar: freeware ( commerciële versie IETF-norm (RFC’s ) zie ook boek H p. 532 vv.
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 3 SSH Architectuur transport layer serverauthenticatie, vertrouwelijkheid en integriteit compressie (optioneel) bovenop betrouwbare transportlaag (bv. TCP) user authentication layer authenticatie van de client bovenop SSH transport layer connection layer multiplexeert veilige tunnel verkregen viaSSH transport layer en user authentication layer in verscheiden logische kanalen (“channels”) logische kanalen voor diverse doeleinden bruikbaar
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 4 SSH Beveiligingseigenschappen gebruikt gekende en getoetste algoritmen voor encryptie, data-integriteit, sleuteluitwisseling, en beheer van publieke sleutels encryptie met sleutels van ten minste 128 bits onderhandeling over beveiligingsalgoritmen basisprotocol hoeft niet veranderd te worden als overgeschakeld wordt op andere algoritmen
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 5 SSH: transport layer clientserver setup van TCP-connectie SSH version string exchange SSH key exchange (inclusief onderhandeling over algoritme) SSH data exchange beëindiging TCP-connectie
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 6 SSH Transport layer SSH version string exchange beide partijen zenden versie: –“SSH-protoversion-softwareversion comments” \CR \LF geeft aan wat SSH-implementatie aankan triggert compatibiliteitsextensies huidige versie protocol is 2.0 alle pakketten na version string exchange worden verstuurd m.b.v. binary packet protocol
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 7 SSH Transport layer binary packet protocol random padding (4-255 bytes) packet length (4 bytes) padding length (1 byte) MAC payload optioneel gecomprimeerd geëncrypteerd + geauthenticeerd
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 8 SSH Transport layer encryptiealgoritme onderhandeld tijdens sleuteluitwisseling ondersteunde algoritmen –verplicht: 3des-cbc (sleutel van “168” bits) –aanbevolen: aes128-cbc –optioneel: aes192-cbc, aes256-cbc, arcfour (i.e. RC4),… mogelijks verschillend voor elke richting geheime sleutel, IV bepaald tijdens sleuteluitwisseling alle pakketen in 1 richting beschouwd als 1 datastroom –IV doorgegeven van einde van 1 pakket naar volgende
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 9 SSH Transport layer MAC-algoritme onderhandeld tijdens sleuteluitwisseling ondersteunde algoritmen –verplicht: hmac-sha1 –aanbevolen: hmac-sha1-96 »eerste 96 bits van hmac-sha1 –optioneel: hmac-md5, hmac-md5-96,… mogelijks verschillend voor elke richting MAC = mac(sleutel, volgnr. | ongeëncrypt. pakket) –impliciet volgnr. (4 bytes), niet meegestuurd met pakket –volgnr. geïnitialiseerd op 0, geïncrementeerd na elk pakket
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 10 SSH Transport layer key exchange clientserver uitvoering van gekozen sleuteluitwisselingsprotocol SSH_MSG_KEXINIT SSH_MSG_NEWKEYS client begint nieuwe sleutels en algoritmen te gebruiken voor verzonden pakketten client begint nieuwe sleutels en algoritmen te gebruiken voor ontvangen pakketten
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 11 SSH Transport layer key exchange: SSH_MSG_KEXINIT voor onderhandeling over algoritmen bevat lijsten met algoritmen ondersteund door server (van server naar client) bevat lijsten met algoritmen aanvaard door client (van client naar server) –eerste algoritme op clientlijst dat ook op serverlijst voorkomt, wordt gekozen bevat random cookie van 16 byte –als nonce
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 12 SSH Transport layer key exchange zelf gebruik makend van DH server verstuurt: –de publieke sleutel van de server host (“host key”) –zijn publieke sleutel voor DH –een signatuur over (onder andere) »SSH_MSG_KEXINIT-berichten van beide client en server (inclusief cookies) »publieke sleutels voor DH »host key
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 13 SSH Transport layer key exchange zelf session ID afgeleid (m.b.v. hashfunctie) uit inhoud van SSH_MSG_KEXINIT-berichten en DH-uitwisseling sessiesleutels (voor encryptie en MAC) en IV’s afgeleid uit session ID en geheime sleutel gegenereerd door DH-uitwisseling
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 14 SSH Transport layer key exchange: serverauthenticatie op basis van server host key diverse mogelijkheden voor sleutelidentificatie –m.b.v. lokale databanken –m.b.v. CA en certificaten –via offline kanalen »bv. “vingerafdruk” van sleutel –“best effort”-aanpak »aanvaardt host key zonder controle bij eerste connectie op server »sla host key op in lokale databank »toets t.o.v. opgeslagen sleutel voor latere connecties
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 15 SSH Transport layer key re-exchange mogelijk op elk moment (behalve tijdens key exchange) kan opgestart worden door elk van beide partijen session ID verandert niet algoritmen kunnen veranderd worden sessiesleutels en IV’s worden veranderd aanbevolen –na zekere hoeveelheid getransfereerde data (bv. 1GB) –na zekere connectieduur (bv. 1u)
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 16 SSH Transport layer service request na key exchange vraagt client dienst aan –ssh-userauth (user authentication protocol) –ssh-connectie (connection protocol) als dienst start, beschikt hij over session ID opgesteld tijdens eerste key exchange
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 17 SSH User authentication layer onderliggende SSH transport layer verschaft vertrouwelijkheid en data-integriteit heeft toegang tot session ID server timeout voor authenticatie aantal mislukte authenticatiepogingen beperkt 3 authenticatiemethodes: publickey password hostbased
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 18 SSH: user authentication layer clientserver SSH_MSG_USERAUTH_REQUEST SSH_MSG_USERAUTH_FAILURE (verdere authenticatie vereist) SSH_MSG_USERAUTH_REQUEST SSH_MSG_USERAUTH_SUCCESS SSH_MSG_USERAUTH_REQUEST SSH_MSG_USERAUTH_FAILURE (verdere authenticatie vereist)
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 19 SSH User authentication layer “publickey”-methode ondersteund door alle implementaties client tekent met zijn vertrouwelijke sleutel server verifieert signatuur en publieke sleutel van de client probleem: –rekenintensief –weinig clients beschikken over sleutelparen (publieke/vertrouwelijke sleutel)
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 20 SSH User authentication layer “publickey” method SSH_MSG_USERAUTH_REQUEST –TRUE (vlag die op TRUE gezet wordt) –naam asymmetrische algoritme (bv. ssh-dss) –publieke sleutel –signatuur »berekend over session ID en data in request server beantwoordt met –SSH_MSG_USERAUTH_FAILURE als request mislukt is of meer authenticatie vereist is –SSH_MSG_USERAUTH_SUCCESS anders
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 21 SSH User authentication layer “password”-methode ondersteund door alle implementaties meest gebruikt vandaag SSH_MSG_USERAUTH_REQUEST –FALSE (vlag die op FALSE gezet is) –wachtwoord (onversleuteld) server kan antwoorden met –SSH_MSG_USERAUTH_FAILURE –SSH_MSG_USERAUTH_SUCCESS –SSH_MSG_USERAUTH_PASSWD_CHANGEREQ
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 22 SSH User authentication layer “hostbased”-methode ondersteuning is optioneel authenticatie op basis van de host van de client client stuurt signatuur gegenereerd met de vertrouwelijke sleutel van zijn host server verifieert signatuur en publieke sleutel van de host van de client gelijkaardig aan “publickey” –behalve nu hostauthenticatie i.p.v. gebruikersauthenticatie
Informatiebeveiliging Vakgroep Informatietechnologie – IBCN – Eric Laermans p. 23 SSH Connection layer verschaft interactieve loginsessies uitvoering van instructies op afstand geforwarde TCP/IP-connecties geforwarde X11-connecties applicaties geïmplementeerd als kanalen (“channels”) alle kanalen gemultiplexeerd in 1 geëncrypteerde tunnel (verschaft door SSH transport layer protocol) kanalen geïdentificeerd door kanaalgetal aan beide uiteinden van connectie kanaalgetallen kunnen verschillen voor zelfde kanaal aan client- en serverzijde