Что такое идентификация в контексте информационной безопасности?

«Что такое идентификация в контексте информационной безопасности?» — вопрос из категории Тестирование безопасности, который задают на 24% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Идентификация — это первый шаг в процессе контроля доступа, когда субъект (пользователь, система, процесс) заявляет о себе, предъявляя уникальный идентификатор.

  • Цель: Ответить на вопрос "Кто вы?".
  • Идентификатор (Login): Уникальное имя, присвоенное субъекту в системе. Например:
    • Логин (john_doe)
    • Email (user@company.com)
    • Уникальный номер (ID карты, UID-12345)
    • Имя сервисного аккаунта (svc-api-prod)

Важно: Сама по себе идентификация не подтверждает личность. Она лишь заявляет её. Подтверждение происходит на следующем этапе — аутентификации (проверка пароля, токена, отпечатка).

Пример в тестировании:

def test_identification_requires_unique_login():
    """
    Тест: система должна корректно обрабатывать уникальный идентификатор.
    """
    # Пользователь идентифицируется с логином "alice123"
    claimed_identity = "alice123"

    # Система ищет этот идентификатор в своём хранилище
    stored_identities = ["alice123", "bob456"]

    # Проверка: идентификатор должен существовать для последующей аутентификации
    assert claimed_identity in stored_identities, 
        f"Идентификатор '{claimed_identity}' не найден в системе."

    # Следующий шаг (за рамками идентификации) — аутентификация по паролю/токену.

Связь с другими понятиями (AAA-модель):

  1. Identification (Идентификация): "Я — alice123".
  2. Authentication (Аутентификация): "Докажи это" (пароль, OTP).
  3. Authorization (Авторизация): "Что тебе разрешено делать?" (роли, права).

Тестирование идентификации включает проверку уникальности идентификаторов, обработку несуществующих идентификаторов и устойчивость к инъекциям (SQL, NoSQL) на этапе ввода логина.