"Что" означает подпись oauth_signature? - PullRequest
11 голосов
/ 03 апреля 2012

В разделе 6.1.1.Потребитель получает маркер запроса спецификации OAuth говорит, что вы должны отправить запрос, который содержит следующий параметр:

oauth_signature:
    The signature as defined in Signing Requests.

Но как вы можете подписать запрос, если сам oauth_signature является частьюЭто?Я имею в виду, "что" вы подписываете?Все поля кроме oauth_signature или как?

Например, в Протоколе OAuth 1.0 они предоставляют следующий пример получения временных учетных данных:

POST /initiate HTTP/1.1
Host: photos.example.net
Authorization: OAuth realm="Photos",
    oauth_consumer_key="dpf43f3p2l4k3l03",
    oauth_signature_method="HMAC-SHA1",
    oauth_timestamp="137131200",
    oauth_nonce="wIjqoS",
    oauth_callback="http%3A%2F%2Fprinter.example.com%2Fready",
    oauth_signature="74KNZJeDHnMBp0EMJ9ZHt%2FXKycU%3D"

Но как они получили oauth_signatureполе? Что было, что они подписали ?

Извините, новичок в криптографии - так что фиктивное объяснение будет оценено.

1 Ответ

10 голосов
/ 03 апреля 2012

«Подпись базовой строки» подписывается.Он захватывает «сущность» этого конкретного запроса, так что это не может быть перепутано.(Обратите внимание, что оно не включает в себя все, особенно тело запроса).

В приведенном вами примере прочитайте пример базовой строки:

Например,HTTP-запрос:

 POST /request?b5=%3D%253D&a3=a&c%40=&a2=r%20b HTTP/1.1
 Host: example.com
 Content-Type: application/x-www-form-urlencoded
 Authorization: OAuth realm="Example",
                oauth_consumer_key="9djdj82h48djs9d2",
                oauth_token="kkk9d7dh3k39sjv7",
                oauth_signature_method="HMAC-SHA1",
                oauth_timestamp="137131201",
                oauth_nonce="7d8f3e4a",
                oauth_signature="bYT5CMsGcbgUdFHObYMEfcx6bsw%3D"

представлен следующей базовой строкой подписи (разрывы строк только для отображения):

 POST&http%3A%2F%2Fexample.com%2Frequest&a2%3Dr%2520b%26a3%3D2%2520q
 %26a3%3Da%26b5%3D%253D%25253D%26c%2540%3D%26c2%3D%26oauth_consumer_
 key%3D9djdj82h48djs9d2%26oauth_nonce%3D7d8f3e4a%26oauth_signature_m
 ethod%3DHMAC-SHA1%26oauth_timestamp%3D137131201%26oauth_token%3Dkkk
 9d7dh3k39sjv7
...