[openssl-users] beginner needs advice on data signature/verification

Jakob Bohm jb-openssl at wisemo.com
Tue Jul 14 19:19:29 UTC 2015


(continuing top posting to keep thread consistent)

Note that the point of using an X.509 signature at file creation time 
and/or client approval time was to reuse the internal file structure 
that is already designed to hold that particular signature format 
(specifically, the internal file structure that would eventually hold 
the final signature, which was already specified to be in that format).

Thus the idea was to simplify and reuse code, given the existence of 
code, tools and data formats to sign those particular files with X.509 
signatures.  This was also (presumably) the reason Microsoft did it this 
way.

But yes, of cause if the file generation is already secure, then the 
secure file generation machine should apply an initial signature and the 
client just add some kind of counter-signature authorizing this 
particular one of the securely generated files.

On 24/06/2015 15:24, Michael Wojcik wrote:
>
> In Marco's original description, the file is created by a trusted 
> system and then transmitted to the client. Then, later, the client 
> transmits it to the server, which verifies the contents. If the file 
> is signed by the creating system, it doesn't matter if the client is 
> compromised. A compromised client can refuse to send the file, or it 
> can send a forged or corrupted file, but the server can dectect all of 
> those cases.
>
> It's not clear from Marco's description whether the system that 
> creates the file can perform the signing process, but I don't see any 
> reason (in the description) why not. It would help if this point were 
> clarified.
>
> The Windows driver-signing process and similar look wildly 
> overengineered for Marco's purposes, if my understanding of his 
> requirements is correct. They have a very different threat model - and 
> that's why this isn't "a common requirement". Windows drivers are 
> created by thousands of organizations and consumed by thousands of end 
> users. Marco has files created on a trusted system (or handful of 
> trusted systems) he controls, and verified by trusted systems he controls.
>
> His followup message below says "data has to be signed with an X.509 
> certificates public key that already exists". I'm guessing this 
> actually means "data has to be signed with the private key 
> corresponding to a public key that happens to be in an X.509 
> certificate that already exists". That doesn't mean X.509 PKI must be 
> used; X.509 isn't some sort of virus that infects everything it 
> touches (appearances to the contrary). There's an asymmetric key pair 
> of some sort - RSA probably - and we need to use it for signing. Fine.
>
> Here's what I'd do: the originating trusted system creates the data 
> and runs "openssl rsautl -sign" with appropriate parameters to create 
> a signature. (Just script the openssl command-line utility; this is a 
> trusted system, so why reimplement the code?) Add the signature to the 
> proprietary file format. Send the whole thing to the client.
>
> Client subsequently sends the signed data and signature to the server, 
> as part of a file in the proprietary format, along with whatever 
> unsigned data is included.
>
> Server extracts the signed data and signature, and uses "openssl 
> rsautl -verify" to verify it.
>
> Michael Wojcik
> Technology Specialist, Micro Focus
>
>
(original text snipped)

Enjoy

Jakob
-- 
Jakob Bohm, CIO, Partner, WiseMo A/S.  http://www.wisemo.com
Transformervej 29, 2860 Søborg, Denmark.  Direct +45 31 13 16 10
This public discussion message is non-binding and may contain errors.
WiseMo - Remote Service Management for PCs, Phones and Embedded

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mta.openssl.org/pipermail/openssl-users/attachments/20150714/0254891a/attachment.html>


More information about the openssl-users mailing list