Валидиране на Shibboleth сесия в Tomcat

Имам уеб сървър Apache/2.2.15 с модулите mod_shib, mod_ssl и mod_jk. Имам виртуален хост, който е конфигуриран (приложен по-долу) с AuthType Shibboleth, SSLCertificates и JKMount за насочване на заявки с помощта на AJP към моя Tomcat 8 сървър, след като сесията е успешно установена с правилния IDP. Когато моята http заявка достигне моя сървър за приложения, мога да видя различните Shib-* заглавки, заедно с атрибутите, които моят SP поиска от IDP.

Има ли начин сървърът ми за приложения да потвърди бисквитката shibsession или други заглавки? Опитвам се да се предпазя от сценария, при който моят уеб сървър, който се намира в DMZ, е по някакъв начин компрометиран и нападател прави заявки към сървъра ми за приложения, който се намира във вътрешна зона.

Има ли начин да потвърдя подпис на нещо, налично в заглавките, за да гарантирам, че съдържанието наистина произхожда от IDP и не е произведено от нападател, който е поел контрола над моя уеб сървър?

Има ли нещо в библиотеката OpenSAML, което мога да използвам, за да постигна това?


person Daniel Faltyn    schedule 22.05.2015    source източник


Отговори (1)


Има ли начин сървърът ми за приложения да потвърди бисквитката на shibsession или други заглавки?

mod_shib вече е свършил тази трудна работа вместо вас. След валидиране на връщането на информация от доставчика на идентичност (IdP), mod_shib след това задава променливи на средата (не могат да бъдат зададени от клиента), за да може вашето приложение да чете и да се доверява. Внедряването на OpenSAML във вашето приложение не е необходимо, тъй като mod_shib е свършил работата по валидирането вместо вас.

От документи:

Най-безопасният механизъм и по подразбиране за сървъри, които го позволяват, е използването на променливи на средата. Терминът е донякъде общ, тъй като променливите на средата не означават непременно действителната среда на процеса в традиционния смисъл, тъй като често няма отделен процес. Това наистина се отнася до набор от контролирани елементи от данни, които уеб сървърът доставя на приложенията и които не могат да бъдат манипулирани по никакъв начин извън уеб сървъра. По-конкретно, клиентът няма думата в тях.

person samottenhoff    schedule 08.06.2015
comment
Благодаря ви и разбирам, че mod_shib прави това, но дори според приложеното доказателство, което сте дали ... не може да бъде манипулирано по никакъв начин извън уеб сървъра. Векторът на атаката, който ме притеснява, е ако самият уеб сървър е компрометиран! В моя сценарий уеб сървърът, на който планирах да поставя mod_shib, живееше в DMZ, а сървърът на приложения в по-сигурна вътрешна зона, допълнително защитен от защитна стена, с acls и т.н. Търсех обаче нещо в Shibboleth, което да мога да допълня лост за установяване на доверие между сървъра на приложения и уеб сървъра или сървъра на приложения и idp. - person Daniel Faltyn; 08.06.2015
comment
Искате да свършите работата по разглобяването на SAML твърдението и да видите дали информацията е истинска на доверен сървър. Ако нямате доверие на уеб сървъра, не използвайте mod_shib на този сървър. Или използвайте mod_shib на доверен сървър, или направете своя собствена SAML работа с OpenSAML директно във вашето приложение. - person samottenhoff; 08.06.2015
comment
Благодаря ви отново. Опциите в таблицата в момента са 1) Преместете уеб сървъра, който изпълнява mod_shib, в същата зона като сървъра на приложения, както предлагате 2) накарайте IDP да изпратят атрибут, който е подписан, който моят сървър на приложения може да провери. Като цяло вариант 2 би бил труден за постигане, но тъй като списъкът ми с вътрешно разселени лица е малък и мога лесно да им повлияя, това е възможност. Директното използване на OpenSAML изглежда по-трудно и податливо на грешки от моя страна, за да го направя правилно. Благодаря ви отново. - person Daniel Faltyn; 09.06.2015
comment
Да, валидирането на подписите е трудна работа, особено ако получавате твърдения от различни IdPs като Shibboleth, simpleSaml и ADFS. Всяко твърдение ще бъде малко по-различно. Ако IdP софтуерът е последователен, това ще бъде по-малко работа. Има някои солидни библиотеки също като spring-security-saml. - person samottenhoff; 09.06.2015