2017-12-11 1 views
1

WebCrypto는 RSA를 지원하지만 사용자가 수행 할 수있는 다양한 작업에 대해 패딩 구성표를 선택하도록합니다. RSA는 서명/확인 및 암호화/암호 해독 (+ 키 줄 바꿈)을 모두 수행 할 수 있지만 webcrypto API에서는 그렇게 할 수 없습니다.WebCrypto : RSA-OAEP에서 RSA-PSS로 안전하게 변환

RSA-OAEP를 사용하여 RSA 키를 생성 할 때 RSA-PSS에 동일한 키를 사용할 수 있지만 webcrypto API를 사용하는 키를 이동하는 명확한 방법은 없습니다.

내 원래 생각은 키 변환 다음 단계를 수행했다 : RSA-OAEP-512

  • PS512에 (예를 들어)에서 alg를 "해결"

    1. 수출 jwk
    2. exportKey를 사용하여 키를 "해결 key_ops

      a. encrypt ->verify

      b. decrypt - 올바른 알고리즘>sign

    3. 가져 오기 "고정"키

    키가 나는 개인 키의 보안을 강화하기 (위해 무엇을 할, 내보낼 수없는 경우이 시스템은 고장 악의적 인 스크립트, self-xss 등).

    알고리즘 유형을 "변환"하지만 내보내기 기능없이 키를 유지하는 좋은 방법은 무엇입니까?

  • +0

    PKCS8로의 PrivateKey를 내보내기 한 후 RSA에를 통해 그것을 가져 오기위한 별개의 키를 생성하기 위해 다른 고려하는 경우, 브라우저에서 두 개의 키를 얻기 위하여려고하고 있기 때문에

    PSS는 물론 2-3 단계가 필요하지 않습니다! spki를 사용하는 경우 공개 키와 동일합니다. 그러나 여전히 문제가 남아 있으므로 키를 추출 할 필요가 있습니다. – LiraNuna

    답변

    0

    webcrypto API는 서명 및 암호화에 키를 사용할 수 없습니다. 아마도이 관행은 권장되지 않기 때문일 것입니다. 서명 및 암호화에 대해 동일한 RSA 키 쌍을 사용하려면 암호 말하기, 그것은 안전이 답변 https://crypto.stackexchange.com/a/12138/42888

    를 참조 키 쌍은 서명을 안전하게 사용 및 암호화 안전하게 사용하도록 제공했다.

    그러나 이것은 다른 이유로 나쁜 생각입니다. 키 관리. 서명 키와 암호화 키는 백업, 액세스 제어, 부인 방지 등의 측면에서 서로 다른 요구 사항을 갖습니다. 치명적인 이벤트의 경우 서명 키를 대체하는 것은 미래의 위조를 피하기 위해이를 파기하여 서명 키가 될 필요가 없습니다. 광범위하게 백업되었습니다. 반대로, 암호화 키의 대체는 기존 문서의 암호를 해독하여이를 안전하게 유지해야한다는 것입니다.

    귀하의 질문에 대답하기 위해, 당신 수 :

    1. 비 추출로 두 번이 pcks8하는 추출 등의 RSA 키,
    2. 수출 또는 jwk
    3. 가져 오기를 생성합니다 key1->RSA-OAEP, key2->RSA-PSS
    4. 파괴 원래 키 추출
    ,

    그런 다음 결과 키는 동일하고 추출 할 수 없으며 원래 키는 브라우저 메모리에서만 관리됩니다. 당신은 공개 키의 수신기, 서명 및 암호화

    +0

    키 관리 만이 이유입니까? (개인) 키는 서버에 저장되며 엄격하게 암호화 키로 취급됩니다. 당신의 솔루션에 관해서는, 그게 내가 피하려고했던 것입니다. 키가 추출 될 수있는 작은 창문이 있기 때문에 그것을 제거하는 것이 이상적입니다. – LiraNuna

    +0

    당신은 ** 공개 키 **를 서버에 저장하고있는 것 같아요. 일시적으로 추출 가능한 키가있는 Webcrypto API로 키를 복제하는 다른 솔루션이 보이지 않습니다. 이 [post] (https://security.stackexchange.com/questions/1806/why-should-one-not-use-the-same-asymmetric-key-for-encryption-as-the-do-for)도 확인하십시오. -sig)에 대해 설명합니다. 키 관리 (백업, 부인 방지, 만료 시간, 키 삭제)는 이유이기는하지만 잠재적 인 보안 위험을 지목합니다 – pedrofb

    관련 문제