All Projects → greenstatic → openspa

greenstatic / openspa

Licence: MIT license
OpenSPA - An open and extensible Single Packet Authorization (SPA) protocol

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to openspa

skeleton-quasar
Exemplo simples de skeleton para o Quasar Framework
Stars: ✭ 40 (-18.37%)
Mutual labels:  spa
laravel-vue
VueJS SPA example using Sanctum & Fortify authentication with Laravel.
Stars: ✭ 102 (+108.16%)
Mutual labels:  spa
angular-spa-demo
Demo code for a Single Page Application using AngularJS
Stars: ✭ 20 (-59.18%)
Mutual labels:  spa
payload
A javascript single page application (SPA) driver for REST API payload management.
Stars: ✭ 16 (-67.35%)
Mutual labels:  spa
launchlet
Make the web yours.
Stars: ✭ 34 (-30.61%)
Mutual labels:  spa
Laravel-Vue-SPA-template
Template for Single Page Applications built with Laravel and Vue.
Stars: ✭ 22 (-55.1%)
Mutual labels:  spa
create-vuefront-app
Generator for quick VueFront project setup
Stars: ✭ 16 (-67.35%)
Mutual labels:  spa
spaq
Template for quickly setting up an SPA
Stars: ✭ 45 (-8.16%)
Mutual labels:  spa
ralltiir
Awesome SPA Container
Stars: ✭ 22 (-55.1%)
Mutual labels:  spa
vue-seo-friendly-spa-template
Vue.js PWA/SPA template initially scaffolded with vue-cli and configured for SEO. Makes use of prerendering and other techniques/packages in order to achieve a perfect "Lighthouse Score".
Stars: ✭ 41 (-16.33%)
Mutual labels:  spa
Exceptionless.UI
Exceptionless web user interface
Stars: ✭ 105 (+114.29%)
Mutual labels:  spa
acblog
An open source extensible static & dynamic blog system. (an alternative tool with same features at StardustDL/paperead)
Stars: ✭ 60 (+22.45%)
Mutual labels:  spa
laravel-api
A base install of Laravel with Sanctum & Fortify, set up as an API.
Stars: ✭ 58 (+18.37%)
Mutual labels:  spa
ness
Deploy web sites and apps to your own cloud account effortlessly.
Stars: ✭ 631 (+1187.76%)
Mutual labels:  spa
atrodam
AtroDAM is an open-source digital asset management system (DAM) of a new generation.
Stars: ✭ 45 (-8.16%)
Mutual labels:  spa
chronicle
Forming reliable memories.
Stars: ✭ 87 (+77.55%)
Mutual labels:  spa
bce.design
minimal magic, minimal tooling, essential dependencies, high productivity, no transpilations and no migrations. The Web Components starter ships with integrated lit-html, redux-toolkit and vaadin router components.
Stars: ✭ 67 (+36.73%)
Mutual labels:  spa
laravel-vue-starter
Well Documented Laravel Starter App From Development to Production. For Full Blown RESTFUL API and SPA with Beautiful UI Using Buefy / ElementUi For Reusable Vue Components
Stars: ✭ 80 (+63.27%)
Mutual labels:  spa
Angular-Reactive-Demo-Shop
Angular Demo Shop
Stars: ✭ 79 (+61.22%)
Mutual labels:  spa
vue-patternfly
PatternFly 3 components for Vue 3
Stars: ✭ 50 (+2.04%)
Mutual labels:  spa

OpenSPA

GitHub Workflow Status Go Reference Go Report Card License

OpenSPA: An open and extensible Single Packet Authorization (SPA) implementation of the OpenSPA Protocol.

v1 of the protocol was created in 2018 and while functioning, it has a few shortcomings which are being resolved in v2 (currently the dev branch) of the protocol.

v2 is currently as of 2022 under heavy development. No guarantees are made that it will remain backwards compatible in it's current form. We WILL break it during development.

v1 was never production ready and so any PR regarding v1 will be rejected.

What is OpenSPA?

OpenSPA is an open and extensible SPA implementation built upon the OpenSPA Protocol. OpenSPA allows the deployment of a service on an internal network or the internet, that is hidden to all unauthorized users. Authorized users authenticate by sending a single packet to the OpenSPA server, which will reveal itself only if the user is authorized to access the service.

OpenSPA builds what essentially is a dynamic firewall.

OpenSPA-Demo

Unauthorized users will not be able to detect via the network the presence of the hidden service (no ping, traceroute, port scans, fingerprinting, etc.). Once the user sends an OpenSPA request packet (via UDP) and they are authorized only then will the server respond with a response. Unauthorized users thus will also be unable to confirm the existence of the OpenSPA service.

Version 1 vs. 2?

The major difference between v1 and v2 of the OpenSPA protocol is how binary messages (request & response) are encoded. Version 1 had a well-defined binary format (e.g. offset X with a length of 32 bits contains the client's IP address). While this of course worked, it also proved very difficult to extend and modify. Which is why version 2 uses TLVs to encode the binary messages. This allows v2 to be customized and extended very easily for difference use-cases.

Version 2 also brings native support for IPtables, making extension scripts optional (or rather an alternative to the native IPtables integration to support different firewalls).

Version 2 Status

Completed:

  • openspalib (pkg/openspalib) - library for the OpenSPA protocol. With this you can implement your own OpenSPA client and server
  • Client (cli/openspa-client) - OpenSPA client CLI
  • Server (cli/openspa-server) - OpenSPA server CLI
    • Config file support
    • Native IPtables integration
    • External firewall integration
    • External authorization integration

In progress:

  • Server should expose Prometheus metrics via HTTP

Planned:

  • ECC support
  • x509 certificate support
  • Helper utility to generate keys
  • eBPF integration for ADK (Anti DoS knocking protection)
  • Server external authentication support
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].