IT관련(196)
-
Command APDU structure
Contents of command APDU Code Length Description Grouping CLA 1 Class of instruction Header INS 1 Instruction code P1 1 Instruction parameter 1 P2 1 Instruction parameter 2 Lc 0 or 1 Number of bytes in the command data field Body Data Lc Command data string Le 0 or 1 Maximum number of data bytes expected in response of the command 일반적으로 Command APDU는 위 표와 같이 구성된다. 특히 Header 부분은 mandatory이며, Body..
2011.09.28 -
IMSI를 이용한 IMSI_M 구하기
USIM의 IMSI와 유사한 개념으로 CSIM에는 EF IMSI_M이 존재한다. 당연히 IMSI 값을 가지고 IMSI_M의 값을 계산할 수 있다. IMSI의 값이 450011012341234일 경우 Value 4 5 0 0 1 1 0 1 2 3 4 1 2 3 4 Name D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 주의) D15 ~ D1의 값이 '0'인 경우에는 '10'으로 대체하여 계산한다. 즉, 위 표에서 D13, D12, D9는 '10'으로 대체한다. IMSI_M_CLASS (1 byte) 고정 값 '00' IMSI_M_S2 (2 bytes) (100*D10) + (10*D9) + (D8) - 111 A에서 계산된 값을 2 bytes의 HEX값으로 변환..
2011.09.28 -
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