GithubHelp home page GithubHelp logo

hslatman / mud-cli Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 0.0 13.74 MB

mud-cli provides utilities for working with Manufacturer Usage Descriptions (RFC8520)

License: Apache License 2.0

Go 100.00%
mud rfc-8520 iot iot-access-control mud-files

mud-cli's Introduction

mud-cli

mud-cli provides utilities for working with Manufacturer Usage Descriptions (RFC8520).

Description

Manufacturer Usage Descriptions (MUDs) allow manufacturers of IoT equipment to specify the intended network communication patterns of the devices they manufacture. The access control policies described in a MUD file allow network controllers to automatically enforce rules on the device, resulting in devices only being allowed to communicate within the boundaries of the access control policies.

This CLI application provides several utilities for working with MUD files.

Usage

mud-cli contains the following commands:

  • read - reads (and validates) a MUD file and prints the contents
  • validate - validates a MUD file
  • sign - sign a MUD file, creating a new signature file
  • verify - verifies a MUD file signature
  • view - shows a graphical representation of the MUD using MUD Visualizer

Examples

$ ./mud
mud provides several utilities for working with MUD files

Usage:
  mud [command]

Available Commands:
  completion  generate the autocompletion script for the specified shell
  help        Help about any command
  read        Reads and prints MUD file contents
  sign        Signs a MUD file
  validate    Validates a MUD file to be formatted correctly
  verify      Verifies the signature for a MUD file
  view        Provides a graphical view of a MUD file

Binary Verification

mud-cli is signed using Cosign. This means that binaries can be verified as follows:

$ cosign verify-blob -key cosign.pub -signature mud-<version>-<arch>.sig mud-<version>-<arch>
Verified OK

The public key (cosign.pub) is available in the repository. Signature files and binaries are available from the Releases page.

MUD Visualizer

This project embeds MUD Visualizer for visualization of MUD files.

Things that can be done ...

... in no particular order.

  • Improve README.md
  • Add 'Use' texts with examples to commands
  • CI improvements (run on tag, build Docker image incl. Cosign signing, optimize binary size using UPX, embed version information)
  • Add self-updater and verifier (using Cosign)
  • Add tests
  • Fix (most, highest priority) TODOs ... :-)
  • Customize / improve the MUD Visualizer? It needs proper attribution to be shown on the page, at least. Can be made to look nicer on the page and also include some more metadata about the MUD file.
  • Improve logging / output
  • Allow the tool to be chained (i.e. use STDIN/STDOUT, pipes, etc.)?
  • A command for generating MUD files (from pcap or some different way)
  • A command for editing MUD files (i.e. metadata)
  • Allow setting a different location than the user home directory
  • ...

mud-cli's People

Contributors

hslatman avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  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.