Кіріспе
Веб-қызметтер қауіпсіздігі (WS Security, WSS) – веб-қызметтерге қауіпсіздік қолдану үшін SOAP-тың кеңейтімі. Ол веб-қызметтердің техникалық талаптарының құрамына кіреді және OASIS ұйымы тарапынан жарияланды. Протокол хабарламалардың толықтығы мен құпиялылығын қамтамасыз ету тәсілдерін анықтайды және Security Assertion Markup Language (SAML), Kerberos және X.509 сияқты түрлі қауіпсіздік маркерлері форматтарымен байланыс жасауға мүмкіндік береді. Оның негізгі мақсаты – XML қолтаңбасы мен XML шифрлауын пайдаланып, қауіпсіздікті бастапқыдан соңына дейін қамтамасыз ету.
Ұңғыдан-ұңғыға қауіпсіздік
Егер SOAP делдалы қажет болса, және делдалға сенім де аз, артық та емес болса, хабарламаларға қол қою және қажет болған жағдайда шифрлау қажет. Мұндай жағдай желі периметрінде TCP (таратуды басқару протоколы) қосылымдарын аяқтайтын қолданба деңгейіндегі прокси болғанда туындауы мүмкін.
Қайталамау
Қайталамаудың бір жолы – операцияларды нақты қауіпсіздік шараларымен қорғалған аудиттік ізге жазу. WS Security қолдайтын цифрлық қолтаңбалар қайталамауды тікелей және растауға болатын дәлелдейді.
Басқа тасымалдау байланыстары
SOAP қызметтерінің көбі HTTP байланыстарын қолданады, бірақ теориялық тұрғыдан алғанда JMS немесе SMTP сияқты басқа байланыстар да пайдаланылуы мүмкін; мұндай жағдайда бастан-аяқ қауіпсіздік қамтамасыз етілуі керек.
Кері прокси/жалпы қауіпсіздік токені
Веб-қызмет тасымалдау қабатының қауіпсіздігіне сүйенсе де, егер қызмет (HTTP) кері прокси арқылы жіберілсе, қызметке соңғы пайдаланушы туралы ақпарат қажет болуы мүмкін. WSS қаптамасы кері прокси растаған соңғы пайдаланушының токенін жеткізу үшін қолданылуы мүмкін.
Мәселелер
Егер қызмет провайдері мен тұтынушы арасында жиі хабар алмасу болса, XML SIG және XML ENC-тің қосымша шығындары маңызды болады. Егер бастан-аяқ қауіпсіздік қажет болса, WS SecureConversation сияқты протокол осы шығындарды азайтуға көмектеседі. Егер жеткілікті болса, тек шифрлау немесе қол қоюды пайдаланыңыз, себебі олардың біріктірілуі жеке операциялардың қосындысынан әлдеқайда баяу болады. Төмендегі өнімділік туралы мәліметтерге қараңыз. SOAP, SAML, XML ENC, XML SIG сияқты бірнеше XML схемаларын біріктіру, канонизация және талдау сияқты кітапхана функцияларының әртүрлі нұсқаларына тәуелділікті тудыруы мүмкін, оларды қолданба серверінде басқару қиын. Егер тек CBC режимінде шифрлау/дешифрлеу қолданылса немесе CBC режимінде дешифрлеу, дешифрлеуден бұрын қауіпсіз тексеру сомасы (қолтаңба немесе MAC) тексерілмей қолданылса, онда іске асылу оракул шабуылдарына осал болуы мүмкін.
Тарих
Веб-қызметтер бастапқыда негізгі тасымалдау қауіпсіздігіне сүйенді. Шындығында, көптеген жүзеге асырулар әлі де солай істейді. SOAP HTTP және SMTP сияқты бірнеше тасымалдау байланыстарын қолдайтындықтан, SOAP деңгейінде қауіпсіздік механизмі қажет болды. Тасымалдау қауіпсіздігіне тәуелділіктен туындаған бастан-аяқ қауіпсіздіктің болмауы да бір фактор болды. Протокол бастапқыда IBM, Microsoft және VeriSign компанияларымен әзірленді. Олардың бастапқы спецификациясы 2002 жылғы 5 сәуірде жарияланды, ал 2002 жылғы 18 тамызда оған қосымша енгізілді. 2002 жылы OASIS WSS техникалық комитетіне екі ұсыныс ұсынылды: Веб-қызмет қауіпсіздігі (WS Security) және Веб-қызмет қауіпсіздігі қосымшасы. Нәтижесінде WS Security жарияланды: WS Security 1.0 2004 жылғы 19 сәуірде шығарылды. 1.1 нұсқасы 2006 жылғы 17 ақпанда шығарылды. OASIS жариялаған 1.0 нұсқасы IBM, Microsoft және VeriSign консорциумы ұсынған стандарттан бірқатар маңызды айырмашылықтарды қамтиды. Көптеген жүйелер ұсынылған стандартты пайдаланып жасалды және осы айырмашылықтар оларды OASIS стандартына сәйкес жасалған жүйелермен үйлесімсіз етті. Кейбіреулер OASIS-ке дейінгі спецификацияны "WS Security Draft 13" немесе Web Services Security Core Specification деп атайды. Дегенмен, бұл атаулар кеңінен танымал емес, тіпті бүгінде қолданбаның немесе сервердің OASIS-ке дейінгі немесе кейінгі спецификацияны қолданатынын анық анықтау қиын. Көптеген форум жазбаларында "WSSE" кілт сөзі OASIS-ке дейінгі нұсқаға сілтеме жасау үшін қолданылады, себебі ол URL-ге "wsse" XML атау кеңістігі префиксін қолдануды міндеттейді (және әртүрлі нұсқалардың ұқсас URL-дері). Протокол ресми түрде WSS деп аталады және Oasis Open-де комитет арқылы әзірленді.
WS Security 1.0 was released on 19 April 2004. Version 1.1 was released on 17 February 2006. The version 1.0 standard published by OASIS contained a number of significant differences to the standard proposed by the IBM, Microsoft and VeriSign consortium. Many systems were developed using the proposed standard and the differences made them incompatible with systems developed to the OASIS standard. Some refer to the pre OASIS specification as the "WS Security Draft 13", or as the Web Services Security Core Specification. However these names are not widely known and indeed today it is hard to clearly identify whether an application or server is using a pre or post OASIS specification. Most forum posts use the keyword "WSSE" to refer to the pre OASIS version because it mandated the use of a "wsse" XML namespace prefix to the URL (and similar URLs of different versions). The protocol is officially called WSS and developed via committee in Oasis Open.
Қоса берілген ерекшеліктер
WS Security-мен байланысты келесі жобалық талаптар бар: WS Federation, WS Privacy, WS Test. WS Security-мен байланысты келесі мақұлданған спецификациялар: WS Policy, WS SecureConversation, WS Trust, ID WSF. WS Security мына архитектураларда қолданылады: TAS3.
Баламалы
Нысаннан нүктеге дейінгі жағдайларда құпиялылық пен деректердің тұтастығын веб-қызметтерде, мысалы, HTTPS арқылы хабарламаларды жіберу арқылы, Транспорттық қабатты қауіпсіздікті (TLS) қолдану арқылы қамтамасыз етуге болады. Алайда, WS Security бастауыш түйіннен хабар жіберілгенге дейін хабарламалардың тұтастығы мен құпиялығын сақтаудың толыққанды мәселесін шешеді, бұл соңғы нүктеден соңғы нүктеге дейінгі қауіпсіздік деп аталады. TLS қолдану кілттерді және хабарлама қолтаңбаларын жіберу алдында XML форматына енгізу қажеттілігін жойып, байланыс кезіндегі қосымша шығындарды едәуір азайтады. TLS пайдаланудағы қиындық – хабарламалар қолданба деңгейіндегі прокси-сервер арқылы өтуі керек болған жағдайда, себебі прокси-серверге маршруттау үшін сұранысты көру қажет. Мұндай жағдайда сервер сұранысты клиенттен емес, прокси-серверден көреді; бұл мәселені шешу үшін прокси-серверде клиенттің кілті мен сертификатының көшірмесі болуы мүмкін, немесе серверге сенімді қол қою сертификаты болуы керек, оның көмегімен клиенттің кілті мен сертификатына сәйкес келетін жұпты жасауға болады. Дегенмен, прокси-сервер хабарламамен тікелей жұмыс істемейтіндіктен, ол толыққанды қауіпсіздікті қамтамасыз етпейді, тек нысаннан нүктеге дейінгі қауіпсіздікті ғана қамтамасыз етеді.