Code Monkey home page Code Monkey logo

signingserver's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

signingserver's Issues

Use ASP.net core instead of WCF

Would be nice to replace the old-school WCF with ASP.net core and HTTP based communication.
For keeping the TCP overhead small we would need to use Keep Alive connections within one request.

Performance and parallelization might get a bit a boost due to it.

But it would be a breaking change to migrate the protocol again.

Update to bouncycastle 2.x

There are some breaking changes in the new bouncycastle we have to investigate and fix before upgrading.

Android AAB signing fails: Signing Failed with error 'Failed to determine APK's minimum supported Android platform version'

Signing Failed with error 'Failed to determine APK's minimum supported Android platform version' when trying to sign an AAB (APK signs normally)

AAB build info:

  • targetSdkVersion="33"
  • minSdkVersion="29"
  • Android SDK Buld tools v 32 used

Some people had similar issues and they just used the hack (not really a solution) :
C:\Android\build-tools\30.0.3\apksigner.bat sign --ks my-release-key.jks --out signed.aab --min-sdk-version 14 TestAligned.aab
(I had to add the "--min-sdk-version 14" to fix the error: "Failed to determine APK's minimum supported platform version.")"

[Feature Request]: Improve certificate pooling to not sign 2 times.

Description

Currently we perform a separate signing operation for each file to validate that the certificate is operational (as workaround for faulty certificate objects).

It would be better to attempt the real signing operation and only perform this recovery operation if things fail during signing.

[Feature Request]: Move the parallelism options to certificate level.

Description

The parallelism option should be available per-certificate instead only on global level. Software level certificates are only limited by the CPU resources while for HSM we might want to limit the parallelization to not overload the device.

Potentially we also need a global parallelization limit as we know that some HSMs have poor handling of concurrency on their own and even requests from multiple clients need to be synchronized.

[Feature Request]: OIDC Authentication

Description

Instead using a username-password based auth, there should also be the option for an OIDC based auth which validates JWT bearer tokens.

In alignment with #47 there needs then to be a different way of controlling the access to certificates for users.

Some ideas:

  • Check if user has a specific claim value set.
  • Manual configuration
  • For Azure KeyVault / Hashicorp vault certificates: Pass-through authentication token and certificate selection details to the key-vault let the certificate management decide.

Allow plain text PINs for Hardware Tokens

In some scenarios it is not preferrable to have the token pins encrypted with the local system data protection as they are system dependent. When supplying configs

  • for testing purposes
  • from an external configuration source (env vars, azure keyvault config,..)

A plain text configuration is preferrable.

Add Azure Hosting Support

Usecase: Host this Signing Server in an Azure environment.

To be checked:

  • What communication protocol to use? (HTTP with CoreWCF instead of NetTcp, new ASP.net core communication channel)
  • Hosting mechanism? (Docker Container vs Azure App Service).
  • Ensure high level of security on access to service. (Add support for Azure AD Access Tokens for first level authorization, transport security).

Add full android v4 support

The SigningServer has currently a limitation of a 1:1 between input and output. But with APK v4 signing the output is the APK and an idsig file. With #8 we must consider in the API that there might be a 1:n on input:output. Adding this support in the WCF version Would be likely tricky due to the streaming limitations in WCF.

[Feature Request]: HashiCorp Vault Integration

Description

Idea:

  • Use Hashicorp Vault for signing operations (authenticating against Vault then do signing with a cert)
  • Develop a Hashicorp Vault extension/module/plugin that can offer code signing as an API integrated into the Vault.

[Feature Request]: Separate User authentication from Certificate selection

Description

Currently there is a basic user authentication with username/password and each user has a single certificate.

This should be changed that we have N certificates (with given names) and for each user a list of certificates he can use (first one default).

Then the client can list out all certificates and opt-in for a differnet one during signing.

Port C++ code to .net

The PortableExecutableSigningTool could also be ported to .net using PInvoke calls, this would eliminate the need of C++ compilation.

Android aab's are not correctly signed

An aab can be signed by renaming it to *.jar, but it will only be signed with SHA1 even though the configuration file contains "HashAlgorithm": "SHA256".

This can be verified by using
jarsigner -verify some.jar -verbose

output:

Digest algorithm: SHA1 (disabled)
Signature algorithm: SHA1withRSA (disabled), 2048-bit key

WARNING: The jar will be treated as unsigned, because it is signed with a weak algorithm that is now disabled by the security property:

jdk.jar.disabledAlgorithms=MD2, MD5, RSA keySize < 1024, DSA keySize < 1024, SHA1 denyAfter 2019-01-01, include jdk.disabled.namedCurves

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.