Skip to content

Commit 49503cb

Browse files
committed
Feat: Release version 1
Feat: Add Github actions badge for master Feat: Add crates.io badge Feat: Add information to readme on how to enable the features
1 parent 8e1f7e7 commit 49503cb

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "memsecurity"
3-
version = "0.2.0-alpha1"
3+
version = "1.0.0"
44
authors = ["448 ENGINEERING DESIGN DEVELOPERS <superuser@448.africa>"]
55
license = "Apache-2.0 OR MIT"
66
description = "Securely hold secrets in memory and protect them against cross-protection-boundary readout via microarchitectural, via attacks on physical layout, and via coldboot attacks."

README.md

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,32 @@
1-
# 448-MEM-SECURITY
1+
# MEMSECURITY
2+
3+
[![Rust](https://github.com/448-engineering/MEMSECURITY/actions/workflows/rust.yml/badge.svg?branch=master)](https://github.com/448-engineering/MEMSECURITY/actions/workflows/rust.yml) ![crates.io](https://img.shields.io/crates/v/memsecurity.svg)
4+
5+
26
Securely hold secrets in memory and protect them against cross-protection-boundary readout via microarchitectural, via attacks on physical layout, and via coldboot attacks.
37

48
The given type of encryption secures sensitive data, such as secret keys, by encrypting them in memory while they are not in use and decrypting them on demand. This method provides protection against various types of attacks, including cross-protection-boundary readout via microarchitectural flaws like Spectre or Meltdown, attacks on physical layout like Rowbleed, and coldboot attacks. The key insight is that these attacks are imperfect, meaning that the recovered data contains bitflips or the attack only provides a probability for any given bit. When applied to cryptographic keys, these kinds of imperfect attacks are enough to recover the actual key. However, this implementation derives a sealing key from a large area of memory called the "pre-key" using a key derivation function. Any single bitflip in the readout of the pre-key will avalanche through all the bits in the sealing key, rendering it unusable with no indication of where the error occurred.
59

610

7-
This crate is experimental and has not been extensively tested
11+
This crate has not received an audit. Use at your own risk!!!
12+
13+
- The Arrays can be used without the need to import other crates for encryption by simple adding the crate with no extra features.
14+
```toml
15+
[dependencies]
16+
memsecurity = "1.0.0"
17+
```
18+
19+
- To enable crating of arrays with CSPRNG random bytes that can be zeroed out use the `random` feature
20+
```toml
21+
[dependencies]
22+
memsecurity = { version = "1.0.0", features = ["random"] }
23+
```
824

25+
- To enable encryption of memory secrets, add this crate with the `encryption` feature. This feature automatically enables random bytes generation from the feature `random`.
26+
```toml
27+
[dependencies]
28+
memsecurity = { version = "1.0.0", features = ["encryption"] }
29+
```
930

1031

1132
#### EXAMPLE

0 commit comments

Comments
 (0)