WiMAX Module
The wimax module implements the WiMAX attributes as defined in
NWG_R1_V1.2.1-Stage-3.pdf
It should be listed in the recv Access-Request and recv Accounting-Request sections.
The module will change the horrible binary version of
Calling-Station-Id to the normal format, as specified in RFC
3580, Section 3.21.
|
recv Access-Request
In the recv Access-Request section. the `wimax module fixes up
various non-standard WiMAX issues.
The WiMAX specification says that the Calling-Station-Id
is 6 octets of the MAC. This definition conflicts with RFC
3580, and all common RADIUS practices. Uncommenting the
wimax module here allows the module to change the
Calling-Station-Id attribute to the normal format as
specified in RFC 3580 Section 3.21.
send Access-Accept
In order to calculate the various WiMAX keys, the module should
be listed in the send Access-Accept section. If EAP authentication
has been used, AND the EAP method derives MSK and EMSK, then
the various WiMAX keys can be calculated.
send Access-Accept {
Miscellaneous
Some useful things to remember:
| Attribute | Description |
|---|---|
|
EAP MSK, but is 64 octets. |
|
HMAC-SHA256(ESMK, "miprk@wimaxforum.org" | 0x00020001) |
|
HMAC-SHA256(ESMK, MIP-RK-1 | "miprk@wimaxforum.org" | 0x00020002) |
|
Same as |
|
First 4 octets of HMAC-SHA256(MIP-RK, "SPI CMIP PMIP") |
You have got to track all MIP-SPI’s on your system!
| Attribute | Description |
|---|---|
|
MIP-SPI |
|
MIP-SPI + 1 |
|
MIP-SPI + 2 |
- MN-NAI
-
Mobile node NAI.
You have to create it, and put it into the request or reply as something like:
WiMAX-MN-NAI = User-Name}
You will also have to have the appropriate IP address (v4 or v6)
in order to calculate the keys below.
Lifetimes are derived from Session-Timeout. It needs to be set
to some useful number.
The hash function below H() is HMAC-SHA1.
|
- MN-HA-CMIP4
-
MN-HA-CMIP4 = H(MIP-RK, "CMIP4 MN HA" | HA-IPv4 | MN-NAI)
Where HA-IPv4 is WiMAX-hHA-IP-MIP4 or maybe WiMAX-vHA-IP-MIP4
-
Which goes into
WiMAX-MN-hHA-MIP4-Key -
or maybe
WiMAX-RRQ-MN-HA-Key -
or maybe even
WiMAX-vHA-MIP4-Key
The corresponding SPI is SPI-CMIP4, which is MIP-SPI,
-
Which goes into
WiMAX-MN-hHA-MIP4-SPI -
or maybe
WiMAX-RRQ-MN-HA-SPI -
or even
WiMAX-MN-vHA-MIP4-SPIMN-HA-PMIP4 = H(MIP-RK, "PMIP4 MN HA" | HA-IPv4 | MN-NAI) MN-HA-CMIP6 = H(MIP-RK, "CMIP6 MN HA" | HA-IPv6 | MN-NAI)
Both with similar comments to above for MN-HA-CMIP4.
In order to tell which one to use (CMIP4, PMIP4, or CMIP6), you have to
set WiMAX-IP-Technology in the reply to one of the appropriate values.
FA-RK = H(MIP-RK, "FA-RK") MN-FA = H(FA-RK, "MN FA" | FA-IP | MN-NAI)
Where does the FA-IP come from? No idea…
The next two keys (HA-RK and FA-HA) are not generated for every authentication
request, but only on demand.
HA-RK = 160-bit random number assigned by the AAA server to a specific HA.
FA-HA = H(HA-RK, "FA-HA" | HA-IPv4 | FA-CoAv4 | SPI)
where HA-IPv4 is as above.
and FA-CoAv4 address of the FA as seen by the HA
and SPI is the relevant SPI for the HA-RK.
DHCP-RK = 160-bit random number assigned by the AAA server to a specific DHCP server.
vDHCP-RK is the same thing.
Configuration Settings
- delete_mppe_keys
-
Some WiMAX equipment requires that the
MS-MPPE-*-Keyattributes are sent in the Access-Accept, in addition to theWiMAX-MSKattribute.
Other WiMAX equipment request that the MS-MPPE-*-Key
attributes are NOT sent in the Access-Accept.
By default, the EAP modules sends MS-MPPE-*-Key attributes.
The default virtual server (raddb/sites-available/default)
contains examples of adding the WiMAX-MSK.
This configuration option makes the WiMAX module delete
the MS-MPPE-*-Key attributes.
If the keys are deleted (by setting this to yes), then
the WiMAX-MSK attribute is automatically added to the reply.
The default is to leave them in place.
Default Configuration
# recv Access-Request {
# ...
# wimax
# ...
# }
# ...
# # define the WiMAX NAI
# request.WiMAX-MN-NAI = User-Name
# # Update the reply with "template" values. The wimax module
# # will see this, and replace the template values with the
# #correct ones taken from the cryptographic calculations,
# reply += {
# Vendor-Specific.WiMAX = {
# FA-RK-Key = 0x00
# MSK = reply.EAP-MSK
# }
# }
# # You may want to delete the `MS-MPPE-*-Keys` from the
# # reply, as some WiMAX clients behave badly when those
# # attributes are included. See the configuration entry
# # `delete_mppe_keys` for more information.
# #
# wimax
# ...
# }
wimax {
delete_mppe_keys = no
}