131 lines
5.4 KiB
Plaintext
131 lines
5.4 KiB
Plaintext
# Fixes
|
|
|
|
- Create tunnel wizard
|
|
<zzz> hmm would be nice if they could be shared-client or have an option
|
|
<zzz> was setting up email tunnels
|
|
- Browser
|
|
<zzzccc> Bug report: i2p browser treats 302 as an error
|
|
<zzzccc> Bug 2: rotate screen in i2p browser seems to go back one page
|
|
- Console text change
|
|
<zzz> "download" and "upload" at the bottom of the status is a little misleading..
|
|
<zzz> maybe 'downstream bandwidth' or 'inbound usage' ?
|
|
- Fix visibility of advanced tunnel parameter changes
|
|
<zzz> when I change an advanced tunnel param e.g. length or variance, the change isn't displayed, I have to go back and forward again to see the change
|
|
|
|
# New UI fixes
|
|
|
|
- Addressbook action items are in tunnel overflow menu after moving from console to tunnels
|
|
- Material design:
|
|
- Style for addressbook headers
|
|
- Change console FAM icon when possible
|
|
<zzz> on the bottom right, the + and x icons might be better as a double-up arrow and double-down arrow?
|
|
- Use Material design for LongPressButton
|
|
- Highlight selected tunnel in two-pane mode
|
|
|
|
# Short-term
|
|
|
|
- Remove peers page (HTML version)
|
|
- Add firewall help page showing current port settings
|
|
- GMP 6
|
|
- Fetch all JARs from Maven Central (ie. upload everything that I2P Android uses)
|
|
- Disable uPnP when on cell networks
|
|
<zzz> spewing UPnP out into cell networks is a waste of time at best and a security risk at worst, but you really want it for wifi
|
|
- Rewrite settings config handling
|
|
- Rewrite InitActivities
|
|
- I2PTunnel
|
|
- Improve tunnel list status indicators
|
|
- Icon overlay to indicate which tunnels are shared
|
|
- Or reorder / group tunnels?
|
|
- Show all messages somewhere
|
|
- Bottom toolbar?
|
|
- Icons/header images for tunnel types on details page
|
|
- Setting to close when not on WiFi
|
|
- Progress feedback for addressbook subscriptions reload
|
|
- Display release notes directly on new router version
|
|
- Fill out help pages
|
|
- Fix navigation to specific settings pages
|
|
- Rewrite release notes to be release-specific
|
|
- Fix release notes UI, either make back button use clear or add buttons
|
|
- Notify user when autostart fails?
|
|
- NetDB tablet view fixes
|
|
- Refresh detail fragment when changing tab
|
|
- Move list to correct item when changing tab
|
|
- Create nav history when viewing RI from LS
|
|
- Handle NetDB null cases (failed lookup of requested hash in detail page)
|
|
- Include GeoIP db for country info
|
|
- Maybe change router-off mechanic for various pages? Enable as they become available?
|
|
|
|
# Medium-term
|
|
|
|
- SQLite naming service backend to store addresses more effectively
|
|
- Leverage for name completion in e.g. browsers
|
|
- Create/edit tunnels while router is not running
|
|
- Separate out shared tunnel config
|
|
- Convey to users that one config controls all shared tunnels
|
|
- Network profiles
|
|
- User selects profile in settings
|
|
- Change network participation etc. based on profile
|
|
- Also look at connection type: Connectivity.isConnectionFast()
|
|
- Expose log level overrides
|
|
- Bug report feature
|
|
- Replace peers page (native version)
|
|
- Improve graphs
|
|
- Show fixed x range, not only available data
|
|
- Think about pan/zoom
|
|
- How to persist data across restarts?
|
|
- Enable apps to specify when they don't need the router anymore
|
|
|
|
# Silent Store approval checks to confirm/implement
|
|
|
|
- Known Vulnerabilities
|
|
- Apps will be tested to ensure that they are not susceptible to known
|
|
publicly disclosed vulnerabilities. For example:
|
|
- Heartbleed
|
|
- Poodle
|
|
- MasterKey
|
|
- Common Path Traversal attacks
|
|
- Common SQL Injection attacks
|
|
- Network Security Protocols
|
|
- All Apps that require transmission of data from the App to a system that
|
|
does not exist on the device must use, at a minimum, TLS1.1 standards.
|
|
However, Blackphone would prefer the usage of TLS1.2.
|
|
- Apps must not use algorithms for cryptographic purposes that are considered
|
|
obsolete or outdated i.e. MD5, SHA1, RC4, DES, or any encryption algorithm
|
|
that is weaker than AES128.
|
|
- Transport Layer Protection
|
|
- All network communication should be encrypted
|
|
- Not vulnerable to SSl Strip
|
|
- Data Leakage
|
|
- No storage of sensitive data outside of application sandbox
|
|
- Files should not be created with MODE_WORLD_READABLE or MODE_WORLD_WRITABLE
|
|
- Copy & Paste will be evaluated on a case by case basis
|
|
- App logs should not contain sensitive information
|
|
- Authentication and Authorization
|
|
- Validate that authentication credentials are not stored on the device
|
|
- Must use an approved password-based key derivation function ie. PBKDF2, scrypt
|
|
- Data-at-rest Encryption
|
|
- Must use at a minimum AES128 with modes CCM or GCM
|
|
- Should not store the encryption key on the file system
|
|
- Permission Checks
|
|
- The App must function with all permissions disabled
|
|
- Apps must not hard crash if a permission is disabled
|
|
- Apps should ask users to enable permissions that are disabled if needed to
|
|
function properly and explain why the permission is necessary
|
|
- Privacy Policy
|
|
- Apps must have a privacy policy that details how customer data is used,
|
|
stored, shared, etc...
|
|
- Apps must be configured with the customer opted out by default
|
|
- App logs should not contain PII
|
|
- Error Handling
|
|
- Apps should follow best-practices for error handling and logging
|
|
|
|
# Long-term
|
|
|
|
- Reproducible builds
|
|
- Extract RouterService into a library
|
|
- Remote router support
|
|
- Implement a "router wrapper" that can represent a local or remote router
|
|
- Implement/use client APIs to talk to remote router
|
|
- I2CP
|
|
- I2PControl
|