U2F 토큰 중 하나를 사용하면 U2F_REGISTER 응답에서 NIST P-256 ECDSA 서명 확인이 실패합니다.U2F 등록기 서명 확인 실패
나는이 프로토콜의 설명에 따라 일하고 있어요 :
U2F_REGISTER request:
b852c99d386769a3289d45708680efcc2350c0a7c152adb93c708b22a55c5d11: challenge
8adb4559abbea4a68754314e64aa6785901b6a236db5a14d040916799865e290: application
U2F_REGISTER response:
05: reserved byte
user_public_key (NIST P-256):
04: key format (uncompressed)
db3ca8b3863f2fed19dada227aa8a51dba9bd0ecafcb5313225c04618c9329df: x
e540eb5c58d24704e899eaa72feef06722ad4669c5a3d5537ab88dc6a712f96d: y
keyhandle
40: length (64 bytes)
96e7d09341237e1c306a71ed9d59eeb16be621dbb34eb346ca999301ad0bee28f62876fced320734b4f139b89b8608bb4b4cef0f864064c2b3af1966167c4278
attestation certificate in X.509 DER format
30: sequence
82: length (130 bytes) ??
01433081ea...
ECDSA signature in X.509 DER format
30: sequence
44: length (68 bytes)
02: integer
20: length (32 bytes)
6d090eefac83a67f9361adcd391395ab3636470e1eb479dc94e1194dc1f25259: r
02: integer
20: length (32 bytes)
660f7d23cd6b1c74e8499503fd21f6662a3270e916a57096037001baad5c7064: s
https://fidoalliance.org/specs/fido-u2f-v1.0-nfc-bt-amendment-20150514/fido-u2f-raw-message-formats.html 내가 00 (1 byte) + application (32 bytes) + challenge (32 bytes) + keyhandle (64 bytes this time) + user_public_key (1 + 32 + 32 bytes)
의 SHA-256 해시를 계산한다.
그런 다음 ecdsa.Verify(user_public_key, hash, r, s)
으로 전화합니다.
내가 가진 U2F 토큰 중 하나 인 ecdsa.Verify는 true (양호)를 반환하지만 다른 하나 (위의 바이트 참조)는 false를 반환합니다. 위의 예에서 내가 뭘 잘못하고 있니?