Skip to content

Commit

Permalink
Initial commit: add LICENSE, docs placeholders etc for github pages u…
Browse files Browse the repository at this point in the history
…nder /docs

Signed-off-by: Thierry Laurion <[email protected]>
  • Loading branch information
tlaurion committed Oct 27, 2024
1 parent dca944f commit 4a541cd
Show file tree
Hide file tree
Showing 14 changed files with 271 additions and 0 deletions.
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Flashkeeper
===

This project is developing Flashkeeper, a device that can be permanently installed on a common SOIC-8/WSON-8 flash chip. It attaches to the chip with a peel-and-stick layer and spring-loaded contacts or low-profile solder-down flex cable, interfacing with the SPI flash pins for easy write protection and external reprogramming (unbricking). For users concerned with physical attacks on their systems, for whom easy access to SPI flash pins may be seen as a risk, a variant including a microcontroller (MCU) is also being developed, allowing authenticated external reprogramming and WP control, and independently verifying the SPI flash image against a user-controlled signature each boot.

[Flashkeeper: An NLnet NGI Zero Core funded project](https://nlnet.nl/project/Flashkeeper/)
![NGI Zero Core](https://nlnet.nl/image/logos/NGI0Core_tag.svg)
---
2 changes: 2 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
_site/
myblog/
23 changes: 23 additions & 0 deletions docs/About/FAQ.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
layout: default
title: FAQ
permalink: /FAQ/
nav_order: 1
parent: About
---

FAQ
{: .fs-8 .m-0 }

<!-- markdownlint-disable MD033 -->
<details open markdown="block">
<summary>
Table of contents
</summary>
{: .text-delta }
1. TOC
{:toc}
</details>
<!-- markdownlint-enable MD033 -->

<!-- markdownlint-disable MD002 -->
22 changes: 22 additions & 0 deletions docs/About/Heads-threat-model.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
layout: default
title: Flashkeeper Threat model
permalink: /Flashkeeper-threat-model/
nav_order: 2
parent: About
---

Flashkeeper Threat model
{: .fs-8 .m-0 }

<!-- markdownlint-disable MD033 -->
<details open markdown="block">
<summary>
Table of contents
</summary>
{: .text-delta }
1. TOC
{:toc}
</details>
<!-- markdownlint-enable MD033 -->

1 change: 1 addition & 0 deletions docs/CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
osresearch.net
21 changes: 21 additions & 0 deletions docs/Community.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
layout: default
title: Community
permalink: /community/
nav_order: 99
---

Matrix channel
===
TBD

Found a bug
===

* [Open a new issue on Github](https://github.com/linuxboot/flashkeeper/issues)

Contributing
====

* [Issues tagged with "Help Wanted"](https://github.com/linuxboot/flashkeeper/labels/help%20wanted)
* [Contributing to the Flashkeeper wiki]({{ site.baseurl }}/Contributing-to-Flashkeeper-wiki/)
112 changes: 112 additions & 0 deletions docs/Development/Contributing-to-Flashkeeper-Wiki.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
---
layout: default
title: Contributing to the Flashkeeper wiki
permalink: /Contributing-to-Flashkeeper-wiki/
nav_order: 99
parent: Development
---

Contributing to the Flashkeeper Wiki
{: .fs-8 .m-0 }

The Flashkeeper wiki is open source and encourages contributions both big and small.
It is written in Markdown ([Markdown Cheat sheet](https://www.markdownguide.org/cheat-sheet/))
, built using [Jekyll](https://jekyllrb.com/) and themed using
[Just the Docs](https://pmarsceill.github.io/just-the-docs/).



<!-- markdownlint-disable MD033 -->
<details open markdown="block">
<summary>
Table of contents
</summary>
{: .text-delta }
1. TOC
{:toc}
</details>
<!-- markdownlint-enable MD033 -->


Small Changes (On GitHub)
---
The simplest way to make a small change to existing pages is directly on GitHub
as it requires no software to be installed.

* Start by login into GitHub and forking
[linuxboot/flashkeeper](https://github.com/linuxboot/flashkeeper).
* Find the desired page on [osresearch.net](http://osresearch.net/). Click on
the link at the bottom of the page saying *"Edit this page on GitHub."*
* This will bring you to an editor on GitHub and should mention that you do not
have write access to the `linuxboot/flashkeeper` repo and that changes will be
made in your fork.
* After making the desired edits, add a summary of the changes to the comment
box and click the "Propose changes" button.
* Now on the "Comparing changes" will be a "diff" of these changes to review
before submitting. If the changes are correct, press the "Create Pull Request"
button at the top of the page.


Large Changes (Local Files)
---

### Prerequisites

For larger changes, multiple changes and that may require adding new pages, it
is strongly suggested to set up a local Jekyll instance. Please refer to
[Jekyll's installation documentation](https://jekyllrb.com/docs/) to setup it
up on your system. You will need to install ruby and gems.

Additionally, the theme will also need to be installed as the remote theme does
not seem to work with locally severed Jekyll instances. Instructions for
installing the *Just the Docs* theme can be
[found here](https://pmarsceill.github.io/just-the-docs/).

ex. gem install just-the-docs

### Running Locally

After installing Jekyll and the Just the Docs theme you may run the wiki on your local system for faster testing and development.
* log in to GitHub and fork
[linuxboot/flashkeeper](https://github.com/linuxboot/flashkeeper). Then clone
your fork locally.
* Navigate to the base of the locally cloned repo and alter `_config.yml` to use
the local theme. The simplest way is to comment out the line that beings
`remote_theme` and add a line `theme: "just-the-docs"`

```yaml
# remote_theme: pmarsceill/just-the-docs
theme: "just-the-docs"
```
* Now start Jekyll with:
```bash
$> jekyll serve
```
This will start the Jekyll development web server and should be viewable in a
web browser at `http://localhost:4000/`

* create a branch in git for your changes
* Make the desired changes, commit them. **BE SURE NOT TO ADD `_config.yml`**
to your changes.
* Push the changes to your forked repo on github

### Testing Changes on Github

You may use github to render the changes for review by others. To do this, go to your fork of the flashkeeper on
GitHub.com and click *Settings*. This should default you to the *Options* tab,
scroll down to the section "GitHub Pages" and change the source branch to the
name of the branch your changes are on. After a minute or so it should be
available at `https://YOUR_USERNAME_HERE.github.io/flashkeeper/`
replacing `YOUR_USERNAME_HERE` with your GitHub username.

** NOTE:** the email account associated with your GitHub account may receive an
error regarding the `CNAME`. Please ignore this.

Please note that the URL is similar but NOT the same as the wiki pages feature in your fork in github.

### Verifying broken links
Please verify `https://YOUR_USERNAME_HERE.github.io/flashkeeper/` with `https://validator.w3.org/checklink` prior of pushing your changes.

### Pushing Changes Upstream

Create a pull request in the linuxboot/flashkeeper project that points to your changes to request review and contribute back to the parent project.
14 changes: 14 additions & 0 deletions docs/Development/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
---
layout: default
title: Development
permalink: /Development
nav_order: 9
has_children: yes
has_toc: false
---

Contributing
====

* [Issues tagged with "Help Wanted"](https://github.com/linuxboot/flashkeeper/labels/help%20wanted)
* [Contributing to the Flashkeeper wiki](/Contributing-to-Flashkeeper-wiki/)
2 changes: 2 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Documentation for the Flashkeeper project
===
20 changes: 20 additions & 0 deletions docs/_config.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
remote_theme: pmarsceill/just-the-docs
#theme: just-the-docs
color_scheme: dark
heading_anchors: true
aux_links:
"Flashkeeper on GitHub":
- "https://github.com/tlaurion/flashkeeper"
aux_links_new_tab: true

title: Flashkeeper - Wiki

last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter
last_edit_time_format: "%b %e %Y at %I:%M %p" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html

# Footer "Edit this page on GitHub" link text
gh_edit_link: true
gh_edit_link_text: "Edit this page on GitHub."
gh_edit_repository: "https://github.com/tlaurion/flashkeeper"
gh_edit_branch: "master"
gh_edit_view_mode: "edit"
Binary file added docs/favicon.ico
Binary file not shown.
Binary file added docs/images/chip.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
38 changes: 38 additions & 0 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
layout: default
title: About
has_children: true
has_toc: false
permalink: /
nav_order: 1
---

<!-- markdownlint-disable MD033 -->
<details open markdown="block">
<summary>
Table of contents
</summary>
{: .text-delta }
1. TOC
{:toc}
</details>
<!-- markdownlint-enable MD033 -->


Overview
===
Flashkeeper is a device designed for installation inside a computer, connecting to the SPI flash chip where firmware is stored and making write protection control and reprogramming easy and secure.

![design]({{ site.baseurl }}/images/chip.png)
Solderless model of one option for spring-loaded contacts (pogo pins) interfacing with a SOIC-8 flash chip from above (FreeCAD)

Further reading
---
* [Flashkeeper - Original project scope - Presentation at QubesOS mini-summit 2024](https://youtu.be/DxFceGi6C0k?list=PLuISieMwVBpJmIaHgyv7yKDwrHpqym9Qh)

Learn more about Flashkeeper
---

* [Flashkeeper threat model]({{ site.baseurl }}/Flashkeeper-threat-model/) - goes into more
detail about what classes of threats Flashkeeper attempts to counter.
* [Frequently Asked Questions]({{ site.baseurl }}/FAQ/)
8 changes: 8 additions & 0 deletions docs/notes
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#Install jekyll prerequisites https://jekyllrb.com/docs/installation/
sudo apt-get install ruby-full build-essential zlib1g-dev
# Install jekyll && just-the-docs
sudo gem install jekyll bundler just-the-docs




0 comments on commit 4a541cd

Please sign in to comment.