  The number and variety of Internet-connected devices have grown enormously in
the past few years, presenting new challenges to security and privacy. Research
has shown that network adversaries can use traffic rate metadata from consumer
IoT devices to infer sensitive user activities. Shaping traffic flows to fit
distributions independent of user activities can protect privacy, but this
approach has seen little adoption due to required developer effort and overhead
bandwidth costs. Here, we present a Python library for IoT developers to easily
integrate privacy-preserving traffic shaping into their products. The library
replaces standard networking functions with versions that automatically
obfuscate device traffic patterns through a combination of payload padding,
fragmentation, and randomized cover traffic. Our library successfully preserves
user privacy and requires approximately 4 KB/s overhead bandwidth for IoT
devices with low send rates or high latency tolerances. This overhead is
reasonable given normal Internet speeds in American homes and is an improvement
on the bandwidth requirements of existing solutions.
