avast / avast/retdec

Add a check that a PE digital signature is valid throughout the complete chain

Open
#626 0 comments 0 reactions 0 assignees View on GitHub
C-fileformat C-fileinfo new-feature P-output
Dominant language
C++
Stars
8.6k
Forks
1k
PR merge metrics
No merged PRs in 30d

Description

At present, when given a signed PE file, `retdec-fileinfo` is able to detect whether the actual hash of the file matches the one stored in the file (see `PeFormat::verifySignature()`). It would be useful to also detect whether the digital signature is valid throughout the complete chain, i.e. that the signer is who they claim to be (provided that you trust the root certificate).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start with retdec-fileinfo and PeFormat::verifySignature(), which currently verify only that the PE file hash matches the embedded signature. Trace how signed PE certificates are read, then determine how to validate the complete signer chain against a trusted root; done means fileinfo reports whether the chain is valid, not only whether the file hash matches.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
reverse-engineering, security
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.