Projects



Changes between Version 3 and Version 4 of SignatureCheck


Ignore:
Timestamp:
Feb 7, 2021, 11:29:31 PM (3 years ago)
Author:
4juergen
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SignatureCheck

    v3 v4  
    88The SignatureCheck Plugin does this for Plugins and the NetSigner Plugin for Nets.
    99
    10 '''Here we provide a download for reviewers: TODO'''
     10'''Here we provide a download for reviewers: [https://git.informatik.uni-hamburg.de/tgipublic/signed-renew/-/archive/master/signed-renew-master.zip Download]'''
    1111
    1212== Installation ==
     
    5555Unknown third parties can't disguise themself as trusted authors.
    5656
     57=== Output of the Plugin ===
     58After a successful installation the plugin will print {{{INFO: SignatureCheck: Listener added to Loader.}}} to the console when Renew starts.
     59
     60Plugins where the file does not match the signature don't get loaded.
     61These plugins could be manipulated.
     62Please reinstall the plugin with its signature.
     63
     64[[Image(Corrupted.PNG)]]
     65
     66The number of trusted authors is very limited by default (only the key from the automatic Renew builds).
     67Any unknown Key will raise an Error.
     68This Error includes the file location and the [https://en.wikipedia.org/wiki/Pretty_Good_Privacy PGP] fingerprint.
     69The fingerprint can be used to search the key on a key server.
     70It is recommended  to ask the author directly for their public key, so it is the key from the author and not from an imposter.
     71
     72[[Image(Untrusted.PNG)]]
     73
     74=== Adding additional trusted keys ===
     75All trusted keys are stored in the {{{config/publickey.pgp}}} file.
     76This file is a concatenation of all trusted public keys.
     77So, adding a new trusted public key is simply appending it.
     78
     79The following commands add the key.pgp file to the publickey.pgp.
     80All commands are meant to be executed inside the config folder.
     81
     82Windows has the cmd program named copy, which can copy binary data from multiple files into one.
     83
     84  COPY /B .\publickey.pgp + .\key.pgp .\publickey.pgp
     85
     86Linux and MacOS have a program named cat, which works similar.
     87
     88  cat publickey.pgp key.pgp > publickey.pgp
     89
    5790== NetSigner Plugin ==
    5891Renews Net Drawings can contain Java code.
     
    75108A storage or transmittion error can also be detected as manipulation, but cannot be fixed by this format.
    76109
     110=== Getting a Certificate ===
     111First choose a [https://en.wikipedia.org/wiki/Certificate_authority Certificate Authority (CA)], which will verify the identity to other users.
     112A list of trusted CAs is available in the file doc/trusted.txt of the release.
     113This plugin needs a X.509 Code Signing Certificate or a X.509 personal E-Mail Certificate.
     114Each CA has different requirements on how to request a certificate.
     115
     116One standardized way to get a certificate is a CSR which can be created with this plugin.
     117This feature is in the menu under Plugins -> Net Signature ->; New CSR.
     118
     119[[Image(menu.PNG)]]
     120
     121Input here all information needed by the CA and click on the "Generate CSR" button.
     122This will write a CSR to the chosen location and save the private key into the KeyStore.
     123You will get asked for a Password, which will protect your private key.
     124Send the CSR to the CA.
     125The CA will generate a certificate chain for the private key which can be imported with the Plugins -> Net Signature -> Import certificate chain menu entry.
     126The signing part of this plugin is ready once the certificate chain has been imported.
     127
     128Please make sure that the NetSigner Plugin is placed in the Renew plugin folder if the "Net Signature" sub menu is missing.
     129If the "New CSR" or "Import certificate chain" menu entry does not exist, follow the steps under User Guide.
     130
     131If the CA has its own tools to request a Certificate, use those.
     132These usually produce a PKCS#12 file, which holds a private key and its certificates.
     133To import a PKCS#12 file use the Plugins -> Net Signature -> Import PKCS#12 file menu entry.
     134This step will ask for three passwords.
     135The first password is the password of the PKCS#12 file.
     136The second password is the password for the KeyStore (will be set on first time entering a KeyStore password).
     137The third password is the new password for the freshly imported key.
     138
     139=== Signing a Net Drawing ===
     140[[Image(menuExport.PNG)]]
     141
     142The signing function is under File -> Export -> Export current drawing -> SignedNetDrawing current drawing.
     143
     144You will get asked for your passwords the first time you sign a Net Drawing with each Renew instance.
     145These are the KeyStore and private key passwords from the import.
     146
     147=== Getting Signature Information ===
     148Best practice is to check the identity of the signer before opening the net.
     149This is possible with the menu option Plugins -> Net Signature -> Show signer of file.
     150
     151The net will not be interpreted in this mode, it only checks the signature of the file and displays the signer information.
     152
     153The important part is the Signer portion.
     154Here is the name of the author of the net.
     155Additionally, the first line under more information includes country code, city, E-Mail and any other information which are known about the author.
     156The lines under that show the CAs.
     157These can be important inside a corporation/institute where the right CA for the author might be known.
     158
     159=== Loading a signed Net Drawing ===
     160
     161The loading functionality is under File -> Import -> SignedNetDrawing.
     162This will load the Net Drawing if the signature is correct and trusted.
     163
     164Information about the signer can be viewed under Plugins -> Net Signature -> Show current signature.
     165
    77166== Further reading ==
    78167