Чем удивило мобильное приложение оператора
Очередной пример, как легко проспать классную фичу.
Недавно взял симку одного нашего оператора. Хотелось попробовать новый безлимитный интернет по всей России – всё равно пока аналогов у него нет. Поставил их приложение из App Store, открыл и подумал, что меня взломали.
Что удивило
Мы с вами любим обсуждать новые технологии, но очень часто пропускаем момент, когда они внедряются в жизнь. За 5 лет наберу полно таких примеров по одной только Apple.
Сколько лет кричали про процессоры TSMC в iPhone – и вот мы их носим, радуемся. Мечтали об AMOLED в продуктах из Купертино – вот же он, на руке в Apple Watch. Не верили, что однажды iPhone начнёт определять силу нажатия и тактильно вибрировать. А теперь даже плюёмся 3D Touch.
Так вот, точно так же многие из нас пропустили взлёт LTE по всей стране. Теперь мобильный интернет на улице может быть быстрее твоего домашнего – и оставаться таким же стабильным. И точно так же я не заметил, как лучшие операторы просто перестали запрашивать пароли и явки. Они всё равно уже всё обо мне знают.
Про других не знаю. Но у Билайна, как оказалось, есть крутая фишка в приложении «Мой Билайн». О ней я когда-то читал на западном сайте, подумал «у нас никогда такого не будет» и, конечно, забыл.
Все абоненты Билайн могут заходить в приложение «Мой Билайн» без логинов и паролей. Система определяет пользователя по уникальному идентификатору абонента – и сразу пускает внутрь личного кабинета. Вроде бы такая мелочь, но ведь удобная.
Как это работает: когда у абонента отключен wi-fi и он находится в сетях 3G или LTE, при открытии приложение делает запрос сети оператора. Запрос доходит до инфраструктуры Билайн, где определяется, что это за абонент, и какой у него номер телефона. Теперь все сервисы Билайн могут потенциально определять, кто это такой – и может провести авторизацию.
Эта технология называется «header enrichment».
Представьте, что такая авторизация появилась бы в других приложениях вместо PIN-кодов и одноразовых паролей. Удобно же!
Ещё можно поставить обычный числовой пароль и/или вход по отпечатку пальца Touch ID в качестве дополнительной меры безопасности.
Что вообще умеет их мобильное приложение
Мы теперь чаще пользуемся пакетными тарифами – с трафиком, звонками и SMS-ками. Время такое, да и выгодно это. Поэтому баланс проверяем обычно не ради суммы на счету, а для того, чтобы узнать остаток пакетов. Особенно интернета.
К тому же обороты набирают удобные семейные услуги. Например, делимся трафиком с родными, даём им свои гигабайты и наоборот. Всё это требует дополнительного контроля. Без приложений оператора фактически не обойтись при активном использовании смартфона в сотовой сети.
«Мой Билайн» – нужная вещь, если ты, конечно, их абонент. Приложение может всё, что ожидаешь от софта оператора:

What is HTTP Header Enrichment?
HTTP Header Enrichment is the process of adding data fields in the HTTP header used by downstream servers. This is commonly used in mobile networks by adding user and device identifiers such as IMEI, IMSI, MSISDN UID or other data to identify subscriber or mobile device details.
HTTP Header Enrichment is usually done at the Gateway GPRS Support Node or at other network boundaries by gateway or edge products with this feature capability.
Additional information is typically added to HTTP headers to be processed by other systems for traffic steering, processing traffic for additional add-on services or processed by billing, analytics or subscriber application systems.
How HTTP Header Enrichment Works
The HTTP protocol allows custom data records to be added into the HTTP header. The format of this is usually:
X-your-data: xxxxxxxxxxxxxxxxxxxxxxxx
Injecting the MSISDN into the HTTP Header might look like:
X-MSISDN: xxxxxxxxxxxxxxxxxx
Practically anything can be added to HTTP headers. Since HTTP is a textual protocol, processing this information later is a simple operation
Example Use Case
A use case example is presented. The code to implement this with the A10 aFleX language is presented in the next section.
Adding the MSISDN Subscriber information to the HTTP Header.
Code Sample
How A10 Networks Can Help
The A10 Networks Thunder platform of products provides a broad set of network and security features.
Boost Revenue with HTTP Header Enrichment in Mobile Networks
Provide unique and differentiated subscriber experiences and benefit from new service monetization opportunities with A10 HTTP header enrichment solution
Header enrichment что это
1. Термины и определения
1.1. Оператор — ПАО «ВымпелКом», осуществляющее свою деятельность в соответствии с законодательством РФ и условиями выданных лицензий под товарным знаком «Билайн».
1.2. Личный кабинет — автоматизированный WEB-интерфейс системы самообслуживания Абонентов, заключивших с Оператором Договор об оказании услуг связи «Билайн».
1.3. Пароль — буквенно-цифровой код для доступа в Личный кабинет и мобильное приложение «Билайн».
1.4. Логин — выделенный в соответствии с Договором об оказании услуг связи «Билайн» абонентский номер в коде DEF или цифро-буквенная комбинация символов, которая отвечает требованиям безопасности и возможности идентификации в системе самообслуживания и управления сервисами и услугами.
1.5. Абонент — физическое или юридическое лицо, заключившее с Оператором Договор об оказании услуг связи «Билайн».
1.6. Регистрация — первичный ввод логина и пароля для регистрации в Личном кабинете.
1.7. Авторизация (идентификация) — ввод Абонентом логина и пароля для целей использования сервисов самообслуживания, подключенными Абонентом в рамках Личного кабинета и/или Приложения «Мой Билайн».
1.8. Header Enrichment (HE) — механизм позволяющий определять выделенный абоненту номер по Договору об оказании услуг связи «Билайн».
1.9. Мобильное приложение «Мой Билайн» (Приложение «Мой Билайн») — мобильное приложение, устанавливаемое на абонентское устройство и позволяющее Абоненту подключать/отключать услуги Оператора, а также оплачивать эти услуги с использованием Банковской карты. Приложение позволяет осуществлять управление сервисами и услугами через WEB-интерфейс, используя логин и пароль Личного кабинета.
1.10. Банковская карта — кредитная, дебетовая, электронная и классическая банковская карта, используемая Абонентом, являющимся ее держателем, для оплаты услуг связи.
1.12. WEB-интерфейс системы самообслуживания и управления сервисами и услугами(WEB-интерфейс) — программный комплекс, обеспечивающий управление системой самообслуживания, сервисами и услугами, предоставляемых Оператором Абоненту, с использованием оконечного оборудования Абонента через сеть Интернет.
2. Общие положения
2.2. Мобильное приложение «Мой Билайн» предоставляется Абоненту на условиях простой неисключительной лицензии «как есть» и может быть использовано Абонентом отдельно от Личного кабинета. В этих целях абонент загружает Приложение, которое становится доступным при авторизации с использованием логина и пароля. Функционал данного приложения может отличаться от сервиса, доступного Абоненту при входе в Личный кабинет на Сайте Оператора.
2.3. Условия пользования услугами, указанными в пп.2.1 и 2.2 настоящих Условий, стоимость и условия их тарификации указываются на Сайте Оператора. Заказывая данные услуги, Абонент считается ознакомленным и согласившимся с правилами их использования, стоимостью и порядком их тарификации.
Оказание услуг по организации проведения платежей по пополнению лицевого счета с использованием банковских карт, в том числе с использованием технологии Apple Pay, Google Pay, Samsung Pay, осуществляется Акционерным обществом «Национальная Сервисная Компания» на условиях публичной оферты.
2.4. Все действия Абонента по управлению сервисами и услугами с использованием WEB интерфейса, связанные с изменением условий оказания услуг, являются соответствующим изменением положений Договора об оказании услуг связи «Билайн».
2.5. При использовании сервисов Личного кабинета и Мобильного приложения «Мой Билайн» Оператор использует механизм автоматического определения абонентского номера («НЕ»), который позволяет перейти к любым доступным сервисам без дополнительной идентификации. В целях повышения защищенности использования WEB интерфейса Абонент может воспользоваться функцией отключения механизма «НЕ».
2.6. За использование Личного кабинета и Мобильного приложения «Мой Билайн» плата не начисляется и не взимается. Интернет-трафик, генерируемый Мобильным приложением «Мой Билайн» в сети Билайн, не оплачивается, в роуминге (национальном и международном) трафик оплачивается согласно тарифам Оператора. Стоимость подключения опции, услуги или переход на новый тарифный план определяется соответствующим тарифным планом, размещенным на Сайте Оператора.
2.7. Для использования отдельных сервисов и подключения услуг могут быть использованы персональные данные Абонента и иная конфиденциальная информация. Абонент подтверждает свое согласие на использование такой информации на WEB-странице Личного кабинета Сайта Оператора.
2.8. Соглашаясь с настоящими Условиями, Абонент выражает Оператору согласие на обработку указанных ниже его персональных данных в целях:
— идентификация и регистрация Абонента в WEB-интерфейсе, а также реализация функционала WEB-интерфейса;
— оказание услуг связи (включая обработку персональных данных при уточнении сведений, указанных в Договоре об оказании связи «Билайн»/обновления персональных данных);
— обезличивание персональных данных;
— проведение исследований (сегментирование информации в результате построения семантических/статистических/аналитических/математических/скоринговых моделей на основе обрабатываемых персональных данных, а также при обработке обезличенных персональных данных);
— улучшение сервисов, продуктов и услуг Оператора;
— предоставление Оператором Абоненту информации об услугах Оператора и партнерах Оператора (в том числе информирование Абонента о предоставляемых партнерами Оператора товарах, работах, услугах партнеров Оператора, включая рекламу партнеров Оператора);
— предоставление товаров/работ/услуг Оператора и партнеров Оператора.
Перечень обрабатываемых персональных данных:
— сведения об Абоненте Оператора, указанные в заключенных с Оператором договорах об оказании услуг подвижной радиотелефонной связи / услуг связи по передаче данных и телематических услуг связи, в том числе Билайн ТВ и Домашний Интернет Оператора: фамилия, имя и отчество; дата и место рождения; пол; гражданство; документ, удостоверяющий личность / миграционная карта (серия и номер, когда и кем выдан, код подразделения); адрес регистрации/адрес проживания; адрес электронной почты/контактный телефон; телефонный номер; код идентификации; ИНН.
— сведения об Абоненте Оператора, полученные Оператором в результате оказания услуг подвижной радиотелефонной связи / услуг связи по передаче данных и телематических услуг связи, в том числе Билайн ТВ и Домашний Интернет Оператора: номера телефонов, пользователем которых является Абонент, сведения о местонахождении абонентского оборудования при получении услуг связи; сведения об оплате оказанных услуг связи; сведения об абонентском оборудовании, а также его идентификаторах: IMEI, IMSI, MSISDN, IP-адреса, MAC-адреса, cookie id.
— сведения/пользовательские данные, полученные в результате использования WEB-интерфейса: идентификаторы устройства Абонента (Google AID, Apple IDFA, Android ID, IDFV и др.); User-Agent; ClientID (идентификатор Пользователя); экранное разрешение; сведения об абонентском оборудовании при использовании WEB-интерфейса; сведения о местонахождении абонентского оборудования при использовании WEB-интерфейса.
Перечень действий/операций, совершаемых с вышеуказанными персональными данными: сбор, запись, систематизация, накопление, хранение, уточнение (обновление, изменение), извлечение, использование, обезличивание, блокирование, удаление, уничтожение; указанные операции совершаются с использованием средств автоматизации или без их использования.
Абонент может отозвать согласие на обработку Оператором персональных данных в вышеуказанных целях (за исключением целей оказания услуг связи; идентификации и регистрации Абонента в WEB-интерфейсе, а также реализации функционала WEB-интерфейса): (1) посредством направления письменного заявления в произвольной форме с указанием сведений, по которым Оператор может идентифицировать Абонента; (2) посредством звонка в колл-центр Оператора по номеру 0611, в ходе звонка Абонент должен предоставить Оператору сведения, необходимые для проведения идентификации такого Абонента; (3) посредством направления письменного заявления в произвольной форме с адреса электронной почты, который указан в договоре оказания услуг связи Абонента, на электронную почту Оператора otvet@beeline.ru; заявление должно содержать сведения, по которым Оператор может идентифицировать Абонента; (4) посредством чата Мобильного Приложения «Мой Билайн» (5) по иным каналам обслуживания, удобным для Абонента способом, при условии предоставления Абонентом сведений, по которым Оператор может идентифицировать Абонента.
Срок обработки персональных данных: в течение срока оказания услуг связи/использования WEB-интерфейса и до истечения 5 (пяти) лет с момента прекращения оказания услуг связи.
Оператор может передавать третьим лицам результаты обработки обобщенной статистической информации для проведения исследований, выполнения работ или оказания услуг; Оператор передает третьим лицам указанную информацию без передачи персональных данных/обезличенных персональных данных.
2.9. Совершая платёж по пополнению лицевого счёта с использованием банковских карт, в том числе с использованием технологии Apple Pay, Google Pay, Samsung Pay и соглашаясь с условиями публичной оферты, Абонент даёт своё согласие на передачу данных, а именно, адрес электронной почты и информация о совершаемом платеже Акционерному обществу «Национальная Сервисная Компания» для цели по проведению платежа по пополнению лицевого счёта с использованием банковских карт, в том числе с использованием технологии Apple Pay, Google Pay, Samsung Pay. Оператор гарантирует защиту передаваемых данных Акционерному обществу «Национальная Сервисная Компания» в объеме не меньшем чем обеспечивается самим Оператором.
2.10. В зависимости от развития системы самообслуживания состав доступных для Абонента сервисов в Личном кабинете и Мобильном приложении «Мой Билайн» может быть изменен Оператором без предварительного уведомления, а настоящие Условия изменены исключительно в соответствии с принятым Оператором решением.
2.11. Личный кабинет может быть использован Оператором для информирования об изменении порядка оказания услуг связи, а также состава и стоимости предлагаемых услуг.
2.12. Сервис управления услугами используется исключительно в соответствии с действующим законодательством. В случае его противоправного использования доступ Абонента прекращается незамедлительно.
2.13. Личный кабинет не может быть использован Абонентом в целях извлечения прибыли в любых доступных формах.
2.14. Обработка персональных данных Абонента осуществляется в соответствии с политикой «Обработка персональных данных».
2.15. Личный кабинет Абонента и Мобильное приложение «Мой Билайн» являются каналами удаленного взаимодействия Абонента и Оператора наряду с колл-центром (звонок по номеру 0611), отправкой сообщений Оператору по электронной почте otvet@beeline.ru и иными каналами удаленного взаимодействия.
3. Порядок предоставления и использования
3.1. При первичном посещении Личного кабинета на WEB-странице Сайта Оператора или через Мобильное приложение «Мой Билайн» Абонент проходит процедуру регистрации, которая может быть произведена следующими способами:
3.1.1. Абонент запрашивает пароль путем внесения в специальную форму номера своего мобильного телефона, и получает в ответ SMS-сообщение с паролем. Путем ввода логина (номер своего мобильного телефона) и пароля Абонент производит регистрацию в Личном кабинете. В регистрации может быть отказано в случае неоднократных некорректных вводов пароля и/или логина;
3.1.2. Абонент непосредственно обращается в офис Оператора для получения пароля;
3.1.3. Иным способом, указанном на сайте Оператора или в интерфейсе Мобильного приложения «Мой Билайн».
3.2. Использование Личного кабинета предоставляет возможность управлять подключенными сервисами и услугами в рамках действующего Договора об оказании услуг связи «Билайн».
3.3. Доступ в Личный кабинет и к Мобильному приложению «Мой Билайн» прекращается с момента прекращения действия Договора об оказании услуг связи «Билайн». Также доступ может быть приостановлен в случае нарушения Абонентом своих обязательств по указанному договору (в том числе, неоплаты задолженности за оказанные услуги связи) или положений настоящих Условий.
3.4. Абонент сам за свой счет обеспечивает доступ в Интернет в целях использования WEB-интерфейса, а также настройку и защиту своего оборудования, с которого производится доступ в Личный кабинет и управлению сервисами и услугами.
3.5. Все действия в Личном кабинете после регистрации Абонента и через активированное Мобильное приложение «Мой Билайн» считаются произведенными этим Абонентом лично, пока не будет доказано, что несанкционированный доступ был произведен в результате неправомерных действий третьих лиц. В случае несогласия Абонентов с изменением в настоящих Условиях или функционала системы самообслуживания Абонент вправе прекратить ее использование. Возобновление использования WEB-интерфейса системы самообслуживания означает подтверждение согласия Абонента с произведенными изменениями.
4. Ответственность.
4.1. Абонент несет ответственность за сохранение полученного при регистрации пароля и логина, позволяющих идентифицировать Абонента при получении доступа к Личному кабинету и Мобильному приложению «Мой Билайн», а также за все возникающие в результате этого последствия.
4.2. Предоставление Абонентом возможности использования третьими лицами абонентского устройства (мобильный телефон, планшетный компьютер и др.), с которого возможен доступ в Личный кабинет и смена полученного для входа на WEB-страницу пароля, является безусловным основанием для освобождения от ответственности Оператора за последствия несанкционированного использования Личного кабинета третьими лицами.
4.3. В случае согласия другого Абонента, возможно использование WEB-интерфейса для управления сервисами и услугами через Личный кабинет такого Абонента. В этом случае, Абонент, присоединивший Личный кабинет несет всю ответственность за свои действия и сохранение конфиденциальной информации и персональных данных, доступных в присоединенном Личном кабинете.
4.4. Абонент, давая свое согласие на доступ и управление своим Личным кабинетом другому лицу, принимает всю ответственность за действие такого лица по управлению сервисами и услугами в рамках Договора об оказании услуг связи «Билайн», а также за сохранение таким лицом всей конфиденциальной информации и персональных данных, доступ к которым может быть осуществлен через присоединенный Личный кабинет.
4.5. Абонент, используя сервисы Личного кабинета и Мобильного приложения «Мой Билайн», в том числе, по созданию привязки к различным персональным страницам в социальных сетях, несет ответственность за использование несертифицированного оборудования и программного обеспечения, которое может нанести ущерб работоспособности сайта Оператора и корректности использования сервисов Личного кабинета.
4.6. Абонент обязуется принять надлежащие меры по настройке своего оборудования, которая препятствовала бы недобросовестному использованию системы самообслуживания и управления сервисами и услугами оператора третьими лицами, а также оперативно реагировать при обнаружении случаев такого использования. Оператор не несет ответственность за несанкционированное использование сервисов Личного кабинета Абонента и Мобильного приложения «Мой Билайн», которое произошло не по вине Оператора, а также явилось результатом некорректных действий Абонента по использованию сервисов и управлению подключенными услугами.
4.7. Оператор освобождается от ответственности за прямой и косвенный ущерб, причиненный Абоненту в результате перерывов в функционировании Личного кабинета в связи с проводимыми техническими и профилактическими работами на сети Оператора, а также в результате перерыва сеанса связи, невозможности установления соединения с сайтом Оператора, на котором размещен Личный кабинет, изменения функций Личного кабинета, а также действий третьих лиц.
5. Прочие условия и ограничения.
5.1. Совершение Абонентом действий, предусмотренных настоящими Условиями для начала пользования Личного кабинета и Мобильного приложения «Мой Билайн», считается полным и безоговорочным согласием Абонента с настоящими Условиями и содержащимися в них ограничениями.
5.2. Регистрация в Личном кабинете означает согласие Абонента со всеми положениями настоящих Условий.
5.3. Функции всех сервисов и услуг доступны для Абонента в полном объеме, только при наличии у Абонента доступа к сети Интернет в соответствии с условиями Договора об оказании услуг связи «Билайн» и выбранного Абонентом Тарифного плана.
5.4. При использовании сервисов Личного кабинета и Мобильного приложения «Мой Билайн» для управления подключением сервисов и услуг возможны ограничения в связи с использованием некоторых видов абонентских терминалов, которые могут не поддерживать необходимые для подключения сервисов и услуг технические функции.
5.5. Оператор оставляет за собой право изменять и (или) дополнять настоящие Условия в любое время. Изменения в Условия будут доступны посредством соответствующего раздела Мобильного приложения «Мой Билайн». Дальнейшее использование Личного кабинета и Мобильного приложения «Мой Билайн» Абонентом после любых подобных изменений означает согласие Абонента с такими изменениями и (или) дополнениями.
5.6. Во всём остальном, что прямо не предусмотрено настоящими Условиями, Абонент и Оператор руководствуются Договором об оказании услуг связи «Билайн».
Экзотичные заголовки HTTP
Атака XSS (межсайтовый скриптинг) это тип атаки, при котором вредоносный код может быть внедрён в атакуемую страницу.
Такой тип атаки легко обнаружить и браузер вполне может с этим справиться: если в исходном коде содержится часть запроса, то это может оказаться угрозой.
И заголовок X-XSS-Protection управляет этим поведением браузера.
Буду использовать Google Chrome 55.
Без заголовка
Ничего не произойдёт, браузер успешно заблокирует атаку. Chrome, по умолчанию, блокирует угрозу и сообщает об этом в консоли.
Он даже выделяет проблемный участок в исходном коде.
X-XSS-Protection: 0
X-XSS-Protection: 1
Страница была очищена из-за явного указания заголовка.
X-XSS-Protection: 1; mode=block
В этом случае атака будет предотвращена путём блокирования загрузки страницы.
X-XSS-Protection: 1; report=http://localhost:1234/report
Атака предотвращена и сообщение об этом отправлено по соответствующему адресу.
X-Frame-Options
При помощи данного заголовка можно защититься от так называемого Кликджекинга [Clickjacking].
Представьте, что у злоумышленника есть канал на YouTube и ему хочется больше подписчиков.
Он может создать страницу с кнопкой «Не нажимать», что будет значить, что все на неё обязательно нажмут. Но поверх кнопки находится абсолютно прозрачный iframe и в этом фрейме прячется страница канала с кнопкой подписки. Поэтому при нажатии на кнопку, на самом деле пользователь подписывается на канал, если конечно, он был залогинен в YouTube.
Сперва нужно установить расширение для игнорирования данного заголовка.
Создадим простую страницу.
Как можно заметить, я разместил фрейм с подпиской прям над кнопкой (z-index: 1) и поэтому если попытаться на неё нажать, то на самом деле нажмётся фрейм. В этом примере фрейм не полностью прозрачен, но это исправляется значением opacity: 0.
На практике, такое не сработает, потому что у YouTube задан нужный заголовок, но смысл угрозы, надеюсь, понятен.
Для предотвращения страницы быть использованной во фрейме нужно использовать заголовок X-Frame-Options.
Без заголовка
Все смогут встроить наш сайт по адресу localhost:1234 во фрейм.
X-Frame-Options: deny
Страницу вообще нельзя использовать во фрейме.
X-Frame-Options: sameorigin
Только страницы с одинаковым источником смогут встраивать во фрейм. Источники совпадают, если домен, порт и протокол одинаковые.
X-Frame-Options: allow-from localhost:4321
Похоже, что Chrome игнорирует такую опцию, т.к. существует заголовок Content-Security-Policy (о ней будет рассказано ниже). Не работает это и в Microsoft Edge.
Ниже Mozilla Firefox.
X-Content-Type-Options
Без заголовка
Хоть script.txt и является текстовым файлом с типом text/plain, он будет запущен как скрипт.
X-Content-Type-Options: nosniff
На этот раз типы не совпадают и файл не будет исполнен.
Content-Security-Policy
Это относительно молодой заголовок и помогает уменьшить риски атаки XSS в современных браузерах путём указания в заголовке какие именно ресурсы могут подргружаться на странице.
Посмотрим как это работает.
Без заголовка
Это работает так, как вы и ожидали
Content-Security-Policy: default-src ‘none’
default-src применяет правило для всех ресурсов (картинки, скрипты, фреймы и т.д.), значение ‘none’ блокирует всё. Ниже продемонстрировано что происходит и ошибки, показываемые в браузере.
Chrome отказался запускать любые скрипты. В таком случае не получится даже загрузить favicon.ico.
Content-Security-Policy: default-src ‘self’
Теперь можно использовать ресурсы с одного источника, но по прежнему нельзя запускать внешние и inline-скрипты.
Content-Security-Policy: default-src ‘self’; script-src ‘self’ ‘unsafe-inline’
На этот раз мы разрешили исполнение и inline-скриптов. Обратите внимание, что XSS атака в запросе тоже была заблокирована. Но этого не произойдёт, если одновременно поставить и unsafe-inline, и X-XSS-Protection: 0.
Другие значения
На сайте content-security-policy.com красиво показаны множество примеров.
Strict-Transport-Security
HTTP Strict Transport Security (HSTS) это механизм политики безопасности, который позволяет защитить сайт от попытки небезопасного соединения.
Допустим, что мы хотим подключиться к facebook.com. Если не набрать перед запросом https://, то протокол, по умолчанию, будет выбран HTTP и поэтому запрос будет выглядеть как http://facebook.com.
После этого мы будем перенаправлены на защищённую версию Facebook.
Если подключиться к публичной WiFi точке, которая принадлежит злоумышленнику, то запрос может быть перехвачен и вместо facebook.com злоумышленник может подставить похожую страницу, чтобы узнать логин и пароль.
Чтобы обезопаситься от такой атаки, можно использовать вышеупомянутый заголовок, который скажет клиенту в следующий раз использовать https-версию сайта.
Если пользователь был залогинен в Facebook дома, а потом попытался открыть его из небезопасной точки доступа, то ему ничего не угрожает, т.к. браузеры запоминают этот заголовок.
Но что будет, если подключиться в небезопасной сети первый раз? В этом случае защититься не получится.
Но у браузеров есть козырь и на этот случай. В них есть предопределённый список доменов, для которых следует использовать только HTTPS.
Можно отправить свой домен по этому адресу. Там также можно узнать правильно ли используется заголовок.
Public-Key-Pins
HTTP Public Key Pinning (HPKP) это механизм политики безопасности, который позволяет HTTPS сайтам защититься от использования злоумышленниками поддельных или обманных сертификатов.
Так делает Facebook:
Зачем это нужно? Не достаточно ли доверенных центров сертификации (CA)?
Злоумышленник может создать свой сертификат для facebook.com и путём обмана заставить пользователя добавить его в своё хранилище доверенных сертификатов, либо он может быть администратором.
Попробуем создать сертификат для facebook.
И сделать его доверенным в локальной системе.
А теперь запустим веб сервер, использующий этот сертификат.
Переключимся на сервер
Посмотрим что получилось
Отлично. curl подтверждает сертификат.
Так как я уже заходил на Facebook и Google Chrome видел его заголовки, то он должен сообщить об атаке но разрешить страницу, так?
Неа. Ключи не проверялись из-за локального корневого сертификата [Public-key pinning bypassed]. Это интересно…
Тот же результат. Думаю это фича.
Но в любом случае, если не добавлять эти сертификаты в локальное хранилище, открыть сайты не получится, потому что опции продолжить небезопасное соединение в Chrome или добавить исключение в Firefox не будет.
Content-Encoding: br
Данные сжаты при помощи Brotli.
Алгоритм обещает лучшее сжатие чем gzip и сравнимую скорость разархивирования. Поддерживается Google Chrome.
Разумеется, для него есть модуль в node.js.
Исходный размер: 700 Кб
Brotli: 204 Кб
Gzip: 241 Кб
Timing-Allow-Origin
С помощью Resource Timing API можно узнать сколько времени заняла обработка ресурсов на странице.
Поскольку информация о времени загрузки может быть использована чтобы определить посещал ли пользователь страницу до этого (обращая внимание на то, что ресурсы могут кэшироваться), стандарт считается уязвимым, если давать такую информацию любым хостам.
Похоже, если не указать Timing-Allow-Origin, то получить детальную информацию о времени операций (поиска домена, например) можно только для ресурсов с одним источником.
Использовать можно так:
Alt-Svc
Альтернативные Сервисы [Alternative Services] позволяют ресурсам находиться в различных частях сети и доступ к ним можно получить с помощью разных конфигураций протокола.
Такой используется в Google:
Ниже несколько P3P заголовков, которые я встречал:
Организация, основавшая P3P, Консорциум Всемирной паутины (W3C), приостановила работу над протоколом несколько лет назад из-за того, что современные браузеры не до конца поддерживают протокол. В результате, P3P устарел и не включает в себя технологии, которые сейчас используются в сети, поэтому большинство сайтов не поддерживают P3P.
Я не стал слишком углубляться, но видимо заголовок нужен для IE8 чтобы принимать cookies третьих лиц.
Например, если в IE настройка приватности высокая, то все cookies с сайтов, у которых нет компактной политики конфиденциальности, будут блокированы, но те у которых есть заголовки похожие на вышеупомянутые, заблокированы не будут.








