ziti

The parent project for OpenZiti. Here you will find the executables for a fully zero trust, application embedded, programmable network @OpenZiti

https://github.com/openziti/ziti

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.3%) to scientific vocabulary

Keywords

appsec golang mesh netsec network networking overlay overlay-network secure-networking vpn vpn-2 zero-trust zero-trust-cloud zero-trust-network zero-trust-network-access zero-trust-security zerotrust ztaa ztha ztna

Keywords from Contributors

cryptocurrencies graph-generation simulations energy-system
Last synced: 6 months ago · JSON representation ·

Repository

The parent project for OpenZiti. Here you will find the executables for a fully zero trust, application embedded, programmable network @OpenZiti

Basic Info
  • Host: GitHub
  • Owner: openziti
  • License: apache-2.0
  • Language: Go
  • Default Branch: main
  • Homepage: https://openziti.io
  • Size: 27.1 MB
Statistics
  • Stars: 3,543
  • Watchers: 37
  • Forks: 206
  • Open Issues: 257
  • Releases: 0
Topics
appsec golang mesh netsec network networking overlay overlay-network secure-networking vpn vpn-2 zero-trust zero-trust-cloud zero-trust-network zero-trust-network-access zero-trust-security zerotrust ztaa ztha ztna
Created about 6 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Code of conduct Citation Codeowners Security

README.md

OpenZiti Logo


Build Status Go Report Card GoDoc Discourse Widget License: Apache-v2


OpenZiti

OpenZiti represents the next generation of secure, open-source networking for your applications. OpenZiti has several components.

Quick Reference


What is OpenZiti?

  • The OpenZiti fabric provides a scalable, pluggable, networking mesh with built in smart routing
  • The OpenZiti edge components provide a secure, Zero Trust entry point into your network
  • The OpenZiti SDKs allow you to integrate OpenZiti directly into your applications
  • The OpenZiti tunnelers and proxies allow existing applications and networks to take advantage of a OpenZiti deployment

Security Features

  • Zero Trust and Application Segmentation
  • Dark Services and Routers
  • End to end encryption

Performance and Reliability

  • A scalable mesh fabric with smart routing
  • Support for load balancing services for both horizontal scale and failover setups

Developer Focus

Easy Management

Let's break some of these buzzwords down.

Zero Trust/Application Segmentation

Many networking security solutions act like a wall around an internal network. Once you are through the wall, you have access to everything inside. Zero trust solutions enforce not just access to a network, but access to individual applications within that network.

Every client in a OpenZiti system must have an identity with provisioned certificates. The certificates are used to establish secure communications channels as well as for authentication and authorization of the associated identity. Whenever the client attempts to access a network application, OpenZiti will first ensure that the identity has access to the application. If access is revoked, open network connections will be closed.

This model enables OpenZiti systems to provide access to multiple applications while ensuring that clients only get access to those applications to which they have been granted access.

In addition to requiring cert based authentication for clients, OpenZiti uses certificates to authorize communication between OpenZiti components.

Dark Services and Routers

There are various levels of accessibility a network application/service can have.

  1. Many network services are available to the world. The service then relies on authentication and authorization policies to prevent unwanted access.
  2. Firewalls can be used to limit access to specific IP or ranges. This increases security at the cost of flexibility. Adding users can be complicated and users may not be able to easily switch devices or access the service remotely.
  3. Services can be put behind a VPN or made only accessible to an internal network, but there are some downsides to this approach.
    1. If you can access the VPN or internal network for any reason, all services in that VPN become more vulnerable to you.
    2. VPNs are not usually appropriate for external customers or users.
    3. For end users, VPNs add an extra step that needs to be done each time they want to access the service.
  4. Services can be made dark, meaning they do not have any ports open for anyone to even try and connect to.

Making something dark can be done in a few ways, but the way it's generally handled in OpenZiti is that services reach out and establish one or more connections to the OpenZiti network fabric. Clients coming into the fabric can then reach the service through these connections after being authenticated and authorized.

OpenZiti routers, which make up the fabric, can also be dark. Routers located in private networks will usually be made dark. These routers will reach out of the private network to talk to the controller and to make connections to join the network fabric mesh. This allows the services and routers in your private networks to make only outbound connections, so no holes have to be opened for inbound traffic.

Services can be completely dark if they are implemented with a OpenZiti SDK. If this is not possible a OpenZiti tunneler or proxy can be colocated with the service. The service then only needs to allow connections from the local machine or network, depending on how close you colocate the proxy to the service.

End to End Encryption

If you take advantage of OpenZiti's developer SDKs and embed OpenZiti in your client and server applications, your traffic can be configured to be seamlessly encrypted from the client application to server application. If you prefer to use tunnelers or proxy applications, the traffic can be encrypted for you from machine to machine or private network to private network. Various combinations of the above are also supported.

End-to-end encryption means that even if systems between the client and server are compromised, your traffic cannot be decrypted or tampered with.


Getting started with OpenZiti

If you are looking to jump right in feet first you can follow along with one of our up-and-running quickstart guides. These guides are designed to get an overlay network quickly and allow you to run it all locally, use Docker or host it anywhere.

This environment is perfect for evaluators to get to know OpenZiti and the capabilities it offers. The environment was not designed for large scale deployment or for long-term usage. If you are looking for a managed service to help you run a truly global, scalable network browse over the NetFoundry web site to learn more.

Build from Source

Please refer to the local development tutorial for build instructions.


Adopters

Interested to see what companies are using OpenZiti? Check out the list of projects and companies using OpenZiti here. Interested in adding your project to the list? Add an issue to github or better yet feel free to add a pull request! Instructions for getting your project added are included on the adopters list


Support

We have a very active Discourse forum. Join the conversation! Help others if you can. If you want to ask a question or just check it out, cruise on over to the OpenZiti Discourse forum. We love getting questions, jump in!


Contributing

The OpenZiti project welcomes contributions including, but not limited to, code, documentation and bug reports.

OpenZiti was developed and open sourced by Netfoundry, Inc. NetFoundry continues to fund and contribute to OpenZiti.

Owner

  • Name: OpenZiti
  • Login: openziti
  • Kind: organization

OpenZiti is a programmable network overlay and associated edge components for application-embedded, zero-trust networking

Citation (CITATION.cff)

# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!

cff-version: 1.2.0
title: OpenZiti
message: >-
  Thanks for using OpenZiti. Please cite it using this
  metadata.
type: software
authors:
  - name: NetFoundry Inc.
    address: 101 S Tryon St UNIT 2700
    city: Charlotte
    country: US
    post-code: '28280'
repository-code: 'https://github.com/openziti/ziti'
url: 'https://openziti.io'
abstract: >-
  OpenZiti is a free and open source project focused on
  bringing zero trust networking principles directly into
  applications.
keywords:
  - open source
  - zero trust
  - secure networking
license: Apache-2.0

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 5,413
  • Total Committers: 54
  • Avg Commits per committer: 100.241
  • Development Distribution Score (DDS): 0.723
Past Year
  • Commits: 683
  • Committers: 15
  • Avg Commits per committer: 45.533
  • Development Distribution Score (DDS): 0.676
Top Committers
Name Email Commits
Paul Lorenz p****z@n****o 1,500
Andrew Martinez a****z@g****m 934
ziti-ci z****i@n****o 825
Kenneth Bingham k****m@n****o 598
dovholuknf 4****f 522
Michael Quigley m****l@q****m 287
gberl002 g****l@n****o 202
dependabot[bot] 4****] 200
Shawn Carey s****y@n****o 73
Eugene K e****v@n****o 56
Steven A. Broderick Elias s****k@n****o 42
dependabot-preview[bot] 2****] 30
Cam Otts o****n@g****m 30
Curt Tudor c****t@r****m 22
Tod Burtchell t****l@n****o 14
Jens Alm j****s@u****g 12
dariuszSki d****i@n****o 6
Mario Trangoni m****i@g****m 5
Chernenko Ruslan r****e@g****m 4
Geoff Berl 9****2 3
Lars Lehtonen l****n@g****m 3
codesee-architecture-diagrams[bot] 8****] 3
r-caamano r****o@n****o 3
Edward Moscardini e****i@n****o 3
Geoff Berl g****1@g****m 3
Dave Hart d****t@r****m 2
Mike Guthrie m****e@n****o 2
StefanGajic s****c@y****m 2
Kelvin Smith k****n@t****z 2
Mamy Ratsimbazafy m****b@n****o 1
and 24 more...

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 776
  • Total pull requests: 1,790
  • Average time to close issues: 7 months
  • Average time to close pull requests: 8 days
  • Total issue authors: 79
  • Total pull request authors: 39
  • Average comments per issue: 0.73
  • Average comments per pull request: 0.41
  • Merged pull requests: 1,020
  • Bot issues: 4
  • Bot pull requests: 660
Past Year
  • Issues: 316
  • Pull requests: 919
  • Average time to close issues: 7 days
  • Average time to close pull requests: 3 days
  • Issue authors: 39
  • Pull request authors: 14
  • Average comments per issue: 0.28
  • Average comments per pull request: 0.37
  • Merged pull requests: 515
  • Bot issues: 3
  • Bot pull requests: 360
Top Authors
Issue Authors
  • plorenz (223)
  • andrewpmartinez (145)
  • qrkourier (140)
  • dovholuknf (75)
  • gberl002 (28)
  • mikegorman-nf (15)
  • ekoby (13)
  • sabedevops (9)
  • scareything (8)
  • emoscardini (7)
  • nenkoru (7)
  • tburtchell (6)
  • NicFragale (4)
  • dependabot[bot] (4)
  • jensalm (4)
Pull Request Authors
  • dependabot[bot] (660)
  • plorenz (422)
  • qrkourier (297)
  • andrewpmartinez (177)
  • dovholuknf (97)
  • scareything (34)
  • gberl002 (23)
  • jensalm (17)
  • mjtrangoni (6)
  • Pehesi97 (4)
  • alrs (4)
  • nenkoru (3)
  • mikegorman-nf (3)
  • ekoby (3)
  • Vrashabh-Sontakke (2)
Top Labels
Issue Labels
bug (121) enhancement (103) controller (70) distributed-control (54) router (41) good first issue (31) quickstart (26) CLI (26) fabric (20) performance (13) documentation (12) metrics/reporting (11) panic (10) chore (8) edge (8) deployments (7) Orange (7) hacktoberfest (6) dependencies (4) tunneler (3) zendesk (3) go (3) SDK (2) duplicate (2) stability/testing (1) help wanted (1) technical-debt (1) docker (1)
Pull Request Labels
dependencies (658) go (504) docker (41) github_actions (40) quickstartrelease (22) bug (2) controller (2) fabric (1) distributed-control (1) panic (1) enhancement (1)

Packages

  • Total packages: 6
  • Total downloads:
    • pypi 3,418 last-month
  • Total docker downloads: 5,103
  • Total dependent packages: 6
    (may contain duplicates)
  • Total dependent repositories: 6
    (may contain duplicates)
  • Total versions: 814
  • Total maintainers: 2
proxy.golang.org: github.com/openziti/ziti
  • Versions: 249
  • Dependent Packages: 5
  • Dependent Repositories: 3
  • Docker Downloads: 5,103
Rankings
Stargazers count: 2.0%
Docker downloads count: 2.1%
Dependent packages count: 2.5%
Average: 2.5%
Dependent repos count: 2.9%
Forks count: 3.0%
Last synced: 6 months ago
proxy.golang.org: github.com/openziti/ziti/network-tests
  • Versions: 30
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 1.2%
Forks count: 1.9%
Average: 4.9%
Dependent packages count: 7.0%
Dependent repos count: 9.3%
Last synced: 7 months ago
proxy.golang.org: github.com/OpenZiti/ziti
  • Versions: 248
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.3%
Average: 5.5%
Dependent repos count: 5.7%
Last synced: 6 months ago
proxy.golang.org: github.com/OpenZITI/Ziti
  • Versions: 248
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 5.3%
Average: 5.5%
Dependent repos count: 5.7%
Last synced: 6 months ago
proxy.golang.org: github.com/openziti/ziti/zititest
  • Versions: 15
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Stargazers count: 1.8%
Forks count: 2.8%
Average: 6.0%
Dependent packages count: 8.9%
Dependent repos count: 10.6%
Last synced: 7 months ago
pypi.org: openziti

Ziti Python SDK

  • Versions: 24
  • Dependent Packages: 1
  • Dependent Repositories: 3
  • Downloads: 3,418 Last month
Rankings
Downloads: 5.5%
Dependent repos count: 9.0%
Stargazers count: 9.8%
Dependent packages count: 10.1%
Average: 10.7%
Forks count: 19.1%
Maintainers (2)
Last synced: 6 months ago