Skip to content

Commit 97e8641

Browse files
authored
Merge pull request #2 from bloock/feature/EIT-3582
2 parents ecfca71 + 746900b commit 97e8641

40 files changed

+24476
-2102
lines changed
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
---
2+
title: 'Access Control'
3+
sidebar_position: 5
4+
---
5+
6+
# Access Control {#access-control}
7+
8+
Access control roles applied to cryptographic keys and certificates encompass the systematic management of permissions and privileges assigned to individuals or entities interacting with these critical cryptographic assets. In essence, access control roles serve as a complementary layer of security, dictating who can access, modify, or utilize cryptographic keys and certificates within an organization's infrastructure.
9+
10+
Right now we offer two types of access control:
11+
12+
### Time-Based One-Time Password (TOTP)
13+
14+
Time-Based One-Time Password (TOTP) is a cryptographic protocol used for multi-factor authentication. It generates a unique one-time password (OTP) based on a shared secret key and the current time.
15+
16+
Benefits:
17+
18+
- Enhanced Security: TOTP provides an additional layer of security beyond traditional password-based authentication by requiring the possession of a physical device (e.g., smartphone) and a time-sensitive OTP.
19+
- Ease of Use: TOTP is user-friendly and widely supported by authentication apps and devices, making it convenient for users to enable multi-factor authentication.
20+
21+
Example of compatible software applications are: [Google Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2&hl=en_US&pli=1) or [Microsoft Authenticator](https://play.google.com/store/apps/details?id=com.azure.authenticator&hl=en_US)
22+
23+
### Secret-Based Authentication
24+
25+
Secret-based authentication, also known as shared secret authentication, is a form of access control that relies on the possession and verification of a shared secret, such as a password or passphrase. In this method, the user presents the secret to authenticate themselves and gain access to a system or resource.
26+
27+
Benefits:
28+
29+
- Simplicity: Secret-based authentication is straightforward to implement and understand, requiring only the input and verification of a shared secret.
30+
- Familiarity: Password-based authentication, a common form of secret-based authentication, is familiar to most users and widely used across various systems and platforms.

docs/guides/products/key/concepts/management-mode.mdx

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,15 @@ sidebar_position: 2
77

88
In BLOOCK you can create any object using different management modes:
99

10-
- **Local mode**: The local mode consists of creating an [object](./objects.mdx#object-types) where the user stores his private information. For example, in the case of the keys object, the user keeps the private key and in no case will connect to BLOOCK services.
11-
- **Management mode**: The local mode consists of creating an [object](./objects.mdx#object-types) guarded by the BLOOCK service, a FIPS 140-2 Level 1 certified software-protected vault. For example, in the case of a key object, the user does not have to worry about the private key.
10+
- **Local mode**: The local mode consists of creating an [object](./objects.mdx#object-types) where the user stores his private information. For example, in the case of the [keys object](./../overview.mdx#what-cryptographic-key), the user keeps the private key and in no case will connect to BLOOCK services.
11+
- **Management mode**: The managed mode consists of creating an [object](./objects.mdx#object-types) guarded by the BLOOCK service, a FIPS 140-2 Level 1 certified software-protected vault. For example, in the case of a [key object](./../overview.mdx#what-certificate), the user does not have to worry about the private key.
1212

1313
| | Local Mode | Managed Mode |
1414
| -------------- | ---------------------------------------- | -------------------------------------------------------- |
15-
| Key Generation | Users generate and store their own keys | Keys are generated and managed by BLOOCK |
15+
| Key Generation | Users generate and store their own keys | Keys are generated and managed by BLOOCK\* |
1616
| Storage | Keys stored locally on the device | Keys stored centrally by BLOOCK |
1717
| Scalability | Limited scalability due to local storage | Greater scalability due to centralized storage by BLOOCK |
1818
| Security | Depends on user's security practices | Enhanced security as managed by BLOOCK |
1919
| Management | Users are responsible for key management | BLOOCK handles key management |
20+
21+
\* In any case we do not have the private key, your key will be stored in a software-protected service that complies with the security level of FIPS 140-2 Level 1 certified.

docs/guides/products/key/concepts/objects.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ title: 'Objects'
33
sidebar_position: 1
44
---
55

6-
# Object types {#object-types}
6+
# Objects {#objects}
77

88
In BLOOCK you have two type of objects:
99

10-
- **Cryptographic keys**: software-protected keys that supp orts multiple types and algorithms.
11-
- **Certificates**: which are built on top of keys. It contains the key and identifiable extra information. when a certificate is created, an addressable key is also created.
10+
- **[Cryptographic keys](./../overview.mdx#what-cryptographic-key)**: software-protected keys that supports multiple types and algorithms.
11+
- **[Certificates](./../overview.mdx#what-certificate)**: which are built on top of keys. It contains the key and identifiable extra information. when a certificate is created, an addressable key is also created.

docs/guides/products/key/concepts/operations.mdx

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,42 +3,42 @@ title: 'Operations'
33
sidebar_position: 3
44
---
55

6-
# Object operations {#object-operations}
6+
# Operations {#operations}
77

88
These are the operations you can do with any BLOOCK object:
99

1010
- **Sing**: consists on singning and verifying.
1111
- **Encrypt**: consists on encrypting and descrypting. (depending of the object used, would operate a symmetric or asymmetric encryption)
1212

13-
## Operation Sign and Verify
13+
### Operation Sign and Verify
1414

15-
### Signing
15+
#### Signing
1616

1717
- **Hashing**: The data to be signed is first hashed using a cryptographic hash function, such as SHA-256. This produces a fixed-length hash value unique to the input data.
1818
- **Signing**: The hash value is then encrypted using the private key of the signer. This process creates a digital signature that binds the hash value to the signer's identity.
1919

20-
### Verifying
20+
#### Verifying
2121

2222
- **Hashing**: The data to be signed is first hashed using a cryptographic hash function, such as SHA-256. This produces a fixed-length hash value unique to the input data.
2323
- **Decryption**: The digital signature is decrypted using the public key of the signer, resulting in the recovered hash value.
2424
- **Comparison**: The recovered hash value is compared with the hash value computed from the received data. If they match, it confirms the integrity of the data and the authenticity of the signer.
2525

26-
## Operation Asymmetric Encryption and Decryption
26+
### Operation Asymmetric Encryption and Decryption
2727

28-
### Encrypting
28+
#### Encrypting
2929

3030
- **Encryption**: The data to be transmitted is encrypted using the recipient's public key. Asymmetric encryption algorithms, such as RSA (Rivest-Shamir-Adleman), are commonly used for this purpose.
3131

32-
### Decrypting
32+
#### Decrypting
3333

3434
- **Decryption**: The encrypted data is decrypted using the recipient's private key, revealing the original plaintext. Only the recipient, possessing the corresponding private key, can decrypt the data.
3535

36-
## Operation Symmetric Encryption and Decryption
36+
### Operation Symmetric Encryption and Decryption
3737

38-
### Encrypting
38+
#### Encrypting
3939

4040
- **Encryption**:The data to be transmitted is encrypted using the shared secret key. Symmetric encryption algorithms, such as AES (Advanced Encryption Standard), are commonly used for this purpose.
4141

42-
### Decrypting
42+
#### Decrypting
4343

4444
- **Decryption**: The encrypted data is decrypted using the shared secret key. The recipient applies the same symmetric encryption algorithm and the shared key to recover the original plaintext.
Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,24 @@
11
---
22
title: 'Supported Algorithms'
3-
sidebar_position: 2
3+
sidebar_position: 4
44
---
55

6-
# Supported Algorithms
6+
# Supported Algorithms {#supported-algorithms}
77

8-
| | Local Mode | | Managed Mode |
8+
| | **Local Mode** | | **Managed Mode** |
99
| ------------- | --------------------------------- | ------------------------------- | --------------------------------- | ------------------------------- |
1010
| | **Key** | **Certificate** | **Key** | **Certificate** |
1111
| ------------- | --------------------------------- | ------------------------------- | --------------------------------- | ------------------------------- |
12-
| P-256K | ✓ (Sign) | ✓ (Sign) | ✓ (Sign) | ✓ (Sign) |
12+
| **P-256K** | ✓ (Sign) | ✓ (Sign) | ✓ (Sign) | ✓ (Sign) |
1313
| | | | | |
14-
| RSA-2048 | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) |
14+
| **RSA-2048** | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) |
1515
| | | | | |
16-
| RSA-3072 | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) |
16+
| **RSA-3072** | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) |
1717
| | | | | |
18-
| RSA-4096 | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) |
18+
| **RSA-4096** | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) | ✓ (Sign, Encrypt) |
1919
| | | | | |
20-
| AES128 | ✓ (Encrypt) | x | ✓ (Encrypt) | x |
20+
| **AES128** | ✓ (Encrypt) | x | x | x |
2121
| | | | | |
22-
| AES256 | ✓ (Encrypt) | x | - | - |
23-
| | | x | ✓ (Encrypt) | x |
22+
| **AES256** | ✓ (Encrypt) | x | ✓ (Encrypt) | x |
2423
| | | | | |
25-
| BJJ | - | - | - | - |
26-
| | ✓ (Encrypt) | ✓ (Encrypt) | ✓ (Encrypt) | ✓ (Encrypt) |
24+
| **BJJ** | ✓ (Sign) | x | ✓ (Sign) | x |
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"position": 4,
3+
"label": "Access Control",
4+
"collapsible": true
5+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
sidebar_position: 2
3+
---
4+
5+
# Using a key with Secret-Based
6+
7+
This code documentation outlines the process of creating a cryptographic key and associating a Secret-Based access control mechanism. Additionally, it demonstrates how to utilize the Secret-Based access control for signing a payload securely.
8+
9+
import SdkCodeBlock from '/docs/partials/_sdk-code-block.mdx';
10+
11+
import NewManagedKeySecretBasedJs from '!!raw-loader!@site/examples/key/new_managed_key_secret_based/new_managed_key_secret_based.ts';
12+
import NewManagedKeySecretBasedPy from '!!raw-loader!@site/examples/key/new_managed_key_secret_based/new_managed_key_secret_based.py';
13+
import NewManagedKeySecretBasedJava from '!!raw-loader!@site/examples/key/new_managed_key_secret_based/NewManagedKeySecretBased.java';
14+
import NewManagedKeySecretBasedPhp from '!!raw-loader!@site/examples/key/new_managed_key_secret_based/new_managed_key_secret_based.php';
15+
import NewManagedKeySecretBasedGo from '!!raw-loader!@site/examples/key/new_managed_key_secret_based/new_managed_key_secret_based.go';
16+
17+
<SdkCodeBlock
18+
ts={NewManagedKeySecretBasedJs}
19+
py={NewManagedKeySecretBasedPy}
20+
java={NewManagedKeySecretBasedJava}
21+
php={NewManagedKeySecretBasedPhp}
22+
go={NewManagedKeySecretBasedGo}
23+
/>
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
sidebar_position: 1
3+
---
4+
5+
# Using a key with TOTP
6+
7+
This code documentation outlines the process of creating a cryptographic key and associating a Time-Based One-Time Password (TOTP) access control mechanism. Additionally, it demonstrates how to utilize the TOTP access control for signing a payload securely.
8+
9+
import SdkCodeBlock from '/docs/partials/_sdk-code-block.mdx';
10+
11+
import NewManagedKeyTotpJs from '!!raw-loader!@site/examples/key/new_managed_key_totp/new_managed_key_totp.ts';
12+
import NewManagedKeyTotpPy from '!!raw-loader!@site/examples/key/new_managed_key_totp/new_managed_key_totp.py';
13+
import NewManagedKeyTotpJava from '!!raw-loader!@site/examples/key/new_managed_key_totp/NewManagedKeyTotp.java';
14+
import NewManagedKeyTotpPhp from '!!raw-loader!@site/examples/key/new_managed_key_totp/new_managed_key_totp.php';
15+
import NewManagedKeyTotpGo from '!!raw-loader!@site/examples/key/new_managed_key_totp/new_managed_key_totp.go';
16+
17+
<SdkCodeBlock
18+
ts={NewManagedKeyTotpJs}
19+
py={NewManagedKeyTotpPy}
20+
java={NewManagedKeyTotpJava}
21+
php={NewManagedKeyTotpPhp}
22+
go={NewManagedKeyTotpGo}
23+
/>
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"position": 2,
3-
"label": "Encryption",
3+
"label": "Certificates",
44
"collapsible": true
55
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
---
2+
title: 'Set-up local'
3+
sidebar_position: 1
4+
---
5+
6+
import SdkCodeBlock from '/docs/partials/_sdk-code-block.mdx';
7+
8+
# Local certificate
9+
10+
## Generating a local certifiate
11+
12+
import NewLocalCertificateJs from '!!raw-loader!@site/examples/key/new_local_certificate/new_local_certificate.ts';
13+
import NewLocalCertificatePy from '!!raw-loader!@site/examples/key/new_local_certificate/new_local_certificate.py';
14+
import NewLocalCertificateJava from '!!raw-loader!@site/examples/key/new_local_certificate/NewLocalCertificate.java';
15+
import NewLocalCertificatePhp from '!!raw-loader!@site/examples/key/new_local_certificate/new_local_certificate.php';
16+
import NewLocalCertificateGo from '!!raw-loader!@site/examples/key/new_local_certificate/new_local_certificate.go';
17+
18+
<SdkCodeBlock
19+
ts={NewLocalCertificateJs}
20+
py={NewLocalCertificatePy}
21+
java={NewLocalCertificateJava}
22+
php={NewLocalCertificatePhp}
23+
go={NewLocalCertificateGo}
24+
/>
25+
26+
## Loading an existing local certificate
27+
28+
import LoadLocalCertificateJs from '!!raw-loader!@site/examples/key/load_local_certificate/load_local_certificate.ts';
29+
import LoadLocalCertificatePy from '!!raw-loader!@site/examples/key/load_local_certificate/load_local_certificate.py';
30+
import LoadLocalCertificateJava from '!!raw-loader!@site/examples/key/load_local_certificate/LoadLocalCertificate.java';
31+
import LoadLocalCertificatePhp from '!!raw-loader!@site/examples/key/load_local_certificate/load_local_certificate.php';
32+
import LoadLocalCertificateGo from '!!raw-loader!@site/examples/key/load_local_certificate/load_local_certificate.go';
33+
34+
<SdkCodeBlock
35+
ts={LoadLocalCertificateJs}
36+
py={LoadLocalCertificatePy}
37+
java={LoadLocalCertificateJava}
38+
php={LoadLocalCertificatePhp}
39+
go={LoadLocalCertificateGo}
40+
/>

0 commit comments

Comments
 (0)