|
This section tries to outline Bashhub's practices to address Security and Privacy.
|
|
This section tries to outline Bashhub's practices to address Security and Privacy.
|
|
|
|
|
|
##Communication
|
|
##Communication
|
|
###HTTPS
|
|
####HTTPS
|
|
![SSL Certificate](https://pbs.twimg.com/media/BxY9gqFIIAAXPpE.png:large)
|
|
![SSL Certificate](https://pbs.twimg.com/media/BxY9gqFIIAAXPpE.png:large)
|
|
|
|
|
|
All communication to Bashhub is over HTTPS. Bashhub's client uses [requests](https://github.com/kennethreitz/requests) to communicate with the server.
|
|
All communication to Bashhub is over HTTPS. Bashhub's client uses [requests](https://github.com/kennethreitz/requests) to communicate with the server.
|
|
|
|
|
|
##Storage
|
|
##Storage
|
|
|
|
|
|
###Storage Level Encryption
|
|
####Storage Level Encryption
|
|
All commands are stored in a non-relational database that is encrypted at rest using [storage level encryption via LUKS](https://gist.github.com/jamiekurtz/8f8d1f95da58bf741ee5).
|
|
All commands are stored in a non-relational database that is encrypted at rest using [storage level encryption via LUKS](https://gist.github.com/jamiekurtz/8f8d1f95da58bf741ee5).
|
|
|
|
|
|
###Text Search
|
|
####Text Search
|
|
To support text search on the server side, commands are not encrypted at the application layer. Searching would require decrypting commands on demand. A full search experience requires there to be a text index on the commands themselves.
|
|
To support text search on the server side, commands are not encrypted at the application layer. Searching would require decrypting commands on demand. A full search experience requires there to be a text index on the commands themselves.
|
|
|
|
|
|
|
|
## Privacy
|
|
|
|
All commands are private. Commands recorded on behalf of a user are only accessible using that user's authentication token. There is currently no way to share these commands and they're not publicly accessible
|
|
|
|
|
|
|
|
#### Authentication / Indentification
|
|
|
|
Bashhub currently generates each user a unique identification token which is passed with each user request to validate a user's actions. This token is necessary to perform any actions on behalf of a user for the command api.
|
|
|
|
|
|
|
|
#### Sensitive Information
|
|
|
|
Bashhub saves a copy of a command exactly as it's recorded in your history. Credentials which are recorded off the command line (e.g. default ssh and postgres) are **not** recorded. Only if you plain text a password as part of a command will it be recorded. For example:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ mysql -u bob -p plain-text-password # This is overall bad practice.
|
|
|
|
```
|
|
|
|
Good practice is to not plain text user information and have it stored else where e.g.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ mysql -u "$DB_USER" -p "$DB_PASSWORD" # This is better practice.
|
|
|
|
```
|
|
|
|
Lastly `#ignore` added to any command will omit it from being saved. Simply add it to the end of any command and it won't be recorded in Bashhub.
|
|
|
|
|
|
|
|
```bash
|
|
|
|
$ echo "this command won't be saved" #ignore
|
|
|
|
```
|
|
|
|
|
|
|
|
#### Respect
|
|
|
|
No Bashhub maintainer ever accesses commands unless required for support reasons. When working to support issues we do our best to respect your privacy as much as possible and only access what's needed to resolve an issue.
|
|
|
|
|
|
|
|
#### User Profiles
|
|
|
|
A small amount of high level meta-data is publicly accessible on user profile pages. For example https://bashhub.com/u/rccola.
|
|
|
|
|
|
|
|
<img src="http://i.imgur.com/GBNaz51.png" width="800px">
|
|
|
|
|
|
|
|
This contains very high level information like:
|
|
|
|
- Total number of commands
|
|
|
|
- Total number of sessions
|
|
|
|
- Total number of systems
|
|
|
|
- Approximate date of last command entered.
|
|
|
|
- Date of registration.
|
|
|
|
|
|
|
|
There is currently no way to disable this page. |