3 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
api secret沒(méi)有顯式傳遞,secret用于生成當(dāng)前請(qǐng)求的標(biāo)志,在服務(wù)器端,服務(wù)器按照相同的過(guò)程生成標(biāo)志,如果兩個(gè)標(biāo)志匹配,則請(qǐng)求成功通過(guò)身份驗(yàn)證-因此僅簽名是通過(guò)請(qǐng)求傳遞的,而不是秘密。

TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
這個(gè)問(wèn)題的答案是可以接受的,但為了澄清起見(jiàn),共享秘密身份驗(yàn)證的工作方式如下:
客戶端具有公共密鑰,可以與任何人共享,沒(méi)關(guān)系,因此您可以將其嵌入javascript。這用于標(biāo)識(shí)服務(wù)器上的用戶。
服務(wù)器具有密鑰,此密鑰必須受到保護(hù)。因此,共享密鑰身份驗(yàn)證要求您可以保護(hù)您的秘密密鑰。因此,無(wú)法直接連接到其他服務(wù)的公共javascript客戶端,因?yàn)槟枰?wù)器中間人來(lái)保護(hù)機(jī)密。
服務(wù)器使用某種算法來(lái)簽署請(qǐng)求,該算法包括秘密密鑰(秘密密鑰有點(diǎn)像鹽),最好是時(shí)間戳,然后將請(qǐng)求發(fā)送到服務(wù)。時(shí)間戳是為了防止“重播”攻擊。請(qǐng)求的簽名僅在n秒左右有效。您可以通過(guò)獲取時(shí)間戳頭來(lái)檢查服務(wù)器上的內(nèi)容,該頭應(yīng)包含簽名中包含的時(shí)間戳值。如果該時(shí)間戳記過(guò)期,則請(qǐng)求失敗。
該服務(wù)獲取的請(qǐng)求不僅包含簽名,而且還包含以純文本簽名的所有字段。
然后,該服務(wù)使用共享密鑰以相同的方式對(duì)請(qǐng)求進(jìn)行簽名,并比較簽名。
添加回答
舉報(bào)