Протокол CWMP (CPE WAN Management Protocol) определяет опциональный механизм для безопасного разрешения или запрета опциональных возможностей CPE. В отличие от параметров (Parameters), механизм Ваучеров (Voucher) предоставляет дополнительный слой безопасности для опциональных возможностей, которые требуют безопасного отслеживания (например, связанных с оплатой услуг).
Примечание: расшифровку незнакомых терминов и аббревиатур см. в разделе "1.6. Терминология" статьи [16], там также приведен перевод общего описания протокола CWMP/TR-069 из документации [1].
Ваучер (Voucher) это заверенная цифровой подписью структура данных, которая инструктирует CPE разрешить или запретить набор опций. Опция (Option) это любая опциональная функциональная возможность CPE. Когда опция разрешена, Ваучер может указать различные характеристики, которые определяют, при каких условиях эта опция сохраняется.
[C.2. Управление опциями с помощью Ваучеров]
Опция может быть запрещена, разрешена или разрешена со сроком истечения действия. Опция, которая разрешена без строка истечения, остается разрешенной, пока сервер ACS явно не запретит её. Опция, которая разрешена со сроком истечения, остается разрешенной только на время, указанное в Ваучере. После того, как истек заданный период, CPE ДОЛЖЕН запретить саму опцию.
Опция может быть также определена как переносимая (transferable) или непереносимая (non-transferable). Если не указано нечто иное, то опция, разрешенная Ваучером, является непереносимой. Непереносимая опция автоматически запрещается, если CPE становится привязанным к другому сервис-провайдеру широкополосной услуги связи (broadband service provider, BSP), который отличается от того BSP, для которого опция была разрешена. Переносимая опция сохраняет свое действие независимо от того, перешла ли привязка CPE от одного BSP к другому.
Каждый Ваучер, который может содержать инструкции для разрешения или запрета одной или нескольких опций, ДОЛЖЕН быть заверен цифровой подписью с использованием XML-Signature формата [13]. Перед применением инструкций в Ваучере CPE ДОЛЖЕН проверить сигнатуру подписи и аутентифицировать подписанта.
Ваучер специфичен для одного CPE, и не может использоваться на другом CPE, отличном от того, что указан в Ваучере. Это гарантирует, что механизм, используемый для распространения Ваучеров, может обеспечить привязку разрешения конкретной опции на конкретном CPE.
CPE, поддерживающий использование Ваучеров, должен поддерживать протокол синхронизации времени, такой как NTP или SNTP, чтобы обеспечивать точную информацию о текущих дате и времени. Применение полученного ваучера CPE или сравнение существующего ваучера с датой истечения срока его действия должно происходить только после того, как CPE установит сетевое время.
В Приложении A определены следующие связанные с Ваучером методы этой спецификации:
SetVouchers: позволяет серверу ACS загрузить список ваучеров в CPE. Каждый Ваучер может разрешить или запретить опции, определенные в Ваучере. GetOptions: позволяет Серверу запросить состояние любой опции или всех опций, поддерживаемых CPE.
[C.3. Определение Ваучера]
RPC-метод SetVouchers позволяет серверу ACS разрешить, запретить или изменить состояние одной или нескольких опций. В качестве аргумента SetVouchers принимает массив Ваучеров. Каждый Ваучер в массиве отдельно кодируется Base64.
Перед кодированием Base64 каждый Ваучер представляет собой XML-структуру, использующую XML-Signature формат [13]. Каждый независимо подписанный Ваучер может включать спецификацию одной или нескольких опций. Каждая спецификация опции это структура, определяющая предполагаемое состояние для указанной опции.
Элементы спецификации опции определены в таблице 62. Опция может содержать дополнительные XML-элементы, специфические для конкретной опции. Пример структуры спецификации опции показан на рис. 5. Пример полного подписанного Ваучера показан на рис. 6. В этом примере две отдельные опции разрешены в одном и том же Ваучере.
Таблица 62. Определение спецификации опции.
Имя |
Тип |
Описание |
VSerialNum |
string(64) |
Уникальный серийный номер, идентифицирующий определенный Voucher. Для имеющегося ACS каждому новому созданному Voucher ДОЛЖЕН быть назначен другой серийный номер. Это значение ДОЛЖНО быть уникальным по всем CPE, обслуживаемым сервером ACS, и по всем Ваучерам, выданным имеющемуся CPE в разное время. |
DeviceId |
DeviceIdStruct |
Структура, которая уникально идентифицирует определенный CPE, для которого применяется Voucher. Эта структура определена в таблице 63. На приеме Ваучера CPE ДОЛЖЕН гарантировать, что информация в device ID совпадает с его действующим идентификатором. Если это не так, то CPE ДОЛЖЕН игнорировать Voucher и ответить отказом Request Denied. |
OptionIdent |
string(64) |
Идентификационное имя определенной опции, которая разрешается или запрещается. |
OptionDesc |
string(256) |
Текстовое описание опции. |
StartDate |
dateTime |
Опциональный элемент, дата и время в UTC, когда опция должна быть разрешена (имеет смысл только если Mode = EnableWithExpiration или EnableWithoutExpiration). Если этого элемента нет, или если указанное время уже прошло, то опция разрешается, и разрешается немедленно. |
Duration |
unsignedInt |
Требуется, если Mode = EnableWithExpiration. Для опции, разрешенной с истечением срока действия, этот элемент указывает продолжительность времени, когда опция остается разрешенной, в единицах DurationUnits. Если определена дата начала, то длительность относительна этой даты начала. |
DurationUnits |
string |
Требуется, если Mode = EnableWithExpiration. Этот элемент указывает единицы времени, в которых указывается элемент длительности Duration. Разрешенные значения:
"Days" "Months" |
Mode |
string |
Этот элемент указывает, должна ли быть обозначенная опция разрешена или запрещена, и если разрешена, указывается ли строк её действия. Разрешенные значения:
"Disable" "EnableWithExpiration" "EnableWithoutExpiration" |
Transferable |
boolean |
Опциональный элемент. Значение true (1) показывает, что опция считается переносимой. Это значит, что опция останется разрешенной до любого момента истечения срока действия, независимо от смены сервис-провайдера.
Если этот элемент false (0) или отсутствует, то опция считается непереносимой. Это значит, что опция запрещается при изменении сервис-провайдера, связанным с любым изменении ProvisioningCode, как это определено в Приложении B [17]. |
Таблица 63. Определение DeviceIdStruct.
Имя |
Тип |
Описание |
Manufacturer |
string(64) |
Производитель устройства. Этот параметр используется только для отображения, и его не нужно проверять как часть процесса валидации. |
OUI |
string(6) |
Организационно уникальный идентификатор производителя устройства. Представлен как 6 шестнадцатеричных цифр в верхнем регистре, включая начальные нули. Значение ДОЛЖНО быть корректным OUI, как определено в [9]. |
ProductClass |
string(64) |
Идентификатор класса продукта, для которого применим серийный номер. Т. е. для имеющегося производителя этот параметр используется для идентификации продукта или класса продукта, для которого параметр SerialNumber уникален. |
SerialNumber |
string(64) |
Идентификатор определенного устройства, который уникален для показанного класса продукта и производителя. |
< dsig:Object xmlns="" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="option0">
< Option>
< VSerialNum>987654321< /VSerialNum>
< DeviceId>
< Manufacturer>2Wire< /Manufacturer>
< OUI>00D09E< /OUI>
< ProductClass>Gateway< /ProductClass>
< SerialNumber>123456789< /SerialNumber>
< /DeviceId>
< OptionIdent>Option Name< /OptionIdent>
< OptionDesc>Option Description< /OptionDesc>
< StartDate>20021025T12:06:34< /StartDate>
< Duration>280< /Duration>
< DurationUnits>Days< /DurationUnits>
< Mode>EnableWithExpiration< /Mode>
< /Option>
< /dsig:Object>
Рис. 5. Пример спецификации опции.
< Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
< SignedInfo>
< CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-
20010315">< /CanonicalizationMethod>
< SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#dsa-
sha1">< /SignatureMethod>
< Reference URI="#option0">
< Transforms>
< Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-
20010315">< /Transform>
< /Transforms>
< DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1">< /DigestMethod>
< DigestValue>TUuSqr2utLtQM5tY2DB1jL3nV00=< /DigestValue>
< /Reference>
< Reference URI="#option1">
< Transforms>
< Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-
20010315">< /Transform>
< /Transforms>
< DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1">< /DigestMethod>
< DigestValue>/YX1C/E6zNf0+w4lG66NeXGOQB0=< /DigestValue>
< /Reference>
< /SignedInfo>
< SignatureValue>
KAMfqOSnmGH52qRVGLNFEEM4PPkRSmMUGr2D8E3vwwW280e1Bn5pwQ==
< /SignatureValue>
< KeyInfo>
< KeyValue>
< DSAKeyValue>
< P>
/X9TgR11EilS30qcLuzk5/YRt1I870QAwx4/gLZRJmlFXUAiUftZPY1Y+r/F9bow9s
ubVWzXgTuAHTRv8mZgt2uZUKWkn5/oBHsQIsJPu6nX/rfGG/g7V+fGqKYVDwT7g/bT
xR7DAjVUE1oWkTL2dfOuK2HXKu/yIgMZndFIAcc=
< /P>
< Q>l2BQjxUjC8yykrmCouuEC/BYHPU=< /Q>
< G>
9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFn
Ej6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWRbqN/C/ohNWLx+2J6ASQ7zKTx
vqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSo=
< /G>
< Y>
TBASA/mjLI8bc2KM7u9X6nHHvjmPgZtTBhr1/Fzs2AkdYCYMwyy+v+OXU7u5e18JuK
G7/uolVhjXNSn6ZgObF+wuMoyP/OUmNbSkdN1aRXXHPRsW2CcG3vjfV+Csg/LP3zfD
xDkImsC8LuKXht/g4+nksA/3icRQXWagQJU9pUQ=
< /Y>
< /DSAKeyValue>
< /KeyValue>
< X509Data>
< X509IssuerSerial>
< X509IssuerName>
EMAILADDRESS=name@2wire.com,CN=2Wire,OU=CMS,O=2Wire,L=San\20Jose,
ST=California,C=US
< /X509IssuerName>
< X509SerialNumber>4< /X509SerialNumber>
< /X509IssuerSerial>
< X509SubjectName>
CN=eng.bba.certs.2wire.com,OU=CMS,O=2Wire,L=San\20Jose,ST=CA,C=US
< /X509SubjectName>
< X509Certificate>
MIIEUjCCA7ugAwIBAgIBBDANBgkqhkiG9w0BAQUFADCBhDELMAkGA1UEBhMCVVMxEzARBgNVBAgT
CkNhbGlmb3JuaWExETAPBgNVBAcTCFNhbiBKb3NlMQ4wDAYDVQQKEwUyV2lyZTEMMAoGA1UECxMD
Q01TMQ4wDAYDVQQDEwUyV2lyZTEfMB0GCSqGSIb3DQEJARYQZWJyb3duQDJ3aXJlLmNvbTAeFw0w
MjA5MDUyMDU4MTZaFw0xMjA5MDIyMDU4MTZaMG0xCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJDQTER
MA8GA1UEBxMIU2FuIEpvc2UxDjAMBgNVBAoTBTJXaXJlMQwwCgYDVQQLEwNDTVMxIDAeBgNVBAMT
F2VuZy5iYmEuY2VydHMuMndpcmUuY29tMIIBtzCCASwGByqGSM44BAEwggEfAoGBAP1/U4EddRIp
Ut9KnC7s5Of2EbdSPO9EAMMeP4C2USZpRV1AIlH7WT2NWPq/xfW6MPbLm1Vs14E7gB00b/JmYLdr
mVClpJ+f6AR7ECLCT7up1/63xhv4O1fnxqimFQ8E+4P208UewwI1VBNaFpEy9nXzrith1yrv8iID
GZ3RSAHHAhUAl2BQjxUjC8yykrmCouuEC/BYHPUCgYEA9+GghdabPd7LvKtcNrhXuXmUr7v6OuqC
+VdMCz0HgmdRWVeOutRZT+ZxBxCBgLRJFnEj6EwoFhO3zwkyjMim4TwWeotUfI0o4KOuHiuzpnWR
bqN/C/ohNWLx+2J6ASQ7zKTxvqhRkImog9/hWuWfBpKLZl6Ae1UlZAFMO/7PSSoDgYQAAoGATBAS
A/mjLI8bc2KM7u9X6nHHvjmPgZtTBhr1/Fzs2AkdYCYMwyy+v+OXU7u5e18JuKG7/uolVhjXNSn6
ZgObF+wuMoyP/OUmNbSkdN1aRXXHPRsW2CcG3vjfV+Csg/LP3zfDxDkImsC8LuKXht/g4+nksA/3
icRQXWagQJU9pUSjgdAwgc0wHQYDVR0OBBYEFMTl/ebdHLjaEoSS1PcLCAdFX32qMIGbBgNVHSME
gZMwgZChgYqkgYcwgYQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMREwDwYDVQQH
EwhTYW4gSm9zZTEOMAwGA1UEChMFMldpcmUxDDAKBgNVBAsTA0NNUzEOMAwGA1UEAxMFMldpcmUx
HzAdBgkqhkiG9w0BCQEWEGVicm93bkAyd2lyZS5jb22CAQAwDgYDVR0PAQH/BAQDAgeAMA0GCSqG
SIb3DQEBBQUAA4GBAF1PGAbyvA0p+6o7nXfF3jzAdoHdaZh55C8sOQ9J62IF8D1jl6JxR7pjcCp2
iYmWkwQMncGfq+X8xP7BIqntDmIlYXuDTlXbyxXsu6lnT7nCbJwMwlLOxFwN+Axy7BM3NkAFE5Mb
aaoJWtmD1QrvcAFfDhLeBT+tIRueK7Pq9LDS
< /X509Certificate>
< X509Certificate>
MIICeTCCAeICAQAwDQYJKoZIhvcNAQEEBQAwgYQxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxp
Zm9ybmlhMREwDwYDVQQHEwhTYW4gSm9zZTEOMAwGA1UEChMFMldpcmUxDDAKBgNVBAsTA0NNUzEO
MAwGA1UEAxMFMldpcmUxHzAdBgkqhkiG9w0BCQEWEGVicm93bkAyd2lyZS5jb20wHhcNMDEwNzMx
MDMwNjQ5WhcNMDcwMTIxMDMwNjQ5WjCBhDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCkNhbGlmb3Ju
aWExETAPBgNVBAcTCFNhbiBKb3NlMQ4wDAYDVQQKEwUyV2lyZTEMMAoGA1UECxMDQ01TMQ4wDAYD
VQQDEwUyV2lyZTEfMB0GCSqGSIb3DQEJARYQZWJyb3duQDJ3aXJlLmNvbTCBnzANBgkqhkiG9w0B
AQEFAAOBjQAwgYkCgYEA1ISJbL6i0J/6SBoet3aA8fki8s7pb/QUZueWj+0YKoDaQWh4MUCT0K06
N/0Z2cLMVg8JyezEpdnh3lVM/Ni5ow2Mst4dpdccQQEHouqwNUWIBFU196/LPRyLjoM2NeIXSKMj
AdPwvcenxmqeVBr/ZUmr4JQpdSI2AZJuHvCIjUsCAwEAATANBgkqhkiG9w0BAQQFAAOBgQBa3CCX
ga9L0qrGWxpNj312Az+tYz8bpEp2e2pAVrJHdW/CJ0uRlE341oTkhfYFa5CuuieF7Jcwf1B3+cGo
JrLWqeKqsNnrbmMFC/9hnrLlgZKEKi0POaGSFS/Pw9nodGWFZCiaQmeG+J6CWeASiFMdwgRGvESW
axfzzIKiXsXwkA==
< /X509Certificate>
< /X509Data>
< /KeyInfo>
< dsig:Object xmlns="" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="option0">
< Option>
< VSerialNum>987654321< /VSerialNum>
< DeviceId>
< Manufacturer>2Wire< /Manufacturer>
< OUI>00D09E< /OUI>
< ProductClass>Gateway< /ProductClass>
< SerialNumber>123456789< /SerialNumber>
< /DeviceId>
< OptionIdent>First option name< /OptionIdent>
< OptionDesc>First option description< /OptionDesc>
< StartDate>20021025T12:06:34< /StartDate>
< Duration>280< /Duration>
< DurationUnits>Days< /DurationUnits>
< Mode>EnableWithExpiration< /Mode>
< /Option>
< /dsig:Object>
< dsig:Object xmlns="" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" Id="option1">
< Option>
< VSserialNum>987654322< /VSerialNum>
< DeviceId>
< Manufacturer>2Wire< /Manufacturer>
< OUI>00D09E< /OUI>
< ProductClass>Gateway< /ProductClass>
< SerialNumber>123456789< /SerialNumber>
< /DeviceId>
< OptionIdent>Second option name< /OptionIdent>
< OptionDesc>Second option description< /OptionDesc>
< StartDate>20021025T12:06:34< /StartDate>
< Duration>280< /Duration>
< DurationUnits>Days< /DurationUnits>
< Mode>EnableWithExpiration< /Mode>
< /Option>
< /dsig:Object>
< /Signature>
Рис. 6. Пример подписанного Ваучера.
[Ссылки]
1. TR-069: CPE WAN Management Protocol https://www.broadband-forum.org/pdfs/tr-069-1-1-0.pdf. 2. TR-046: Auto-Configuration Architecture & Framework https://www.broadband-forum.org/pdfs/tr-046-1-0-0.pdf. 3. TR-062: Auto-Config for the Connection Between the DSL Broadband Network Termination (B-NT) and the Network using ATM (TR-037 update) https://www.broadband-forum.org/pdfs/tr-062-1-0-0.pdf. 4. TR-044: Auto-Configuration for Basic Internet (IP-based) Services https://www.broadband-forum.org/pdfs/tr-044-1-0-0.pdf. 5. RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1 http://www.ietf.org/rfc/rfc2616.txt. 6. RFC 2617, HTTP Authentication: Basic and Digest Access Authentication http://www.ietf.org/rfc/rfc2617.txt. 7. RFC 2965, HTTP State Management Mechanism http://www.ietf.org/rfc/rfc2965.txt. 8. Simple Object Access Protocol (SOAP) 1.1 http://www.w3.org/TR/2000/NOTE-SOAP-20000508. 9. Organizationally Unique Identifiers (OUIs) http://standards.ieee.org/faqs/OUI.html. 10. The SSL Protocol, Version 3.0 http://www.netscape.com/eng/ssl3/draft302.txt. 11. RFC 2246, The TLS Protocol, Version 1.0 http://www.ietf.org/rfc/rfc2246.txt. 12. RFC 2132, DHCP Options and BOOTP Vendor Extensions http://www.ietf.org/rfc/rfc2132.txt. 13. XML-Signature Syntax and Processing, http://www.w3.org/2000/09/xmldsig. 14. PKCS #7, Cryptographic Message Syntax Standard http://www.rsasecurity.com/rsalabs/pkcs/pkcs-7/index.html, или http://www.ietf.org/rfc/rfc2315.txt. 15. TR-069 cwmp client implementation: open sources comparison site:stackoverflow.com. 16. TR-069: протокол CWMP для управления сетевыми устройствами. 17. TR-069, Приложение B: параметры CPE. |