Difference between revisions of "Sat Messenger / RBS"
From Tmplab
Samneurohack (talk | contribs) (→Parts) |
Samneurohack (talk | contribs) (→Sat Messenger) |
||
(42 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
== What ? == | == What ? == | ||
− | * It's | + | * It's *cheap* and *encrypted* short message gateway : email/web <- iridium constellation -> Somewhere on earth |
− | |||
* Each 50 character long messages can be 0.05 euros. Remember the SMS at the beginning ? | * Each 50 character long messages can be 0.05 euros. Remember the SMS at the beginning ? | ||
− | * | + | * Sat messenger is the satellite part of RBS project : "Recovery Base Station", a cheaper and encrypted version of University of Berkeley [http://kurti.sh/pubs/rbs-dev14.pdf "Rescue Base Station"]. |
+ | * There is a info website about this [http://www.satmessenger.org project] to speed up recovery after a major event like earthquake, tsnumai where no available communication/power infrastructure are running. | ||
+ | * This project provides everything in a local Web interface. If you want to learn how to do it roughly follow explanations at [[raw sat]] | ||
+ | * Code has many flavors with or without crypto, command line, web UI,... Soon on github | ||
− | + | == Sat Messenger == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | ||
− | |||
− | |||
− | + | * Messages follow a predefined format : destinationemail text. Like : foo@bar.com I'm fine | |
+ | * "API" refers to rock7 API. | ||
+ | * Repository : [https://github.com/tmpbci/satmessenger here] | ||
=== Somewhere to Internet via sat === | === Somewhere to Internet via sat === | ||
− | Sending a message from | + | Sending a message from somewhere, is called "Mobile Originated" (MO). |
− | Different | + | Different possibilities are available for the "computer" connected to the sat modem. |
− | * web form | + | * web form (python + twisted) |
* command line tool "mo". | * command line tool "mo". | ||
− | Once satellite forwarded the text to the ground, the API can send to an email or to a http POST server. | + | Once satellite constellation have forwarded the text to the ground, the API can send the text to an email or to a http POST server. Obviously sending directly to destination email defeat the purpose of privacy. So the "Mainserver" code can receive the API http POST, decrypt and email the text to destination. (python + twisted) |
− | Obviously sending directly to destination email defeat the purpose of privacy. | ||
− | "Mainserver" code can receive the API http POST, decrypt and email the text to destination. (python + twisted) | ||
− | === Internet to | + | === Internet to somewhere via sat === |
− | It's | + | It's the "Mobile Terminated case (MT). These programs make the http POST connection to the API |
* web form (python + twisted) | * web form (python + twisted) | ||
Line 44: | Line 37: | ||
Like voicemails, to receive messages, one need to start a connection to satellite, ask for queued message and get them one by one. | Like voicemails, to receive messages, one need to start a connection to satellite, ask for queued message and get them one by one. | ||
− | + | == Hardware == | |
* This project is based on "Short Burst Data" ("SBD"), text messages with a Iridium 9602 Modem + antenna. | * This project is based on "Short Burst Data" ("SBD"), text messages with a Iridium 9602 Modem + antenna. | ||
* All in one version (antenna, modem) can be found at rock7.com. We own a [http://www.rock7.com/products-rockblock-plus Rockblock +] | * All in one version (antenna, modem) can be found at rock7.com. We own a [http://www.rock7.com/products-rockblock-plus Rockblock +] | ||
+ | * We chose the Rockblock +, because of rugged, waterproof and wide alimentation choices (9-30V DC). It can run on a 9V battery, 12V car battery / sun panel,... | ||
* Basic soldering skills are needed, no custom PCB here, yet. | * Basic soldering skills are needed, no custom PCB here, yet. | ||
− | === | + | === Computer version === |
− | |||
* USB RS232 serial DB9 adapter. | * USB RS232 serial DB9 adapter. | ||
− | + | * A computer | |
− | |||
=== Embeded version === | === Embeded version === | ||
− | * Raspberry | + | * Any Raspberry Pi 1 + |
+ | * tplink 703N to provide wifi (but gl.inet is a better choice now) | ||
+ | * a 12V to 5V converter. | ||
+ | * USB RS232 serial DB9 adapter. | ||
− | + | == Software == | |
* rock7 documentation is sometimes wrong. i.e serrial communication with the modem use actually the standart 0D 0A end of line. | * rock7 documentation is sometimes wrong. i.e serrial communication with the modem use actually the standart 0D 0A end of line. | ||
− | * [http://www.makersnake.com/rockblock/ makersnake] [https://github.com/MakerSnake/pyRockBlock library] is a great start for the python way. Altough some URL has changed and some script are not complete. Most of our end user code is heavily based on the awesome works makersnake published. | + | * [http://www.makersnake.com/rockblock/ makersnake] [https://github.com/MakerSnake/pyRockBlock library] is a great start for the python way. Altough some URL has changed and some script are not complete. Most of our end user code is heavily based on the awesome works makersnake published. Many commands have been added to the original makersnake Rockblock.py. |
=== Crypto === | === Crypto === | ||
Line 70: | Line 65: | ||
* Iridium SBD Messages are transmitted as is. So if you type clear text, it will be transmitted in... clear text. That's really sucks. | * Iridium SBD Messages are transmitted as is. So if you type clear text, it will be transmitted in... clear text. That's really sucks. | ||
* In the RBS scenario, because a major event (earthquake,...), there is no possible communication other than the previous sat messages. We use some short stream ciphers and hash functions. | * In the RBS scenario, because a major event (earthquake,...), there is no possible communication other than the previous sat messages. We use some short stream ciphers and hash functions. | ||
+ | * To reduce cost, a specific encryption is used through the satellite infrastructure part. Of course, one can add final destinatio PGP to our code. | ||
* There is probably better choice, but the goal was to encrypt, we welcome crypto experts to improve this part. | * There is probably better choice, but the goal was to encrypt, we welcome crypto experts to improve this part. |
Latest revision as of 15:27, 11 September 2016
Work in progress
Contents
What ?
- It's *cheap* and *encrypted* short message gateway : email/web <- iridium constellation -> Somewhere on earth
- Each 50 character long messages can be 0.05 euros. Remember the SMS at the beginning ?
- Sat messenger is the satellite part of RBS project : "Recovery Base Station", a cheaper and encrypted version of University of Berkeley "Rescue Base Station".
- There is a info website about this project to speed up recovery after a major event like earthquake, tsnumai where no available communication/power infrastructure are running.
- This project provides everything in a local Web interface. If you want to learn how to do it roughly follow explanations at raw sat
- Code has many flavors with or without crypto, command line, web UI,... Soon on github
Sat Messenger
- Messages follow a predefined format : destinationemail text. Like : foo@bar.com I'm fine
- "API" refers to rock7 API.
- Repository : here
Somewhere to Internet via sat
Sending a message from somewhere, is called "Mobile Originated" (MO). Different possibilities are available for the "computer" connected to the sat modem.
- web form (python + twisted)
- command line tool "mo".
Once satellite constellation have forwarded the text to the ground, the API can send the text to an email or to a http POST server. Obviously sending directly to destination email defeat the purpose of privacy. So the "Mainserver" code can receive the API http POST, decrypt and email the text to destination. (python + twisted)
Internet to somewhere via sat
It's the "Mobile Terminated case (MT). These programs make the http POST connection to the API
- web form (python + twisted)
- command line tool "mt".
- rock7 website, but with no encryption.
Like voicemails, to receive messages, one need to start a connection to satellite, ask for queued message and get them one by one.
Hardware
- This project is based on "Short Burst Data" ("SBD"), text messages with a Iridium 9602 Modem + antenna.
- All in one version (antenna, modem) can be found at rock7.com. We own a Rockblock +
- We chose the Rockblock +, because of rugged, waterproof and wide alimentation choices (9-30V DC). It can run on a 9V battery, 12V car battery / sun panel,...
- Basic soldering skills are needed, no custom PCB here, yet.
Computer version
- USB RS232 serial DB9 adapter.
- A computer
Embeded version
- Any Raspberry Pi 1 +
- tplink 703N to provide wifi (but gl.inet is a better choice now)
- a 12V to 5V converter.
- USB RS232 serial DB9 adapter.
Software
- rock7 documentation is sometimes wrong. i.e serrial communication with the modem use actually the standart 0D 0A end of line.
- makersnake library is a great start for the python way. Altough some URL has changed and some script are not complete. Most of our end user code is heavily based on the awesome works makersnake published. Many commands have been added to the original makersnake Rockblock.py.
Crypto
- Iridium SBD Messages are transmitted as is. So if you type clear text, it will be transmitted in... clear text. That's really sucks.
- In the RBS scenario, because a major event (earthquake,...), there is no possible communication other than the previous sat messages. We use some short stream ciphers and hash functions.
- To reduce cost, a specific encryption is used through the satellite infrastructure part. Of course, one can add final destinatio PGP to our code.
- There is probably better choice, but the goal was to encrypt, we welcome crypto experts to improve this part.