Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/stecman/passnote
Encrypted data store application using Phalcon PHP
https://github.com/stecman/passnote
Last synced: about 1 month ago
JSON representation
Encrypted data store application using Phalcon PHP
- Host: GitHub
- URL: https://github.com/stecman/passnote
- Owner: stecman
- License: mit
- Created: 2014-09-14T12:44:32.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2019-03-15T20:37:41.000Z (over 5 years ago)
- Last Synced: 2023-04-10T05:12:16.687Z (over 1 year ago)
- Language: PHP
- Size: 174 KB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# **Passnote**: encrypted data store
Passnote is an application for storing secrets.
![Passnote screenshot](https://i.imgur.com/OpFPetu.png)
* [Architecture overview](docs/architecture.md)
## Installation and configuration
[Step by step installation instructions can be found in docs/installation.md.](docs/installation.md) In general, to run Passnote you'll need:
* PHP 7.0 configured with `--with-openssl` (this is normal)
* [Phalcon PHP](http://phalconphp.com/) >= 3.4.0
* A database. The schema for MySQL is in `docs/mysql/schema.sql`, though Phalcon supports other databases
* Composer
* A web server with the document root set to the project's `public` directory and set up to pass unresolved requests through to `public/index.php`. The built-in PHP web sever can be used for development by running `php -S 127.0.0.1:8000` in the `public/` directory.Additionally, to build and develop the interface components, you'll need:
* Node JS and NPM to run most of the interface toolkit
* [LESS](http://lesscss.org/) compiler `lessc`
* [Bower](http://bower.io/) to install JavaScript and CSS dependencies: `bower`To build the CSS, you'll need to run `make less` in the project root.
## Updating
To update an existing install, pull down the latest code from master and run any database updates:
./bin/task.php migrate run
Also see [docs/upgrade-notes.md](docs/upgrade-notes.md) for any extra steps required.
## Road map
Passnote is stable, but more features are planned:
**Core functionality that still needs to be implemented:**
* Account settings: managing password and keys
* Unlocking objects that use a key other than a user's account key
* Archiving objects (instead of just deleting)**Planned functionality:**
* Fast session expiry
* Attachments on objects
* Pagination of list view / better list or search view
* Command-line interface (console)
* Ability to share objects between users
* Bulk key change (eg. for replacing an RSA key across all objects that use it)
* A choice of encryption algorithms (eg. elliptic curve instead of RSA)## Note about security
Passnote is designed to encrypt and manage data in a safer manner than storing your secrets in plain text. Data in Passnote is encrypted ¹, however the total security of the data you choose to store in Passnote is dependent on a number of external factors including the server environment it runs in and the passwords used for accounts and keys. Ideally Passnote shouldn't be exposed directly to the internet. If you're accessing Passnote over the internet it must be over an encrypted connection (eg. HTTPS, SSH tunnel), and the following headers should be configured at a web server level:
Strict-Transport-Security: max-age=31536000
Content-Security-Policy: default-src 'self'; frame-src 'none'; object-src 'none'
X-Content-Type-Options: nosniff
X-Frame-Options: DENY
X-XSS-Protection: 1; mode=blockYou probably want to consider not using this project other than as a Phalcon PHP demo - it's just a toy and the security knowledge of the author is limited.
¹ Objects in Passnote are each encrypted using 256 bit AES in CBC mode with a random 32 byte key. The random key for of each object is encrypted using an RSA key and stored alongside the encrypted content. Generated RSA keys are 4096 bit by default. Remember that objects are only as safe as the password on the RSA key associated with them.