정보처리기사/정보 시스템 구축 관리
암호 기술 4
RangA
2023. 6. 2. 23:59
03. 전자서명
01. 전자서명과 디지털 서명
1) 전자서명(Electronic Signature)의 개념
- 전자서명은 서명자를 확인하고 서명자가 전자문서에 서명하였음을 나타내는 데 이용하기 위하여 전자문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보를 말함
- 펜 대신에 컴퓨터를 통해 전자적 형태의 자료로 서명자의 신원을 확인하는 것
- 종이 계약서에 인감도장을 찍거나 서명하는 것과 같은 컴퓨터 파일이나 전자문서 상의 서명
2) 전자서명의 기능
- 서명자 인증 기능
- 수신된 메시지에 서명한 사용자가 누구인지 식별할 수 있는 기능이 있어야 함
- 서명 당사자를 확인할 수 없다면, 다른 사용자가 서명 당사자로 위장할 수 있으므로 서명자의 신원을 확인하는 기능은 반드시 필요함
- 위조 불가 기능
- 서명자 이외의 타인 서명을 위조하기 어려워야 함
- 메시지에 대한 서명자만이 서명문을 생성할 수 있는 기능이 있어야 함
- 재사용 불가 기능
- 동일한 서명자라도 메시지가 다르면 서명문의 형태도 다르게 하는 기능이 있어야 함
- 그렇지 않다면 다른 사용자가 서명문을 복사하여 정상적으로 서명한 것처럼 할 수 있음
- 메시지 변경 불가 기능
- 서명된 문서의 메시지 일부가 변경되지 않도록 하는 기능이 있어야 함
- 변경된 사실을 서명자가 인지할 수 없다면 중요한 사실이 변경되어 막대한 피해를 줄 수 있음
- 부인 불가 기능
- 서명자는 서명 사실을 부인할 수 없어야 함
- 메시지에 서명한 당사자가 불리할 경우에 서명 사실을 부인할 수 없도록 하는 기능이 있어야 함
- 분쟁 해결 기능
- 송수신자 전자문서의 분쟁이 발생하였을 경우에 법적으로 어느 쪽에 위법이 있었는지 판단할 수 있도록 하는 기능이 있어야 함
3) 디지털 서명(Digital Signature)의 개념
- 전자 문서나 메시지를 보낸 사람의 신원이 진짜임을 증명하기 위해 디지털 형태로 생성하여 첨부하는 정보를 지칭함
- 컴퓨터 통신망과 송수신 되는 전자문서에 암호 기법 등을 이용하여 인감도장과 같은 기능을 할 수 있는 디지털로 되어 있는 암호문을 말함
- 디지털 서명은 비대칭적 암호 체계를 이용한 전자서명의 한 종류
- 디지털 서명은 공개키 암호 방식을 이용한 전자서명
4) 디지털 서명 방식
- 디지털 서명 방식에는 중재자의 존재 여부에 따라 2가지로 구분된
- 직접(Direct) 방식 : 송신 측과 수신 측이 직접 서명하고 확인함
- 중재(Arbitrated) 방식 : 신뢰할 수 있는 중재자를 통해 서로를 확인함
5) 디지털 서명 알고리즘
- 디지털 서명에서 서명자는 비밀키로 서명을 생성하고, 수신자는 공개키로 이를 확인함
- 서명자는 비밀키로 서명한 후 메시지와 함께 전송하면 수신자는 서명자의 공개키로 서명자의 서명을 확인한 후 메시지를 수신함
- 디지털 서명만으로는 기밀성을 보장하지 않으며, 기밀성을 보장하기 위해서는 메시지를 암호화해야 함
- 종류에는 RSA 디지털 서명, EIGamal 디지털 서명, DSS 디지털 서명, 타원곡선 디지털 서명 등의 알고리즘이 있음
02. 디지털 서명 알고리즘
1) RSA 디지털 서명
- 공개키 암호 알고리즘을 이용한 디지털 서명 기법
- 공개키 기반 서명 알고리즘 중 가장 먼저 실용화됨
- 적절한 시간 내에 인수가 큰 정수의 소인수분해 문제를 이용한 공개키 암호화 기법에 널리 사용되는 암호 알고리즘 기법
- 가장 보편화 되어 있는 알고리즘
2) EIGamel 디지털 서명
- 유한체 상의 이산대수의 어려움으로부터 안전성을 얻은 공개키 알고리즘
- 512비트를 사용하며, 서명 값이 총1024비트
3) DSS(Digital Signature Standard, 디지털 서명의 표준)
- EIGamal 서명을 개량한 방식
- 1991년에 처음 제안되어 미국의 전자서명 포준으로 1994년 1월에 채택됨
- DSS는 EIGamal의 서명과 검증에 소요되는 계산량을 대폭적으로 줄인 방식
- 디지털 서명 값이 160비트 정도이면 전사서명의 안전성이 보장됨
- DSS 서명이 EIGamal 서명보다 길이가 짧음
- 동일한 소수 p를 사용할 때 DDS가 RSA 알고리즘보다 빠름
4) DSA(Digital Signature Algorithm)
- 미국 NIST에서 제안된 표준 디지털 서명 알고리즘
- 서명 생성 및 검증 과정을 위해서는 모듈러 연산의 구현이 필요함
- 유한체 상의 이산대수 문제의 어려움에 그 안전성의 기반을 둠
- EIGamal 형태의 메시지 부가형 서명 알고리즘
- 해시 코드는 서명을 형성하기 위해 송신자의 개인키를 사용하여 암호화함
- 수신자는 메시지를 받고 해시 코드를 생성함
- 수신자는 송신자의 공개키를 사용하여 서명을 복호화함
- 계산된 해시 코드가 복호화된 서명과 일치한다면 서명은 유효한 것으로 인정함
- 디지털 서명은 기밀성을 지키기 위한 것은 아니며 기밀성이 필요하다면 메시지를 별도로 암호화하여 보내야 함
5) Rabin 공개키 암호
- Rabin 공개키 암호는 소인수분해, 이차잉여의 어려운 문제를 이용한 암호
- Rabin 암호 알고리즘은 암호화 과정에서 제곱의 연산만 하면 되기 때문에 RSA 암호보다 계산이 훨씬 빠름
- 복호화할 때는 이차잉여를 계산하여 해를 찾으면 그것이 평문이 됨
6) Diffie-Hellman 공개키 키 공유 알고리즘
- 대칭키 암호에서 비밀키의 분배 문제가 송신자와 수신자 사이에 많은 문제로 남아 있음
- 대칭키 암호에서 비밀키 분배 전달 문제는 공개키 암호 알고리즘을 사용함으로써 어느 정도 해결되지만, 개인의 공개키를 키 관리센터나 서버 등에서 관리하지 않으면 안 됨
- 이런 중간 관리를 거치지 않고, 직접 서로의 비밀키를 교환할 수 있는 대표적인 방법 중 하나
- 1976년에 발표된 이산 대수 문제를 이용한 알고리즘
7) 소수 판정 알고리즘
- 공개키 알고리즘은 두 개의 소수를 결정하여 암호화함
- 100% 소수로 판정하여 알고리즘에 적용할 경우는 결정적 알고리즘이라고 함
- 100% 소수로 판정하지 못하더라도 적당한 확률 이상으로 소수임을 판정하여 알고리즘에 적용할 경우는 확률적 알고리즘이라고 함
- 결정적 알고리즘을 적용하는 RSA 공개키 알고리즘은 같은 메시지에 대해서는 항상 동일한 암호문이 만들어짐
- 확률적 알고리즘을 적용하는 Yes-based Monte Carlo 공개키 알고리즘은 같은 메시지라도 암호화할 때마다 서로 다른 암호문을 만들어 사용함
8) McEliece 공개키 암호 알고리즘
- 소인수분해, 이산대수, 타원곡선과 같이 실용적인 알고리즘이 아닌 오류 정정 부호(Error-Correcting Code) 능력을 갖춘 코드를 이용하는 방법
- 공개키의 크기가 메가바이트 정도로 매우 크기 때문에 실용적인 가지가 적음
9) 배낭(Knapsack) 공개키 알고리즘
- 많은 큰 수들의 집합에서 선택된 수들의 합을 구하지는 쉽지만, 주어진 합으로부터 선택된 수들의 집합을 찾기 어렵다는 점을 이용한 방법
- 빠른 암호화, 복호화 속도는 장점이지만 쉽게 해독된다는 단점이 있어 널리 사용되지 않음
03. 무선 PKI
1) 무선 PKI(무선 공개키 기반 구조, W-PKI, Wireless PKI
- 무선 PKI
- 유선 인터넷처럼 무선 인터넷도 안전한 인터넷 정보 서비스를 제공 받기 위해서는 기밀성, 무결성, 인증, 부인봉쇄와 같은 서비스를 제공하기 위한 무선 PKI가 필요함
- 무선 PKI는 유선 PKI의 기존 구성 요소를 그대로 수용하면서, 무선 인터넷에 적합하도록 기능을 최소한으로 변화시킨 것
- 스마트폰을 통해 인터넷 뱅킹이나 주식 거래를 할 때 필요한 기술
- 무선 PKI의 고려사항
- 모바일 기기의 CPU가 처리해야 할 데이터를 최소화하여 CPU의 처리 능률을 향상시킬 수 있도록 구성해야 함
- 모바일 기기의 제한된 입력 및 출력 장치를 고려해야 함
- 모바일 기기의 네트워크 자원의 부족으로 인한 특성을 고려해야 함
- 모바일 기기의 CPU에서 처리 가능한 서명, 검증, 암호화 알고리즘을 채택하여 무선 PKI 서비스의 효율성을 최대로 높여야 함
- 모바일 기기에서 인증서, CRL(인증서 폐지 목록) 등의 규격을 정해야 하며, 사용하는 알고리즘의 최적화를 통하여 모듈 사이즈를 최소화하고 제한된 메모리를 갖는 모바일 기기 환경에 맞춰야 함
- 모바일 기기 환경에 맞도록 프로토콜을 최적화 하여 인증서의 발급, 처리, 검증 등에 필요한 처리 시간을 줄여야 함
- 무선 인터넷 환경에 맞는 인증서 검증 방식을 채택하여 처리율이 떨어지는 모바일 기기에서 인증서를 제대로 검증할 수 있도록 해야 함
- 모바일 기기의 메모리 제약을 고려하여 인증 기관 간의 상호 연동이 가능한 인증서 요청, 관리 프로토콜을 적용해야 함
- 현재의 모바일 기기가 이후 모듈 변경이 어려운 점을 고려하여 확장성과 유선 및 국제 호환성을 고려해야 함
- 모바일 기기의 제한된 전원 공급 장치의 특성을 고려해야 함
2) M-VPN(모바일 가상 LAN, Mobile VPN)
- M-VPN은 기존의 유선 VPN과 같이 VPN 국제 표준인 IPSec을 수용하여 유선 상의 VPN과 동일하게 동작하는 기술
- M-VPN은 네트워크 계층의 보안 시스템
- M-VPN은 기존의 보안 정책을 적용할 수 있음
- M-VPN은 특정 사용자를 위한 소규모의 응용 서비스
- M-VPN은 캡슐화 기술을 적용하여 비공인 주소와 비공인 주소를 연결하는 유일한 방법을 제공하는 시스템
- M-VPN 모듈이 탑재된 모바일 기기는 이동통신 사업자의 통신망과 유선망을 통해 기존에 VPN에 연결된 서버와 안전한 통신을 할 수 있음
3) WEP(Wired Equivalent Privacy)
- WEP
- 무선 통신 초기에 가장 널리 사용되는 Wi-Fi 보안 알고리즘으로 대부분의 접근 설정에서 암호화 방식 선택 시 가장 먼저 표시되었던 암호화 기술(IEEE 802.11표준 정의)
- 무선 통신은 물리적 장비를 접촉해야만 하는 유선과 다르게 외부 침입에 약하다는 점을 보완하기 위해 개발된 기술
- WEP은 무선 LAN에 연결된 기기와 AP가 서로 주고받는 패킷을 64비트 혹은 128비트로 암호화하며, CRC-32(순환 잉여 오류 검출 방식)로 체크섬에 적용함
- WEP 방식은 공격에 취약하며 보안성이 약함
- WEP 방식은 RC4 암호화 방식을 이용함
- WEP 키의 암호화 통신 설정 과정
- 무선 LAN에 접속한 기기에서 AP에 인증 요청을 함
- AP는 임의로 벡터 테이블을 무선 LAN에 접속한 기기에 전달함
- 무선 LAN에 접속한 기기는 전달 받은 벡터 테이블을 WEP 키(RC4 사용)로 암호화해서 AP에 전달함
- AP는 전달 받은 암호문을 WEP 키로 복호화하여 본인이 최초 전송한 벡터 테이블과 일치하면 접속을 허락함
4) WPA(Wi-Fi Protected Access)
- WPA
- WPA는 WEP 표준의 문제점을 보완하여 개발되었으며, 2003년 Wi-Fi 보안 표준으로 변경됨
- WPA 방식은 48비트 길이의 초기 벡터를 사용함
- WPA에서 사용되는 키는 WEP 방식의 64비트, 128비트보다 큰 256비트로 암호화함
- WPA는 무선 LAN에 연결된 기기와 AP가 서로 주고받은 데이터가 수집되었거나 수정되었는지 체크하는 무결성 확인 기능과 무결성 프로토콜(TKIP) 기능이 추가됨
- WPA-PSK(Wi-Fi Protected Access Pre Shared Key)
- 개인용 WPA라고도 하며, TKIP 또는 AES 암호화 방법을 사용하는 보안 기술
- AP와 통신해야 할 클라이언트에 암호화 키를 기본으로 등록해 두고 있음
- 암호화 키를 이용해 128비트인 통신용 암호화 키를 새로 생성하고, 이 암호화 키를 10.000개의 패킷마다 바꿈
- 기존보다 훨씬 더 강화된 암호화 세션을 제공함
- WPA2(Wi-Fi Protected Access 2)
- WPA2의 암호화 방법은 AES를 사용함
- WPA2 방식은 AES 암호화 알고리즘을 사용하여 좀 더 강력한 보안을 제공함
- WPA2 방식의 MIC는 WEP, WPA와 다르게 강력하게 데이터를 보존하며, 암호 정보를 해독하기 위한 작업을 미리 차단함
- EAP(Extensible Authentication Protocol)
- WPA, WPA-PSK, WPA2가 기존의 WEP의 암호화 방식을 중점적으로 보완하였다면 WPA-Enterprise 암호화 방식은 인증까지 추가한 방식
- WPA-Enterprise 암호화 방식은 WPA-EAP라고도 하며 암호화 및 인증을 강화하기 위해 다양한 알고리즘을 수용할 수 있도록 EAP 인증 프로토콜을 채택함
- 사용자가 연결을 요청하면 AP에서 연결해주는 것이 아니라 RADIUS라는 인증 서버에서 연결을 허가하는 방식