2014-09-08 5 views
0

Я смотрю на this example here, который относится к javascript functionality из JWTВозникают проблемы, схватывая, как безопасно подписать JWT с закрытым ключом

Я пытаюсь использовать javasrcipt подписать часть данных. Тем не менее, в нем говорится, что я должен использовать частный ключ RSA, и он не позволяет вам использовать открытый ключ.

Моя цель состояла в том, чтобы форма была отправлена ​​через PHP, вызвала эту функцию javascript и зашифровала данные.

Простите мое невежество, но как вы можете использовать закрытый ключ RSA в javascript и сохранить его в то же время?

Похоже, что вы должны каким-то образом предоставить ему закрытый ключ и не будет ли доступ к этому закрытому ключу пользователю с использованием простых инструментов разработчика в веб-браузере?

function _genJWS() { 
    var sHead = '{"alg":"RS256"}'; 
    var sPayload = '{"data":"HI","exp":1300819380}'; 
    var sPemPrvKey = document.form1.pemprvkey1.value; 

    var jws = new KJUR.jws.JWS(); 
    var sResult = null; 
    try { 
    sResult = jws.generateJWSByP1PrvKey(sHead, sPayload, sPemPrvKey); 
    document.form1.jwsgenerated1.value = sResult; 
    } catch (ex) { 
    alert("Error: " + ex); 
    } 
} 

ответ

0

Что вы ищете, это не JWS (подписанный), а JWE (зашифрованный).

Если вы хотите отправить защищенные данные на сервер с помощью JWE, вы должны:

  • получить открытый ключ сервера
  • шифровать данные с помощью этого открытого ключа и производят JWE
  • отправьте свой JWE на сервер.

Насколько я знаю, нет библиотеки javascript, способной производить JWE (возможно, я ошибаюсь, но ничего не нашел).

Смежные вопросы