Voice Encryption

Hello, I am working on a project where encryption of voice is a major focus-area. I followed the suggestion here and have analyzed the results using wireshark and transmitting a static sound-file (rather than spoken voice) which I have confirmed to be transmitted correctly.
Now my issues are:
  • There does not appear to be any change in the data bytes with the suggestions in the link implemented
  • I am finding it quite hard to reverse engineer the data packets back into wave-forms
So my questions are: Is the data from photon-voice always encrypted? Does the data undergo some other process? (A guess would be fourier transformation, but I tried transmitting a perfect sine-wave, and most of the relevant byte values weren't 0 which makes me think maybe not?)

Answers

  • JohnTube
    JohnTube ✭✭✭✭✭
    Hi @NicolaiWoodhouse91,

    Thank you for choosing Photon!

    I'm trying to understand the Wireshark test you did here:
    1- did you compare Photon Voice data with and without encryption enabled?
    2- did you compare Photon Voice data with encryption enabled with raw file bytes?

    I'm also trying to understand your conclusion after doing the Wireshark test:
    Is Photon Voice data encrypted or not? Meaning when you compare it to the original file'
    If yes, then what are you asking for?
    If not, then let's solve this as probably things may have changed in client implementation since.

    Why do you want "to reverse engineer the data packets into wave-forms"?

    We use Opus codec and a "Binary Protocol" for transport.
    Codecs settings and Photon message formats can be found inside code or in docs (e.g. "Serialization in Photon").
  • NicolaiWoodhouse91
    edited March 2018
    I compared the photon voice data with and without the encryption measurements suggested in the link from the OP. The differences in the byte-data seemed minimal (I have some samples stored for review, if necessary), to the point where my conclusion was that no encryption was happening (long sequences of indices in the byte-array would be completely identical on both the encrypted and un-encrypted packets). My attempt to reverse engineer the data was just a further attempt to conclude whether the data was encrypted or not.

    Edit: By "photon voice data" I mean the sound-file that I was transmitting as my voice-data.
  • I'm sorry that the discussion in the forum just died, this should of course not happen.

    I checked your link in the OP and I gave those instructions a quick go.
    They work correctly, as long as you modify SendFrame().
    I verified in Wireshark, which is much easier with the fitting dissector for our protocol ;)

    Not all traffic gets encrypted but only the part that makes up the specific frame "events". So if you transfer other data (game data) you might see unchanged parts. You could also try to send a frame of 1k zeros, ones, twos, etc and try to identify those frames in wireshark. You should not be able to find those.