Резюме: Вие наистина не искате да правите това.
Има само един начин да направите това за щастие и той е грозен, ненадежден и несигурен. Трябва да конфигурирате вашия прокси да действа като HTTPS терминатор, който прихваща връзките, направени от клиента, и създава нова връзка към целевия сайт. Сега можете да промените данните, преди да ги изпратите на клиента.
Клиентът обаче очаква криптирана връзка, подписана с правилния сертификат. Вие нямате този сертификат, така че всички браузъри просто ще прекъснат връзката или, ако подпишете отново със собствен сертификат, ще се оплачете за невалиден сертификат. Това ще доведе до огромни съобщения за грешка на всеки клиент, така че това ще бъде проблем.
Можете да избегнете това, като инсталирате нов самоподписан основен сертификат на всички ваши клиентски машини, валиден за всички сайтове, и подпишете данните с този сертификат. Сега вашите клиенти ще приемат връзката и с радост ще покажат модифицираните сайтове.
Сега обаче сте прекъснали веригата на доверие, подразбираща се от TLS, и вече сте единствено отговорни за сигурността между клиента и дестинацията. Когато се свържа с моята банка, наличието на TLS ми гарантира, че а) съм свързан с истинския уебсайт на моята банка и б) че никой не може да прихване моите, например, данни за вход. Нарушихте както A, така и B, защото вече не мога да вярвам, че съм свързан с истинския уебсайт, който възнамерявах да посетя, и вие или злонамерена трета страна можете да прихванете и прочетете трафика между мен и моята банка само чрез злоупотреба/ хакване на вашия прокси сървър.
Освен това с техники като HTTP Public Key Pinning както сайтовете, така и браузърите се въоръжават срещу доставчиците на защитни стени, AV компании и интернет доставчици с лоши идеи като тази. Защото това е точно това, много лоша идея.
Моля те, моля те, не прави това.
person
Alex
schedule
01.06.2015