Uid документа что это
Что такое ID, UID? Подробно об идентификаторах
В этом уроке мы разберемся, что такое идентификаторы: (ID, UID, УИД). Эти аббревиатуры часто встречаются в теме информационной безопасности, которую мы начинаем осваивать в новой серии IT-уроков.
Что такое ID?
ID (читается «ай-ди») — это часть английского слова “identifier”, которое переводится как “идентификатор”.
ID или Идентификатор — это информация, которая может идентифицировать субъект (простыми словами — это номер или имя: число или строка символов).
Каждый раз, когда вы где-то регистрируетесь, вы получаете идентификатор, то есть, какое-то имя или номер. И внутри каждой отдельной системы ваш идентификатор уникальный.
Примеры идентификаторов (id):
Пример ID страницы в социальной сети ВКонтакте
Знакомясь с человеком мы в первую очередь спрашиваем его имя, а для связи просим сообщить номер телефона или e-mail, то есть, узнаем его идентификаторы (сюда же можно отнести номер машины, номер паспорта, номер банковской карты, штрих-код и т.д.)
Что такое UID?
Часто встречается надпись “UID”, в которой перед “ID” добавлена буква “U”, которая может быть расшифрована как “unique” — “уникальный”, или как “user” — “пользователь”.
Следовательно, есть два варианта расшифровки аббревиатуры UID:
UID (Unique identifier) или УИД — уникальный идентификатор.
UID (User identifier) — идентификатор пользователя в операционной системе или на сайте.
Всё просто: некоторые идентификаторы являются уникальными, то есть могут принадлежать только одному субъекту (имя может совпадать, а номер паспорта всегда отличается).
Примеры использования UID:
ID с точки зрения информационной безопасности
Обычно идентификатор (id) не является секретным, поэтому только по нему нельзя предоставлять доступ к ресурсу (например, знание адреса электронной почты не даёт права доступа к письмам в почтовом ящике).
Определение идентификатора (идентификация) является первым шагом для доступа к информационным ресурсам (почта, аккаунт в социальной сети и т.д.), далее выполняется аутентификация и авторизация, но об этом мы поговорим в следующем IT-уроке.
Копирование запрещено, но можно делиться ссылками:
UID — что это в устройствах и компьютерах?
UID — это уникальный идентификатор (расшифровка от английского «Unique Identifier») или, реже, пользовательский идентификатор (расшифровка от английского «User Identifier»). В русскоязычном софте применяется аббревиатура УИД (происходит от английского «UID»), например, в программных ERP-средствах (тот же всем известный комплекс «1C»).
Встречается не только пользовательский идентификатор. Есть UID устройства (например, модель и серийный номер электронного гаджета), UID компьютера или UID маршрутизатора (обычно в обоих случаях понимается сетевой MAC-адрес) и так далее. Этот набор символов избавляет нас от необходимости просеивать большое количество похожих элементов в поисках нужного. Значения генерируются случайным или закономерным (с помощью алгоритма или вручную) образом.
Что означает UID?
Простыми словами, в обоих случаях UID значит набор цифр и/или символов для неповторяющейся, то есть уникальной, идентификации пользователя (как, например, при покупке билетов на поезд или самолёт), устройства (компьютера, звена сети). Не относится к персональным данным и потому не может являться единственным средством доступа к какой-либо ценной информации без верификации.
Примеры UID в устройствах и компьютерах
Самый распространённый пример использования UID в реальной жизни — ваш браузер и cookies. Когда открывается веб-сайт по определённому адресу, создаётся уникальный идентификатор пользователя на основе хешированной анонимной информации.
Она может использоваться, как для некорыстных целей (безопасность и программные особенности сайта), так и для коммерческих мотивов (рекламные метрики, персонализация предложения в зависимости от поведенческих факторов). Но это не единственное применение технологии UID в устройствах вроде компьютеров или смартфонов.
Унифицированный идентификатор ресурса (URI, Uniform Resource Identifier)
Это уникальный идентификатор, который делает контент доступным в Интернете за счёт выборочного нацеливания на такие элементы, как текст, видео, изображения и приложения.
Унифицированный указатель ресурсов (URL, Uniform Resource Locator)
Это особый тип URI, нацеленный на веб-страницы, так чтобы когда браузер запрашивает их, они могли бы быть найдены и предоставлены пользователям.
Универсальный уникальный идентификатор (UUID, Universal Unique Identifier)
Это 128-битное число, используемое для уникальной идентификации некоторого объекта/ресурса/сущности в Интернете.
Глобальный уникальный идентификатор (GUID, Global Unique Identifier)
Это номер, который программа Microsoft создаёт для определения уникального идентификатора внутрисистемного объекта — например, документа Word.
Уникальный идентификатор устройства (UDID, Unique Device Identifier)
Это строка из символов, присваиваемая определённым устройствам. Например, у Apple iPhone, iPad и iPod Touch присваивается 40 символов UDID.
Идентификатор набора услуг (SSID, Service Set Identifier)
Это последовательность символов, которая однозначно называет конкретную беспроводную локальную сеть (WLAN).
Уникальные идентификаторы (UID) могут быть присвоены всему, что нужно отличать от других объектов. Простыми словами, отдельным пользователям, компаниям, машинам или веб-сайтам для быстрого нахождения в различных системах нужен UID в виде отличительных значений, которые зависят от потребностей приложения, устройства, компьютера.
Обратитесь в компанию ИТ-аутсорсинга для дальнейшей экспертной поддержки и консультации по этой теме и любым другим техническим вопросам.
Что такое UID. И с чем его едят.
Для новичков
В Symbian OS UID-ы используются повсеместно для разнообразных идентификаций типов
файлов и увязки файлов с теми или иными приложениями. Конечно, пользователю более понятны обычные
имена файлов и Symbian OS гибко поддерживает имена файлов различной длинны. Но с точки зрения системы,
32-битные номера обеспечивают большую однозначность, систематичность и более легкую идентификацию.
Поэтому UID-ы являются фундаметальной характеристикой ОС.
По определению, UID-тип объекта состоит из трех отдельных UID-ов используемых
в комбинациях. Составные компоненты UID-ов называются UID1, UID2 и UID3 имеют следующие основные
характеристики:
— UID1- может быть рассмотрен как идентификатор на уровне системы; например, исполняемые файлы,
DLL, файловые хранилища все различаются по UID1.
— UID2-различия между объектами имеющими один и тот же UID1 и могут быть рассмотрены как идентификатор
интерфейса; например, статический интерфейс (разделяемая библиотека) и полиморфический интерфейс
(приложение или встраеваемая программная оболочка) DLL-ки отличаются по UID2.
— UID3-идентифицирует объекты, имеющие конкретный UID2 и может рассматриваться как идентификатор
проекта; например, UID3 может быть разделен между всеми объектами, принадлежащими данной программе,
включая библиотеки, если имеются, DLL-ки каркасов,и все документы.
UID-тип это объект типа TUidType, которой можно создать из комбинаций всех
или некоторых из трех возможных UID-ов. Если переменная имеет прелставляет собой UID, то можно выяснить
и значения составляющих её компонентов UID1, UID2 и UID3.
Объект в Symbian OS и, особенно, многие файлы в Symbian OS могут иметь все, несколько,
или вообще не иметь не одного из трех возможных UID-ов.
Вариант с отсутсвием UID-ов необходим для того, чтобы можно было взаимодействовать
с другими системами, позволяя легко и свободно использовать по назначению в Symbian OS не родные
файлы данных. Symbian OS позволяет создавать настраиваемые файловые ассоциации и идентификации даже
когда UID-ы отсутсвуют. Это делается по расширениям имен файлов.
Каждый «родной» документ должен иметь соотвествующий UID1. его значение задается
приложением, создавщим этот документ.
Необходимым является только UID1, но в большинстве случаев разработчики захотят
определить второй и третий UID-ы для документов, которые создает и использует их приложение. Значения
этих UID используются каркасом архитектуры приложения, чтобы управлять связями между приложениями
и их документами. Например, это позволяет при открытии файла определить и запустить связанное с ним
приложение, а также правильно отображать иконку этого приложения, возле файла документа. И наоборот
это позволяет приложению, отсортировывать свои файлы среди прочих.
UID задается из диапазона 0х01000000 до 0x0fffffff.
UID можно в любое время посмотреть, зайдя например в программу SmartFileMan, и нажав клавишу «5» на нужном файле.На экране появятся все три UID-a.
Что такое ID (UID)?
В данной статье для начинающих пользователей, я расскажу вам о том, что такое ID и UID, для чего они применяются и как используются.
Практически в любой сфере используется какой-то отличительный атрибут для выделения одного человека среди других. Так как без этого весьма сложно было бы вести хоть какой-либо учет. И речь идет не только об интернете или социальных сетях. Поэтому первым делом рассмотрим определение.
Стоит понимать, что хоть в интернете ID чаще всего является уникальным, как таковым, он не обязан быть. К примеру, в мире всегда могут существовать ваши полные тески. В случае, если требуется уникальность, то корректно называть UID. Рассмотрим определение.
Однако, многие все же привыкли соотносить идентификаторы именно с областью информационных технологий, включая интернет. И в этом нет ничего удивительного, так как сегодня практически у каждого есть свой собственный личный компьютер с доступом в сеть. Соответственно, и тут ID и UID не сильно отличаются. Они применяются для быстрого поиска необходимой информации, например, в социальных сетях у каждого пользователя есть идентификатор, который видно в адресе страницы профиля. Зная этот идентификатор вы всегда можете быстро найти страничку пользователя (без поиска среди десятка тесок).
Стоит знать, что в ИТ в большинстве своем идентификаторы представляют собой целые числа, так как чисто технически операции поиска с числами выполняются быстрее.
Теперь, вы знаете что такое ID и UID, как их используют и для чего они применяются.
Как генерируются UUID
Вы наверняка уже использовали в своих проектах UUID и полагали, что они уникальны. Давайте рассмотрим основные аспекты реализации и разберёмся, почему UUID практически уникальны, поскольку существует мизерная возможность возникновения одинаковых значений.
Современную реализацию UUID можно проследить до RFC 4122, в котором описано пять разных подходов к генерированию этих идентификаторов. Мы рассмотрим каждый из них и пройдёмся по реализации версии 1 и версии 4.
Теория
UUID (universally unique IDentifier) — это 128-битное число, которое в разработке ПО используется в качестве уникального идентификатора элементов. Его классическое текстовое представление является серией из 32 шестнадцатеричных символов, разделённых дефисами на пять групп по схеме 8-4-4-4-12.
Информация о реализации UUID встроена в эту, казалось бы, случайную последовательность символов:
Значения на позициях M и N определяют соответственно версию и вариант UUID.
Версия
Номер версии определяется четырьмя старшими битами на позиции М. На сегодняшний день существуют такие версии:
Вариант
Это поле определяет шаблон информации, встроенной в UUID. Интерпретация всех остальных битов в UUID зависит от значения варианта.
Мы определяем его по первым 1-3 старшим битам на позиции N.
1 0 0 0 = 8
1 0 0 1 = 9
1 0 1 0 = A
1 0 1 1 = B
Так что если вы видите UUID с такими значениями на позиции N, то это идентификатор в варианте 1.
Версия 1 (время + уникальный или случайный идентификатор хоста)
В этом случае UUID генерируется так: к текущему времени добавляется какое-то идентифицирующее свойство устройства, которое генерирует UUID, чаще всего это MAC-адрес (также известный как ID узла).
Идентификатор получают с помощью конкатенации 48-битного МАС-адреса, 60-битной временной метки, 14-битной «уникализированной» тактовой последовательности, а также 6 битов, зарезервированных под версию и вариант UUID.
Тактовая последовательность — это просто значение, инкрементируемое при каждом изменении часов.
Временная метка, которая используется в этой версии, представляет собой количество 100-наносекундных интервалов с 15 октября 1582 года — даты возникновения григорианского календаря.
Возможно, вы знакомы с принятым в Unix-системах исчислением времени с начала эпохи. Это просто другая разновидность Нулевого дня. В сети есть сервисы, которые помогут вам преобразовать одно временное представление в другое, так что не будем на этом останавливаться.
Хотя эта реализация выглядит достаточно простой и надёжной, однако использование MAC-адреса машины, на которой генерируется идентификатор, не позволяет считать этот метод универсальным. Особенно, когда главным критерием является безопасность. Поэтому в некоторых реализациях вместо идентификатора узла используется 6 случайных байтов, взятых из криптографически защищённого генератора случайных чисел.
Сборка UUID версии 1 происходит так:
Поскольку эта реализация зависит от часов, нам нужно обрабатывать пограничные ситуации. Во-первых, для минимизации коррелирования между системами по умолчанию тактовая последовательность берётся как случайное число — так делается лишь один раз за весь жизненный цикл системы. Это даёт нам дополнительное преимущество: поддержку идентификаторов узлов, которые можно переносить между системами, поскольку начальное значение тактовой последовательности совершенно не зависит от идентификатора узла.
Помните, что главная цель использования тактовой последовательности — внести долю случайности в наше уравнение. Биты тактовой последовательности помогают расширить временную метку и учитывать ситуации, когда несколько UUID генерируются ещё до того, как изменяются процессорные часы. Так мы избегаем создания одинаковых идентификаторов, когда часы переводятся назад (устройство выключено) или меняется идентификатор узла. Если часы переведены назад, или могли быть переведены назад (например, пока система была отключена), и UUID-генератор не может убедиться, что идентификаторы сгенерированы с более поздними временными метками по сравнению с заданным значением часов, тогда нужно изменить тактовую последовательность. Если нам известно её предыдущее значение, его можно просто увеличить; в противном случае его нужно задать случайным образом или с помощью высококачественного ГПСЧ.
Версия 2 (безопасность распределённой вычислительной среды)
Главное отличие этой версии от предыдущей в том, что вместо «случайности» в виде младших битов тактовой последовательности здесь используется идентификатор, характерный для системы. Часто это просто идентификатор текущего пользователя. Версия 2 используется реже, она очень мало отличается от версии 1, так что идём дальше.
Версия 3 (имя + MD5-хэш)
Если нужны уникальные идентификаторы для информации, связанной с именами или наименованием, то для этого обычно используют UUID версии 3 или версии 5.
Они кодируют любые «именуемые» сущности (сайты, DNS, простой текст и т.д.) в UUID-значение. Самое важное — для одного и того же namespace или текста будет сгенерирован такой же UUID.
Обратите внимание, что namespace сам по себе является UUID.
В этой реализации UUID namespace преобразуется в строку байтов, конкатенированных с входным именем, затем хэшируется с помощью MD5, и получается 128 битов для UUID. Затем мы переписываем некоторые биты, чтобы точно воспроизвести информацию о версии и варианте, а остальное оставляем нетронутым.
Важно понимать, что ни namespace, ни входное имя не могут быть вычислены на основе UUID. Это необратимая операция. Единственное исключение — брутфорс, когда одно из значений (namespace или текст) уже известно атакующему.
При одних и тех же входных данных генерируемые UUID версий 3 и 5 будут детерминированными.
Версия 4 (ГПСЧ)
Самая простая реализация.
6 битов зарезервированы под версию и вариант, остаётся ещё 122 бита. В этой версии просто генерируется 128 случайных битов, а потом 6 из них заменяется данными о версии и варианте.
Такие UUID полностью зависят от качества ГПСЧ (генератора псевдослучайных чисел). Если его алгоритм слишком прост, или ему не хватает начальных значений, то вероятность повторения идентификаторов возрастает.
В современных языках чаще всего используются UUID версии 4.
Её реализация достаточно простая:
Версия 5 (имя + SHA-1-хэш)
Единственное отличие от версии 3 в том, что мы используем алгоритм хэширования SHA-1 вместо MD5. Эта версия предпочтительнее третьей (SHA-1 > MD5).
Практика
Одним из важных достоинств UUID является то, что их уникальность не зависит от центрального авторизующего органа или от координации между разными системами. Кто угодно может создать UUID с определённой уверенностью в том, что в обозримом будущем это значение больше никем не будет сгенерировано.
Это позволяет комбинировать в одной БД идентификаторы, созданные разными участниками, или перемещать идентификаторы между базами с ничтожной вероятностью коллизии.
UUID можно использовать в качестве первичных ключей в базах данных, в качестве уникальных имён загружаемых файлов, уникальных имён любых веб-источников. Для их генерирования вам не нужен центральный авторизующий орган. Но это обоюдоострое решение. Из-за отсутствия контролёра невозможно отслеживать сгенерированные UUID.
Есть и ещё несколько недостатков, которые нужно устранить. Неотъемлемая случайность повышает защищённость, однако она усложняет отладку. Кроме того, UUID может быть избыточным в некоторых ситуациях. Скажем, не имеет смысла использовать 128 битов для уникальной идентификации данных, общий размер которых меньше 128 битов.
Уникальность
Может показаться, что если у вас будет достаточно времени, то вы сможете повторить какое-то значение. Особенно в случае с версией 4. Но в реальности это не так. Если бы вы генерировали один миллиард UUID в секунду в течение 100 лет, то вероятность повторения одного из значений была бы около 50 %. Это с учётом того, что ГПСЧ обеспечивает достаточное количество энтропии (истинная случайность), иначе вероятность появления дубля будет выше. Более наглядный пример: если бы вы сгенерировали 10 триллионов UUID, то вероятность появления двух одинаковых значений равна 0,00000006 %.
А в случае с версией 1 часы обнулятся только в 3603 году. Так что если вы не планируете поддерживать работу своего сервиса ещё 1583 года, то вы в безопасности.
Впрочем, вероятность появления дубля остаётся, и в некоторых системах стараются это учитывать. Но в подавляющем большинстве случаев UUID можно считать полностью уникальными. Если вам нужно больше доказательств, вот простая визуализация вероятности коллизии на практике.