ฉันจะขอลายนิ้วมือของรหัส ec โดยใช้ openssl ได้ไหม


2

ฉันจะขอลายนิ้วมือของรหัส ec โดยใช้ openssl ได้ไหม

การใช้งานopenssl ec -in keys/secp256k1.pub.pem -fingerprintมีข้อผิดพลาดแจ้งว่า-fingerprintไม่ใช่ตัวเลือก


รหัสสาธารณะของ EC นั้นเกี่ยวกับความยาวของฟังก์ชั่นแฮชที่ใช้สำหรับลายนิ้วมือ
otus

@otus ดังนั้นจึงไม่มีมาตรฐานสำหรับลายนิ้วมือ EC?

@otus นั่นอาจไม่ใช่กรณีของคีย์ที่เข้ารหัสทั้งหมดโดยสันนิษฐานว่ามีอย่างน้อยชื่อ (หรือ OID) ของพารามิเตอร์โดเมนหรือแย่กว่านั้นคือพารามิเตอร์ของตัวเอง (+ ASN.1 โอเวอร์เฮด)
Maarten Bodewes

1
ไม่มีมาตรฐาน ลายนิ้วมือมักจะใช้สำหรับ X.509 ใบรับรองแต่ที่ไม่ได้เช่นเดียวกับคีย์สาธารณะ ใบรับรอง X.509 มักจะมีแฮชของค่าพับลิกคีย์เป็น SubjectKeyId (และ AuthorityKeyId ในใบรับรองลูก) แต่สิ่งนี้ไม่ได้เรียกว่าลายนิ้วมือและรูปแบบที่ OpenSSL ใช้สำหรับพับลิกคีย์ (แยก) คือ SubjectPublicKeyInfo (SPKI) จาก X.509 ซึ่งไม่ใช่ค่าที่ถูกต้องสำหรับแฮช SSHมักใช้ลายนิ้วมือของคีย์สาธารณะของเซิร์ฟเวอร์ใหม่สำหรับการตรวจสอบด้วยตนเอง (ตามที่คาดคะเน) สำหรับอัลกอริทึมที่รองรับ (RSA DSA และ ECDSA), ...
dave_thompson_085

1
... ใช้รูปแบบกุญแจสาธารณะ SSH ซึ่งแตกต่างจากของ OpenSSL PGPกำหนดลายนิ้วมือเป็นแฮชของกุญแจสาธารณะในรูปแบบแพ็คเก็ต PGP ซึ่งแตกต่างจาก SSH หรือ OpenSSL นี่เป็นสิ่งเดียวกันสำหรับอัลกอริทึมทั้งหมดและ ECC เพิ่งถูกระบุสำหรับ PGP เมื่อเร็ว ๆ นี้และยังไม่ได้ใช้มาก ใน PGP สมัยใหม่ keyid สำหรับคีย์คือบิตของลายนิ้วมือที่ต่ำและมักจะใช้ keyid แทนลายนิ้วมือแบบเต็ม คำตอบสั้น ๆ :คุณสามารถทำได้ X.509 SKI พร้อม commandline และเล่ห์เหลี่ยมเล็กน้อย คุณสามารถทำอื่น ๆ ด้วย libcrypto และรหัส แต่โปรแกรม SSH และ PGP นั้นง่ายกว่า
dave_thompson_085

คำตอบ:


0

สิ่งนี้ใช้ได้กับฉัน:

openssl x509 -noout -pubkey -in cert.pem | openssl ec -pubin -outform d | dd ibs=26 skip=1 | openssl dgst -sha256

หากต้องการค้นหาสิ่งที่ถูกต้องibsคุณอาจต้องตรวจสอบอีกครั้งasn1parse

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.