Table update

This commit is contained in:
lockbitchat committed 2025-10-13 11:54:05 -04:00
1 parent d292c84829
commit ea8cf47118
4 files changed
+2 -32

No files matched your search

-2
View File
@@ -167,14 +167,12 @@
| Feature | **SecureBit.chat** | Signal | Threema | Session |
| --------------------------- | ----------------------------- | ---------------------------- | --------------------- | ---------------------- |
| **Architecture** | 🏆 Pure P2P WebRTC | ❌ Centralized servers | ❌ Centralized servers | ⚠️ Onion network |
| **Payment Integration** | ❌ None | ❌ None | ❌ None | ❌ None |
| **File Transfer** | 🏆 P2P encrypted + chunked | ✅ Encrypted via servers | ✅ Encrypted via servers | ✅ Encrypted via servers |
| **PWA Support** | 🏆 Full PWA installation | ❌ None | ❌ None | ❌ None |
| **Registration** | 🏆 Anonymous | ❌ Phone required | ✅ ID generated | ✅ Random ID |
| **Traffic Obfuscation** | 🏆 Advanced fake traffic | ❌ None | ❌ None | ✅ Onion routing |
| **Censorship Resistance** | 🏆 Hard to block | ⚠️ Blocked in some countries | ⚠️ May be blocked | ✅ Onion routing |
| **Data Storage** | 🏆 Zero storage | ⚠️ Local database | ⚠️ Local + backup | ⚠️ Local database |
| **Economic Model** | ✅ Open-source | ⚠️ Donations dependent | ✅ One‑time purchase | ⚠️ Donations dependent |
| **Metadata Protection** | 🏆 Full encryption | ⚠️ Sealed Sender (partial) | ⚠️ Minimal metadata | ✅ Onion routing |
| **Key Security** | 🏆 Non‑extractable + hardware | ✅ Secure storage | ✅ Local storage | ✅ Secure storage |
| **Perfect Forward Secrecy** | 🏆 Auto rotation (5 min) | ✅ Double Ratchet | ⚠️ Partial (groups) | ✅ Session Ratchet |
-14
View File
@@ -15778,13 +15778,6 @@ var ComparisonTable = () => {
threema: { status: "check", detail: "ID generated locally" },
session: { status: "check", detail: "Random session ID" }
},
{
name: "Payment Integration",
lockbit: { status: "trophy", detail: "Lightning Network satoshis per session + WebLN" },
signal: { status: "times", detail: "No payment system" },
threema: { status: "times", detail: "No payment system" },
session: { status: "times", detail: "No payment system" }
},
{
name: "Metadata Protection",
lockbit: { status: "trophy", detail: "Full metadata encryption + traffic obfuscation" },
@@ -15813,13 +15806,6 @@ var ComparisonTable = () => {
threema: { status: "check", detail: "QR code scanning" },
session: { status: "warning", detail: "Basic key verification" }
},
{
name: "Economic Model",
lockbit: { status: "trophy", detail: "Sustainable pay-per-session model" },
signal: { status: "warning", detail: "Donations and grants dependency" },
threema: { status: "check", detail: "One-time app purchase" },
session: { status: "warning", detail: "Donations dependency" }
},
{
name: "Censorship Resistance",
lockbit: { status: "trophy", detail: "Impossible to block P2P + no servers to target" },
+2 -2
View File
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../src/transfer/BluetoothKeyTransfer.js", "../src/crypto/EnhancedSecureCryptoUtils.js", "../src/transfer/EnhancedSecureFileTransfer.js", "../src/network/EnhancedSecureWebRTCManager.js", "../src/scripts/app-boot.js", "../src/components/ui/Header.jsx", "../src/components/ui/DownloadApps.jsx", "../src/components/ui/UniqueFeatureSlider.jsx", "../src/components/ui/SecurityFeatures.jsx", "../src/components/ui/Testimonials.jsx", "../src/components/ui/ComparisonTable.jsx", "../src/components/ui/Roadmap.jsx", "../src/components/ui/FileTransfer.jsx", "../src/components/ui/BluetoothKeyTransfer.jsx"],
"sourcesContent": ["/**\r\n * Bluetooth Key Transfer Module for SecureBit.chat\r\n * \r\n * Features:\r\n * - Secure Bluetooth Low Energy (BLE) key exchange\r\n * - Automatic device discovery and pairing\r\n * - Encrypted key transmission\r\n * - Fallback to manual/QR methods\r\n * - Cross-platform compatibility\r\n * \r\n * Security:\r\n * - Uses BLE advertising for device discovery\r\n * - Encrypts key data before transmission\r\n * - Implements secure pairing protocols\r\n * - Validates received keys before acceptance\r\n */\r\n\r\nclass BluetoothKeyTransfer {\r\n constructor(webrtcManager, onStatusChange, onKeyReceived, onError, onAutoConnection) {\r\n this.webrtcManager = webrtcManager;\r\n this.onStatusChange = onStatusChange;\r\n this.onKeyReceived = onKeyReceived;\r\n this.onError = onError;\r\n this.onAutoConnection = onAutoConnection;\r\n \r\n // Bluetooth state\r\n this.isSupported = false;\r\n this.isAvailable = false;\r\n this.isScanning = false;\r\n this.isAdvertising = false;\r\n this.connectedDevices = new Map();\r\n this.advertisingData = null;\r\n \r\n // Service and characteristic UUIDs\r\n this.SERVICE_UUID = '6e400001-b5a3-f393-e0a9-e50e24dcca9e'; // Nordic UART Service\r\n this.TX_CHARACTERISTIC_UUID = '6e400002-b5a3-f393-e0a9-e50e24dcca9e'; // TX Characteristic\r\n this.RX_CHARACTERISTIC_UUID = '6e400003-b5a3-f393-e0a9-e50e24dcca9e'; // RX Characteristic\r\n \r\n // Key transfer protocol\r\n this.PROTOCOL_VERSION = '1.0';\r\n this.MAX_CHUNK_SIZE = 20; // BLE characteristic max size\r\n this.TRANSFER_TIMEOUT = 30000; // 30 seconds\r\n \r\n this.init();\r\n }\r\n \r\n async init() {\r\n try {\r\n // Check Bluetooth support\r\n if (!navigator.bluetooth) {\r\n this.log('warn', 'Bluetooth API not supported in this browser');\r\n return;\r\n }\r\n \r\n this.isSupported = true;\r\n \r\n // Check if Bluetooth is available\r\n const available = await navigator.bluetooth.getAvailability();\r\n this.isAvailable = available;\r\n \r\n if (!available) {\r\n this.log('warn', 'Bluetooth is not available on this device');\r\n return;\r\n }\r\n \r\n this.log('info', 'Bluetooth Key Transfer initialized successfully');\r\n this.onStatusChange?.('bluetooth_ready', { supported: true, available: true });\r\n \r\n } catch (error) {\r\n this.log('error', 'Failed to initialize Bluetooth Key Transfer', error);\r\n this.onError?.(error);\r\n }\r\n }\r\n \r\n // ============================================\r\n // PUBLIC METHODS\r\n // ============================================\r\n \r\n /**\r\n * Start advertising this device for key exchange\r\n */\r\n async startAdvertising(publicKey, deviceName = 'SecureBit Device') {\r\n if (!this.isSupported || !this.isAvailable) {\r\n throw new Error('Bluetooth not supported or available');\r\n }\r\n \r\n try {\r\n this.log('info', 'Starting Bluetooth advertising...');\r\n this.onStatusChange?.('advertising_starting', { deviceName });\r\n \r\n // Prepare advertising data\r\n const keyData = await this.prepareKeyData(publicKey);\r\n this.advertisingData = {\r\n deviceName,\r\n keyData,\r\n timestamp: Date.now(),\r\n protocolVersion: this.PROTOCOL_VERSION\r\n };\r\n \r\n // Start advertising\r\n const options = {\r\n filters: [{\r\n services: [this.SERVICE_UUID]\r\n }],\r\n optionalServices: [this.SERVICE_UUID]\r\n };\r\n \r\n this.isAdvertising = true;\r\n this.onStatusChange?.('advertising_active', { deviceName });\r\n \r\n this.log('info', 'Bluetooth advertising started successfully');\r\n return true;\r\n \r\n } catch (error) {\r\n this.log('error', 'Failed to start Bluetooth advertising', error);\r\n this.isAdvertising = false;\r\n this.onError?.(error);\r\n throw error;\r\n }\r\n }\r\n \r\n /**\r\n * Stop advertising\r\n */\r\n async stopAdvertising() {\r\n try {\r\n this.isAdvertising = false;\r\n this.advertisingData = null;\r\n this.onStatusChange?.('advertising_stopped');\r\n this.log('info', 'Bluetooth advertising stopped');\r\n } catch (error) {\r\n this.log('error', 'FaileLine truncated
"mappings": "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 truncated
"sourcesContent": ["/**\r\n * Bluetooth Key Transfer Module for SecureBit.chat\r\n * \r\n * Features:\r\n * - Secure Bluetooth Low Energy (BLE) key exchange\r\n * - Automatic device discovery and pairing\r\n * - Encrypted key transmission\r\n * - Fallback to manual/QR methods\r\n * - Cross-platform compatibility\r\n * \r\n * Security:\r\n * - Uses BLE advertising for device discovery\r\n * - Encrypts key data before transmission\r\n * - Implements secure pairing protocols\r\n * - Validates received keys before acceptance\r\n */\r\n\r\nclass BluetoothKeyTransfer {\r\n constructor(webrtcManager, onStatusChange, onKeyReceived, onError, onAutoConnection) {\r\n this.webrtcManager = webrtcManager;\r\n this.onStatusChange = onStatusChange;\r\n this.onKeyReceived = onKeyReceived;\r\n this.onError = onError;\r\n this.onAutoConnection = onAutoConnection;\r\n \r\n // Bluetooth state\r\n this.isSupported = false;\r\n this.isAvailable = false;\r\n this.isScanning = false;\r\n this.isAdvertising = false;\r\n this.connectedDevices = new Map();\r\n this.advertisingData = null;\r\n \r\n // Service and characteristic UUIDs\r\n this.SERVICE_UUID = '6e400001-b5a3-f393-e0a9-e50e24dcca9e'; // Nordic UART Service\r\n this.TX_CHARACTERISTIC_UUID = '6e400002-b5a3-f393-e0a9-e50e24dcca9e'; // TX Characteristic\r\n this.RX_CHARACTERISTIC_UUID = '6e400003-b5a3-f393-e0a9-e50e24dcca9e'; // RX Characteristic\r\n \r\n // Key transfer protocol\r\n this.PROTOCOL_VERSION = '1.0';\r\n this.MAX_CHUNK_SIZE = 20; // BLE characteristic max size\r\n this.TRANSFER_TIMEOUT = 30000; // 30 seconds\r\n \r\n this.init();\r\n }\r\n \r\n async init() {\r\n try {\r\n // Check Bluetooth support\r\n if (!navigator.bluetooth) {\r\n this.log('warn', 'Bluetooth API not supported in this browser');\r\n return;\r\n }\r\n \r\n this.isSupported = true;\r\n \r\n // Check if Bluetooth is available\r\n const available = await navigator.bluetooth.getAvailability();\r\n this.isAvailable = available;\r\n \r\n if (!available) {\r\n this.log('warn', 'Bluetooth is not available on this device');\r\n return;\r\n }\r\n \r\n this.log('info', 'Bluetooth Key Transfer initialized successfully');\r\n this.onStatusChange?.('bluetooth_ready', { supported: true, available: true });\r\n \r\n } catch (error) {\r\n this.log('error', 'Failed to initialize Bluetooth Key Transfer', error);\r\n this.onError?.(error);\r\n }\r\n }\r\n \r\n // ============================================\r\n // PUBLIC METHODS\r\n // ============================================\r\n \r\n /**\r\n * Start advertising this device for key exchange\r\n */\r\n async startAdvertising(publicKey, deviceName = 'SecureBit Device') {\r\n if (!this.isSupported || !this.isAvailable) {\r\n throw new Error('Bluetooth not supported or available');\r\n }\r\n \r\n try {\r\n this.log('info', 'Starting Bluetooth advertising...');\r\n this.onStatusChange?.('advertising_starting', { deviceName });\r\n \r\n // Prepare advertising data\r\n const keyData = await this.prepareKeyData(publicKey);\r\n this.advertisingData = {\r\n deviceName,\r\n keyData,\r\n timestamp: Date.now(),\r\n protocolVersion: this.PROTOCOL_VERSION\r\n };\r\n \r\n // Start advertising\r\n const options = {\r\n filters: [{\r\n services: [this.SERVICE_UUID]\r\n }],\r\n optionalServices: [this.SERVICE_UUID]\r\n };\r\n \r\n this.isAdvertising = true;\r\n this.onStatusChange?.('advertising_active', { deviceName });\r\n \r\n this.log('info', 'Bluetooth advertising started successfully');\r\n return true;\r\n \r\n } catch (error) {\r\n this.log('error', 'Failed to start Bluetooth advertising', error);\r\n this.isAdvertising = false;\r\n this.onError?.(error);\r\n throw error;\r\n }\r\n }\r\n \r\n /**\r\n * Stop advertising\r\n */\r\n async stopAdvertising() {\r\n try {\r\n this.isAdvertising = false;\r\n this.advertisingData = null;\r\n this.onStatusChange?.('advertising_stopped');\r\n this.log('info', 'Bluetooth advertising stopped');\r\n } catch (error) {\r\n this.log('error', 'FaileLine truncated
"mappings": "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 truncated
"names": ["BluetoothKeyTransfer", "data", "fileMessageTypes", "attempts", "start", "error", "attempts", "chunk", "fileMessageTypes", "window", "start", "webrtcManager", "start", "error", "BluetoothKeyTransfer"]
}
-14
View File
@@ -92,13 +92,6 @@
session: { status: "check", detail: "Random session ID" },
},
{
name: "Payment Integration",
lockbit: { status: "trophy", detail: "Lightning Network satoshis per session + WebLN" },
signal: { status: "times", detail: "No payment system" },
threema: { status: "times", detail: "No payment system" },
session: { status: "times", detail: "No payment system" },
},
{
name: "Metadata Protection",
lockbit: { status: "trophy", detail: "Full metadata encryption + traffic obfuscation" },
signal: { status: "warning", detail: "Sealed Sender (partial)" },
@@ -127,13 +120,6 @@
session: { status: "warning", detail: "Basic key verification" },
},
{
name: "Economic Model",
lockbit: { status: "trophy", detail: "Sustainable pay-per-session model" },
signal: { status: "warning", detail: "Donations and grants dependency" },
threema: { status: "check", detail: "One-time app purchase" },
session: { status: "warning", detail: "Donations dependency" },
},
{
name: "Censorship Resistance",
lockbit: { status: "trophy", detail: "Impossible to block P2P + no servers to target" },
signal: { status: "warning", detail: "Blocked in authoritarian countries" },