This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
wiki:식별번호 [2018/01/02 20:39] 1.241.172.144 created |
wiki:식별번호 [2018/01/02 21:03] (current) 1.241.172.144 [IMSI (International Mobile Station Identity), 국제 이동국 식별 번호] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ======제조사 부여 식별자====== | ||
+ | |||
+ | =====ESN (Electronic Serial Number)===== | ||
+ | |||
+ | 단말제조업체가 단말기에 부여하는 고유번호. | ||
+ | |||
+ | 단말기를 켜거나 전화를 걸때 기지국을 통해서 사업자에게 전달되며, 사업자는 이를 사용하여 사용자 식별, 통화, 인증 및 과금 등에 사용한다. | ||
+ | |||
+ | 국제 로밍을 고려할 경우 세계적으로 고유한 번호이어야 하므로 미국의 TIA(Telecommunication Industry Association)에 그 관리와 배포를 위임하고 있다. | ||
+ | |||
+ | 총 32bit으로 구성되며 MC(manufacturer code)가 8bit인 것과 14bit인 경우의 두 가지가 있다. | ||
+ | |||
+ | TIA가 보유하는 ESN 자원이 고갈되어감에 따라 MEID(Mobile Equipment Identifier)로 전환되었다. | ||
+ | |||
+ | ESN 구성 | ||
+ | |||
+ | =====MEID(Mobile Equipment Identifier)===== | ||
+ | |||
+ | CDMA의 ESN 고갈에 대한 대안으로 만들어짐 | ||
+ | |||
+ | 아래와 같이 56bit로 구성됨 (Hexadecimal이므로 4 * 14 = 56bit, 마지막 CD는 check sum으로 식별자 아님) | ||
+ | |||
+ | 맨 앞의 RR은 Regional code로 GHA(Global Hexadecimal MEID Administrator)에 의해 관리되는데 00-99는 3GPP에서 사용되는 IMEI(International Mobile Equipment Identity)를 위해 예약, A0-FF는 cdma2000을 위해 reserve 됨 | ||
+ | |||
+ | MEID 구성 | ||
+ | |||
+ | =====IMEI (International Mobile Equipment Identity)===== | ||
+ | |||
+ | 3GPP(GSM/WCDMA)에서 사용하는 코드14자 + 체크용 1자 = 총 15자의 Hex값 | ||
+ | |||
+ | MEID와 동일 포맷이지만, CD(check sum)이 포함되며 RR코드의 영역이 다름 | ||
+ | |||
+ | |||
+ | ======통신사 관련 식별자====== | ||
+ | |||
=====IMSI (International Mobile Station Identity), 국제 이동국 식별 번호===== | =====IMSI (International Mobile Station Identity), 국제 이동국 식별 번호===== | ||
Line 8: | Line 43: | ||
IMSI = MCC (Mobile Conuntry Code) + MNC (Mobile Network Code) + MSIN (Mobile Subscriber Identifier Number) | IMSI = MCC (Mobile Conuntry Code) + MNC (Mobile Network Code) + MSIN (Mobile Subscriber Identifier Number) | ||
- | + | ||
+ | {{wiki:2inchlte:info:imsi_format.jpg}}\\ | ||
+ | {{wiki:2inchlte:info:korea_mcc_mnc.jpg}} | ||
MCC+MNC는 이동전화 가입자의 Home Network를 전세계 어떠한 망에서든지 유일하게 식별한다. | MCC+MNC는 이동전화 가입자의 Home Network를 전세계 어떠한 망에서든지 유일하게 식별한다. | ||
Line 15: | Line 53: | ||
MSIN은 MCC와 MNC가 주어진 경우, 이동전화 단말기를 유일하게 식별한다. | MSIN은 MCC와 MNC가 주어진 경우, 이동전화 단말기를 유일하게 식별한다. | ||
- | |||
- | |||
- | TMSI (Temporary Mobile Subscriber Identity), 임시 이동 가입자 식별 번호 | + | =====TMSI (Temporary Mobile Subscriber Identity), 임시 이동 가입자 식별 번호===== |
+ | 이동 통신 시스템에서 이동국을 식별하는 임시 식별 번호. | ||
- | 이동 통신 시스템에서 이동국을 식별하는 임시 식별 번호. 임시 식별 번호는 홈 위치 레지스터(HLR)의 인증 센터(AC/Auc)에 의해 부여되며, 이동국과 이동 전화 교환국(MSC) 사이에서 보안상 국제 이동국 식별 번호(IMSI: International Mobile Station Identity) 대신 사용된다. | + | 임시 식별 번호는 홈 위치 레지스터(HLR)의 인증 센터(AC/Auc)에 의해 부여되며, 이동국과 이동 전화 교환국(MSC) 사이에서 보안상 국제 이동국 식별 번호(IMSI: International Mobile Station Identity) 대신 사용된다. |
+ | 이는 Air 인터페이스 상에 IMSI 노출을 최소화하기 위하여 최초 위치 등록시 IMSI 대신에 TMSI를 가입자별로 핟당한다. | ||
+ | |||
+ | 가입자 식별을 보호하기 위해 인증과 암호화를 거쳐 이동국에 전송되며, 이동국 통신권 내에서 유효하고 통신권 외에서는 추가적으로 위치 영역 식별(LAI: Location Area Identification)이 필요하다. | ||
+ | |||
+ | |||
+ | =====MIN (Mobile Identification Number), 이동국 식별 번호===== | ||
+ | 이동국(이동 전화 단말기)에 할당된 10자리 전화번호를 디지털로 표시하는 34비트의 숫자. | ||
- | 이는 Air 인터페이스 상에 IMSI 노출을 최소화하기 위하여 최초 위치 등록시 IMSI 대신에 TMSI를 가입자별로 핟당한다. | + | 단말기의 지정 번호(일명 전화번호)로서 MIN 1과 MIN 2가 있다. |
+ | MIN 1은 단말기에 할당된 7개 디짓의 전화번호로 24개 비트로 구성되며, MIN 2는 3개 디짓의 지역 번호로 10개의 비트로 구성된다. | ||
+ | 011-YYY-XXXX에서 MIN 1은 YYY-XXXX이고 MIN 2는 011이다. | ||
+ | [참고] MIN은 원래 북미의 이동전화 단말기를 식별하기 위한 것이었다. | ||
+ | 10자리의 MIN은 국제 로밍을 제공하기 위해 필요한 추가정보를 포함할 수 없다는 점 때문에 IMSI 체계가 필요하게 되었다. | ||
+ | IMSI 는 GSM 표준에서 사용된다. (ITU-T) | ||
- | 가입자 식별을 보호하기 위해 인증과 암호화를 거쳐 이동국에 전송되며, 이동국 통신권 내에서 유효하고 통신권 외에서는 추가적으로 위치 영역 식별(LAI: Location Area Identification)이 필요하다. | + | =====MSISDN (Mobile Station International ISDN Number), 이동국 국제 ISDN 번호===== |
+ | |||
+ | WCDMA IMT-2000에서는 가입자에게 두 가지 번호를 부여한다. | ||
+ | |||
+ | USIM 카드에 IMSI와 단말기에 MSISDN이라는 것이 부여되는데, 이번에 정부에서 010X로 부여한 것이 바로 MSISDN이고 이 MSISDN에는 실제로는 국가코드(우리나라 = 82)가 들어가 있는 상태이다. | ||
+ | |||
+ | 따라서 가입자는 상대방이 어디에 있는지 전혀 예상하지 않고서도 별도의 다이얼링 없이 전화를 걸어 상대방이 다른 국가에 있다는 것을 알 수 있다. | ||
- | + | 하나의 IMSI에 4개의 MSISDN을 가질 수 있다. | |
- | + | ||
- | MIN (Mobile Identification Number), 이동국 식별 번호 | + | |
- | + | ||
- | 이동국(이동 전화 단말기)에 할당된 10자리 전화번호를 디지털로 표시하는 34비트의 숫자. 단말기의 지정 번호(일명 전화번호)로서 MIN 1과 MIN 2가 있다. | + | |
- | + | ||
- | MIN 1은 단말기에 할당된 7개 디짓의 전화번호로 24개 비트로 구성되며, MIN 2는 3개 디짓의 지역 번호로 10개의 비트로 구성된다. 011-YYY-XXXX에서 MIN 1은 YYY-XXXX이고 MIN 2는 011이다. | + | |
- | + | ||
- | [참고] MIN은 원래 북미의 이동전화 단말기를 식별하기 위한 것이었다. 10자리의 MIN은 국제 로밍을 제공하기 위해 필요한 추가정보를 포함할 수 없다는 점 때문에 IMSI 체계가 필요하게 되었다. IMSI 는 GSM 표준에서 사용된다. (ITU-T) | + | |
- | + | ||
- | + | ||
- | MSISDN (Mobile Station International ISDN Number), 이동국 국제 ISDN 번호 | + | |
- | + | ||
- | WCDMA IMT-2000에서는 가입자에게 두 가지 번호를 부여한다. USIM 카드에 IMSI와 단말기에 MSISDN이라는 것이 부여되는데, 이번에 정부에서 010X로 부여한 것이 바로 MSISDN이고 이 MSISDN에는 실제로는 국가코드(우리나라 = 82)가 들어가 있는 상태이다. | + | |
- | + | ||
- | 따라서 가입자는 상대방이 어디에 있는지 전혀 예상하지 않고서도 별도의 다이얼링 없이 전화를 걸어 상대방이 다른 국가에 있다는 것을 알 수 있다. 하나의 IMSI에 4개의 MSISDN을 가질 수 있다. | + | |
GSM 네트웍에서의 전화번호란 MSISDN(Mobile Station Integrated System Digital Network)을 뜻하며 국가코드(Country Code), 네트웍코드(NetworkCode) 그리고 디렉토리번호(Directory Number)로 구성되어 있다. | GSM 네트웍에서의 전화번호란 MSISDN(Mobile Station Integrated System Digital Network)을 뜻하며 국가코드(Country Code), 네트웍코드(NetworkCode) 그리고 디렉토리번호(Directory Number)로 구성되어 있다. | ||
- | + | ||
- | 반면에 IS-41C 네트웍에서의 전화번호란 휴대폰의 MIN(Mobile Identification Number)를 뜻하며 지역번호(Area Code)와 전화번호(Phone Number)로 구성되어 있고 (NPA) Nxx-xxxx 형태를 갖고 있다. MDN (Mobile Directory Number)와 동일한 것으로, 가입자 전화번호를 의미한다. | + | 반면에 IS-41C 네트웍에서의 전화번호란 휴대폰의 MIN(Mobile Identification Number)를 뜻하며 지역번호(Area Code)와 전화번호(Phone Number)로 구성되어 있고 (NPA) Nxx-xxxx 형태를 갖고 있다. |
- | + | ||
- | + | MDN (Mobile Directory Number)와 동일한 것으로, 가입자 전화번호를 의미한다. | |
- | IMEI (International Mobile Equipment Identity), 국제 이동 단말기 식별 번호 | + | |
- | + | ||
- | GSM 표준에서 제조업체에 의해서 단말의 하드웨어 제작시 할당되는 최대 15자리 하드웨어 번호를 말하며, 이 번호는 형식 승인 코드, 최종 조합 코드 및 일련 번호를 포함하여 15자리로 구성된다. 이를 통해 GSM 이동 단말기가 서로를 고유하게 식별할 수 있다. | + | =====IMEI (International Mobile Equipment Identity), 국제 이동 단말기 식별 번호===== |
- | + | ||
- | -- while list : 정상적인 사용이 가능한 단말들의 분류 | + | GSM 표준에서 제조업체에 의해서 단말의 하드웨어 제작시 할당되는 최대 15자리 하드웨어 번호를 말하며, 이 번호는 형식 승인 코드, 최종 조합 코드 및 일련 번호를 포함하여 15자리로 구성된다. |
- | -- black list : 호를 금지시켜야 하는 단말들의 분류 | + | |
- | -- gray list : 호를 금지하지는 않지만, 추적이 필요한 단말들의 분류 | + | 이를 통해 GSM 이동 단말기가 서로를 고유하게 식별할 수 있다. |
- | + | ||
- | + | -- while list : 정상적인 사용이 가능한 단말들의 분류 | |
- | PIN (Personal Identification Number), 개인 식별 번호 | + | -- black list : 호를 금지시켜야 하는 단말들의 분류 |
- | + | -- gray list : 호를 금지하지는 않지만, 추적이 필요한 단말들의 분류 | |
+ | |||
+ | ====== ? ====== | ||
+ | |||
+ | =====PIN (Personal Identification Number), 개인 식별 번호===== | ||
특정 기능이나 정보의 접근을 위해 모든 GSM 기반 전화기에서 사용되는 코드로, PIN은 가입과 동시에 제공한다. | 특정 기능이나 정보의 접근을 위해 모든 GSM 기반 전화기에서 사용되는 코드로, PIN은 가입과 동시에 제공한다. | ||
- | [출처] 이동통신 각종 식별번호 개념잡기(IMSI, MSISDN, MIN등)|작성자 몽키몽키 | + | |
+ | ====== ? ====== | ||
+ | |||
+ | =====디바이스 식별자가 인증(Authentication)에 문제가 되는 경우들===== | ||
+ | |||
+ | 요즘 휴대폰 외에도 타블렛과 같은 모바일 디바이스를 함께 사용하는 사람들이 많아졌다. | ||
+ | |||
+ | 이런 사용자들의 패턴을 봤을 때 위에서 설명한 식별자들을 인증을 위한 ID로 사용하면 다음과 같은 문제가 발생할 수 있다. | ||
+ | |||
+ | ====제조사가 생성한 식별자를 사용하는 경우==== | ||
+ | |||
+ | 전화기가 아닌 단말은 ESN, IMEI, MEID 등을 가지고 있지 않다. | ||
+ | |||
+ | Wifi의 MAC address는 wifi가 꺼져있을 경우 올바른 주소값을 얻을 수 없는 기기가 있다. | ||
+ | |||
+ | 디바이스에 영구적으로 할당된 유일한 식별자이므로 완전히 공장 초기화가 되더라도 값이 바뀌지 않는다. | ||
+ | |||
+ | 즉, 사용자 간의 기기 양도 및 거래가 될 경우 인증을 위한 ID로 서버에 보관하고 있을 경우 문제가 된다. | ||
+ | |||
+ | ====이동통신망 관련 식별자를 사용하는 경우==== | ||
+ | |||
+ | 타블렛 PC 등 전화기가 아닌 모바일 디바이스들을 식별할 수 없다 | ||
+ | |||
+ | ====iOS에서 UDID(Unique Device ID)를 사용하는 경우==== | ||
+ | |||
+ | iOS에는 UDID라는 단말기 식별자(40자리)가 존재하는데, 개인정보 논란을 비롯해서 다른 광고플랫폼에서 트래픽 분석에 사용되는 등 문제가 됨에 따라 애플은 iOS5 부터 UDID를 deprecated 시켰다. | ||
+ | |||
+ | 게다가 2013.06 부터 UDID를 사용하는 앱은 심사에서 reject되고 있다. | ||
+ | |||
+ | 또한 UDID 역시 제조사(애플)의 단말기 식별자이므로 인증을 위한 사용자 식별자로는 부적절하다. | ||
+ | |||
+ | ====Android에서 Settings.Secure.ANDROID_ID를 사용하는 경우==== | ||
+ | |||
+ | ANDROID_ID는 64bit 크기의 고유값인데, 디바이스 초기화할 때 리셋되므로 일반적인 제조사 식별자가 가지는 문제(e.g. 기기 양도)는 없다. | ||
+ | |||
+ | 하지만 안드로이드2.2(프로요) 이전의 단말의 경우 값을 신뢰할 수 없고, 메이저 제조사에서 제작한 인기 모델의 모든 단말이 같은 ANDROID_ID 값을 가지는 버그가 있어서 사용에 위험이 따른다. | ||
+ | |||
+ | |||
+ | =====그럼 디바이스 인증에는 어떤 식별자를 사용해야 하는가?===== | ||
+ | |||
+ | 모바일앱의 디바이스 인증에 사용할 ID값은 일반적으로 다음과 조건을 만족시켜야 한다. | ||
+ | |||
+ | 1. Global Uniqueness를 보장할 수 있는 값이어야 한다. | ||
+ | 2. 개인정보로 취급되지 않는 식별자를 사용해야 한다. (MAC address의 경우 관점에 따라 개인정보로 취급되는 경우가 있다 ) | ||
+ | 3. 제조사의 Serial Number와 같이 영속적인 값은 피해야 한다. (사용자간의 기기 양도시의 문제) | ||
+ | 4. 기기정보 기반의 값(e.g.통신사의 식별자)은 지원할 수 있는 기기의 제한을 만들 수 있으므로 피한다. | ||
+ | |||
+ | 디바이스 인증을 위한 식별자로써 UUID(GUID)를 사용하는 것이다. | ||
+ | 즉, 앱 설치 후 최초 실행시에 UUID(Unique Device ID)를 생성해서 저장하고 그 값을 디바이스 식별자로 사용한다. | ||
+ | |||
+ | 애플 역시 iOS5에서 UDID(Unique Device ID)를 depricate 시키면서 UUID(Universally Unique Identifier)을 사용을 권고했고, Android의 커뮤니티 역시 UUID를 사용하는 것을 일반적으로 권장한다. | ||
+ | |||
+ | 인증을 위한 디바이스 식별자에 UUID를 사용하면 개인정보와 관련된 이슈를 피할 수 있을 뿐아니라, 다양한 시나리오를 개발자가 직접 컨트롤 할 수 있다. | ||