Ident

Kokeneet kirjoittajat eivät ole vielä tarkistaneet sivun nykyistä versiota, ja se voi poiketa merkittävästi 3. joulukuuta 2018 tarkistetusta versiosta . tarkastukset vaativat 7 muokkausta .

Identification Protocol (ident, Ident Protocol) on RFC 1413 :ssa kuvattu protokolla . Se tarjoaa tavan tunnistaa tietyn TCP -yhteyden käyttäjä . Protokolla palauttaa merkkijonon , joka identifioi tämän yhteyden omistajan palvelinpuolella. Aluksi todennusprotokollaa kutsuttiin Authentication Server Protocol (Server Authentication Protocol) -protokollaksi. Palvelinta, joka toteuttaa ident-protokollan, kutsutaan nimellä identd ( ident de ́).

Arvostele [1]

Protokolla on TCP-yhteyksiin perustuva palvelu. Palvelin kuuntelee TCP-yhteyksiä portissa 113 (desimaali). Kun yhteys on muodostettu, palvelin lukee datarivin, joka sisältää tiedot yhteyden tarkoituksesta. Jos yhteydelle on olemassa käyttäjätunnus, palvelin lähettää sen vastauksena. Palvelin voi sitten sulkea yhteyden tai jatkaa pyyntö-vastaus-valintaikkunaa. Palvelimen tulee sulkea yhteys konfigurointiparametreissa määritellyn aikakatkaisun jälkeen (60-180), jos pyyntöjä ei ole. Asiakas voi katkaista yhteyden milloin tahansa, mutta mahdollisten verkkoviiveiden kompensoimiseksi asiakkaan tulee odottaa vähintään 30 sekuntia pyynnön jälkeen ennen yhteyden sulkemista.

Rajoitukset

Pyyntöjen välitys on sallittu vain täysin organisoiduille yhteyksille. Pyyntö sisältää porttiparin (paikallinen - kauko) numerot, joita käytetään yhteyden tunnistamiseen ja vastaanotetaan paikallis- ja etäosoitteen ilmoittamisen kanssa. Tämä tarkoittaa, että käyttäjä, jolla on osoite A, voi pyytää vain palvelimelta B tietoja A:n ja B:n välisestä yhteydestä.

Työsuunnitelma

Alkuehdot: identd on käynnissä asiakaskoneessa. Asiakas ottaa yhteyttä ulkoiseen palvelimeen, joka voi suorittaa tunnistetarkistuksen.

  1. Asiakas lähettää pyynnön.
  2. Ennen vastauksen lähettämistä palvelin kysyy portin 113 asiakaskoneelta pyynnön tehneen käyttäjän nimeä ja määrittää yhteyden porttinumerot molemmille puolille.
  3. identd-kuuntelu portissa 113 lähettää vastauksen.
  4. Palvelin vastaanottaa vastauksen ja tekee sillä jotain (esim. kirjoittaa lokiin), minkä jälkeen vuorostaan ​​lähettää vastauksen asiakkaalle.

Pyyntöjen ja vastausten muoto

Palvelin hyväksyy yksinkertaiset tekstipyynnöt muodossa:

<port-on-server>, <port-on-client>

missä <port-on-server> määrittää TCP-portin (desimaaliarvo) kohteelle (isäntä, jossa tunnistepalvelin on käynnissä) ja <port-on-client> määrittää TCP-portin (desimaaliarvo) asiakasjärjestelmässä. On tärkeää huomata, että jos isäntäkoneen A asiakas haluaa kysyä isännällä B olevalta palvelimelta yhteyttä, joka on määritetty paikallisesti (isännällä A) porttiparilla 23, 6191 (saapuva TELNET-yhteys), asiakkaan on kysyttävä paria 6191, 23 (yhteyden tunnistus isäntä B:n näkökulmasta). Esimerkiksi:

6191, 23

Vastauksen muoto on:

<port-on-server>, <port-on-client> : <resp-type> : <add-info>

missä <port-on-server> ja <port-on-client> vastaavat pyynnön porttinumeroita, <resp-type> tunnistaa vastauksen tyypin ja <add-info> sisältää kontekstikohtaisia ​​tietoja.

Palautetut tiedot liittyvät TCP-yhteyteen, joka on määritetty parametreilla <server-address>, <client-address>, <port-on-server>, <port-on-client> (<palvelimen osoite> ja <client- osoite> - IP - yhteyden molempien osapuolten osoitteet ja <port-on-server> ja <port-on-client> ovat pyyntöparametreja)

Esimerkiksi:

6193, 23 : KÄYTTÄJÄTUNNUS : UNIX : stjohns 6195, 23 : VIRHE: EI KÄYTTÄJÄ

Vastaustyypit

Vastaukset voivat olla kahdenlaisia:

USERID

Tässä tapauksessa merkkijono <add-info> sisältää käyttöjärjestelmän nimen (sisältäen mahdollisesti tuetun merkistön), jota seuraa ":"-erotin ja tunnistemerkkijono.

Jos vastaus sisältää merkistön, merkistö erotetaan käyttöjärjestelmän nimestä pilkulla (,). Tavallisia tunnisteita käytetään merkitsemään merkkijoukkoa. Jos merkistöä ei ole määritetty, oletetaan US-ASCII (katso alla).

Käyttöjärjestelmän tunnisteet on määritettävä standardin RFC 1340 [2] "Assigned Numbers" tai sen "seuraajien" mukaisesti.

Kohdassa "Assigned Numbers" määritettyjen käyttöjärjestelmätunnisteiden lisäksi voidaan käyttää erityistä tunnistetta "OTHER" (Muu käyttöjärjestelmä).

Jos "MUUT" ei palauteta käyttöjärjestelmänä, palvelimen oletetaan palauttavan yhteyden omistavan käyttäjän "normaalin" tunnisteen (merkkijonon, joka yksilöi käyttäjän, kuten järjestelmän tai käyttäjän käyttäjänimen osa sähköpostiosoitetta). Jos käyttöjärjestelmä on määritetty (eli vastausmerkkijono ei sisällä "MUUT"), myös käyttäjänimen oletetaan olevan merkityksellinen (esimerkiksi käytettäväksi argumenttina sormikomennossa tai osana postiosoitetta). .

Arvo "OTHER" osoittaa, että seuraavat tiedot ovat järjestelmässä käytetyn sarjan tulostettavien merkkien muotoilematon merkkijono. "MUUT"-vastaus PITÄISI palauttaa, jos käyttäjätunnus ei täytä yllä kuvattuja vaatimuksia. Esimerkiksi tällainen vastaus PITÄÄ lähettää, jos UNIX -käyttäjämerkinnän oikea nimi tai puhelinnumero palautetaan käyttäjänimen sijaan .

Oletetaan, että käyttäjätunnus sisältää vain tulostettavat merkit järjestelmässä käytetystä sarjasta. Tunniste on oktettimerkkijono, joka ei sisällä merkkejä (oktaali) 000 (NUL), 012 (LF) ja 015 (CR). On tärkeää korostaa, että kaksoispistettä seuraavat välilyönnit (040) ovat osa tunnistemerkkijonoa, eikä niitä pidä jättää huomiotta. Tyypillisesti vastausrivi päättyy CR/LF-sekvenssiin. Korostamme, että merkkijono voi sisältää tulostettavia merkkejä, mutta sen ei tarvitse sisältää vain niitä.

VIRHE

Jos yhteyden omistajaa ei jostain syystä voida määrittää, <add-info>-rivi ilmoittaa syyn. Seuraavat <add-info>-arvot ovat mahdollisia:

  • INVALID-PORT - yksi porteista on määritetty väärin. Tällainen vastaus palautetaan, jos jompikumpi (tai molemmat) porteista on alueen ulkopuolella (TCP-portit voidaan numeroida välillä 1 - 65535) tai se ei ole kokonaisluku.
  • NO-USER - Porttiparin määrittämä yhteys ei ole tällä hetkellä käytössä tai sen omistaa tuntematon taho.
  • HIDDEN-USER - Palvelin voi tunnistaa käyttäjän, mutta ei ilmoita käyttäjää, kun tämä käyttäjä pyytää.
  • TUNTEMATON-VIRHE - Virheen syytä ei voida määrittää (mikä tahansa syy, jota ei ole mainittu yllä). Tällainen vastaus voidaan palauttaa myös tapauksissa, joissa palvelin voi määrittää virheen syyn, mutta ei halua ilmoittaa siitä. Jos palvelin toteuttaa tämän ominaisuuden, sen pitäisi olla konfiguroitavissa ja palvelimen pitäisi palauttaa kelvollinen virhesanoma oletuksena.

Muita vastauskoodeja voidaan lisätä tulevaisuudessa. Käytettäessä epätyypillisiä vastauksia, niiden on alettava merkillä "X".

Vastausten palauttamisen lisäksi palvelin VOI katkaista yhteydet palauttamatta mitään vastausta. Ennenaikainen yhteyden katkaisu (asiakas ei saanut EOL-merkkiä) TÄYTYY käsitellä asiakkaan vastauksena "VIRHE : TUNTEMATTOMASTA VIRHE".

Muodollinen syntaksi

<pyyntö> ::= <porttipari> <EOL> <port-pair> ::= <kokonaisluku> "," <kokonaisluku> <vastaus> ::= <vastausteksti> <EOL> <EOL> ::= "015 012" ; CR-LF rivin lopun ilmaisin <vastausteksti> ::= <error-reply> | <ident-reply> <error-reply> ::= <porttipari> ":" "VIRHE" ":" <virhetyyppi> <ident-reply> ::= <port-pair> ":" "USERID" ":" <opsys-field> ":" <käyttäjätunnus> <error-type> ::= "INVALID-PORT" | "EI KÄYTTÄJÄ" | "TUNTEMATON VIRHE" | "PIILOTETTU KÄYTTÄJÄ" | <error-token> <opsys-field> ::= <opsys> [ "," <charset>] <opsys> ::= "MUUT" | UNIX | <tunnus> ... jne.  ; (Katso "Määritetyt numerot") <charset> ::= "US-ASCII" | ...jne.  ; (Katso "Määritetyt numerot") <käyttäjätunnus> ::= <oktettimerkkijono> <tunnus> ::= 1*64<tunnus-merkkiä> ; 1-64 merkkiä <error-token> ::= "X"1*63<tunnusmerkkiä>  ; 2-64 merkkiä alkaen w/X <kokonaisluku> ::= 1*5<numero> ; 1-5 numeroa. <numero> ::= "0" | "1" ... "8" | "9"; 0-9 <tunnusmerkit> ::= <Mikä tahansa näistä ASCII-merkeistä: AZ, AZ, - (viiva), .!@#$%^&*()_=+.,<>/?"'~`{}[]; >  ; isot ja pienet kirjaimet az plus  ; tulostettavat miinus kaksoispiste ":"  ; merkki. <oktettimerkkijono> ::= 1*512<oktettimerkkiä> <oktetti-merkit> ::= <mikä tahansa oktetti välillä 00 - 377 (oktaali) paitsi ASCII NUL(000), CR(015) ja LF(012)>

Huomautuksia:

  1. Yhteentoimivuuden varmistamiseksi eri toteutusten välillä välilyöntien tulkinnassa tulee noudattaa yleisperiaatetta: "ole konservatiivinen lähettäessään ja liberaali vastaanottaessa". Asiakkaiden ja palvelimien EI PIDÄ luoda ylimääräisiä välilyöntejä, mutta niiden PITÄÄ hyväksyä muilta ylimääräisiä välilyöntejä sisältävät rivit. Ylimääräisiä välilyöntejä voi esiintyä missä tahansa paitsi itse tunnuksissa. Erityisesti pyyntö- ja vastausmerkkijonojen alussa ja lopussa voi esiintyä ylimääräisiä välilyöntejä. Ylimääräisiä välilyöntejä ei kuitenkaan sallita vastauksessa, jossa käyttäjätunnus on kaksoispisteen jälkeen käyttöjärjestelmän nimeä, koska tällöin niitä käsitellään osana käyttäjänimeä (käyttäjänimeksi katsotaan koko merkkijono kaksoispiste CR/LF-linjan päätteisiin). CR/LF-merkkejä ei tule pitää osana käyttäjätunnusta.
  2. Yllä olevasta huolimatta palvelimien PITÄÄ rajoittaa elementtien (tokenien) välilyöntien määrä mahdollisimman pieneksi (hyödyllinen). Asiakas voi katkaista yhteyden, jos yli 1000 merkkiä vastaanotetaan ilman <EOL>-linjan lopetussignaalia.
  3. Käyttäjätunnuksen koko PITÄÄ olla rajoitettu 512 merkkiin ja tunnuksen koko 64 merkkiin, koska: a) uudet tunnukset (eli OPSYS tai ERROR-TYPE) rajoitetaan 64 merkkiin ja b) palvelin ei saa lähettää enempää kuin 512 oktettia käyttäjätunnus, ja asiakkaan TÄYTYY hyväksyä käyttäjätunnuksen ensimmäiset 512 oktettia. Näiden rajoitusten vuoksi palvelimen on palautettava käyttäjätunnuksen merkittävin osa ensimmäisten 512 oktetin aikana .
  4. Vain RFC 1340:ssä, "Assigned Numbers" ja tämän asiakirjan myöhemmissä versioissa määritettyjä merkistöjä ja merkistötunnisteita tulee käyttää. Merkistötunnisteet koskevat vain käyttäjän tunnistekenttiä, ja kaikissa muissa kentissä on käytettävä US-ASCII-merkistöä.
  5. Vaikka <käyttäjätunnus>-kenttä määriteltiin yllä nimellä <octet-string> (oktettimerkkijono), sen on vastattava muotoa ja merkkijonoa <opsys-field>-kentän arvoa. kuvailtu yläpuolella.
  6. Merkistötunniste tarjoaa asiakkaalle kontekstin käyttäjän tunnistemerkkijonon tulostamiseen tai tallentamiseen. Jos asiakas ei pysty tunnistamaan tai käyttämään määritettyä merkistöä, sen PITÄÄ käsitellä tunnistusmerkkijonoa oktettimerkkijonona (OCTET) ja tallentaa sen mukana käytetyn merkistön tunniste. Tällaisissa tapauksissa oktettimerkkijono PITÄÄ tulostaa, tallentaa ja käsitellä heksadesimaalimuodossa (0-9a-f) asiakassovelluksen käyttämän merkintätavan lisäksi (tämä mahdollistaa standardimerkinnän eri toteutuksissa).

Tunnisteen sovellus

  • IRC : ssä : Jotkut IRC-palvelimet vaativat pakollisen vastauksen identd:ltä sisäänkirjautuneen käyttäjän puolella.
  • Suodattaaksesi paikalliselta tietokoneelta tulevan roskapostin ( esimerkiksi isännöintisivustoilta ): sendmail kysyy sähköpostin lähettäjän identiteettiä ja liittää sähköpostiin lähettäjän oikean nimen. Jos "allekirjoitettu" roskapostisähköposti päätyy toiselle tietokoneelle saman järjestelmänvalvojan hallinnassa, paikallinen roskapostittaja tunnistetaan välittömästi ja (myöhemmin) estetään.
  • Todennus yhden tietokoneen sisällä niissä käyttöjärjestelmissä , joissa ei ole mahdollista tarkistaa viestin lähettäjää UNIX-socketin kautta (ns. unix-tunnistemalli).

Tietoturvaongelmat

  • Älä koskaan luota tietoihin, jotka tulevat jonkun muun identiteettipalvelimista (eli sellaisiin, joita et ole määrittänyt), koska ne voidaan väärentää / piilottaa. Identd:tä ei saa missään tapauksessa käyttää verkkotodennukseen edes luotetuilla asiakkailla, sillä asiakaskoneen hakkerointi hakkeroi siihen luottavan palvelimen (katso myös järjestelmien välinen luottamus ).
  • Joskus ei ole toivottavaa, että asiakas "loistaa" Internetissä. Esimerkki tästä voisi olla eri botit , jotka jostain syystä toimivat pääkäyttäjän oikeuksin . Jotkut ident-palvelimet tarjoavat mahdollisuuden naamioida joitain käyttäjiä kontrolloidusti.

Tämän protokollan palauttamien tietojen kelpoisuustaso riippuu pyydetyn isännän asetuksista ja isäntäkonetta ylläpitävän organisaation käytännöistä . Esimerkiksi avoimessa laboratoriossa käytetty tietokone voi palauttaa kaikki tiedot itsestään, jotka käyttäjä haluaa antaa. Lisäksi isäntä voi palauttaa erityisen vääristynyttä (väärä) tietoa.

Tunnistusprotokollaa ei ole tarkoitettu valtuutukseen (autentikointiin) tai kulunvalvontaan. Parhaimmillaan tämä protokolla tarjoaa lisätietoa TCP -yhteyksistä , pahimmillaan se palauttaa virheellisiä, virheellisiä tai tarkoituksellisesti vääristyneitä tietoja.

Protokollan palauttamien tietojen käyttäminen muuhun tarkoitukseen kuin auditointiin ei ole suositeltavaa. Erityisesti Identification Protocol -protokollan käyttäminen pääsypäätösten tekemiseen ensisijaisena (eli muiden tarkistusten puuttuessa) tai toissijaisena keinona voi vähentää merkittävästi isännän turvallisuustasoa.

Identiteettipalvelin voi kerätä tietoja käyttäjistä, objekteista ja prosesseista, jotka voivat usein sisältää yksityisiä tietoja. Identiteettipalvelin tarjoaa samankaltaisia ​​palveluita kuin joidenkin puhelinyhtiöiden tukemat Soittajatunnuspalvelut, ja vaatimukset palvelimen raportoimille tiedoille muodostuvat samalla tavalla kuin soittajan tunnistetiedoilla . Jos et halua tukea sormipalvelua käyttäjätietojen pääsyn rajoittamisen vuoksi, et myöskään halua käyttää todennusprotokollaa.

Toteutukset

Identity-protokolla on de facto suosituin aihe edistyneille " Hei, maailma " (eli paras suunta ohjelmoinnin opettelussa). Tässä suhteessa sitä toteuttavien demonien määrä on valtava. Alla on linkkejä tämän luokan yleisimpiin ja yleisimmin käytettyihin palvelimiin.


Muistiinpanot

  1. M. St. Johns. Tunnistusprotokolla  . _ tools.ietf.org. Haettu 16. tammikuuta 2019. Arkistoitu alkuperäisestä 8. heinäkuuta 2017.
  2. J. Postel, J. Reynolds. Annetut numerot  . tools.ietf.org. Haettu 16. tammikuuta 2019. Arkistoitu alkuperäisestä 29. marraskuuta 2019.