2010-11-15 2 views
10

Я планирую разработать приложение для Android, которое будет шифровать/дешифровать голосовые данные, чтобы стороны могли общаться с использованием безопасного канала. Поэтому возникает вопрос: как перехватить речевые/аудиоданные во время вызова GSM? Возможно ли это или нет? Должен ли я использовать Android NDK или что-то еще?Возможно ли перехватить речевые данные во время разговора?

ответ

4

Это то, что происходит на низком уровне операционной системы. Вы не сможете получить доступ к этой информации на уровне приложения.

Предлагаю вам изучить VOIP как SipDroid. Бьюсь об заклад, вы сможете легко настроить шифрование. (srtp вместо rtp)

Даже если вы не используете SipDroid, это открытый исходный код, поэтому вы можете добавить эту функцию.

3

Звонок на телефоне еще не установлен. См. Это feature request.

Вы можете записывать свой голос с микрофона, но вы не можете записать звук другой стороны. Если вы хотите только записать свой голос, используйте android.media.MediaRecorder.AudioSource.MIC

+0

Я не хотел, чтобы записать вызов. Я имел в виду перехват живых речевых данных, изменение/шифрование их «на лету». Является ли это возможным? – barmaley

+0

Нет - у вас нет доступа к голосовым данным звонка. –

8

В GSM невозможно зашифровать голос и отправить его через речевой канал из-за характеристик канала. Сигнал, посылаемый через речевой канал, должен быть (похожим) на человеческий голос, поскольку вокодер (CELP) используется для канального кодирования.

Так что, даже если у вас был доступ к низкоуровневым библиотекам и он использовался для шифрования голоса, чтобы отправить его прямо через речевой канал, вызывающему абоненту было бы невозможно получить и расшифровать сигнал.

Зашифрованный голос, однако, может быть отправлен через канал данных в качестве данных.

+0

Никогда этого не знал! Очень интересный ответ. – barmaley

1

Если вы можете получить доступ к низкоуровневым библиотекам и использовать его для шифрования голоса, чтобы отправить его прямо через голосовую связь, конечно, не получится, чтобы вызываемая сторона получила и расшифровала сигнал, но если вы модулируете зашифрованный голос данные и преобразовывать эти голосовые данные в речь, как сигнал, и отправлять через речевой канал GSM, то, несомненно, другая сторона получит и расшифрует голос.

1

Я знаю, что есть приложения, которые действуют как речевой чейнджер, где они меняют ваш голос и передают его через голос gsm. Возможно, вы можете сделать приложение, которое принимает голос, а затем модулирует его на что-то вроде фазовой манипуляции или цифрового монодиального радио, как то, что окорока используется в радиосвязи VHF и HF и передает звук в gsm, а затем демодулирует его обратно в голос, но вместо прямого демодуляции модуляции вы можете добавить pgp, aes или любое другое шифрование, которое вам нравится. Меня также интересует такой проект.

Я думаю, что было бы здорово, если бы вы могли использовать это для передачи данных через канал gsm для голоса, например, 56k-модемов в прошлом вместо канала gprs.

Смотрите ссылки http://freedv.org/tiki-index.php http://www.aprs.org

Смежные вопросы