Code Monkey home page Code Monkey logo

kompromat's Introduction

Kompromat

This repository collects private keys or their parameters for auditing purposes.

Contributions

Any contribution is welcome, but should follow the following rough guidelines:

Naming:

  • Files should have descriptive names.
    • If a single or only few files belong to a set of keys, give them a proper name like "Cisco_ASA_v0.8.15"
    • If the set of keys has proper names in the source set, please try to stick to them (e.g. source names provide vendor+product information)
    • If the set of keys is more or less indistinguishable in itself (e.g. Debian OpenSSL Weak Keys) use their fingerprint for naming
      • Use the fingerprint that is most natural (e.g. hex MD5 for SSH)
      • Certificates should go SHA-256 or SHA-512 for the fingerprint
      • If the parameter for generation are known (e.g. PID for Debian OpenSSL Weak keys) it's recommended to include them
  • Files should carry an extension indicating their content:
    • *.key is reserved for private keys in PEM-encoded key format
      • please avoid raw RSA keys (use unencrypted PKCS#8)
      • include the OID of the key used
    • *.crt is reserved for X.509 certificates using PEM encoding
    • *.cer is reserved for X.509 certificates using DER encoding (deprecated)
    • *.pgp is reserved for OpenPGP data streams following RFC 4880 or any of its extensions If private keys are included there should be some information providing the password for decryption
    • *.meta holds metadata for the files carrying the same name If information refers to a whole directory, an additional entry "applies_to=directory" should be present
  • File and directory names should not include space characters
    • It is recommended to stick to alpha-numerics, dash and underscore (dot is acceptable if not the first character
    • Use of uppercase and lowercase letters is possible, but lowercase should be preferred
    • If uppercase and lowercase letters are mixed they MUST still create unique names if filenames where compared case-insensitively
  • The directory structure should be used to group files from similar incidents/categories. If a vendor fucks up twice, files should go into the same directory.

Metadata:

Metadata is provided for each set of keys and should contain the following information as applicable:

  • The uri= key providing a link from where this key might be obtained. Providing multiple entries is possible
  • The vendor= key containing information about the affected vendor
  • The product= key describing the affected product
  • The applies_to= key if this .meta file describes multiple files
  • The applies_mask= entry containing the file mask to which this applies.
    • within the value mean the matching part of the filename provides the information with that name (e.g. gives the vendor)
    • {NN} after a field designator provides its (maximum) length
    • , , , etc. assumes the fingerprint of that file (e.g. -.* provides the mask used for the Debian OpenSSL Weak Keys)
  • The password= key provides the decryption password for encrypted files if necessary (deprecated)

Sources:

This is a project for auditing. Thus please avoid keys that are still in production. It's NOT the purpose of this project to backup your production keys!

If contributing to this project you should do so responsibly: BEFORE SUBMITTING KEYS TRY TO REVOKE THEM OR GET THEM REVOKED as appropriate. TIA.

Apart from this:

  • Document sources as much as possible so others can reproduce
  • If there are accompanying documents (e.g. certificates, chains)to a key it's preferable to include those as well
  • Make things machine-readable as much as possible

kompromat's People

Contributors

benbe avatar fluepke avatar hannob avatar

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.