You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Ockam empowers you to build secure-by-design apps that can trust data-in-motion.
18
+
19
+
You can use Ockam to create end-to-end encrypted and mutually authenticated channels. Ockam secure channels authenticate using cryptographic identities and credentials. They give your apps granular control over all trust and access decisions. This control makes it easy to enforce fine-grained, attribute-based authorization policies – at scale.
20
+
21
+
These core capabilities are composed to enable private and secure communication in a wide variety of application architectures. For example, with one simple command, an app in your cloud can create an [<markstyle="color:blue;">encrypted portal</mark>](<README (1).md#portals>) to a micro-service in another cloud. The service doesn’t need to be exposed to the Internet. You don’t have to change anything about networks or firewalls.
22
+
23
+
{% code fullWidth="false" %}
24
+
```sh
25
+
# Create a TCP Portal Inlet to a Postgres server that is running in
Similarly, using another simple command a kafka producer can publish end-to-end encrypted messages for a specific kafka consumer. Kafka brokers in the middle can’t see, manipulate, or accidentally leak sensitive enterprise data. This minimizes risk to sensitive business data and makes it easy to comply with data governance policies.
Portals carry various application protocols over end-to-end encrypted Ockam secure channels.
41
+
42
+
For example: a TCP Portal carries TCP over Ockam, a Kafka Portal carries Kafka Protocol over Ockam, etc. Since portals work with existing application protocols you can use them through companion Ockam Nodes, that run adjacent to your application, without changing any of your application’s code.
43
+
44
+
A tcp portal makes a remote tcp server **virtually adjacent** to the server’s clients. It has two parts: an inlet and an outlet. The outlet runs adjacent to the tcp server and inlets run adjacent to tcp clients. An inlet and the outlet work together to create a portal that makes the remote tcp server appear <markstyle="background-color:yellow;">on localhost</mark> adjacent to a client. This client can then interact with this localhost server exactly like it would with the remote server. All communication between inlets and outlets is end-to-end encrypted.
45
+
46
+
<figure><imgsrc=".gitbook/assets/Screenshot 2024-02-18 at 7.11.15 AM.png"alt=""><figcaption></figcaption></figure>
47
+
48
+
You can use Ockam Command to start nodes with one or more inlets or outlets. The underlying [<markstyle="color:blue;">protocols</mark>](reference/protocols/) handle the hard parts — NATs are traversed; Keys are stored in vaults; Credentials are short-lived; Messages are authenticated; Data-integrity is guaranteed; Senders are protected from key compromise impersonation; Encryption keys are ratcheted; Nonces are never reused; Strong forward secrecy is ensured; Sessions recover from network failures; and a lot more.
49
+
50
+
## How Ockam is different from a Network layer connector
Copy file name to clipboardExpand all lines: README.md
+27-23Lines changed: 27 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,41 +12,45 @@ layout:
12
12
visible: true
13
13
---
14
14
15
-
# What is Ockam?
15
+
# Intro to Ockam
16
16
17
-
Ockam empowers you to build secure-by-design apps that can trust data-in-motion.
17
+
Ockam empowers you to build secure-by-design apps that can trust data-in-motion. 
18
18
19
-
You can use Ockam to create end-to-end encrypted and mutually authenticated channels. Ockam secure channels authenticate using cryptographic identities and credentials. They give your apps granular control over all trust and access decisions. This control makes it easy to enforce fine-grained, attribute-based authorization policies – at scale.
19
+
With Ockam:
20
20
21
-
These core capabilities are composed to enable private and secure communication in a wide variety of application architectures. For example, with one simple command, an app in your cloud can create an [<markstyle="color:blue;">encrypted portal</mark>](./#portals) to a micro-service in another cloud. The service doesn’t need to be exposed to the Internet. You don’t have to change anything about networks or firewalls.
21
+
**Impossible connections become possible.** Establish secure channels between systems in private networks that previously could not be connected because it is either too difficult or insecure
22
22
23
-
{% code fullWidth="false" %}
24
-
```sh
25
-
# Create a TCP Portal Inlet to a Postgres server that is running in
**All public endpoints become private.** Connect your applications and databases without exposing anything publicly
28
24
29
-
# Access the Postgres server on localhost.
30
-
psql --host localhost --port 15432
31
-
```
32
-
{% endcode %}
25
+
\
26
+
At its core, Ockam is a toolkit for developers to build applications that can create end-to-end encrypted, mutually authenticated, secure communication channels:
**From anywhere to anywhere:** Ockam works across any network, cloud, or on prem infrastructure
35
29
36
-
Similarly, using another simple command a kafka producer can publish end-to-end encrypted messages for a specific kafka consumer. Kafka brokers in the middle can’t see, manipulate, or accidentally leak sensitive enterprise data. This minimizes risk to sensitive business data and makes it easy to comply with data governance policies.
30
+
**Over any transport topology:** Ockam is compatible with every transport layer including TCP, UDP, Kafka, Bluetooth
**Without no infrastructure, network, or application changes:** Ockam works at the application layer, so you don’t need to make complex changes
39
33
40
-
Portals carry various application protocols over end-to-end encrypted Ockam secure channels.
34
+
**While ensuring the risky things are impossible to get wrong:** Ockam’s protocols do the heavy lifting to establish end-to-end encrypted, mutually authenticated secure channels
41
35
42
-
For example: a TCP Portal carries TCP over Ockam, a Kafka Portal carries Kafka Protocol over Ockam, etc. Since portals work with existing application protocols you can use them through companion Ockam Nodes, that run adjacent to your application, without changing any of your application’s code.
36
+
### Why Ockam is a game changer
43
37
44
-
A tcp portal makes a remote tcp server **virtually adjacent** to the server’s clients. It has two parts: an inlet and an outlet. The outlet runs adjacent to the tcp server and inlets run adjacent to tcp clients. An inlet and the outlet work together to create a portal that makes the remote tcp server appear <markstyle="background-color:yellow;">on localhost</mark> adjacent to a client. This client can then interact with this localhost server exactly like it would with the remote server. All communication between inlets and outlets is end-to-end encrypted.
38
+
Traditionally, connections made over TCP are secured with TLS. However, the security guarantees of a TLS secure channel only apply for the length of the underlying TCP connection. It is not possible to connect two systems in different private networks over a single TCP connection. Thus, connecting these two systems requires exposing one of them over the Internet, and breaking the security guarantees of TLS.
45
39
46
-
<figure><imgsrc=".gitbook/assets/Screenshot 2024-02-18 at 7.11.15 AM.png"alt=""><figcaption></figcaption></figure>
40
+
Ockam works differently. Our secure channel protocol sits on top of an application layer routing protocol. This routing protocol can hand over messages from one transport layer connection to another. This can be done over any transport protocol, with any number of transport layer hops: TCP to TCP to TCP, TCP to UDP to TCP, UDP to Bluetooth to Kafka, etc. 
47
41
48
-
You can use Ockam Command to start nodes with one or more inlets or outlets. The underlying [<markstyle="color:blue;">protocols</mark>](reference/protocols/) handle the hard parts — NATs are traversed; Keys are stored in vaults; Credentials are short-lived; Messages are authenticated; Data-integrity is guaranteed; Senders are protected from key compromise impersonation; Encryption keys are ratcheted; Nonces are never reused; Strong forward secrecy is ensured; Sessions recover from network failures; and a lot more.
42
+
Over these transport layer connections, Ockam sets up an end-to-end encrypted, mutually authenticated connection. This unlocks the ability to create secure channels between systems that live in entirely private networks, without exposing either end to the Internet. 
49
43
50
-
## How Ockamis different from a Network layer connector
44
+
Since Ockam’s routing protocol is at the application layer, complex network and infrastructure changes are not required to make these connections. Rather than a months-long infrastructure project, you can connect private systems in minutes while ensuring the risky things are impossible to get wrong. NATs are traversed; Keys are stored in vaults; Credentials are short-lived; Messages are authenticated; Data-integrity is guaranteed; Senders are protected from key compromise impersonation; Encryption keys are ratcheted; Nonces are never reused; Strong forward secrecy is ensured; Sessions recover from network failures; and a lot more.
The magic of Ockam is it's simplicity. All you need to do is subscribe to Ockam Orchestrator, and then deploy one of the following distributions next to the applications you'd like to connect:
Copy file name to clipboardExpand all lines: how-does-ockam-work.md
+1-3Lines changed: 1 addition & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,9 +12,7 @@ layout:
12
12
visible: true
13
13
---
14
14
15
-
# How does Ockam work?
16
-
17
-
Ockam is a stack of[ protocols](https://docs.ockam.io/reference/protocols) to build secure-by-design apps that can trust data-in-motion. We provide a collection of programming libraries, command line tools, deployable components, and cloud services that make it simple for you to use these protocols within your apps.
15
+
# Get started demo
18
16
19
17
Let’s build a simple example together. We will create an encrypted[ Ockam Portal](https://docs.ockam.io/#portals) from a psql microservice in Azure to a Postgres Database in AWS.
Copy file name to clipboardExpand all lines: portals/databases/README.md
+3-5Lines changed: 3 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,7 +16,7 @@ layout:
16
16
17
17
Create an Ockam **Portal** between any application, to any database, in any environment.
18
18
19
-
In each example, we connect a nodejs app in one private network with a database in another private network. 
19
+
In each example, we connect a nodejs app in one private network with a database in another private network.
20
20
21
21
Each company’s network is private, isolated, and doesn't expose ports. To learn how end-to-end trust is established, please read: “[<markstyle="color:blue;">How does Ockam work?</mark>](../../how-does-ockam-work.md)”
22
22
@@ -25,9 +25,7 @@ Each company’s network is private, isolated, and doesn't expose ports. To lear
25
25
Please select an example to dig in:
26
26
27
27
{% hint style="info" %}
28
-
The examples below use PostgreSQL, MongoDB and InfluxDB. However, the same setup works for any database: _MySQL, ClickHouse, Cassandra, SQL Server, etc._
28
+
The examples below use PostgreSQL, MongoDB and InfluxDB. However, the same setup works for any database: _MySQL, ClickHouse, Cassandra, SQL Server, Databricks, Snowflake, Mongo, etc._
29
29
{% endhint %}
30
30
31
-
<tabledata-card-size="large"data-view="cards"><thead><tr><th></th><th></th><thdata-hiddendata-card-targetdata-type="content-ref"></th></tr></thead><tbody><tr><td><ahref="postgres/"><markstyle="color:blue;"><strong>PostgreSQL</strong></mark></a></td><td>We connect a nodejs app in one private network with a PostgreSQL database in another private network.</td><td><ahref="postgres/">postgres</a></td></tr><tr><td><ahref="mongodb/"><markstyle="color:blue;"><strong>MongoDB</strong></mark></a></td><td>We connect a nodejs app in one private network with a MongoDB database in another private network.</td><td><ahref="mongodb/">mongodb</a></td></tr><tr><td><ahref="influxdb/"><markstyle="color:blue;"><strong>InfluxDB</strong></mark></a></td><td>We connect a nodejs app in one private network with a InfluxDB database in another private network.</td><td><ahref="influxdb/">influxDB</a></td></tr></tbody></table>
32
-
33
-
31
+
<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="postgres/"><mark style="color:blue;"><strong>PostgreSQL</strong></mark></a></td><td>We connect a nodejs app in one private network with a PostgreSQL database in another private network.</td><td><a href="postgres/">postgres</a></td></tr><tr><td><a href="mongodb/"><mark style="color:blue;"><strong>MongoDB</strong></mark></a></td><td>We connect a nodejs app in one private network with a MongoDB database in another private network.</td><td><a href="mongodb/">mongodb</a></td></tr><tr><td><a href="influxdb/"><mark style="color:blue;"><strong>InfluxDB</strong></mark></a></td><td>We connect a nodejs app in one private network with a InfluxDB database in another private network.</td><td><a href="influxdb/">influxdb</a></td></tr><tr><td><a href="../../quickstarts/"><mark style="color:blue;"><strong>Snowflake</strong></mark></a></td><td>Use one of the Ockam Snowflake connectors to build private connections to Snowflake in minutes.</td><td></td></tr></tbody></table>
Copy file name to clipboardExpand all lines: portals/databases/influxdb/README.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,12 +14,12 @@ layout:
14
14
15
15
# InfluxDB
16
16
17
-
This section contains hands-on examples that use [<markstyle="color:blue;">Ockam</mark>](../../../) to create **encrypted portals** to InfluxDB databases running in various environments.
17
+
This section contains hands-on examples that use [<markstyle="color:blue;">Ockam</mark>](<../../../README (1).md>) to create **encrypted portals** to InfluxDB databases running in various environments.
18
18
19
-
In each example, we connect a nodejs app in one private network with a InfluxDB database in another private network. To understand how end-to-end trust is established, and how the portal works even though the two networks are isolated with no exposed ports, please read: “[<markstyle="color:blue;">How does Ockam work?</mark>](../../../how-does-ockam-work.md)”
19
+
In each example, we connect a nodejs app in one private network with a InfluxDB database in another private network. To understand how end-to-end trust is established, and how the portal works even though the two networks are isolated with no exposed ports, please read: “[<markstyle="color:blue;">How does Ockam work?</mark>](../../../how-does-ockam-work.md)”
<tabledata-card-size="large"data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><ahref="timestream.md"><markstyle="color:blue;"><strong>InfluxDB - Amazon Timestream</strong></mark></a></td><td>We connect a nodejs app in one Amazon VPC with a InfluxDB database in another Amazon VPC. The example uses AWS CLI to create these VPCs.</td></tr></tbody></table>
25
+
<tabledata-card-size="large"data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><ahref="timestream.md"><markstyle="color:blue;"><strong>InfluxDB - Amazon Timestream</strong></mark></a></td><td>We connect a nodejs app in one Amazon VPC with a InfluxDB database in another Amazon VPC. The example uses AWS CLI to create these VPCs.</td></tr></tbody></table>
0 commit comments