Articles

Universaalisti yksilöllinen tunniste

kummallekin vaihtoehdolle 1 ja 2 standardeissa on määritelty viisi ”versiota”, ja kukin versio voi olla soveltuvampi kuin muut tietyissä käyttötapauksissa. Versio on merkitty M merkkijonoesityksessä.

Version-1 UUID: t luodaan ajasta ja solmun ID: stä( yleensä MAC-osoite); version-2 UUID: t luodaan tunnisteesta (yleensä ryhmä-tai käyttäjätunnus), ajasta ja solmun ID: stä; versiot 3 ja 5 tuottavat deterministiset UUID: t, jotka luodaan tiivistämällä nimiavaruuden tunniste ja nimi; ja versio-4 UUIDs luodaan käyttämällä satunnaista tai pseudo-satunnaislukua.

nolla Uuidit

”nolla” UUID, erikoistapaus, on UUID 00000000-0000-0000-0000-000000000000; eli kaikki bitit on asetettu nollaan.

Versio 1 (päivämäärä-aika ja MAC-osoite)Edit

Versio 1 yhdistää ”solmun” (eli UUID: n tuottavan tietokoneen) 48-bittisen MAC-osoitteen 60-bittisellä aikaleimalla, joka on 100 nanosekunnin intervallien määrä keskiyön jälkeen 15.lokakuuta 1582 koordinoidun Yleisajan (UTC), joka on gregoriaanisen kalenterin käyttöönottopäivä. RFC 4122 toteaa, että aika-arvo rullaa noin 3400 AD,: 3 riippuen käytetystä algoritmista, mikä tarkoittaa, että 60-bittinen aikaleima on allekirjoitettu määrä. Kuitenkin jotkut ohjelmistot,kuten libuuid-kirjasto, käsittelevät aikaleimaa allekirjoittamattomana, laittaen rollover-ajan 5236 jKr. ITU-T Rec: n määrittelemä kaatumisaika. X. 667 on 3603 jKr.: v

13 – tai 14-bittinen ”uniquifying” – kellosarja pidentää aikaleimaa, jotta voidaan käsitellä tapauksia, joissa prosessorikello ei etene tarpeeksi nopeasti tai joissa prosessoreita ja UUID-generaattoreita on useita solmua kohden. Kun UUID: t luodaan nopeammin kuin järjestelmän kello voisi edetä, aikaleimakenttien alemmat bitit voidaan luoda lisäämällä sitä joka kerta, kun UUID: tä luodaan, korkean resoluution aikaleiman simuloimiseksi. Kun jokainen versio 1 UUID vastaa yhtä pistettä avaruudessa (solmu) ja aika (intervallit ja kellon sekvenssi), mahdollisuus kaksi oikein luotu versio-1 UUID on tahattomasti sama on käytännössä nolla. Koska aika-ja kellojärjestys yhteensä 74 bittiä, 274 (1.8×1022 eli 18 sekstillion) versio-1 UUID: ta voidaan tuottaa solmun ID: tä kohti, maksimissaan keskitaajuus on 163 miljardia sekunnissa solmun ID: tä kohti.

toisin kuin muut UUID-versiot, verkkokorttien MAC-osoitteisiin perustuvat versiot-1 ja -2 UUID perustuvat osittain keskusrekisteriviranomaisen antamaan tunnisteeseen eli MAC-osoitteen Oui-osaan, jonka IEEE antaa verkkolaitteiden valmistajille. Verkkokortin MAC-osoitteisiin perustuvien version-1 Ja version-2 UUID-osoitteiden ainutlaatuisuus riippuu myös verkkokortin valmistajista, jotka antavat korteilleen oikein ainutlaatuisia MAC-osoitteita, jotka muiden valmistusprosessien tavoin ovat virheellisiä.

solmun verkkokortin MAC-osoitteen käyttö solmun tunnuksessa tarkoittaa, että Versio-1 UUID voidaan jäljittää takaisin sen luoneelle tietokoneelle. Asiakirjat voidaan joskus jäljittää tietokoneisiin, joissa ne on luotu tai muokattu tekstinkäsittelyohjelmalla niihin upotettujen Uuidien avulla. Tätä yksityisyyden aukkoa käytettiin Melissa-viruksen luojan paikantamisessa.

RFC 4122 sallii version-1 (tai 2) UUID: n MAC-osoitteen korvaamisen satunnaisella 48-bittisellä solmutunnisteella joko siksi, että solmulla ei ole MAC-osoitetta tai koska sen paljastaminen ei ole suotavaa. Tällöin RFC edellyttää, että solmun ID: n ensimmäisen oktetin vähiten merkitsevä bitti asetetaan arvoon 1. Tämä vastaa MAC-osoitteiden multicast-bittiä, ja sen asettaminen auttaa erottamaan UUID: t, joissa solmun tunnus luodaan satunnaisesti UUID: istä verkkokorttien MAC-osoitteiden perusteella, joissa on tyypillisesti unicast MAC-osoitteet.

Versio 2 (päivämäärä-aika ja MAC-osoite, DCE security-versio)muokkaa

RFC 4122 varaa version 2 ”DCE security” – Uuideille, mutta se ei anna mitään yksityiskohtia. Tästä syystä monet UUID-toteutukset jättävät version 2 pois. Version-2 UUIDs-spesifikaation tarjoaa kuitenkin DCE 1.1 Authentication and Security Services specification.

Versio-2 Uuidit ovat samanlaisia kuin versio 1, paitsi että kellosekvenssin vähiten merkittävät 8 bittiä korvataan ”paikallisella verkkotunnuksella” numerolla, ja vähiten merkittävät 32 bittiä aikaleimasta korvataan määritetyllä paikallisella verkkotunnuksella merkityksellisellä kokonaislukutunnisteella. POSIX-järjestelmissä paikalliset toimialuenumerot 0 ja 1 ovat käyttäjätunnuksia (UID) ja ryhmätunnuksia (gids) varten, ja muut paikalliset toimialuenumerot ovat sivuston määrittelemiä. Muissa kuin POSIX-järjestelmissä kaikki paikalliset verkkotunnukset ovat sivuston määrittelemiä.

mahdollisuus sisällyttää 40-bittinen verkkotunnus / tunniste UUID: hen tulee kaupan myötä. Toisaalta 40 bittiä mahdollistaa noin 1 biljoonan verkkotunnuksen/tunnisteen arvot solmun ID: tä kohti. Toisaalta, kun kellon arvo typistettiin 28 merkittävimpään bittiin verrattuna 60 bittiin versiossa 1, version 2 UUID kello ”tikittää” vain kerran 429,49 sekunnissa, hieman yli 7 minuuttia, kun taas versiossa 1 100 nanosekunnin välein. Ja kellosekvenssi on vain 6 bittiä, verrattuna 14 bittiin versiossa 1, vain 64 ainutlaatuista UUID: tä solmua/verkkotunnusta/tunnistetta kohti voidaan luoda 7 minuutin kellon tikitystä kohti, verrattuna 16,384 kellon sekvenssiarvoihin versiolle 1. Näin ollen Versio 2 ei välttämättä sovellu tapauksiin, joissa tarvitaan UUID-tunnisteita solmua/verkkotunnusta/tunnistetta kohti nopeudella, joka ylittää noin yhden joka seitsemäs sekunti.

versiot 3 ja 5 (nimiavaruus nimipohjainen)Edit

Version-3 ja version-5 UUIDs luodaan tiivistämällä nimiavaruuden tunniste ja nimi. Versio 3 käyttää tiivistysalgoritmina MD5: tä ja versio 5 käyttää SHA-1: tä.

nimiavaruuden tunniste on itse UUID. Spesifikaatio tarjoaa UUID: t edustamaan URL-osoitteiden nimiavaruuksia, täysin hyväksyttyjä verkkotunnuksia, objektitunnisteita ja X. 500-tunnisteita; mutta mitä tahansa haluttua UUID: tä voidaan käyttää nimiavaruuden tunnuksena.

tiettyä nimiavaruutta ja nimeä vastaavan version-3 UUID määrittämiseksi nimiavaruuden UUID muutetaan riviksi tavuja, jotka yhdistetään syötetyn nimen kanssa ja yhdistetään sitten MD5: llä, jolloin saadaan 128 bittiä. Tällöin 6 tai 7 bittiä korvataan kiinteillä arvoilla, 4-bittisellä versiolla (esim. 00112 versiolle 3), ja 2 – tai 3-bittinen UUID ”variantti” (esim.102 osoittaen RFC 4122 UUID, tai 1102 osoittaen vanhaa Microsoft GUID). Koska 6 tai 7 bittiä on näin ennalta määrätty, vain 121 tai 122 bittiä myötävaikuttaa UUID: n ainutlaatuisuuteen.

Versio-5 Uuidit ovat samanlaisia, mutta MD5: n sijasta käytetään SHA-1: tä. Koska SHA-1 tuottaa 160-bittisiä digestejä, digest typistetään 128 bittiin ennen version ja variantin bittien vaihtamista.

versiossa-3 ja versiossa-5 Uuidissa on ominaisuus, jonka sama nimiavaruus ja nimi kartoittaa samaan UUIDIIN. Nimiavaruutta tai nimeä ei kuitenkaan voida määrittää UUID: sta, vaikka jompikumpi niistä olisi määritelty, paitsi raa ’ alla voimalla tehtävän haun avulla. RFC 4122 suosittelee versiota 5 (SHA-1) version 3 (MD5) sijasta ja varoittaa käyttämästä jommankumman version UUID-tunnisteita suojaustunnuksina.

versio 4 (random)Edit

luodaan satunnaisesti versio 4 UUID. Kuten muissakin Uuideissa, 4 bittiä käytetään osoittamaan versiota 4 ja 2 tai 3 bittiä osoittamaan muunnosta (102 tai 1102 muunnoksille 1 ja 2). Näin ollen variantissa 1 (eli useimmissa Uuideissa) satunnaisessa versiossa-4 UUID on 6 ennalta määrättyä variantti-ja versiobittiä, jolloin satunnaisesti luodulle osalle jää 122 bittiä, yhteensä 2122, tai 5,3×1036 (5,3 undecillion) mahdollinen versio-4 variantti-1 UUID. Mahdollisia versio-4 variantti-2 UUIDs (legacy GUIDs) – versioita on puolet vähemmän, koska satunnaisbittejä on yksi vähemmän, 3 bittiä käytetään varianttia varten.