Skip to main content

V6.3.2 Random Values

Requirement:#

Verify that random GUIDs are created using the GUID v4 algorithm, and a Cryptographically-secure Pseudo-random Number Generator (CSPRNG). GUIDs created using other pseudo-random number generators may be predictable.

Explanation:#

GUID (Globally Unique Identifier) - это 128-битное значение, которое используется для уникальной идентификации объектов или сущностей в компьютерных системах. Алгоритм GUID v4 - это особая версия алгоритма генерации GUID, который создает случайные GUID. Эти GUID предназначены для того, чтобы быть уникальными в разных системах и в разное время.

Remediation:#

Для выполнения требования по созданию случайных GUID с использованием алгоритма GUID v4 обычно выполняются следующие шаги:

1 Используйте криптографически безопасный генератор псевдослучайных чисел (CSPRNG): CSPRNG - это тип генератора случайных чисел, который генерирует случайные числа с высокой степенью криптографической безопасности. Он гарантирует, что генерируемые числа являются статистически случайными и непредсказуемыми, что делает их пригодными для криптографических целей. В контексте генерации GUID, CSPRNG используется для генерации случайных битов, составляющих GUID. 1 Примените алгоритм GUID v4: Алгоритм GUID v4 определяет, как случайные биты, генерируемые CSPRNG, форматируются для создания действительного GUID. Алгоритм гарантирует, что определенные биты будут установлены в определенные значения, чтобы указать версию и вариант GUID.

Вот пример реализации на Python с использованием модуля uuid, который включает функцию 'uuid.uuid4()' для генерации GUID по алгоритму GUID v4 с помощью CSPRNG: Python example of generating random GUID using the GUID v4 algorithm

import uuid
# Generate a random GUID using the GUID v4 algorithm
guid = uuid.uuid4()
print(guid)

Выходом будет случайно сгенерированный GUID, например: Output:

ba15b526-048e-49ca-8d0d-287bedea9788

Благодаря использованию CSPRNG и алгоритма GUID v4 генерируемые GUID обладают высоким уровнем случайности и уникальности. Это помогает предотвратить предсказуемость и коллизии, что делает их пригодными для различных целей, таких как уникальные идентификаторы в базах данных, маркеры сессий или безопасные маркеры для аутентификации.

Additional:#

1 2 CSPRNG (GitHub) 2 GUID Structure