Serverless, peer-to-peer, local file sharing through sound
github.com
github.com
I was thinking they had made something similar to the Fldigi suite, software kind of common in the ham radio universe. You can use it to encode arbitrary binary data into a lot of different modulations which exist in the audible range. Send files between computers without any IP networking at all.
See here: https://github.com/fhstp/SoniControl
Seems massively not talked about given the vector.
If someone had granted microphone access, the SDK could wait until it hears a signal embedded in an ad, and then pass back whatever data it had accumulated.
In a few years, we'll all be hearing about hot new "Shazam for Adtech" startups.
(Although that does still happen to me occasionally.)
In theory minimodem could be put into web assembly right?
If in audible range a faster song would have more data capability - techno vs hip hop? Ha.
It also brings up an interesting thought I never had before. With early home computers, and I assume before that as well, you would place a phone handset onto a coupler to receive data. It is odd to think now that there is a little air in there that is transferring sound between the handset speaker and the coupler microphone. I assume that without that little bit of air it wouldn't function.
Also if air was such an issue then the dynamics of a song being played live would be of series inconsistent patterns leading to error in rate based on environmental factors. Rate would be whatever air density allows but whether you received that rate is different.
Song recorded vs song played vs song heard when recorded vs song heard when played over speakers.
The waveform of both should be highly similar in a way that wouldn’t be considered error besides amplitude or echoes from acoustics.
So it’s a distributed message sensing problem?
In my perspective I just saw the waveform of a techno song == the rate of data being communicated.
120 bpm is 120 bpm. Loss over distance is it’s own factor based on ability to ack.
Physical waves depend on a fluid?
EM seems to be affected by a medium/fluid.
Wonder where the distinctions are more poignant. Maybe degree of affects?
The analogue phone line signal is digitised at the exchange, and the digital channel is explicitly 64kbit/s.
Modems can only do "56k" by co-operating with the digital system; one of the modems actually has a digital ISDN connection.
Without that ISDN connection, analogue modems reach up to 33.6k. Theoretically they can do more (but never more than 64k), but in practice that was the last standard produced prior to the 56k, semi-analogue-semi-digital standard.
I've used it on a few occasions to send out a text email or some other kind of small text document. Sending out something like a several megabyte image would be very slow.
Cool stuff to understand. Thanks. Now I must learn more.
Also, weird: https://en.m.wikipedia.org/wiki/Parametric_array
How do I reason about the range of frequencies that air itself has a threshold of vibration? There’s a particular range within that type of matter itself I’d imagine. Sound is only a human description of a waveform perturbation within the air... I’d imagine if the air vibrates too much it could explode or some other effects.
It would take a sophisticated modulation scheme, like a modem. The sound would be similar to white noise. Software that's getting 20bit/s or whatever is using old-school tone-based modulation, but it is quite robust in the presence of other sounds.
That assumes:
- Frequency response ~20kHz.
- Audio ADC/DAC sample rates configurable well in excess of the Nuqyist limit of the frequency response range of the speakers and mics.
- Good signal to noise (~90dB), which equates to ~15 bits at max volume range.
- Not playing at max volume, but a reasonable level ~18dB down, so ~12 bits.
- A very quiet environment, or one where the background sound is very predictable.
- Stereo laptop speakers and stereo mics, to make a 2x2 MIMO spatially modulated channel.
- Good channel separation (~80dB).
- Great linearity, which might be optimistic.
Thanks!
Interesting...
If white noise “exists” and is constantly being received does it have an energetic value? Hmm.
Interesting if there is a particular reason our bodies converged to this state because of a link to sound and resiliency to information communication. I need to think on that one.
It's not a coincidence that human range is similar, as the Mac was designed for humans.
One security issue is that if you do this in public, an attacker could initiate malicious connections and remove your own transmission via signal cancellation. It's hard to notice that when using an inaudible frequency band. To defend against this, our research team has described a method to protect the integrity of acoustic communication on the physical layer, without requiring any prior key exchange: https://dl.acm.org/doi/10.1145/3395351.3399420 PDF: https://arxiv.org/pdf/2005.08572
In pairing scenarios, you often do not have a prior security context, since the goal is to establish one in the first place. Our approach works without a prior security context by using the physical signal propagation properties of the acoustic signals.
Here's a video showing it: https://youtu.be/ctxZWEVJ1S0?t=147
This is a great nostalgia trip!
Eq. it's unlikely the computer will try to take over your mobile device over an analogue audio channel while there could be viable attacks over an USB connection.
My email is el<mynick> at gmail
From the repo description:
> SoniControl is a novel technology for the recognition and masking of acoustic tracking information. The technology helps end-users to protect their privacy.
> Technologies like Google Nearby and Silverpush build upon ultrasonic sounds to exchange information. More and more of our devices communicate via this inaudible communication channel. Every device with a microphone and a speaker is able to send and receive ultrasonic information. The user is usually not aware of this inaudible and hidden data transfer.
> To overcome this gap SoniControl detects ultrasonic activity, notifies the user and blocks the information on demand. Thereby, we want to raise the awareness for this novel technology.
However mDNS candidates made this even easier! I stumbled upon this pattern and been trying to convince people that real use cases will be unlocked.
* https://github.com/pion/offline-browser-communication
* https://sean-der.github.io/webrtc-uri/draft-seaduboi-webrtc-...
[0] https://tools.ietf.org/html/draft-mdns-ice-candidates-00
I am a big fan of WebRTC. Even if I had a server I would try to use SCTP over DTLS. I have gotten better transfer rates. Not having to worry about HOL blocking and the overhead of TCP.
[1] https://arstechnica.com/information-technology/2013/10/meet-... [2] https://en.wikipedia.org/wiki/BadBIOS
Shameless plug: If you like this you might also like https://quiet.github.io/quiet-js/
This project is cool in that it's exchanging an actual SDP, which could be used for any media negotiation.
I’m wondering if it was unreliable from a security perspective, but it was a super cool concept.
https://techcrunch.com/2014/02/16/google-acquires-slicklogin...
Yikes! Sounds like a privacy nightmare if website can still be running regardless of whether the tab is dismissed or not.
* No need for port forwarding between network segments
* Bypasses annoying local firewalls and security approval
* On limited hardware you might literally have no Ethernet, wifi, or blue tooth -- could use this instead
* Connectionless -- no zombie sockets tying up the same 'port' when testing client protocols
* Can prevent packet sniffing + having to expose services to every node on the LAN directly. Neat one-time, local aspect to it. Have to be in range of devices
Probably other benefits. Disadvantage is it would be slow and you would have to add support for it.
Others use QR bar-codes, which I think is better for security cameras - but nonetheless the Yi Home ones do it through sound exactly as you described.
I was able to get stuff connecting without signaling via mDNS, and I am working on a RFC now to grow on that idea!
* https://github.com/pion/offline-browser-communication
* https://sean-der.github.io/webrtc-uri/draft-seaduboi-webrtc-...
As a 6th grader, I was amused that there was a "TRS-80 network" setup whereby you could cable a classroom of computers together, set all but one of them to "load from tape", then set the teacher's computer to "save to tape" and it all worked. I thought that was a clever bit of engineering/hackery, actually using sound for file-sharing.