Di mana saya dapat menemukan beberapa dokumentasi tentang format kunci publik RSA?
Kunci publik RSA diformat oleh OpenSSH
:
ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAQB / nAmOjTmezNUDKYvEeIRf2YnwM9 / uUG1d0BYsc8 / tRtx + RGi7N2lUbp728MXGwdnL9od4cItzky / zVdLZE2cycOa18xBK9cOWmcKS0A8FYBxEQWJ / q9YVUgZbFKfYGaGQxsER + A0w / fX8ALuk78ktP31K69LcQgxIsl7rNzxsoOQKJ / CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr / QbrfB1WT6s3838SEaXfgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN + ffE7iiayQf / 2XR + 8j4N4bW30DiPtOQLGUrH1y5X / rpNZNlWW2 + jGIxqZtgWg7lTy3mXy5x836Sj / 6L
Kunci publik yang sama diformat untuk digunakan dalam Secure Shell (RFC 4716 - Format File Kunci Publik Secure Shell (SSH)) :
---- BEGIN SSH2 PUBLIC KEY ----
AAAAB3NzaC1yc2EAAAABJQAAAQB/nAmOjTmezNUDKYvEeIRf2YnwM9/uUG1d0BYs
c8/tRtx+RGi7N2lUbp728MXGwdnL9od4cItzky/zVdLZE2cycOa18xBK9cOWmcKS
0A8FYBxEQWJ/q9YVUgZbFKfYGaGQxsER+A0w/fX8ALuk78ktP31K69LcQgxIsl7r
NzxsoOQKJ/CIxOGMMxczYTiEoLvQhapFQMs3FL96didKr/QbrfB1WT6s3838SEaX
fgZvLef1YB2xmfhbT9OXFE3FXvh2UPBfN+ffE7iiayQf/2XR+8j4N4bW30DiPtOQ
LGUrH1y5X/rpNZNlWW2+jGIxqZtgWg7lTy3mXy5x836Sj/6L
---- END SSH2 PUBLIC KEY ----
Kunci publik yang sama diformat sebagai kunci publik RSA (perhatikan lima -
, dan tanpa spasi):
-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEA+xGZ/wcz9ugFpP07Nspo6U17l0YhFiFpxxU4pTk3Lifz9R3zsIsu
ERwta7+fWIfxOo208ett/jhskiVodSEt3QBGh4XBipyWopKwZ93HHaDVZAALi/2A
+xTBtWdEo7XGUujKDvC2/aZKukfjpOiUI8AhLAfjmlcD/UZ1QPh0mHsglRNCmpCw
mwSXA9VNmhz+PiB+Dml4WWnKW/VHo2ujTXxq7+efMU4H2fny3Se3KYOsFPFGZ1TN
QSYlFuShWrHPtiLmUdPoP6CV2mML1tk+l7DIIqXrQhLUKDACeM5roMx0kLhUWB8P
+0uj1CNlNN4JRZlC7xFfqiMbFRU9Z4N6YwIDAQAB
-----END RSA PUBLIC KEY-----
Hex dump dari data yang disandikan base-64:
00 00 00 07 73 73 68 2d 72 73 61 00 00 00 01 25 00 00 01 00 7f 9c 09
8e 8d 39 9e cc d5 03 29 8b c4 78 84 5f d9 89 f0 33 df ee 50 6d 5d d0
16 2c 73 cf ed 46 dc 7e 44 68 bb 37 69 54 6e 9e f6 f0 c5 c6 c1 d9 cb
f6 87 78 70 8b 73 93 2f f3 55 d2 d9 13 67 32 70 e6 b5 f3 10 4a f5 c3
96 99 c2 92 d0 0f 05 60 1c 44 41 62 7f ab d6 15 52 06 5b 14 a7 d8 19
a1 90 c6 c1 11 f8 0d 30 fd f5 fc 00 bb a4 ef c9 2d 3f 7d 4a eb d2 dc
42 0c 48 b2 5e eb 37 3c 6c a0 e4 0a 27 f0 88 c4 e1 8c 33 17 33 61 38
84 a0 bb d0 85 aa 45 40 cb 37 14 bf 7a 76 27 4a af f4 1b ad f0 75 59
3e ac df cd fc 48 46 97 7e 06 6f 2d e7 f5 60 1d b1 99 f8 5b 4f d3 97
14 4d c5 5e f8 76 50 f0 5f 37 e7 df 13 b8 a2 6b 24 1f ff 65 d1 fb c8
f8 37 86 d6 df 40 e2 3e d3 90 2c 65 2b 1f 5c b9 5f fa e9 35 93 65 59
6d be 8c 62 31 a9 9b 60 5a 0e e5 4f 2d e6 5f 2e 71 f3 7e 92 8f fe 8b
Saya telah membaca bahwa ada beberapa format 🕗 :
Data kunci dapat dikodekan dalam tiga cara umum:
- Format berkode DER biner. Ini kadang-kadang disebut ASN.1 BER-disandikan
- Format PEM atau base64. Ini adalah data yang sama dengan file yang disandikan DER tetapi itu disandikan di base64 dengan baris header dan footer tambahan
- Format XML.
Jika ASN.1 , hex jelas tidak terlihat seperti itu.
Apa format kunci publik RSA?
Lihat juga
sumber
openssl asn1parse -inform PEM
dengan-----BEGIN RSA PUBLIC KEY----
data, atau struktur PEM lainnya. Jauh lebih mudah daripada mencoba memanipulasi header secara manual dengan perintah grep / tr / base64.Mulai dari data base64 yang diterjemahkan dari Key rsa-ssh OpenSSL , saya sudah bisa menebak format:
00 00 00 07
: awalan empat byte panjang (7 byte)73 73 68 2d 72 73 61
: "ssh-rsa"00 00 00 01
: awalan empat byte panjang (1 byte)25
: Eksponen RSA (e
): 2500 00 01 00
: awalan empat byte panjang (256 byte)RSA Modulus (
n
):Validasi terdekat dari teori saya, saya dapat menemukannya dari RFC 4253:
Tapi itu tidak menjelaskan awalan panjang.
Mengambil acak yang
RSA PUBLIC KEY
saya temukan (dalam pertanyaan), dan mendekode base64 ke dalam hex:Dari RFC3447 - Standar Kriptografi Kunci Publik (PKCS) # 1: Spesifikasi Kriptografi RSA Versi 2.1 :
Menggunakan dokumentasi ASN.1 yang sangat baik dari Microsoft (dan satu-satunya yang nyata) :
memberikan modulus kunci publik dan eksponen:
0xfb1199ff0733f6e805a4fd3b36ca68...837a63
Pembaruan : Bentuk saya yang diperluas dari jawaban ini di pertanyaan lain
sumber
RSA PUBLIC KEY
mengikuti formulir ASN.1 (lihat spesifikasi PKCS), tidak ada hubungannya dengan format OpenSSH.string
danmpint
- itu dijelaskan dalam RFC 4251, bagian 5, tidak perlu quess :)Referensi Dekoder dari CRL, CRT, CSR, CSR BARU, KUNCI PRIBADI, KUNCI PUBLIK, RSA, RSA Public Key Parser
Kunci Publik RSA
Kunci Pribadi Terenkripsi
CRL
CRT
CSR
CSR BARU
PEM
PKCS7
KUNCI PRIVATE
DSA KEY
Kurva berbentuk bulat panjang
Kunci Pribadi PGP
Kunci Publik PGP
sumber