본문 바로가기

IT

[12월 4주차] 인터넷에서 '나'를 인증하는 방법

 

비대면, 익명의 세상인 인터넷에서 내가 나라는 걸 어떻게 인증할까. 알다시피 우리에겐 본인인증 확인 제도가 있다. 몇 년 전까지만 해도 Active X 깔고 공인인증서를 사용했었는데, 이제는 간편 인증이 가능해져서 문자 인증이나 계좌 인증, PIN 번호 입력을 통한 인증 등 훨씬 쉽고 간단하게 본인임을 증명할 수 있게 되었다. 언제부터 어떻게 이런 변화가 생겼는지 알아보고자, 이번 주 주제는 디지털 인증서와 그 원리, 암호기술로 정했다.

가볍게 암호기술을 훑고, 그 기술 중 하나를 사용한 디지털 인증서에 대해 이야기하고자 한다. 시작해 볼까요 -

Ⅰ. 암호기술

암호기술의 정의

중요한 정보를 읽기 어려운 값으로 변환하여 제3자가 볼 수 없도록 하는 기술. 암호기술의 안전성은 수학적인 원리에 기반하며 보안에 있어서 중요한 정보를 직접적으로 보호하는 원천기술이다. (한국인터넷진흥원)

암호기술의 기본 용어

평문: 암호기술을 통해 보호하고자 하는 원본 데이터

암호문: 평문에 암호기술을 적용한 것

암호화: 평문에 암호기술을 적용하여 암호문을 변환하는 과정

복호화: 암호문을 다시 평문으로 복원하는 과정

암호키: 평문을 암호화하기 위해 필요한 키, 키가 있어야 암호문 복호화 할 수 있음.(비밀 유지 필수)

암호기술의 기능

1) 기밀성 Confidentially: 오직 인가된 사람•프로세스•시스템만이 알 필요성(Need-to-Know)에 근거하여 시스템에 접근 가능

2) 무결성 Integrity: 정보의 내용이 무단으로 생성 또는 변경되거나 삭제되지 않도록 보호

3) 인증 Authentication: 사용자 또는 객체의 디지털 정체성을 식별함

4) 부인방지 Non-repudiation: 정보를 보낸 사람이 나중에 정보를 보냈다는 것을 부인하지 못하도록 함

암호기술의 종류

1) 양방향 암호 시스템

1-1) 대칭키 암호

암호화할 때 사용한 키로 복호화 하는 알고리즘. 송신자와 수신자는 암호 키가 노출되지 않도록 비밀로 관리해야 한다.

장점: 내부 구조가 간단한 치환과 전치의 조합으로 되어 있어 연산 속도가 빠르다

단점: 송•수신자 간에 동일한 키 공유해야 하므로 많은 사람들과 정보 교환 시 많은 키를 관리해야 하는 어려움

  • 블록 암호 (Block Cipher)
    평문을 고정된 크기의 블록 단위로 암•복호화 수행
    블록 단위로 암호화한다는 건, 암호화 방식을 정할 때 임의의 길이의 평문에 대해 고민할 필요 없이 고정된 길이의 각 블록을 암호화하는 방식만 정하면 된다는 것.  원하는 길이를 맞추기 위하여 패딩(padding) 기법을 이용. 또한 하나의 키로 여러 블록을 안전하게 처리하기 위해 운용 방식(mode of operation) 절차 이용. (ex. ECB/CBC/CTR 등)대표적인 블록 암호 알고리즘 SEED, HIGHT, ARIA, LEA (국산) / DES, AES (외산)
  • 스트림 암호 (Stream Cipher)
    평문과 동일한 길이의 키스트림(key stream) 수열 생성. 원타임패드(One Time Pad, OTP)의 실용적인 구현 목적으로 개발, 평문과의 XOR연산을 통하여 암•복호화를 수행

    * 동기식 스트림 암호: 키스트림 수열 생성 시 평문과 독립적으로 생성
    암호화 문자열을 전송할 시에 특정 비트가 다른 값으로 손상되었어도 복호화 시 다른 비트에 영향 미치지 않음. 그러나 전송 오류에서 비트가 사라지거나 잘못된 비트가 추가되는 경우 오류가 난 시점 이후의 복호화 실패하게 됨. 전송 시에 동기화 필요

    * 비동기식(자기동기) 스트림 암호: 평문이 키스트림 수열에 영향을 미치는 경우
    암호의 내부 상태는 이전 내부 상태에 의존하지 않음. 암호화 문자열을 전송할 시 일부 비트가 값이 바뀌거나, 비트가 사라지고 추가되는 오류 발생해도 일부분만이 복호화에 실패, 그 이후에는 다시 정상적인 복호화 값을 얻을 수 있는 자기 동기성 가짐.

    구현 여건이 제약되는 환경에서 구현이 용이하며, 무선 통신 등의 환경에 주로 사용된다. 대표적인 스트림 암호 알고리즘 RC4, A5/1, A5/2 등

블록 암호와 스트림 암호를 비교하면 다음과 같다.

 

비교 근거 블록 암호 스트림 암호
기본 한 번에 블록을 가져와서 일반 텍스트 변환 한 번에 1 바이트의 일반 텍스트를 가져와서 택스트 변환
복잡성 심플 비교적 복잡
사용된 비트 수 64비트 이상 8비트
혼란과 확산 혼란과 확산 모두 사용 혼란에만 의지
사용된 알고리즘 모드 ECB(전자 코드북)
CBC(Cipher Block Chaining)
CFB(암호 피드백)
OFB(출력 피드백)
가역성 암호화된 텍스트를 뒤집는 것이 어려움 XOR을 사용하여 쉽게 일반 텍스트로 되돌릴 수 있음 (비트 쉽게 반전 가능)
이행 파이 스텔 사이퍼 버넌 사이퍼

 

* 혼돈: 암호문이 원본 평문에 대한 단서를 제공하지 못하도록 보장하는 방법

* 확산: 행과 열을 통해 일반 텍스트를 분산시켜 일반 텍스트의 중복성을 향상시키는 데 사용되는 전략

 

1-2) 비대칭키 암호

비밀키 암호화 기법에서의 보안성 및 키 개수의 기하급수적인 증가를 개선하기 위해 고안된 방법.

  • 공개키 암호(Public-key Encryption)
    비대칭키 암호는 공개키 암호라고도 하며, 대칭키 암호와 달리 암•복호화에 서로 다른 키를 사용하는 알고리즘. 송신자는 수신자의 공개키를 이용하여 암호화, 수신자는 자신의 공개키로 암호화된 암호문을 자신의 개인키로 복호화 가능
    공개키 암호는 수학적인 난제 기반으로 설계되어 있고 암복호화에 복잡한 수학 연산을 사용하기 때문에 대칭키 암호에 비해 효율성 떨어짐.

    통상적인 사용을 위해 둘 중 하나의 키는 반드시 공개해야 함.

    키 배송 문제 해결

    대칭키 암호화 방식에 비해 느림
    여러 송신자가 하나의 공개키로 암호화 수행(사용자 수에 상관 없이 키 관리 가능)
    중간자 공격에 취약하다는 특징 있음.

    대표적 알고리즘 RSA, EIGamal, ECC 
  개인키(=비밀키) 공개키
설명 사용자 본인만 알고 있는 키 공중에 공개해도 상관 없는 키
사용 복호화 암호화

 

  • 전자서명
    인터넷 상에서 본인임을 증명하기 위해 서명하는 수단. 공개키 암호를 거꾸로 활용하는 방식. 송•수신자의 역할이 반대로 되어, 개인키를 소유한 사람만이 전자 서명 알고리즘을 통해 평문에 대한 서명 값을 생성할 수 있음. 생성된 서명 값에 대하여 공개키를 이용하면 평문을 검증할 수 있기 때문에 누구나 그 서명을 검증할 수 있게 됨.
    대표적 알고리즘 DSA, RSA Signature, ECDSA

2) 단방향 암호 시스템
평문에서 암호문으로 만드는 것은 가능하지만 암호문을 평문으로 복호화하는 것은 불가능한 암호화 기법. 일반적으로 password를 저장하는 용도로 사용.

    • 해시함수
      임의의 길이의 메시지를 입력으로 받아 고정된 길이의 해시 값을 출력하는 함수
      해시 함수에는 암호 키가 사용되지 않기 때문에, 같은 입력에 대해서 항상 같은 해시 값을 얻을 수 있음. 이러한 성질로 입력 메시지에 대한 변경할 수 없는 증거 값을 만들어냄으로써, 주로 무결성을 제공하는 목적으로 사용됨

      암호화와는 다른 개념. 암호는 정보를 숨기기 위함이라면, 해시는 정보의 위변조(무결성)을 확인하기 위함임. 암호화는 가능해도 복호화는 안 되는 것이 큰 특징 (복호화하지 않아도 되는 정보가 존재. 앞서 말한 것처럼 패스워드~)

      [용어]

      - 해시(Hash): 긴 메시지를 뒤섞어(정리하여) 고정 길이의 값으로 바꿈
      - 해시 함수 / 해시 알고리즘: 임의 길이의 메시지를 일정 고정 길이의 해시 값으로 변환시켜주는 단방향성 함수/알고리즘
      - 해시 값(Hash Value): 단방향성 해시 함수의 출력 결과 값

      [응용]

      - 주로 메시지(중요 정보)의 무결성 확인
      - 디지털 서명의 생성 (해시 값에 대해서만 디지털 서명)
      - 메시지 인증코드 생성

      - 일회용 패스워드(OTP) 생성
      - 세션 키 도출

      - 소프트웨어 배포 시 변경 검출

 

Ⅱ. 디지털인증서

디지털인증서의 정의

공개키 및 그 키를 소유한 사용자에 대해 신뢰할 만한 제3자(인증기관)가 서명 발행한 것

- 이름(ID 등), 유효기간, 발행자 이름 등의 정보에 대해 인증기관(CA)*의 서명용 개인키로 전자서명을 한 것

- 전자서명 검증키와 이를 소유하는 자연인 또는 법인과의 귀속관계 등을 인증기관(CA)이 전자서명하여 확인, 증명한 전자적 서면 정보

- 공개키를 공인하는 전자적 증명서(공개키 인증서)

* CA: 디지털 인증서를 발급해 주는 신뢰할 수 있는 기관. 일반적으로 금융 기관, 공공기관, 혹은 소프트웨어 회사 등이 CA역할을 하고 있음. 새로운 디지털 인증서 발급뿐만 아니라, 기존 인증서의 관리 및 특정한 이유로 만료/취소된 인증서에 대한 회수도 담당.

디지털인증서의 사용 용도

- 전자메일용 인증서(PGP, S/MIME): 전자메일 보안

- 전자지불용 인증서: 법인의 법적 증명 등

- 소프트웨어 배포용 인증서: 믿을만한 소프트웨어 여부를 인증

- IPSec용 인증서: IP 패킷 보안

- SSL 인증서: 안전한 소켓 계층 보안(HTTPS 등)

- 서버(웹 서버 등) 인증: 믿을만한 서버인 지 인증

- 우리나라 공인인증서: 개인 인증(인터넷 신분증)

인증서 형식 관련 표준

공개 키 기반 구조 비대칭키 암호 X.509

1988년 7월 3일 ITU-T에서 발표한 표준안. X.500 표준안의 일환으로 시작되었고 1993년 인증기관 고유 식별자와 주체고유 식별자가 추가된 v2가 발표되었으며, 1996년에 확장 기능을 이용해 데이터를 추가할 수 있는 v3가 발표되어 사용 중이다. 현재 v3는 대한민국 공인인증서 발급 기반으로 사용하고 있다.

X.509 인증서 형식

인증서 구성 요소

- 서명 전 인증서(To be Certificated): 디지털 서명의 대상이 되는 정보 : 버전(Version), 일련번호(Serial Number), 알고리즘 식별자(Algorithm Identifier), 발행자 정보(Issuer), 유효기간(개시, 만료) 등

- 사용된 디지털 서명 알고리즘(Signature Algorithm): 디지털 서명 함수

- 디지털 서명(Digital Signature) 본체: 인증서에 대해 수행한 디지털 서명 그 자체

 

 

 

인증서 구성요소

 

디지털인증서의 생성 및 사용

A(철수)와 B(영희)가 서로의 신분을 확인하고 보안적으로 안전한 통신을 해야 하는 상황

① A는 공개키와 비밀키(개인키) 한 쌍 생성하여 소유

② A는 다양한 방법으로 본인이 A임을 CA에게 증명

------------ CA의 확인과 인증서 발급 과정 진행 ------------

③ A는 자신의 공개키가 본인 것이 맞음을 인증하는 인증서를 CA로부터 발급받음

④ A는 발급받은 인증서를 B에 전달. 인증서에는 B의 공개키 포함

⑤ B는 자신이 신뢰하는 CA(②번 CA와 동일한 기관)가 발급한 인증서가 맞는지 확인

⑥ B는 인증서에 포함된 A의 공개키로 데이터를 암호화하여 A에게 전달

⑦ A는 ①번에서 보유한 비밀키(개인키)로 데이터 복호화

 

 

디지털인증 생성 및 사용 과정 (출처: 테크유람)

 

디지털인증서의 종류

 

유효기간 인증서명 저장 공간 / 운영 및 발급 기관
1년 공동인증서 저장공간: 일반 저장 공간 등
운영: 금융결제원(yessign),
한국전자인증(CrossCert),
한국정보인증(KICA), 코스콤(SignKorea) 등

발급: 시중 은행(카카오뱅크 제외), 저축은행, 증권사 등
2년 카카오톡 지갑 저장 공간: 카카오톡 앱 (TEE/SE)
운영/발급: 카카오
카카오페이 인증 저장 공간: 카카오톡 앱 (TEE/SE)
운영/발급: 카카오페이
페이코 인증서 저장 공간: 페이코 앱 (TEE/SE)
운영/발급: 페이코
3년 금융인증서비스 저장 공간: 금융결제원 클라우드 (HSM)
운영: 금융결제원
발급: 시중 은행 (일부 제외)
 
각 은행앱에서 발급하면 금융결제원의 클라우드에 저장되며, 발급, 재발급, 타행 등록 과정은 공동인증서와 거의 동일. 특이사항으로 은행마다 패턴/생체인증을 다르게 적용 가능
PASS 인증서 저장 공간: PASS 앱 (TEE/SE)
운영: ATON
발급: SKT, KT, LG U+
뱅크사인 저장 공간: 뱅크사인 앱 (TEE/SE)
운영: 금융결제원
발급: 시중 은행 (한국씨티은행, 카카오뱅크 제외)
네이버 인증 저장 공간: 네이버 앱 (TEE/SE), 웨일(PC)
운영: 한컴위드
발급: 네이버
삼성 패스 전자서명 인증서 저장 공간: 삼성 패스 앱 (Knox)
운영: 한국정보인증
발급: 삼성 패스
무기한 토스인증서 저장 공간: 토스 앱 (TEE/SE)
발급: 토스
토스에 가입하면 기본적으로 발급된다.
디지털원패스 저장 공간: 디지털원패스 앱 (TEE/SE)
운영/발급: 행정안전부
KB모바일인증서 저장 공간: KB스타뱅킹 앱 (TEE/SE)
운영/발급: KB국민은행

 

1)  공동인증서(구 공인인증서)
인증서란 서명이나 인감도장과 같은 역할을 하는 전자서명이 특정인에게 유일하게 속한다는 사실을 확인하고 이를 증명하는 전자적 정보를 말하며, 공인인증기관이 발급하는 인증서를 공인인증서라고 한다. . 전자상거래 시 본인만 해당 인증서를 갖고 있고, 본인만 인증서 비밀번호를 알기 때문에 본인임을 인증할 수 있는 전자서명으로 이용 가능하다.

 

전자서명법 개정 (공인인증서 제도 폐지 및 명칭 변경 - 2020.12.10 이후)

 

구 전자서명법
(2020.6.9 법률 제 17354호로 개정되기 전)
현행 전자서명법
제3조(전사서명의 효력 등) ①다른 법령에서 문서 또는 서면에 서명, 서명날인 또는 기명날인을 요하는 경우 전자문서에 공인전자서명이 있는 때에는 이를 충족한 것으로 본다.
②공인전자서명이 있는 경우에는 해당 전자서명이 서명자의 서명, 서명날인 또는 기명날인이고, 해당 전자문서가 전자서명된 후 그 내용이 변경되지 아니하였다고 추정한다.
③공인전자서명외의 전자서명은 당사자간의 약정에 따른 서명, 서명날인 또는 기명날인으로서의 효력을 가진다.
제3조(전자서명의 효력) ① 전자서명은 전자적 형태라는 이유만으로 서명, 서명날인 또는 기명날인으로서의 효력이 부인되지 아니한다.
② 법령의 규정 또는 당사자 간의 약정에 따라 서명, 서명날인 또는 기명날인의 방식으로 전자서명을 선택한 경우 그 전자서명은 서명, 서명날인 또는 기명날인으로서의 효력을 가진다.
제18조의2(공인인증서를 이용한 본인확인) 다른 법률에서 공인인증서를 이용하여 본인임을 확인하는 것을 제한 또는 배제하고 있지 아니한 경우에는 이 법의 규정에 따라 공인인증기관이 발급한 공인인증서에 의하여 본인임을 확인할 수 있다. 제6조(다양한 전자서명수단의 이용 활성화) ① 국가는 생체인증, 블록체인 등 다양한 전자서명수단의 이용 활성화를 위하여 노력하여야 한다.

출처: 나무위키 (공동인증서)

 

공동인증서의 장단점

 

장점 단점
오랫동안 검증된 보안 성능 저장 방식과 배포 방식으로 인한 보안상의 문제
국내 인터넷 환경의 보안공학적 취약화 및 보안프로그램 설치 강요
온라인 금융 서비스 및 온라인 관공서 서비스 이용의 편의성 사용자에게 보안 책임 전가
소액결제의 불편함
해외 거주자의 본인 인증 수단 ActiveX기반 서비스로 인한 운영체제/브라우저의 호환성 문제
짧은 유효기간과 타행 등록을 일일이 해야 하는 불편함

 

2) 금융인증서

금융권에서 이용 가능한 인증서로 보안프로그램 설치가 불필요하고 PIN번호로 인증 가능하다.

공동인증서와 비교하면 다음과 같다.

 

비교 금융인증서 공동인증서
출시 2020년 12월 10일 새로 나온 인증서 기존 공인인증서가 이름만 바뀜
발급기관 금융결제원 금융결제원, 코스콤 등 6개 지정기관
인증서 보관 금융결제원 클라우드 서버에 저장 개인PC, 스마트폰, USB 등 로컬 장치
유효기간 3년, 자동 갱신 1년, 자동 폐기
보안프로그램 설치 여부 불필요 필요
비밀번호 숫자 6자리 특수문자 포함 10자리
발급수수료 무료 무료/유료
PC, 스마트폰 이동 시 불필요 인증서 이동, 복사 절차 필요
다른 은행 이용 시 인증서 타행 등록 필요 인증서 타행 등록 필요
사용처 현재 은행권에서만 제한적 사용 가능 은행, 신용카드, 증권사, 정부기관 민원 서비스 등 대부분의 기관 사용

 

3) 민간인증서

공인인증서의 독점체제가 사라지고 개인 컴퓨터나 휴대전화 등 비대면 방식으로 발급 가능하고 지문, 안면인식 등 생체정보 또는 6자리 간편 비밀번호, 패턴 사용 가능한 민간인증서

  • PASS 인증서
    이동통신 3사(SKT, KT, LG U+) 기반으로 발급 가능. 본인인증 필요한 사이트에 가입할 때 사용. 핸드폰 번호 이용하여 인증할 수 있고, PASS앱을 통해 PIN 번호나 생체인증 등록하여 상용 가능
  • 카카오페이 인증서
    우리나라 대표 모바일 메신저 카카오톡 기반으로 한 카카오페이 인증서. 카톡 이용하면 별도의 앱설치 필요 없이 바로 인증서 발급 가능. 이름, 주민번호, 휴대폰 번호 확인, 송금을 통한 계좌확인까지 4단계 과정을 통해 발급 받을 수 있음
  • 네이버 인증서
    네이버 또는 네이버 앱을 통해 인증서 발급 가능. 네이버 계정 그대로 활용하기에 카카오페이와 달리 이름과 주민번호 입력의 과정을 거치지 않으며, 본인 확인 수단으로 휴대폰 본인인증이 이루어짐. 계좌확인 절차 없이 발급 가능

 

범위가 넓어 정리가 어렵다고 느끼긴 했지만(워드 A4 기준 9페이지..💔) 개념적인 부분들도 암호기술 따로, 인증 관련 따로 이렇게 알고 있었는데 이번 기회로 함께 묶어서 공부하니 더 잘 이해가 됐던 것 같다 :)

확실히 민간인증서가 나오면서 독점체제가 사라지고 사용자들에게 편의성을 제공해 주고 있다. 물론 아직 나는 공동인증서가 익숙하지만,, 공공기관 같은 곳들도(ex. 백신 예약) 민간인증서를 활용하는 것을 보니, 아마 활용 범위가 점차 더 넓어질 것으로 예상된다 !

 

 


참고 자료

 

[정보통신기술용어해설]

Certificate, Digital Certificate 인증서, 디지털 인증서, 공개키 인증서

 

인증서

  Certificate, Digital Certificate   인증서, 디지털 인증서, 공개키 인증서(2021-10-10)

www.ktword.co.kr

yu-jin-song, [Network] 암호기술, 암호화 알고리즘

 

[Network] 암호기술, 암호화 알고리즘

📖 암호기술 1.1 정의 > 중요한 정보를 읽기 어려운 값으로 변환하여 제 3자가 볼 수 없도록 하는 기술 1.2 용어 | 용어 | 설명 | | :--: | :-- | | 평문(plaintext) | 암호기술을 통해 보호하고자 하는 원본

velog.io

테크유람, 디지털 인증서의 원리와 생성 과정

 

디지털 인증서의 원리와 생성 과정

디지털 인증서(Digital Certificate)는 언제 필요한 것인가 | 보안이 필요한 인터넷상의 네트워크 통신에서 특히 상대방에게 데이터를 인터넷을 통해 전달할 때엔 평문을 암호문으로 바꾸는 암호화(en

brunch.co.kr

나무위키 공동인증서, 전자 서명, 전자 서명/목록