Analisi dei pacchetti gpg2

2

Voglio mentalmente visualizzare o solo capire una firma gpg. Durante l'esecuzione

$ gpg2 --list-packets --verbose < test.sig

l'output è

# off=0 ctb=89 tag=2 hlen=3 plen=540
:signature packet: algo 1, keyid C109A1FD84E2C2E5
    version 4, created 1510595093, md5len 0, sigclass 0x00
    digest algo 8, begin of digest cd 94
    hashed subpkt 2 len 4 (sig created 2017-11-13)
    subpkt 16 len 8 (issuer key ID C109A1FD84E2C2E5)
    data: 6198169E372BE3023D812F6E7AB24E600C326D77D6F8E690CDE45027F402F20325DEA9FEE9D2E32E04F798F5DB8700F734D65972C150DDF2B8ADD823D00190A5C9722E39C699D45D237343C741D991B78476270D5C5FBD996F032671BCA20890B0B994B4997A500D3AFC8B7446EAE3FF4F66A32DF8ED8E0B7741E4DD17B15D265D19C13D7349CC09E1094381C2BAE20375454A3825C842CC1E968428ABB451AA1B26555F081CE9D3C3A4F0222F86BAD0597A61B2B2FC4846FF400F52D3C58C7E29B2379E6022FBF0FC4C539421F4445EA7C905ABD98380D1218D82EB1ABCB9756B4A5F45AC668499E1405C72BEB5D2BF4F732EF0129B4EFE90C4F4308C4C6B6883A1A44A4A03C355A1D50F8E6172BCEC5F3A0D95696A1481F02D98D68A4CB52DD70E24C3535E2BCEE1DCD4D39DCFD0185DB06CE7BDE45DF5A723FB309819C79F27FBE602C26443D5E68F73911233E71C62D03099CCEF94431B37E17197E45475849938BDD6486E91204D17FE2E56C20F2B083FF44F6B1F63E747B73AAC9E21AFB2C15BD345D3F79AAA6F058D6D1288136727390879509928D874DEA5E285C6952F74137173AC2454FAAC06AEE90F94EC812E449C8E5F09F3419A8BE6981CBF9FB5D4E2DD6424AC316A7EDAB3AE98B9BD8979BB85E97328E882803C8AA522630C4E19B583682BA9F0575DDE642BA2BA3B7FECBCFFEF99C95B2D322B7FFDC30D2D

Che cos'è data qui? [È lungo 4095 bit. (Anche la mia chiave privata ha questa lunghezza.)]

data è la firma effettiva (sha256-hash)?

    
posta user1511417 14.11.2017 - 13:45
fonte

2 risposte

3

Stai guardando un pacchetto di firma della versione 4.

Da RFC 4880 :

5.2.3.  Version 4 Signature Packet Format

   The body of a version 4 Signature packet contains:

     - One-octet version number (4).

     - One-octet signature type.

     - One-octet public-key algorithm.

     - One-octet hash algorithm.

     - Two-octet scalar octet count for following hashed subpacket data.
       Note that this is the length in octets of all of the hashed
       subpackets; a pointer incremented by this number will skip over
       the hashed subpackets.

     - Hashed subpacket data set (zero or more subpackets).

     - Two-octet scalar octet count for the following unhashed subpacket
       data.  Note that this is the length in octets of all of the
       unhashed subpackets; a pointer incremented by this number will
       skip over the unhashed subpackets.

     - Unhashed subpacket data set (zero or more subpackets).

     - Two-octet field holding the left 16 bits of the signed hash
       value.

     - One or more multiprecision integers comprising the signature.
       This portion is algorithm specific, as described above.

Sopra dice:

   Algorithm-Specific Fields for RSA signatures:

     - multiprecision integer (MPI) of RSA signature value m**d mod n.

Quindi quello che stai vedendo è in realtà il numero intero che indica la firma RSA (che naturalmente non può essere più grande della tua chiave che è il modulo RSA).

    
risposta data 14.11.2017 - 15:50
fonte
1

Ho letto la maggior parte della sezione "5.2. Pacchetto di firma" di RFC 4880 , la RFC che specifica i dati formato di PGP. Non posso citare nulla che dice "finalmente, i dati della firma sono stati aggiunti", ma sono state spiegate tutte le altre cose dalla tua citazione list-packets . Solo la parte dei dati che non riesco a trovare, e non sembra essere menzionata dove vanno i dati della firma, quindi questo è l'unico posto dove ha senso.

L'entropia dei dati è molto alta, quindi potrebbe essere l'output di un algoritmo di crittografia. Ho calcolato questo con il comando ent (assicurati di decodificare prima l'esadecimale) e confrontalo con l'entropia di 512 byte di /dev/urandom di dati. Si abbina perfettamente.

Algoritmo 1, menzionato dopo "pacchetto di firma" sulla seconda riga, è RSA. Immagino che dovresti esaminare come viene utilizzato RSA per generare i dati delle firme.

    
risposta data 14.11.2017 - 14:58
fonte

Leggi altre domande sui tag