使用GnuRadio+OpenLTE+SDR搭建4G LTE基站(上)
0×00 前言
在移动互联网大规模发展的背景下,智能手机的普及和各种互联网应用的流行,致使对无线网络的需求呈几何级增长,导致移动运营商之间的竞争愈发激烈。但由于资费下调等各种因素影响,运营商从用户获得的收益在慢慢减少,同时用于减少韵味和无线网络的升级投资不断增加,但收入却增长缓慢。为保证长期盈利增长,运营商必须节流。
SDR Software Define Radio 软件定义无线电可将基站信号处理功能尽量通过软件来实现,使用通用硬件平台可快速地实现信号的调制解调,编码运算,SDR为现有通信系统建设提供了全新思路,给技术研究开发降低了成本、并提供了更快的实现方式。(引用 基于开源SDR实现LTE系统对比)
SDR是否能打破传统运营商在通信行业的垄断呢?
另外值得关注的是:国外安全大会上从数年前2G GSM攻击议题到近期的LTE 4G安全议题,基站通信安全一直备受安全爱好者关注。
在这一背景下,国外OpenLTE开源项目成为热门话题:
OpenLTE是在Linux系统下的使用GNURadio软件开发包实现的3GPP通信协议的一个开源项目,主要实现一个简单的4G基站的功能。在文章后面的内容中,我们将分享如何搭建、使用OpenLTE.
至于使用BladeRF搭建GSM基站的内容可阅读:
GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站
GSM Hacking:使用BladeRF、树莓派、YatesBTS搭建便携式GSM基站
Demo:
小百科:
2G网络是指第二代无线蜂窝电话通讯协议,是以无线通讯数字化为代表,能够进行窄带数据通讯。常见2G无线通讯协议有GSM频分多址(GPRS和EDGE和CDMA ) 传输速度很慢。
3G网络是第三代无线蜂窝电话通讯协议,主要是在2G的基础上发展了高带宽的数据通信,并提高了语音通话安全性。3G一般的数据通信带宽都在500Kb/s以上。目前3G常用的有3种标准:WCDMA、CDMA2000、TD-SCDMA,传速速度相对较快,可以很好的满足手机上网等需求。
4G网络是指第四代无线蜂窝电话通讯协议,该技术包括TD-LTE和FDD-LTE两种制式,是集3G与WLAN于一体并能够传输高质量视频图像以及图像传输质量与高清晰度电视不相上下的技术产品。 4G系统能够以100Mbps的速度下载,比拨号上网快2000倍,上传的速度也能达到20Mbps,并能够满足几乎所有用户对于无线服务的要求。
那么除去安全方面,2G、3G、4G之间有什么不同呢?对于用户而言,2G、3G、4G网络最大的区别在于传速速度不同。
给你一个秒懂的例子: 2G秒看苍老师.txt 3G秒看苍老师.jpg 4G秒看苍老师.avi:
0×01 环境搭建
OS:Ubuntu
GnuRadio 3.7
BladeRF
HackRF
1.1 BladeRF
1.1.1 驱动
mkdir bladeRF wget -c https://github.com/Nuand/bladeRF/archive/master.zip unzip master.zip cd bladeRF-master cd host mkdir build cd build cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DINSTALL_UDEV_RULES=ON ../ make -j4 make install > install.log ldconfig
1.1.2 BladeRF 固件
wget -c http://www.nuand.com/fx3/bladeRF_fw_v1.8.0.img bladeRF-cli -f bladeRF_fw_v1.8.0.img -v verbose
1.2 GNURadio
mkdir gnuradio cd gnurdio wget http://www.sbrac.org/files/build-gnuradio chmod a+x build-gnuradio ./build-gnuradio –v sudo apt-get install libpolarssl-dev
0×02 另辟蹊径
以上步骤所需依赖包较多,想偷懒的童鞋可以使用GnuRadio发布的Ubuntu LiveCD,里边已经搭建好了gnuradio、HackRF、BladeRF、USRP、gqrx、rtl-sdr等一些列SDR所需的依赖环境。使用这种方式可以避免安装系统环境中遇到的绝大多数坑。
下载链接:http://gnuradio.org/redmine/projects/gnuradio/wiki/GNURadioLiveDVD
2.1 编译OpenLTE (文件列表)
wget http://ufpr.dl.sourceforge.net/project/openlte/openlte_v00-19-04.tgz //(目前最新版) tar zxvf openlte_v00-19-04.tgz cd openlte_v00-19-04/ mkdir build cd build sudo cmake ../ sudo make sudo make install
0×03 搜索附近基站
插入SDR设备,这里我使用了BladeRF(测试了一下HackRF也能使用,但由于HackRF采用USB 2.0传输数据,其效率会比BladeRF低很多,有条件的同学可以使用USRP):
osmocom_fft --samp-rate 80000000
OpenLTE编译完成之后会在build目录下生成可执行文件:
cd LTE_fdd_dl_scan ./LTE_fdd_dl_scan
新建一终端,通过Telnet进入OpenLTE工作终端交互界面:
telnet 127.0.0.1 20000
telnet端执行start开始扫描:
LTE_fdd_dl_scan将扫描dl_earfcn_list列表中的FCN值:从25到575
ARFCN:绝对无线频道编号 (Absolute Radio Frequency Channel Number – ARFCN ),是在GSM无线系统中,用来鉴别特殊射频通道的编号方案,相信嗅探过GSM短信的童鞋对它一点不陌生。4G LTE中ARFCN被称作EARFCN。
3.1 搜索电信FDD LTE网络:(telnet端)
write band 1 help start
3.2 搜索联通FDD LTE网络:(telnet端)
stop write band 3 start
3.3 关闭搜索:(telnet端)
shutdown
3.4 移动、联通、电信TD-LTE频段与FDD-LTE部分频段:
0×04 结语
文章第一部分主要分享如何搭建OpenLTE并扫描附近基站信号,在后续的内容中将根据OpenLTE官方WIKI分享OpenLTE其他功能的使用。如LTE_fdd_enodeb的发卡,添加用户功能:
0×05 参考&感谢
Mobile Security: Practical attacks using cheap equipment
黄琳_HITB Paper:LTE REDIRECTION Forcing T argeted LTE Cellphone into Unsafe Network