Secure Channel은 안전한 데이터 송수신을 위한 암호화 프로토콜로써 암호화 기술로 일종의 파이프를 만들어 데이터를 안전하게 주고받을 수 있음을 보장한다.
1. 단계
Secure Channel은 크게 3가지 단계로 이루어진다.
먼저 cryptogram을 서로 주고받아 어떤 암호화 방법을 할것인지 어느정도(security level) 보안을 할것인지를 선택하고 서로 authentication을 하는 과정
그리고 실제 secure channel protocol을 맺어 데이터를 안전하게 주고받는 과정
마지막으로 secure channel을 close하는 과정 이다.
1) cryptogram교환 및 authentication
secure channel에서 가장 먼저 일어나는 단계로 기본적으로 이 과정에서 어떠한 방법의 scp를 진행할지 또 어느수준까지 보호를 진행할지를 결정한다.
먼저 가장 크게 대칭키기반의 scp03(AES), 비대칭키 기반의 scp11(ECC)가 존재한다.
먼저 대칭키 방법은 사전에 key를 off-card entity도 알고있어 eSE내부에 저장된 대칭키중 어떤 대칭키를 사용할지를
결정하여 대칭키로 secure channel을 맺어 데이터를 주고 받는다.
scp11의 경우에는 비대칭키 기반으로 동작하며 이 경우에는 scp03과 다르게 실제 Secure Domain중에서도 여러 application이 연결되어 secure channel서비스를 사용할 수 있는데 applicatoin provider와 Secure Domain구분이 가능하다. (대칭키로는 구분이 불가능함, 이 부분 정확히 이해하지 못했음…. 대충 대칭키는 누가사용하는지 모르지만 비대칭키는 global platform registry에 id를 등록해서 구분할 수 있다 이런거 같음...)
다음으로는 security level을 결정하는 부분인데
SCP는 위 기능들을 지원하며 security Level 1 byte를 위 표를고려해서 set함으로써 security Level을 off-card에서 eSE로 전달한다.
여기서 C_MAC, C_ENCRYPT는 C-DATA에 대한 보안이고, R-MAC, R_ENCRYPT는 Response Data에 대한 보안이다.
마지막으로 authentication을 진행함으로써 scp 통신을 진행하기위한 모든 1단계과정이 마무리되는데
authentication과정은 매우 단순하다. off-card, eSE모두 challenge값을 만들고 사용하기로한 key로 암호화를 해서 전달하고 서로 verify하는 과정을 거침으로써 authntication 동작이 마무리 된다.
'SE > GP' 카테고리의 다른 글
[GlobalPlatform] SCP-11 (0) | 2023.03.04 |
---|---|
[GlobalPlatform] Card management (0) | 2023.02.11 |
[GlobalPlatform] Card spec - Secure Domain (1) | 2023.02.05 |
[GlobalPlatform] Card Spec - (1) (0) | 2023.01.15 |