Поддержка подтвержденной идентификации SIP в доверенных сетях, версия Flysip 2021 и выше

S
Автор Sergiiy
Обновлено 8 месяцев назад

Обоснование

Существующая поддержка конфиденциальности состоит из множества часто не связанных друг с другом функций, которые предоставляют очень ограниченный набор функций конфиденциальности, и это создает большой и постоянный спрос со стороны клиентов на все новые и новые сценарии.

Целями рефакторинга являются:

  • Обеспечьте согласованность поддержки конфиденциальности в нескольких существующих стандартах, таких как P-Asserted-Identity из RFC3325 и Remote-Party-Id из Draft-ietf-sip-privacy-04. 

  • Сделайте возможным преобразование из одного стандарта в другой. Например, получите P-Asserted-Identity, но отправьте Remote-Party-Id.

  • Оптимизируйте конфигурацию Flysip.

  • Добавьте недостающие функции, запрошенные клиентами.

Для достижения этих целей в Flysip необходимо ввести понятие независимого от протокола Privacy ID. Идентичность не является ни P-Asserted-Identity , ни Remote-Party-Id, а является внутренней обобщенной сущностью, существующей для сеанса. Идея состоит в том, чтобы иметь возможность получать идентификационные данные по любому протоколу, а также отправлять их по любому протоколу.

Идентичность сеанса состоит из:

  • Идентификатор вызывающего абонента (имя пользователя из P-Asserted-Identity или Remote-Party-Id)

  • атрибут анонимности

Атрибут анонимности передается заголовком Privacy: SIP из RFC3325 или параметром «privacy» из заголовка Remote-Party-Id:, который может сопровождаться заголовком RPID-Privacy:, как указано в соответствующем стандарте.

Предлагаемая архитектура

Функции

Основные особенности:

  • Получить личность

  • Аутентификация с использованием личности

  • Отправьте полученное или сгенерированное удостоверение

  • Переписать исходящий CLI на основе Identity

CLI в приведенной ниже документации означает имя пользователя From : заголовок

Идентификационные данные никогда не следует отправлять на зарегистрированную учетную запись или в соединительную линию. Приведенные выше сценарии связаны с обращениями к поставщикам, как указано в SS-2728: Поддержка и обработка заголовка конфиденциальности ЗАВЕРШЕНО. 

Получить личность

Идентичность может быть получена от вызывающего абонента. Для этой цели Учетная запись имеет атрибут Identity Schemas , который содержит список приемлемых протоколов в порядке предпочтения. Например:

  • Схемы идентификации = P-Asserted-Identity означает, что Flysip принимает P-Asserted-Identity и создает идентификатор сеанса на основе полученных значений.

  • Схемы идентификации = Remote-Party-Id, P-Asserted-Identity означают, что Flysip принимает либо P-Asserted-Identity, либо Remote-Party-Id, но предпочитает Remote-Party-Id P-Asserted-Identity.

  • Identity Schemas = Disabled означает, что Flysip игнорирует любые заголовки Identity .

Аутентификация с использованием личности

Flysip должен иметь возможность использовать полученное удостоверение для аутентификации. У учетной записи появился новый атрибут Trust Identity Headers , который позволяет использовать полученное удостоверение вместо CLI при поиске правила аутентификации учетной записи или DID.

Параметр Identity Auth Mode в системных параметрах/SIP, Media, LRN управляет способом выполнения аутентификации:

  • Расслаблено : сначала попробуйте пройти аутентификацию по Identity , а затем по CLI и используйте тот вариант, который окажется успешным.

  • Строгий — если идентификатор получен, не пытайтесь использовать CLI для аутентификации. По умолчанию для старых систем и новых сред.

  • Обязательно — никогда не используйте CLI и всегда полагайтесь только на Identity для аутентификации.

Отправьте полученное или сгенерированное удостоверение

Соединение поставщика имеет атрибут «Отправить идентификатор как» , который определяет, какой стандарт следует использовать для отправки информации о конфиденциальности поставщику. Возможные значения:

  • P-подтвержденная идентичность

  • Remote-Party-Id

  • Выключенный

Если идентификационные данные не были получены от вызывающего абонента, Flysip может их сгенерировать. Для этой цели соединение должно иметь параметр «Использовать CLI как идентификатор» .

Скрыть собственный параметр CLI в настройках учетной записи . В разделе «Анонимный вызов» применяется атрибут анонимности в идентификаторе D сеанса.

Исходящие заголовки SIP «P-Asserted-Identity» и «Remote-Party-Id» не отправляются, если параметр « Доверенный домен конфиденциальности» в соединении не отмечен флажком .

Заголовки, указывающие конфиденциальность, отправляются, если для параметра «Отправить идентификатор как» установлено значение «не выключено»:

  • случай заголовка P-Asserted-ID. Конфиденциальность со значением id будет отправлена, даже если параметр Trusted Privacy Domain в соединении не отмечен и PAI не отправляется.

  • случай заголовка Remote-Party-Id Rpid-privacy со значением party=calling;privacy=full будет отправлен, даже если параметр Trusted Privacy Domain в соединении не отмечен и RPID не отправляется

Переписать исходящий CLI на основе Identity

Соединение поставщика имеет параметр «Использовать идентификатор как CLI»  в разделе «Дополнительные параметры».

Старые сценарии, которые следует охватить

  • Передайте входящий PAI в Connection, затем переведите и отправьте поставщику.

Установите для схемы идентификации  в учетной записи  значение P-Asserted-Identity, установите флажок « Передать идентификацию  в учетной записи» , примените необходимый перевод для учетной записи и соединения для Identity Tr. Правило и выберите « Отправить идентификатор подключения как = P-Asserted-Identity», установите флажок « Доверенный домен конфиденциальности при подключении» .

  • Не передавайте входящий PAI в Connection ( передавать идентификатор в учетную запись  не отмечено ) , вместо этого сгенерируйте его там на основе имени пользователя в заголовке From: (установите флажок Использовать CLI как идентификатор )

Снимите флажок «Передать удостоверение» в учетной записи, установите флажок « Использовать CLI в качестве удостоверения при подключении», установите « Отправить удостоверение как = P-Asserted-Identity  при подключении»,  установите флажок « Доверенный домен конфиденциальности при подключении »

  • Перевести из: заголовок на основе PAI, полученного в учетной записи.

Установите для схемы идентификации  в учетной записи  значение P-Asserted-Identity, установите флажок « Передавать идентификацию в учетной записи» , установите флажок « Использовать идентификацию как CLI  при подключении» .

  • Translate From: заголовок на основе идентификатора Remote-Party-Id , полученного в учетной записи.

Установите для схемы идентификации  в учетной записи  значение Remote-Party-Id, установите флажок « Передавать идентификацию в учетной записи» , установите флажок « Использовать удостоверение как CLI  при подключении» .

Новые сценарии, которые следует охватить

  • Аутентифицировать вызов через полученный P-Asserted-Id , а не From

Установите флажок «Доверять заголовкам удостоверений учетной записи» , установите для « Схемы удостоверений  учетной записи  » значение «P-Asserted-Identity», в «Параметры системы/SIP, Media, LRN» установите для параметра «Режим аутентификации удостоверения» один из вариантов в соответствии с требованием: расслабленный/строгий/обязательный.

  • Аутентификация вызова через полученный Remote-Party-Id , а не From

Установите флажок «Доверять заголовкам удостоверений учетной записи» , установите для « Схемы удостоверений  учетной записи  » значение « Remote-Party-Id» , в «Системных параметрах/SIP, Media, LRN» установите для параметра «Режим аутентификации удостоверения» один из вариантов в соответствии с требованием: расслабленный/строгий/обязательный.

  • Добавьте к исходящему INVITE для поставщика заголовок Privacy со значением = id  , когда вызов был аутентифицирован одним из вышеуказанных методов.

Установите флажок «Доверять заголовкам удостоверений учетной записи » , установите для « Схемы удостоверений  учетной записи  » значение «P-Asserted-Identity», в «Параметры системы/SIP, Media, LRN» установите для параметра « Режим аутентификации удостоверения» один из вариантов в соответствии с требованием: расслабленный/строгий/обязательный, установите Отправить идентификатор личности как = P-Asserted-Identity  при соединении

  • Не передавайте входящий Remote-Party-Id в Connection , вместо этого сгенерируйте его там на основе имени пользователя в заголовке From :

Снимите флажок «Передать идентификатор личности» в учетной записи, установите флажок « Использовать CLI в качестве удостоверения при подключении», установите « Отправить идентификатор как = идентификатор удаленной стороны  при подключении»,  установите флажок « Доверенный домен конфиденциальности при подключении»

  •  Отправлять конфиденциальность: идентификатор, когда установлен флажок «Скрыть собственный CLI в учетной записи» или во входящем INVITE не получен CLI/Anonymous.

Установите «Отправить идентификатор как = P-Asserted-Id при подключении»,  снимите флажок «Доверенный домен конфиденциальности  при подключении ». Примечание. В этом случае заголовок P-Asserted-Id НЕ будет сгенерирован, однако заголовок Privacy со значением id будет добавлен к исходящему INVITE.

  • Отправлять RPID-конфиденциальность, когда установлен флажок «Скрыть собственный CLI на учетной записи» или во входящем INVITE не получен CLI/Anonymous.

Установите «Отправить идентификатор как = Remote-Party-Id»  , снимите флажок «Доверенный домен конфиденциальности  при подключении» . Примечание. В этом случае заголовок Remote-Party-Id НЕ будет сгенерирован, однако заголовок RPID-Privacy со значением party=calling;privacy=full будет добавлен к исходящему INVITE.

Оцените эту статью