If you're following me for intimate UI/UX contexts and don't wanna see a bunch of talk about OS API models and firmware and what not, feel free to mute this thread, I'll tag everything from here out with #meltbutt too.
- A bluetooth buttplug at all, ever
- A USB key that does USB-to-Serial-to-BLE
- An app built on top of a full browser, with all of the upkeep and exploits that come along with it.
So let's step through that.
#meltbutt
So, Bluetooth Buttplugs. Why?
Well, mostly: Because sex.
Computer Controlled Sex toys have been around since the late 90s (and theorized since the 70s-80s)
Up until the late 2000's, they were mostly wired. Either RS-232 or USB.
#meltbutt
Once smartphones happened and got BTLE, development took off.
#meltbutt
Turns out humans are big bags of meat and water and radios hate meat and water.
So putting a radio in meat and water makes the radio angry.
#meltbutt
Wireless combined with ability to have an app on your personal phone (vs say shared desktop), meant btle sex toys got popular and are the market.
#meltbutt
ACT TWO:
Why USB Key?
#meltbutt
Sex toys are hardware.
HW is usually a loss leader.
With the context of sex, you can usually sell anything at a wacky markup because who's gonna walk into ye ol' dildo shoppe and go "THESE PRICES?!", eh?
#meltbutt
And ✨Capitalism✨doesn't like that!
Therefore, we build a recurring revenue structure!
#meltbutt
Established 1997, RIP August 18, 2018.
#meltbutt
6-7 companies were sued to death by the patent holder in 2015.
Lovense, the center of our story today, licensed that patent so they could make their bluetooth sex toys without getting sued.
#meltbutt
Because it turns out, sex toys are widely used by the sex worker community!
Imagine that!
(PAY SEX WORKERS)
#meltbutt
Here's how that usually works:
#meltbutt
- Toy hooks to the service they use to stream video (Chaturbate/Streammate/Camsoda/etc)
- Customers give models "tokens"
- Cam Service pings API that turns token giving amount/frequency into vibration speed
- Boom, Economically Closed Loop of Sex
#meltbutt
Vendor lockin achievement unlocked.
#meltbutt
We don't know what technology a cam model will own.
They could be streaming from their phone, or a desktop, or both.
We don't know what that hardware will be. PC? Mac? Android? iOS?
#meltbutt
I'm not sure if you've ever been on video while trying to debug tech while that tech is inside you.
It's not easy. And it's not sexy. And people usually won't pay you for it.
#meltbutt
Those bluetooth radios vary WILDLY in quality and affinity levels toward meat/water bags.
#meltbutt
While also concentrating on customers.
#meltbutt
This means BTLE on the Desktop!
A land of untold nightmares!
#meltbutt
Win/macOS/Linux/Android/iOS
(NetBSD not included because users felt sex itself wasn't secure)
#meltbutt
We only support Win 10 for Bluetooth LE.
There is no support for Win 7. Period. The end. Not gonna do it. Nope.
#meltbutt
Lovense is a business, and as a business, needs to support the widest customer base possible.
Lovense has to support Windows 7.
#meltbutt
Windows 7, no such luck. You've got choices, none great.
#meltbutt
- Proprietary stacks to USB dongles
- Bitbanging BTLE over known USB protocols to BTLE dongles (this is what node's noble library does)
- Various USB-to-serial-to-BT chips like BlueGiga, nRF, etc.
#meltbutt
And that's exactly what Lovense did.
SEE I TOLD YOU I WAS GONNA GET BACK TO USB.
#meltdown
#meltbutt
That's why this USB key exists.
#meltbutt
Now why are we building an app based on a whole ass god damn browser for this?
#meltbutt
Lovense aren't the only one that do this.
Intiface, my "user facing" application that embeds Buttplug (the library), is based on Electron.
#meltbutt
But, I've got skin (or, well, being a buttplug, body safe silicone) in the game here too.
#meltbutt
It's pretty simple, but requires some knowledge of web tech history.
Before Electron, and before the modern WebAPI push, there were Chrome APIs.
#meltdown
Back when they first released it, the Google Chrome Browser had APIs (hung off the "chrome" object that existed at global scope) that would allow you to access things Javascript wouldn't let you.
#meltbutt
However, non-standardized web APIs are always looked down upon.
So they starting removing those APIs and porting them to the web.
#meltbutt
#meltbutt
When those APIs disappeared, with no replacements for HID or Serial, they needed another way to access their hardware.
#meltbutt
#meltbutt
I am not getting into a discussion about the efficacy/security of web hardware APIs.
BECAUSE REASONS, OK?
#meltbutt
#meltbutt
I'm also happy to talk to media, though for anything specifically security related I'll usually just say "talk to @internetofdongs".
#meltbutt
IT SLICES.
IT DICES.
IT GIVES ME MONEY TO MAKE LONG ASS TWITTER THREADS LIKE THIS.
Donate to my patreon, if the lord moves you to do so.
At $3, you'll get stickers.
patreon.com/qdot
threadreaderapp.com/thread/1160624…