Это действительный заголовок авторизации HTTP? - PullRequest
0 голосов
/ 21 марта 2019

Используя Wireshark, я видел, что приложение iOS Philips Remote TV, говорящее с моим телевизором Philips, работающим под управлением их новой ОС Saphi, отправляет по HTTP несколько HTTP-запросов с заголовком авторизации, похожим на это:

Авторизация: Базовая 1: ZmVay1EQVFOaZhwQ4Kv81ypLAZNczV9sG4KkseXWn1NEk6cXmPKO / MCa9sryslvLCFMnNe4Z4CPXzToowvhHvA ==

Я считаю, что «1» - это идентификатор пользователя и отделен от длинного пароля с помощью «:».

В Википедии я читал это Поле авторизации построено следующим образом:

  1. Имя пользователя и пароль объединяются одним двоеточием (:).

  2. Результирующая строка кодируется в последовательность октетов с использованием варианта Base64.

  3. Затем к кодированной строке добавляется метод авторизации и пробел (например, «Основной»).

Например, если браузер использует Aladdin в качестве имени пользователя и OpenSesame в качестве пароля, то значением поля является base64-кодировка Aladdin: OpenSesame или QWxhZGRpbjpPcGVuU2VzYW1l.

Тогда заголовок авторизации будет выглядеть так:

Авторизация: Базовая QWxhZGRpbjpPcGVuU2VzYW1l

Поэтому мне интересно, если заголовок авторизации, используемый в этом приложении, действителен - пропуская, как это выглядит, шаг 2 кодирования выше?

1 Ответ

1 голос
/ 22 марта 2019

Отправленный вами заголовок нарушает RFC 7235 , что запрещает двоеточие (:) в токене авторизации:

Authorization = credentials

credentials   = auth-scheme [ 1*SP ( token68 / #auth-param ) ]

token68       = 1*( ALPHA / DIGIT /
                    "-" / "." / "_" / "~" / "+" / "/" ) *"="

Как вы правильно заметили, Обычная аутентификация кодирует в Base64 после , объединяя имя пользователя и пароль.Пример, который вы разместили, содержит действительный Base64 после двоеточия, но он декодируется до некоторого двоичного мусора.

Вероятно, разработчики этого программного обеспечения Philips ошибочно обозначили пользовательскую схему аутентификации как Basic.Это не редкая ошибка.Типичный случай, когда токен отправляется без Base64, как в Basic MySecretToken123.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...