twisted_pear il y a 2 ans
Parent
commit
5c7d2ee330
1 fichiers modifiés avec 73 ajouts et 0 suppressions
  1. 73 0
      README.md

+ 73 - 0
README.md

@@ -0,0 +1,73 @@
+# Enhanced Sub-GHz Chat
+
+This is a plugin for the Flipper Zero that reimplements the Sub-GHz chat
+feature that is available on the CLI. In addition it allows for basic
+encryption of messages.
+
+The plugin has been tested on the official firmware (version 0.87.0) and on
+Unleashed (version unlshd-057). Due to limitations of the official firmware,
+the behavior is slightly different there.
+
+## Warning
+
+This plugin is in the early stages of development. It will inevitably have
+bugs. You have been warned.
+
+## Usage
+
+Once opened the plugin will ask for a frequency to operate on which must be
+entered in HZ.
+
+On the next screen the plugin will ask for a password to derive the
+cryptographic key from. If nothing (on Unleashed) or a single space (on OFW) is
+entered, the encryption is disabled.
+
+Finally the a message can be input. After the message is confirmed, the plugin
+will switch to the chat view, where sent and received messages are displayed.
+To view the chat view without entering a message, enter nothing (on Unleashed)
+or a single space (on OFW). To go back to entering a message press the back
+button.
+
+In the chat view the keyboard can be locked by pressing and holding the OK
+button for a few seconds. To unlock the keyboard again quickly press the back
+button three times.
+
+Pressing the back button when entering the frequency, the password or a message
+will terminate the plugin.
+
+## Interoperability
+
+When encryption is disabled, the plugin can interoperate with the Sub-GHz chat
+available on the Flipper's CLI. However, the CLI sends a sequence of escape
+characters that are not interpreted by this plugin and will be displayed in the
+chat view.
+
+## Encryption
+
+Messages are encrypted using 256 bit AES in GCM mode. Each message gets its own
+random IV. On reception the tag generated by GCM is verified and the message
+discarded if it doesn't match.
+
+The key for the encryption is derived from the password by applying SHA-256 to
+the password once.
+
+Note that deriving the key with SHA-256 means that the security of your
+messages depends entirely on the strength of the password. The plugin does not
+use an elaborate key derivation function (KDF) to strengthen the password. A
+weak passwords means weak encryption.
+
+Furthermore, the key is the same among all participants. That means that each
+user with the key can impersonate every other user.
+
+The same key is used for all messages. This means that no forward-secrecy is
+provided. If the key is compromised, all previous messages are compromised as
+well.
+
+If you do not understand the implications of the caveats mentioned here, do not
+expect to gain any security by using encryption.
+
+## Acknowledgements
+
+The implementations of AES and GCM are taken directly from
+https://github.com/mko-x/SharedAES-GCM. They were released to the public domain
+by Markus Kosmal.