SCP11 비대칭키 ECC 통해 secure channel통신을 진행하는 방법이다.

 

SCP11 3개의 방법으로 진행되며 각각

scp11a, scp11b, scp11c 됩니다.

scp11 인증과 secure channel communcation 지원한다. 기본적으로 비대칭키를 활용하여 인증을 진행하고

SCP03으로 사용할 대칭키를 생성한다.

이후 secure channel communication scp03 내용과 동일하게 진행한다.

scp11 scp03 가장 차이점은 scp03 경우 대칭키를 교환하는 방법이 preshared 진행되어야 하지만 scp11 사용하는 경우 scp 인증과정을 진행하면서 서로 동일한 대칭키를 생성해 secure channel communication 가능하다는 점이다.

 

 

 

1. 인증서

인증서는 기본적으로 chain방식으로 진행되고 OCE(off-card-entity)쪽은 CERT.OCE.ECKA root cert이고

SD쪽에서는 CERT.SD.ECKA root cert이다.

그리고 cert들을 providing하고 verification하기 위한 key 존재하는데 CA-KLOC OCE root 검증하기위한 key

CA-KLCC SD cert 검증하기위한 키이다.

그림은 OCE, SD 인증서와 인증서를 verify하기위한 key 관계를 나타낸다.

위에서 언급한 바와같이 SD로만 예를 간단히 들면 CA-KLCC 통해 생성된 public key

PK.CA-KLCC.ECDSA 존재하고 해당 public key 통해서 CERT.SD.ECKA cert verify 있다.

 

실제로는 위와 같이 chain형태로 만들 있다.

 

 

 

 

2. SCP 11a

서로 인증하고 대칭키를 생성하여 secure channel 맺음. 개의 ephemeral key쌍을 사용

위와 같이 scp11a mutual authenticate 진행한다.

인증은 cert verify 진행되며 서로의 pub값과 자신의 private값을 바탕으로 session 키를만들고 session키를 통해서 실제 SCP03 진행할 대칭키를 만든다.

 

 

 

3. SCP 11b

SCP11b SD 인증하는 단방향 인증방법이다.

scp11b 위와같이 단방향으로 인증을 진행한다.

단방향의 방향은 OCE에서 session키로 암호화되어 SD로부터 전달된 receipt 확인함으로써 OCE SD verify하는 방법으로 단방향이 이루어진다.

 

 

 

 

4. SCP 11c

SCP11c mutual authentication 진행하며 서로 인증이 가능하도록 하는 방법이다. 하나의 ephemeral key쌍을 사용.

scp11c 가장 차이점은 미리 OCE 쪽에서 계산을 진행한다는 점이다.

이러한 방법은 통신하고자하는 SD 여러 다른 도메인데 대하여 각각 미리 계산을 진행하여 서로 다른 통신을 맺을 있다.

또한 OTA 통해 진행되는 방법이 아닌만큼 오프라인에서도 진행이 가능하다.

 

참고로 여기서 모든 scp11 진행전에 GET_DATA 통해서 CERT.SD.ECKA 전달받고 verify 통해서 PK.SD.ECKA 뽑아낼 있다. 그리고 scp11 인증과정에서 SD allowList방식을통해서 OCE 관리할 있다.

 

 

 

  • ref

GPC_2.3_F_SCP11_v1.3_PublicRelease.pdf

https://www.win.tue.nl/pinpasjc/docs/apis/gp211/org/globalplatform/CVM.html

'SE > GP' 카테고리의 다른 글

[GlobalPlatform] Secure Channel  (0) 2023.02.18
[GlobalPlatform] Card management  (0) 2023.02.11
[GlobalPlatform] Card spec - Secure Domain  (1) 2023.02.05
[GlobalPlatform] Card Spec - (1)  (0) 2023.01.15

+ Recent posts