uicc(19)
-
PLMN(Public Land Mobile Network)
PLMN은 모바일 이통통신회사의 고유 구분 코드라고 보면 된다. MCC + MNC(http://en.wikipedia.org/wiki/Mobile_Network_Code)의 형태를 취하고 있다. SKT: 45005 KT: 45008 LGU+: 45006 USIM에는 이 PLMN을 이용하는 EF들이 존재한다. EF OPLMNwAcT(Operator controlled PLMN selector with Access Technology) 이통사가 관리하는 PLMN 리스트 이며, 해당 PLMN의 망이 CDMA, WCDMA, GSM 혹은 LTE인지가 정의된다. 그래서 PLMN 3 bytes 이외에 추가로 2 bytes가 Access Technology의 값으로 사용이 된다. 이통사와 계약된 해외 사업자의 PLMN..
2011.09.23 -
IMSI(International Mobile Subscriber Identity)
IMSI는 가입자 식별번호 즉, 전화번호를 의미한다. IMSI는 WCDMA, LTE 망에서 사용을 하며, 총 15자의 digit으로 구성되어 있다. 구조는 "MCC + MNC + 전화번호"이다. MCC(Mobile Country Code, http://en.wikipedia.org/wiki/Mobile_country_code) MNC(Mobile Network Code, http://en.wikipedia.org/wiki/Mobile_Network_Code) 대한민국의 MCC는 '450'이며 SKT의 MNC는 '05', KT의 MNC는 '04', '08'이고 LGU+는 '06'이다. 즉, 전화번호가 010-1234-1234인 경우에 각 이통사의 IMSI는 다음과 같다. SKT IMSI 4500510123..
2011.09.23 -
ICCID(Integrated Circuit Card Identifier)
ICCID는 Smart Card의 고유 ID라고 보면 된다. 각 이통사 마다 만드는 방식이 다른데 하나의 이통사에 중복되는 ICCID가 존재해서는 안된다. ICCID는 총 10 bytes이며 마지막 1byte는 Check digit(1 nibble) + 'F'로 padding을 한다. 예) 12 34 56 78 90 12 34 56 78 XY X: Check digit Y: 'F' padding Check digit은 Luhn Algorithm(http://en.wikipedia.org/wiki/Luhn_algorithm)을 이용하여 계산한다. 즉, 위 예제에서 Check digit은 '5'가 되기 때문에 ICCID는 1234567890123456785F가 된다. * ICCID를 구하는 방식을 액셀파일 ..
2011.09.22 -
OTA SMS의 Security
APDU command를 통해 UICC(USIM)의 파일(EF)을 업데이트를 하기 위해서는 해당 EF의 Access Condition에 따라 PIN 혹은 ADM키로 인증(Verify)가 되어야 가능하다. 그렇다면 OTA SMS를 통한 EF 업데이트의 경우에도 Access Condition을 만족해야 하는가? 실제로 OTA SMS를 spy해보면 OTA Header와 바로 이어서 APDU Command가 붙어서 내려오는 것을 확인할 수 있다. 만약 이 경우에 PIN, ADM 키 값이 들어가 있다면 Spy만 한다면 해당 UICC(USIM)의 키 값을 알 수 있기 때문에 보안에 심각한 문제가 발생된다. 즉, OTA SMS를 이용한 EF 업데이트는 Access Condition에 무관하게 동작하며 PIN, ADM..
2011.09.17 -
TAR(Toolkit Application Reference)
TAR는 3 bytes로써 UICC에 탑재되어 있는 Toolkit Applet을 외부??에서 실행시키고자 할때 사용된다. 만약 'A' Applet TAR값이 0xABCDEF인 경우 OTA SMS로 실행시키고자 할때 TAR값을 0xABCDEF로 주면 OTA SMS로 'A' Applet을 구동 시킬 수가 있다. 물론 OTA SMS의 경우 MAC 인증값이 맞아야만 정상동작이 된다.
2011.09.16 -
USAT, CAT
UICC에는 USAT, CAT, ... 이라는 Card Application Toolkit Layer가 있다. 이는 UICC의 Applet이 단말기(리더기)와 interactive한 동작을 할 수 있기 위해서 필요하다. 관련 표준 spec은 ETSI 102.223, 3GPP 31.111, 3GPP 31.124를 참고한다. 간단히 정리하면 UICC에서 단말(리더기)로 명령어를 보내기 위해서는 Proactive Command라는 것을 사용하고 단말(리더기)에서 UICC로 명령어를 보내기 위해서는 Envelop Command라는 것을 사용한다. 특히 Envelop Command는 OTA SMS 처리시 단말이 해당 OTA SMS를 수신하여 UICC에 전달할 때 Envelop Command를 붙혀서 보내줄때 사용..
2011.09.16