Hi everyone,
I've just pushed a branch sylvain/encryption on the OpenBSC git that contains my current patches to support encryption.
Even if you don't have programmable SIMs, test it still works :) If a subscriber doesn't have a Ki set in the HLR or encryption isn't enabled in the config, the executed code path should be the exact same as before.
It uses COMP128 as a3/a8 so you can use common programmable SIMs. Currently a secure channel is established for
- LOCATION UPDATEs
- CM SERVICE REQUEST.
Support for PAGING RESPONSE is a little trickier and I haven't looked deeply into it.
To enable :
- Either recreate your HLR sqlite3,
or update it like this (do a backup before hand !) :
bash# sqlite3 hlr.sqlite3
sqlite> ALTER TABLE Subscriber ADD COLUMN ki BLOB;
sqlite> UPDATE Meta SET value = '3' WHERE key='revision';
- Add a "a5 encryption 1" line to your openbsc.cfg to enable encryption using A5/1
- Set the Ki of the subscriber. Using the vty interface is the simplest :
bash# telnet 127.0.0.1 4242
openbsc> enable
openbsc# conf t
openbsc# subscriber YOURIMSI
openbsc# ki 0123456789abcdef0123456789abcdef
Sylvain