Hi Joe & WSJT development team, I've been thinking for the past few days on how to create alternate anti-piracy mechanism using public key cryptography, based on some of the public SuperFox details & examining the disassembled binaries. The key constraints appear to be:
* Signature data within regular messages (i.e. acking other stations) should be small (20 bits). The existing `signature` function looks like it masks some bits with 0xfffff, which would yield a 20-bit signature (correct me if I'm wrong), so we can match that. * WSJT-X clients should be able to verify DXpedition signatures without software updates or internet access. * A key attestation mechanism should exist, with built-in (WSJT-X developers & NCDXF) and probably user-addable keys to keep things open. * The system should handle message loss gracefully. * The approach should be secure with open-source code. * No use of encryption, since it would run afoul of FCC regulations. Assuming we can create a new special message type for key/signature data -- perhaps alongside a CQ? -- here's the proposed approach: 1) Every 10-15 minutes, a DXpedition station transmits a special message: - 224-bit ECC key for the DXpedition - 448-bit BLS signature of this key from an authoritative source - 128-bit value of a hash chain - 448-bit BLS signature of the above + rounded timestamp, using the DXpedition key Total payload: ~1,250 bits Given FT8 has a 77-bit payload and a bandwidth of roughly 50Hz, I'm speculating a SuperFox message could contain up to a maximum of about 2,300 bits. So, the special message payload is well under this limit. The key is generated by the DXpedition group & it's signature is distributed to them before a DXpedition, similar to the existing SuperFox approach. A key aspect is that the WSJT-X app used by the DX station first generates a random 128 bits to seed a hash chain. It then pre-generates a long sequence of hashes, and the special message reveals later hash chain values first. Given one of the 128-bit hash values, a receiver can generate all forward hashes but cannot generate the reverse ones. Each normal message contains 20 signature bits: a truncated HMAC of the QSO data, timestamp, and hash chain value advanced by one step per 30-second period that's elapsed since the last special message. 2) Receiver-side verification: - Operators receive regular messages + 20-bit signatures, and place them in a buffer - Special messages allow verification of the DXpedition key and a hash chain state - Clients can advance the hash chain to validate regular messages in the buffer - Since the DX station reveals hash chain states earlier and earlier in the sequence, a receiver can still verify buffered regular messages even if they miss the first special message transmitted after the regular message. Any special message will allow verifying all earlier regular messages. In terms of security against pirates: - 224-bit keys resist brute force - A secure hash function (SHA-256, BLAKE3, etc.) prevents reversal of the hash chain - Timestamps & advancing the hash chain once per 30-second period prevent backdating with later-revealed hash chain states, or acceptance of out-of-orderness in the sequence - 20-bit signatures are large enough that a pirate randomly guessing a correct signature is vanishingly small After looking in the literature, it turns out this scheme is nearly identical to the one proposed in [1] -- so we can have some confidence that it's cryptographically sound. -- 73, David, KD0BTO [1] A. Perrig, R. Canetti, J. D. Tygar and Dawn Song, "Efficient authentication and signing of multicast streams over lossy channels," Proceeding 2000 IEEE Symposium on Security and Privacy. S&P 2000, Berkeley, CA, USA, 2000, pp. 56-73, doi: 10.1109/SECPRI.2000.848446. On Wednesday, July 24th, 2024 at 1:11 PM, Joe Taylor via wsjt-devel <wsjt-devel@lists.sourceforge.net> wrote: > > > Understandably, a number of people have asked us about how SuperFox > works. I have explained that we are intentionally moving slowly and > deliberately in our early tests, and we have not published source code > or specifications in part because many details may still change. > > The basic SuperFox scheme has been proven to work well. It delivers the > promised weak-signal gain of around 10 dB over multi-streaming FT8 with > 5 streams. The present scheme will certainly be used for the Jarvis > Island operations next month, but a variety of things could change after > that. > > Our goals for design of a SuperFox mode have included the following: > > 1. Constant envelope waveform, and hence up to 10 dB signal-strength > improvement over multi-streamed FT8. > > 2. Anti-piracy feature: a way to establish legitimacy of signal origin. > > 3. A way to prevent (or make much more difficult) misuse or our > technology by derivative or modified programs, for example enabling > robotic strings of QSOs. > > 4. Better use of available bandwidth: Fox should use (say) at least half > of a ~3 kHz slice. > > 5. Better immunity to QRM, including deliberate QRM. > > 6. Operational aids for the Fox operator, including longer free text > messages. > > As you can see, technical details have been important in our planning > but sociological, moral, and even legal issues are involved as well. > Objective 2 in the above list involves cyber security matters, an area > in which we have little expertise. Our weak-signal performance > requirements demand small message payloads, and these are incompatible > with (for example) most public/private key schemes. > > For nearly all of its 24 year history the WSJT project has been entirely > open source. Ideally we'd like to keep it that way. But objective 3 in > the list is especially difficult (and likely impossible) to achieve in a > fully open source project. > > We appreciate all the help we have received in testing an early SuperFox > scheme. We hope many will work a new one when N5J operates as SuperFox > from Jarvis Island. We'll continue working toward a maxmially effective > SuperFox design in the presence of many challenges, including possible > software licensing issues, and we welcome all constructive input from > other interested hams. As always, our efforts are intended to benefit > the wonderful hobby we share. > > -- 73, Joe, K1JT > > > _______________________________________________ > wsjt-devel mailing list > wsjt-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wsjt-devel _______________________________________________ wsjt-devel mailing list wsjt-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wsjt-devel