목차
질문 내용
Solution
백엔드 개발 Golang 사용자 정의 crypto.Signer 구현을 사용하여 X.509 인증서를 생성할 수 없습니다.

사용자 정의 crypto.Signer 구현을 사용하여 X.509 인증서를 생성할 수 없습니다.

Feb 10, 2024 pm 08:42 PM
암호화폐

无法使用自定义 crypto.Signer 实现生成 X.509 证书

php 편집기 Youzi는 X.509 인증서 생성에 관한 문제를 소개하기 위해 왔습니다. 때로는 사용자 정의 crypto.Signer 구현을 사용하여 인증서를 생성할 때 사용할 수 없는 문제가 발생할 수 있습니다. 이 문제로 인해 개발자는 해결 방법을 혼란스러워할 수 있습니다. 이 기사에서는 이 문제의 원인을 살펴보고 개발자가 자신의 X.509 인증서를 성공적으로 생성하는 데 도움이 되는 몇 가지 솔루션을 제공합니다.

질문 내용

hsm에 저장된 rsa 키 쌍을 기반으로 x.509 인증서를 생성하려고 합니다. 나는 이 pkcs #11 구현을 사용하여 hsm과 통신합니다.

내 암호화 개체는 후자에 저장되므로 수행하려는 작업에 개인 키(예: 서명)가 필요한 경우 "개인 키에 액세스"하려면 crypto.signer 인터페이스를 구현해야 합니다. 이것이 구현입니다.

으아아아

이 구현은 작동합니다. 예를 들어 csr을 생성하려면 createcertificaterequest 함수에 csr(priv any 参数),这是我提供 rsasigner 인스턴스가 있는 위치)에 서명하기 위한 개인 키가 필요합니다.

createcertificate 함수는 다소 유사하며 매개변수 pub是要生成的证书的公钥,priv는 서명자의 개인 키입니다.

아래 코드에서는 자체 서명된 x.509 인증서를 생성하려고 하므로 templateparent매개변수는 API에 따라 동일합니다.

으아아아

키 유형(rsa 또는 ec)에 관계없이 이 함수는 다음 오류를 반환합니다.

으아아아

이 오류는 crypto.signer 구현이 올바르게 완료되지 않은 경우 반환됩니다.

타원 곡선의 키 쌍을 사용하여 동일한 작업을 수행하려고 crypto.signer을 구현했지만 오류는 동일합니다.

또한 sign 함수에서 다양한 해싱 알고리즘을 시도했지만 아무 것도 변경되지 않았습니다.

CSR을 생성하는 데 사용할 수 있지만 crypto.signer 구현에서 오류가 발생한 것 같습니다.

Solution

몇 달 전에 이 문제에 대한 해결책을 찾았지만 답변을 공유할 시간은 없었지만 지금이 바로 그 때입니다.

pkcs #11을 통해 직접 서명하는 경우 여기에 참조된 digestinfo 값을 사용하여 해시 접두사를 수동으로 지정하여 해시 접두사를 관리해야 합니다. https://www.rfc-editor.org/rfc /rfc3447#page-43 .

더 정확하게는 rsassa-pkcs1-v1_5 서명의 경우 실제 서명 함수에 대한 입력은 asn.1 der 인코딩된 구조입니다. pkcs #11에는 구조를 생성하는 방법을 알고 있는 해시별 메커니즘(예: ckm_sha256_rsa_pkcs)이 있지만 모두 데이터가 해시되지 않는다고 가정합니다. 이는 암호화폐의 경우와 다릅니다. signer 인터페이스이므로 원시 서명 작업만 수행하는 일반 cka_rsa_pkcs 메커니즘을 사용해야 합니다. 이는 우리가 사용하려는 모든 해시에 대해 올바른 접두사를 제공하기만 하면 asn.1 구조를 직접 생성해야 함을 의미합니다.

crypto.signeropts 유형의 opts 매개변수를 사용하면 sign() 함수가 호출될 때 올바른 접두사가 적용된 crypto.hash 유형의 해시 함수 식별자를 검색할 수 있습니다.

으아아아

그것은 매력처럼 작동합니다. 하지만 더 좋은 일이 있습니다.

ckm_rsa_pkcs 메커니즘은 rsassa-pkcs1-v1_5 유형의 서명을 제공합니다. 더 이상 새로운 제품/소프트웨어에 사용되어서는 안 되는 이 오래된 서명 체계를 스스로 조사하도록 관심 있는 독자들에게 맡깁니다.

실제로 rsassa-pss 유형 서명을 제공하는 ckm_rsa_pkcs_pss 메커니즘을 사용하는 것이 좋습니다.

이 원칙에서 출발하여 현재 제가 사용하는 구현은 다음과 같습니다.

으아아아

그래서 접두사는 더 이상 필요하지 않지만, 사용할 해시 알고리즘 식별자와 서명 알고리즘 및 사용할 mgf 간의 대응이 필요합니다.

마지막으로, 사용되는 서명 알고리즘은 더 이상 x509.sha256withrsa, x509.sha384withrsa 또는 x509.sha512withrsa이 아니라 sha256withrsapss, sha38입니다. 4withrsapss sha512withrsapss.

서명 축하드립니다.

위 내용은 사용자 정의 crypto.Signer 구현을 사용하여 X.509 인증서를 생성할 수 없습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Apple 휴대 전화 용 Ouyi Exchange 앱의 공식 웹 사이트 다운로드 Apple 휴대 전화 용 Ouyi Exchange 앱의 공식 웹 사이트 다운로드 Apr 28, 2025 pm 06:57 PM

Ouyi Exchange 앱은 Apple 휴대 전화 다운로드를 지원하고, 공식 웹 사이트를 방문하고, "Apple Mobile"옵션을 클릭하고, App Store에 입력하고 설치하고, Cryptocurrency 거래를 수행하려면 등록 또는 로그인합니다.

비트 코인의 가치는 얼마입니까? 비트 코인의 가치는 얼마입니까? Apr 28, 2025 pm 07:42 PM

비트 코인의 가격은 $ 20,000에서 $ 30,000입니다. 1. Bitcoin의 가격은 2009 년 이후 극적으로 변동하여 2017 년에 거의 20,000 달러에 이르렀으며 2021 년에는 거의 60,000 달러에 달합니다. 가격은 시장 수요, 공급 및 거시 경제 환경과 같은 요인의 영향을받습니다. 3. 거래소, 모바일 앱 및 웹 사이트를 통해 실시간 가격을 얻으십시오. 4. 비트 코인 가격은 시장 감정과 외부 요인에 의해 유발되는 변동성이 높습니다. 5. 전통적인 금융 시장과의 특정 관계가 있으며 글로벌 주식 시장, 미국 달러의 강점 등의 영향을받습니다. 6. 장기 추세는 낙관적이지만, 위험은주의해서 평가되어야합니다.

세계 10 대 통화 거래 플랫폼 중 2025 년 상위 10 개 통화 거래 플랫폼 중 하나 세계 10 대 통화 거래 플랫폼 중 2025 년 상위 10 개 통화 거래 플랫폼 중 하나 Apr 28, 2025 pm 08:12 PM

2025 년 전 세계의 상위 10 개 암호 화폐 교환에는 Binance, Okx, Gate.io, Coinbase, Kraken, Huobi, Bitfinex, Kucoin, Bittrex 및 Poloniex가 포함됩니다.

Ripple (XRP 통화)은 어떤 통화에 속합니까? 초보자를위한 자세한 튜토리얼 Ripple (XRP 통화)은 어떤 통화에 속합니까? 초보자를위한 자세한 튜토리얼 Apr 28, 2025 pm 07:57 PM

Ripple에 의해 생성 된 Ripple은 빠르고 저비용이며 소규모 거래 지불에 적합한 국경 간 지불에 사용됩니다. 지갑 및 교환을 등록한 후 구매 및 스토리지를 만들 수 있습니다.

참깨 오픈 도어 공식 웹 사이트 입구 참깨 오픈 도어 공식 최신 입구 2025 참깨 오픈 도어 공식 웹 사이트 입구 참깨 오픈 도어 공식 최신 입구 2025 Apr 28, 2025 pm 07:51 PM

참깨 오픈 도어는 암호 화폐 거래에 중점을 둔 플랫폼입니다. 사용자는 공식 웹 사이트 또는 소셜 미디어를 통해 포털을 얻을 수있어 액세스 중에 SSL 인증서 및 웹 사이트 컨텐츠의 진위가 확인되도록 할 수 있습니다.

Binance 공식 웹 사이트 입구 Binance 공식 최신 입구 2025 Binance 공식 웹 사이트 입구 Binance 공식 최신 입구 2025 Apr 28, 2025 pm 07:54 PM

Binance 공식 웹 사이트를 방문하여 HTTPS 및 Green Lock 로고를 확인하여 피싱 웹 사이트를 피하면 공식 응용 프로그램에도 안전하게 액세스 할 수 있습니다.

세계의 상위 10 개 통화 거래 플랫폼 중 상위 10 개 통화 거래 플랫폼의 최신 버전 세계의 상위 10 개 통화 거래 플랫폼 중 상위 10 개 통화 거래 플랫폼의 최신 버전 Apr 28, 2025 pm 08:09 PM

전 세계의 상위 10 개 암호 화폐 거래 플랫폼에는 Binance, OKX, Gate.io, Coinbase, Kraken, Huobi Global, Bitfinex, Bittrex, Kucoin 및 Poloniex가 포함되며 다양한 거래 방법과 강력한 보안 조치가 제공됩니다.

상위 10 개의 가상 통화 거래 앱은 무엇입니까? 최신 디지털 환전 순위 상위 10 개의 가상 통화 거래 앱은 무엇입니까? 최신 디지털 환전 순위 Apr 28, 2025 pm 08:03 PM

Binance, Okx, Gate.io와 같은 상위 10 개 디지털 환전 거래소는 시스템, 효율적인 다양한 거래 및 엄격한 보안 조치를 개선했습니다.

See all articles