위키독:공인인증서

Caeruleum (토론 | 기여)님의 2024년 3월 16일 (토) 14:38 판 (일상과학 WiKi - wikidok>dream16 | 공인인증서(http://ko.experiments.wikidok.net/공인인증서))
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

파일:/api/File/Real/593f8bc77326d5e22bfb6ce6

개요[원본 편집]

한국에서 인터넷으로 거래를 할때 인증에 필요한 전자 서명. 전세계에서 한국만이 이것을 사용하고 있으며 그에 따라 '그는 공인인증서가 없는 한국인처럼 울었다.'라는 외국어로 번역이 난해한 문장도 만들 수 있다.(...)

기본적인 골자는 발급받은 공인인증서에 암호를 입력하면 인증이 완료되는 방식. 이때문에 보통 USB나 핸드폰, PC등에 공인인증서를 저장하게 되며 usb가 털려도 비밀번호가 있으니 안심할 수 있고 비밀번호가 노출되어도 공인인증서가 털리지 않았다면 안심할 수 있다. 하지만 둘 다 털리면 답 없다.

이런점과 더불어 공인인증서는 별도의 보안이 되지 않는 일반 폴더(NPKI)에 저장이 되는데 누구나 Ctrl + C로 복사 가능하다는 점이 최악의 단점으로 꼽히고 있다.

원래는 모든 인증에 사용할 수 있으나 현실은 인터넷 쇼핑몰 결재시에 가장 많이 쓰이고 있다. 한때는 강제적으로 공인인증서를 사용하게 하여 전자상거래시 ActiveX와 함께 각종 애로사항이 꽃피었으나 현재는 의무 사용이 폐지되어 예전보다는 결재가 한층 편해졌다.

공인인증서에 사용되는 공개키기반구조(PKI)라는 기술이 미국 국가안보국(NSA)이나 미국 국립표준기술연구소(NIST)로부터 최고 수준의 보안 등급을 받았다는 사실은 잘 알려져있지 않다.

공개 키 기반구조(PKI)[원본 편집]

파일:/api/File/Real/593f8bd87326d5e22bfb6ce9

공개 키 기반구조(Public Key Infrastructure)

1976년 Whitfield Diffe와 Martin Hellman가 정보의 전송을 안전하게 하기 위해 만든 일련의 프로세스 및 표준을 말한다. 공개 키 기반구조는 암호화 및 암호 해독 프로세스를 근본적으로 변경하여 커다란 혁신을 가져왔다.

파일:/api/File/Real/593f8be47326d5e22bfb6cec

PKI에는 두 개의 열쇠가 필요하다. 공개키와 개인키가 바로 그것인데 개인키는 받는 사람에게만 알려져 있고 공개키는 말그대로 공개적으로 노출되어 있는 키이다. 보내려고 하는 메세지를 공개키로 암호화한다음 받는 쪽은 자신의 개인키를 이용하여 암호화된 메시지를 평문으로 풀어내는 것이다.

이것의 가장 핵심적인 개념은 '암호화는 쉽지만 복호화는 어렵다.'가 되겠다.

공개 키 기반구조를 이용하려면 다음에 나오는 몇 가지 필수요소가 필요하다.

인증 기관 (CA)[원본 편집]

Certificate Authority

말그대로 인증 기관. 공개키와 개인키를 만들어내는 곳으로 공인인증서를 발급하는 각종 은행과 한국범용인증같은 곳을 말한다. 발급은 물론 해지나 갱신, 공인인증서를 잃어버렸을 경우 해당 공인인증서를 무용지물로 만들어버리는 업무까지 한다. 사실 재발급 받는 시점에서 그 전 인증서는 무쓸모가 되버린다.

디지털 인증서 (DC)[원본 편집]

Digital Certificate

인증 기관에서 발행한 전자 메일 또는 전자 상거래와 같은 일부 데이터의 보낸 사람의 신원을 확인하는 정보가 포함된 작은 코드 또는 파일. 보안 이메일의 경우 이메일에 첨부된 파일일 수 있으며 웹 사이트를 통한 거래의 경우 일반적으로 특정 웹 페이지 내에서 암호화 된 데이터를 말한다.

DC는 개인, 장치, 컴퓨터, 서버 및 웹 사이트에서 신원을 확인하며 보통 다음의 정보를 가지고 있다.

  • 고유 인증서 번호
  • 소유자 이름
  • 만료일
  • 소유자의 공개키
  • 웹 사이트 이름 (해당되는 경우)
  • 세부 사항
  • 발급하는 인증 기관의 이름
  • CA의 디지털 서명

공개키 & 개인키[원본 편집]

정보의 발신자와 수신자 사이의 정보를 보호하는데 사용된다. 개인키는 수신자에게만 알려져 있고 발급자의 공개키는 개인키와 연결되어 있으며 암호키 쌍을 사용하면 절반만 암호를 공유하거나 암호를 배포하는 것과 관련된 위험을 없앨 수 있다. 공개 키로 암호화 된 정보는 동일한 키 쌍의 개인키로만 읽을 수 있으며 개인키로 암호화 된 정보는 공개키로 해독 할 수 있다.

암호[원본 편집]

파일:/api/File/Real/593f8c007326d5e22bfb6cf3

따지고 보면 공인인증서에 사용된 암호는 가장 기초적인 원리를 가지고 있다. 사실 거의 모든 암호가 그렇지만 보내는 사람은 평문을 암호화 하여 알아볼 수 없게 하고 받는 사람은 특정한 열쇠(키)로 이 암호문을 알아볼 수 있는 평문으로 만드는(이를 복호화라고 한다.) 원리이다.

가장 간단한 암호로는 평문으로 된 문장의 각 알파벳을 순서대로 3글자 정도 옮기는 것이 있다.

예를 들어

I AM HAPPY라는 문장을 알파벳 순서대로 3글자 정도 옮기면

L DP KDSSB가 되는데 만약 받는 사람이 이미 3글자를 옮긴다는 사실(키)을 알고 있다면 아주 간단하게 복호화가 가능하다. 물론 이 사실을 모르는 사람이 본다면 이해하기 어려운 문장이 되겠지만 조금만 생각하면 키를 알아낼 수 있을정도로 간단하다. 그러므로 암호의 핵심은 이 '키'를 숨기는 방법과 이 '키'를 어떻게 (다른 사람에게 들키지 않고)상대방에게 전달할 것인지를 생각하는 것이다. 과장해서 말하면 '키'가 암호의 모든 것이라고 할 수 있을정도로 '키'의 위상은 중요하다.

소수[원본 편집]

파일:/api/File/Real/593f8c0f7326d5e22bfb6cf6

그리하여 현대 암호학의 핵심은 바로 이 소수가 되겠다. 1초에 몇천조번의 연산을 수행하는 슈퍼컴퓨터로도 소수를 들이대면 꼬리를 말고 도망갈 정도로 이 수학적 악마는 강력한 위력을 자랑한다.

잠깐 여기서 현재의 슈퍼컴퓨터의 위력을 쉽게 표현하자면 다음과 같다.

틀:안내바

소수(Prime Number)는 1과 자기 자신으로밖에 나누어 지지 않는 수를 말한다. 현재까지 알려진 바로는 어떠한 법칙도 없고 패턴도 나타나지 않는다. 다만 유클리드가 소수는 무한히 많다는 것을 증명한 바 있고 오일러는 소수의 역수의 합이 발산한다는 것을 증명하였다.

현재까지 알려진 가장 큰 소수는

파일:/api/File/Real/593f8c207326d5e22bfb6cf9

로 대체 무슨 단위로 불러야할지 감도 잡히지 않는 숫자이다. 미국의 센트럴 미주리 대학에서 발견했고 그 자리수는 2200만 자리. 이 숫자를 읽으려면 1초에 한자씩 읽는다고 해도 4개월동안 아무것도 하지 않고 숫자만 읽어야 겨우 끝낼 수 있다고 한다.

여담으로 가장 큰 소수의 발견과정을 잠시 살펴보면

파일:/api/File/Real/593f8c317326d5e22bfb6cfc

가 되겠다. 보면 알겠지만 1456년과 1978년의 갭이 상당히 큰 것을 알 수 있는데 물론 이는 컴퓨터의 발달 덕분이다.

소수와 암호[원본 편집]

소수가 암호에 쓰이는 원리는 아주 간단하다. 특정 소수 p와 q가 있다고 가정하자. 슈퍼컴퓨터로는 p와 q의 곱 즉, pq를 구하는 것은 아주 간단히 할 수 있다. 이것은 일반적인 컴퓨터로도 아주 간단히 할 수 있는 일이다. 하지만 처음부터 pq가 주어지고 이를 소인수분해하여 p와 q를 알아내는 것은 매우 힘들다고 한다.

여담으로 소수를 p로 표현하는 것은 소수가 'Prime Number'이기 때문이다. 물론 q는 p다음에 오는 알파벳이기 때문.

공개키기반구조에 쓰이는 원리는 다음과 같다.

  1. 여기에 소수 p와 가 있다.
  2. p - 1, q - 1과 각각 서로소1 인 정수 e를 알아둔다. e는 암호화(encryption)의 약자이다.
  3. (p - 1)(q - 1)으로 나눈 나머지가 1이 되도록 하는 d를 찾는다.
  4. N = pq를 계산한 후, N과 를 공개한다. 이들이 바로 공개키이다. 한편 d는 숨겨두는데 이 수가 바로 개인키이다.
  5. 이제 p, q, (p-1)(q-1)는 필요 없거니와 있어 봐야 오히려 보안에 문제를 일으킬 수 있으니 파기한다.

이제 공개키와 개인키가 나왔다. 물론 크래커가 p와 q를 찾는다면 암호화는 무용지물이 되버리지만 p와 q가 말도 안되게 큰 숫자가 되버리면 그 둘을 곱한 숫자로부터 p와 q를 찾아내기가 정말 힘들다. 물론 찾을 수는 있겠지만 엄청난 시간이 걸리니 그 시간에 다른 걸 하는게 낫다.(...)

얼마나 오래 걸리는지 대충 보면 1994년 RSA129로 알려진 129자리 숫자(426비트)를 소인수분해 하는 데에는 이 알고리즘을 이용하여 세계에 있는 1,600여 대의 워크스테이션을 병렬로 연결하여 8개월이 걸렸다. 이 알고리즘대로 250자리의 수(829비트)라면 800,000년이 걸릴 것이며, 1,000자리라면 1025억 년이 걸릴 것이다. 이것은 우주의 나이보다 더 많은 시간이다. 그냥 더 많은 것이 아니라 우주가 만들어져서 지금까지 성장한 과정을 몇 번을 반복할 수 있는 시간이다.

공인인증서의 폐지[원본 편집]

파일:/api/File/Real/5a66937c416b04485263fdf8

2018년 1월 22일 과학기술정보통신부는 청와대에서 열린 규제혁신 토론회에서 공인인증서 의무 제도를 폐지한다고 밝혔다.

명분은 획일화된 인증시장을 혁신하며 신기술을 도입하기 위해서라고 한다. 다만 공인인증서 자체가 완전히 없어지는 것은 아니다. 그동안 의무적으로 써왔던 공인인증서 관련 법령을 개정하여 공인인증서도 인증수단의 하나로 활용할 예정이라고 한다. 기존에 반드시 공인인증서를 써야했다면 이 법령이 발효되는 순간부터 써도 되고 안 써도 되는 형식으로 변하게 된다. 법령을 개정해야 하는만큼 올해 상반기부터 차근차근 바뀌게 된다.

현재 10개 법령은 관련 부서와 협의를 마쳐서 상반기 중에 국회에 제출하며 나머지 20개 법령과 전자상거래법은 하반기에 제출할 예정이라고 하니 이 절차가 완료되기 전까지는 없어지는 것이 아니다.

2018년 3월 30일 과학기술정보통신부는 공인인증서 제도를 폐지하는 내용을 포함한 '전자서명법 개정안'을 입법예고했다. 40일간의 의견수렴 기간을 거친 후 법이 개정되면 공포 6개월 후 시행된다. 이에 따르면 2018년 안에 공인인증서 제도가 폐지될 수도 있다.

밑은 관련 영상.