에브리데이 크립토그래피 2/e — 1장

Jaewoong
Quantum Ant
Published in
6 min readAug 26, 2019

1 장 보안 서비스

기본 정의

기밀성(confidentiality, secrecy)

기밀성은 암호화 기법을 통해 제공되는 ‘전형적인’ 보안 서비스이고, 역사상 가장 오랫동안 애플리케이션으로 실현되는 특성이 있습니다. 중요한 보안 서비스로 남아 있지만, 요즘은 기밀성의 규정을 요구하지 않는 암호화 애플리케이션도 많습니다. 기밀성 보장이 유일하게 요구되는 보안 서비스인 경우는 드물게 나타납니다.

무단 이용자는 데이터를 볼 수 없다는 보증입니다.

그리고 요즘에는 기밀성만으로 보안 서비스를 하기에는 부족합니다.

데이터 무결성(data integrity)

데이터 무결성은 데이터의 변경을 ‘예방’하는 것과는 관련이 없지만,

데이터가 무단 방식으로 조작됐는지를 ‘탐지’하는 수단을 제공합니다.

데이터가 무단 혹은 우발적인 방식으로 변경되지 않았다는 보증입니다.

즉 중간에 누군가가 데이터를 임의로 조작했을때, 무결성이 깨진다라고 합니다.

데이터 발신 인증(data origin authentication)

만약 어떤 기법이 데이터가 앨리스로부터 전송됐음을 확인해주는 ‘데이터 발신 인증’을 제공한다면, 수신자인 밥은 해당 데이터가 과거의 어느 순간에 실제로 앨리스로부터 온 것임을 확신할 수 있다는 뜻입니다.

밥은 정확히 ‘언제’ 앨리스가 그것을 보냈는지는 별로 관심이 없습니다.

그의 관심사는 앨리스가 해당 데이터의 출처인지 여부입니다.

앨리스가 해당 데이터를 회송해달라며 중개자에게 전달했을 수도 있으므로, 밥은 어떤 직전 소스로부터 데이터를 취득했는지에 대해서도 별로 개의치 않습니다.

주요 관심사는 데이터의 인증이지 데이터를 수신할 때 누구와 커뮤니케이션하는지는 아니기에 ‘데이터 발신 인증’은 때로는 ‘메시지 인증(message authentication)’ 이라 불리기도 합니다.

즉 어떻게 언제 어디서 오든간에 밥은 앨리스한태 메시지가 왔다는 것이 중요합니다.

부인 방지(non-repudiation)

‘데이터 발신 인증’은 데이터가 원본 출처로부터 나왔다는 보증을 데이터 수신자측에만 제공하면 되지만, ‘부인 방지’는 송신자와 수신자 양쪽에 그러한 보증을 요구하기 때문에 ‘데이터 발신 인증’ 보다 더 강력한 요구 사항입니다. 또한 데이터 교환 과정에서 분쟁이 발생할 수 이는 상황에서 매우 유요한 특성이 있습니다.

송신자나 수신자가 이전의 야속이나 행위를 부인할 수 없다는 보증입니다.

가장 흔한 ‘부인 방지’ 설명은 어떤 데이터의 원본 출처가 제 3자에 의해 데이터 소스임을 부인 할 수 없도록 한다는 보증입니다.

즉, 앨리스가 밥에게 보내 놓고 안보냈다고 거짓말하는 것을 제 3자가 거짓말 인지 아닌지 보증을 하는 것입니다.

개체 인증(entity authentication)

만약 어떤 기법이 앨리스의 ‘개체 인증’을 제공한다면, 이는 해당 기법을 적용함으로써 앨리스가 실제로 우리와 주고받는 통신에 ‘실시간으로’, ‘지금’ 참여하고 있음을 확인할 수 있다는 뜻입니다. 어떤 맥락에서 “개체 인증’은 ‘지금 누구와 실시간으로 커뮤니케이션하는가?”를 결정하는 것과 관련이 있기 때문에 ‘신원 확인(identification)’으로 불리기도 합니다.

개체인증은 주어진 개체가 해당 통신 세션에 참여하고 있으며 ‘현재 활동 중’ 이라는 보증입니다.

보안 서비스 간의 관계

데이터 발신 인증은 데이터 무결성보다 더 강력한 개념이다.

데이터 무결성의 보증이 없다면 우리는 수신한 데이터가 전송 과정에서 어느 공격자에 의해 변경되지 않았음을 확신할 수 없습니다. 데이터 발신 인증은 데이터 무결성이 함께 포함된 경우에만 제공 될 수 있습니다. 데이터 발신 인증을 데이터 무결성의 업그레이드 버전으로 간주하면 더 기억하기 쉽습니다. 즉, 데이터 무결성이 데이터 발신 인증에 포함되는 관계입니다. 바꿔 말하면 만약 데이터 발신 인증을 받았다면 우리는 이미 데이터 무결성도 확인받았다는 뜻입니다.(역은 성립하지 않습니다.)

출처의 부인 방지는 데이터 발신 인증보다 더 강력한 개념이다.

해당 데이터가 주어진 소스에서 전송됐다는 확신이 있다면, 우리는 해당 데이터 소스를 나중에 부인할 수 없도록 하는 방식으로 연결시킬 수 있습니다. 앞에서도 언급했다시피 부인 방지는 보통 신뢰할 만한 제 3자를 통해 이런 연결 관계를 검증받아야 하는데, 이것은 데이터 발신 인증보다 더 엄격한 요구 사항입니다.

결론적으로 데이터 발신 인증이 제공되지 않고는 부인 방지를 제공할 수 없습니다.

이는 데이터 발신 인증이 부인 방지에 포함되는 것입니다.

데이터 발신 인증과 개체 인증은 다르다

데이터 발신 인증과 개체 인증은 서로 다른 보안 서비스입니다. 이 차이를 확인할 수 있는 가장 좋은 방법은 어느 하나는 필요하지만 다른 하나는 필요로 하지 않는 애플리케이션을 생각해보면 됩니다.

데이터 발신 인증은 한 개체가 다른 사람이나 기관을 대신해 정보를 보내는, 이를테면 이메일 메시지가 공개 네트워크를 통해 전송되는 경우에 유용합니다. 이런 경우에 개체 인증이 필요할 가능성은 거의 없습니다. 메시지가 전송된 시간, 메시지가 수신된 시간, 메시지가 실제로 읽은 시간 (여기서 포인트는 시간입니다 — 시간의 제약이 없다.) 사이에는 꽤 긴 지연 간극이 존재할 수 있기 때문입니다. 하지만 메시지를 언제 읽든, 우리는 해당 이메일을 작성한 주체의 신원이 믿을 만하다는 사실을 확인받고 싶어 합니다. 이런 보증은 데이터 발신 인증을 통해 제공됩니다.

다른 한편 개체 인증은 자원에 접근할 때 요구되는 주요 보안 서비스입니다. 컴퓨터에 로그인하는 이용자는 자신의 신원을 실시간(시간이 중요하다)으로 제공해야 합니다. 보통 개체 인증은 비밀번호 같은 증명 정보를 제시하거나 암호화 컴퓨팅 작업으로 진행됩니다. 두 경우 모두 개체 인증은 이런 절차를 정확하게 수행할 수 있는 능력을 증명하는 것으로 완수되지, 점검할 데이터의 발신 출처를 요구하지는 않습니다.

데이터 발신 인증에 선도 점검을 더하면 개체 인증이 가능하다

데이터 발신은 그 자체로는 데이터의 출처에만 관심을 둘 뿐, 데이터의 송신자가 현재 활동 중인지의 여부에는 관심이 없습니다. 하지만 만약 우리가 데이터 발신 인증에 일종의 초기성(freshness)을 조합하면, 데이터가 어디에서 발신됐는지 그리고 해당 발신자가 현재의 통신 세션에 참여하고 있음을 알게 되므로 개체 인증 효과를 얻을 수 있습니다.

데이터 발신 인증에 시간이라는 의미를 부여하게 되면 개체 인증이 가능합니다.

기밀성은 데이터 발신 인증을 암시하지 않는다

흔한 착각 중 하나로 데이터의 기밀성을 주로 암호화를 통해 제공하는 것이 곧 데이터 전송자에 관한 정확한 정보를 제공하는 것과 같다고 생각하는 것입니다. 물론 이러한 상황이 맞는 상황도 있지만 일반적으로는 맞지 않습니다. 많은 암호화 애플리케이션이 그렇듯 두 보안 서비스가 동시에 요구되는 상황이 되면 두 가지 조건은 명시적으로 별개의 암호화 메커니즘을 이용하거나, 아니면 두 서비스를 동시에 제공하도록 설계된 메커니즘을 통해 제공해야 합니다.

언뜻 생각해보면 데이터 발신 인증은 기밀성은 포함할꺼같지만, (물론 포함될 수도 있지만) 각각 보안 서비스로 신경을 써야합니다.

--

--