Skip to content

Commit 89865b6

Browse files
authored
Merge pull request #57 from OpenIPC/docs/security-notes
docs: README logo and security notes
2 parents d86b938 + c84221e commit 89865b6

3 files changed

Lines changed: 18 additions & 24 deletions

File tree

‎README.md‎

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
<picture>
2-
<source media="(prefers-color-scheme: dark)" srcset="https://openipc.org/assets/openipc-logo-white.svg">
3-
<source media="(prefers-color-scheme: light)" srcset="https://openipc.org/assets/openipc-logo-black.svg">
4-
<img alt="OpenIPC logo" src="https://openipc.org/assets/openipc-logo-black.svg">
5-
</picture>
1+
![OpenIPC logo][logo]
62

73
# OpenIPC Decoder
84

@@ -95,7 +91,7 @@ Shows all configured slots in a 2×2 grid. Each cell has its own connection and
9591
> - **Only 4 camera slots** — [#13](https://github.com/OpenIPC/decoder/issues/13)
9692
> - **G.726 audio is not supported** — [#14](https://github.com/OpenIPC/decoder/issues/14)
9793
> - **Possible dependency on Google services (GAPPS)** on some devices; under investigation, so disable GAPPS with care — [#15](https://github.com/OpenIPC/decoder/issues/15)
98-
> - **Credentials are sent in clear text** over plain RTSP/HTTP (Basic auth unless the camera asks for Digest); RTSPS is not supported — [#16](https://github.com/OpenIPC/decoder/issues/16)
94+
> - **Credentials are sent in clear text** over plain RTSP/HTTP (Basic auth unless the camera asks for Digest); RTSPS is not supported and not planned — [#16](https://github.com/OpenIPC/decoder/issues/16)
9995
>
10096
> Known bugs are tracked separately under the [`bug` label](https://github.com/OpenIPC/decoder/issues?q=is%3Aissue+is%3Aopen+label%3Abug).
10197
@@ -149,8 +145,8 @@ Network, video decoding and audio run on separate threads, so a slow decoder nev
149145
## Security notes
150146

151147
- Credentials are taken from the URL and sent in the `Authorization` header: Basic first, Digest when the camera asks for it. They are not included in the RTSP request line.
152-
- Plain RTSP and HTTP are not encrypted. Use the app only on trusted networks, see [#16](https://github.com/OpenIPC/decoder/issues/16).
153-
- Camera URLs, including passwords, are stored encrypted (AES-256-GCM with a key kept in the Android Keystore, Android 6.0+; on Android 5.x they are stored as before) in the app's private storage. Backup is disabled (`allowBackup="false"`).
148+
- RTSP and HTTP are not encrypted, and RTSPS is not supported. Credentials that a camera expects inside the URL path or query (for example `user=…_password=…`) are sent with every request. Use the app only on trusted networks, see [#16](https://github.com/OpenIPC/decoder/issues/16).
149+
- Camera URLs, including passwords, are stored encrypted (AES-256-GCM with a key kept in the Android Keystore, Android 6.0+) in the app's private storage. On Android 5.x, or if the Keystore is unavailable, they are stored in plain text. Backup is disabled (`allowBackup="false"`).
154150

155151
## Device compatibility
156152

@@ -211,3 +207,5 @@ Changes are listed on the [releases page](https://github.com/OpenIPC/decoder/rel
211207
- Documentation: [openipc.org](https://openipc.org)
212208

213209
[![Telegram](https://openipc.org/images/telegram_button.svg)](https://openipc.org/our-channels)
210+
211+
[logo]: https://raw.githubusercontent.com/OpenIPC/.github/refs/heads/main/assets/openipc-logo-black.svg

‎README.ru.md‎

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
<picture>
2-
<source media="(prefers-color-scheme: dark)" srcset="https://openipc.org/assets/openipc-logo-white.svg">
3-
<source media="(prefers-color-scheme: light)" srcset="https://openipc.org/assets/openipc-logo-black.svg">
4-
<img alt="OpenIPC logo" src="https://openipc.org/assets/openipc-logo-black.svg">
5-
</picture>
1+
![OpenIPC logo][logo]
62

73
# OpenIPC Decoder
84

@@ -95,7 +91,7 @@
9591
> - **Только 4 слота для камер** — [#13](https://github.com/OpenIPC/decoder/issues/13)
9692
> - **Не поддерживается звук G.726** — [#14](https://github.com/OpenIPC/decoder/issues/14)
9793
> - **Возможная зависимость от сервисов Google (GAPPS)** на некоторых устройствах; изучается, поэтому отключайте GAPPS осознанно — [#15](https://github.com/OpenIPC/decoder/issues/15)
98-
> - **Логин и пароль передаются в открытом виде** по RTSP/HTTP без шифрования (Basic, если камера не запросила Digest); RTSPS не поддерживается — [#16](https://github.com/OpenIPC/decoder/issues/16)
94+
> - **Логин и пароль передаются в открытом виде** по RTSP/HTTP без шифрования (Basic, если камера не запросила Digest); RTSPS не поддерживается и не планируется — [#16](https://github.com/OpenIPC/decoder/issues/16)
9995
>
10096
> Известные ошибки собраны отдельно, под [меткой `bug`](https://github.com/OpenIPC/decoder/issues?q=is%3Aissue+is%3Aopen+label%3Abug).
10197
@@ -149,8 +145,8 @@ export KEY_PASS=your_key_password
149145
## Безопасность
150146

151147
- Логин и пароль берутся из адреса и передаются в заголовке `Authorization`: сначала Basic, Digest — если камера его запросит. В строку RTSP-запроса они не попадают.
152-
- RTSP и HTTP без шифрования. Используйте приложение только в доверенных сетях, см. [#16](https://github.com/OpenIPC/decoder/issues/16).
153-
- Адреса камер вместе с паролями хранятся в закрытом хранилище приложения в зашифрованном виде (AES-256-GCM, ключ в Android Keystore, Android 6.0+; на Android 5.x — как раньше). Резервное копирование отключено (`allowBackup="false"`).
148+
- RTSP и HTTP без шифрования, RTSPS не поддерживается. Если камера ждёт логин и пароль прямо в пути или параметрах адреса (например, `user=…_password=…`), они уходят с каждым запросом. Используйте приложение только в доверенных сетях, см. [#16](https://github.com/OpenIPC/decoder/issues/16).
149+
- Адреса камер вместе с паролями хранятся в закрытом хранилище приложения в зашифрованном виде (AES-256-GCM, ключ в Android Keystore, Android 6.0+). На Android 5.x или если Keystore недоступен — в открытом виде. Резервное копирование отключено (`allowBackup="false"`).
154150

155151
## Совместимость с устройствами
156152

@@ -211,3 +207,5 @@ export KEY_PASS=your_key_password
211207
- Документация: [openipc.org](https://openipc.org)
212208

213209
[![Telegram](https://openipc.org/images/telegram_button.svg)](https://openipc.org/our-channels)
210+
211+
[logo]: https://raw.githubusercontent.com/OpenIPC/.github/refs/heads/main/assets/openipc-logo-black.svg

‎README.zh-CN.md‎

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
1-
<picture>
2-
<source media="(prefers-color-scheme: dark)" srcset="https://openipc.org/assets/openipc-logo-white.svg">
3-
<source media="(prefers-color-scheme: light)" srcset="https://openipc.org/assets/openipc-logo-black.svg">
4-
<img alt="OpenIPC logo" src="https://openipc.org/assets/openipc-logo-black.svg">
5-
</picture>
1+
![OpenIPC logo][logo]
62

73
# OpenIPC Decoder
84

@@ -95,7 +91,7 @@
9591
> - **仅有 4 个摄像机槽位** — [#13](https://github.com/OpenIPC/decoder/issues/13)
9692
> - **不支持 G.726 音频** — [#14](https://github.com/OpenIPC/decoder/issues/14)
9793
> - **部分设备上可能依赖 Google 服务(GAPPS)**,仍在调查中,请谨慎禁用 GAPPS — [#15](https://github.com/OpenIPC/decoder/issues/15)
98-
> - **用户名和密码以明文传输**(未加密的 RTSP/HTTP;摄像机未要求 Digest 时发送 Basic),不支持 RTSPS — [#16](https://github.com/OpenIPC/decoder/issues/16)
94+
> - **用户名和密码以明文传输**(未加密的 RTSP/HTTP;摄像机未要求 Digest 时发送 Basic),不支持 RTSPS,也不计划支持 — [#16](https://github.com/OpenIPC/decoder/issues/16)
9995
>
10096
> 已知的程序错误另行收录在 [`bug` 标签](https://github.com/OpenIPC/decoder/issues?q=is%3Aissue+is%3Aopen+label%3Abug)下。
10197
@@ -149,8 +145,8 @@ export KEY_PASS=your_key_password
149145
## 安全说明
150146

151147
- 用户名和密码从地址中提取,通过 `Authorization` 头发送:默认使用 Basic,摄像机要求时改用 Digest。不会出现在 RTSP 请求行中。
152-
- RTSP 和 HTTP 均未加密,请仅在可信网络中使用,参见 [#16](https://github.com/OpenIPC/decoder/issues/16)。
153-
- 摄像机地址(含密码)加密保存在应用私有存储中(AES-256-GCM,密钥保存在 Android Keystore,Android 6.0 及以上;Android 5.x 仍按原方式保存),并已禁用备份(`allowBackup="false"`)。
148+
- RTSP 和 HTTP 均未加密,不支持 RTSPS。若摄像机要求将用户名和密码写在地址路径或参数中(例如 `user=…_password=…`),它们会随每个请求发送。请仅在可信网络中使用,参见 [#16](https://github.com/OpenIPC/decoder/issues/16)。
149+
- 摄像机地址(含密码)加密保存在应用私有存储中(AES-256-GCM,密钥保存在 Android Keystore,Android 6.0 及以上),在 Android 5.x 或 Keystore 不可用时以明文保存,并已禁用备份(`allowBackup="false"`)。
154150

155151
## 设备兼容性
156152

@@ -211,3 +207,5 @@ export KEY_PASS=your_key_password
211207
- 文档:[openipc.org](https://openipc.org)
212208

213209
[![Telegram](https://openipc.org/images/telegram_button.svg)](https://openipc.org/our-channels)
210+
211+
[logo]: https://raw.githubusercontent.com/OpenIPC/.github/refs/heads/main/assets/openipc-logo-black.svg

0 commit comments

Comments
 (0)