- 개요
- SSL은 웹 브라우저 개발로 이미 잘 알려져 있는 Netscape사에서 처음으로 제안 되었으며, 자사의 웹 애플리케이션에 처음으로 구현 함으로서 현재 웹 보안의 대명사로 알려져 있는 보안 프로토콜
- 사용하는 응용 프로그램에 대해 독립적이며, TCP/IP 계층과 애플리케이션 계층(Http, Telnet, FTP 등) 사이에 위치하여 데이터를 송.수신하는 두 컴퓨터 사이, 즉 종단간 보안 서비스를 제공함
- SSL은 웹 브라우저 개발로 이미 잘 알려져 있는 Netscape사에서 처음으로 제안 되었으며, 자사의 웹 애플리케이션에 처음으로 구현 함으로서 현재 웹 보안의 대명사로 알려져 있는 보안 프로토콜
- 보안 서비스
- Client/Server
서버에 대한 인증은 필수적으로 수행하고, 클라이언트에 대한 인증은 서버의 선택에 따라 수행
- 기밀성
DES(Data Encryption Standard), RC4(Rivest Cipher 4) 등의 관용 암호 방식이 사용되며, 사용되는 비밀키는 핸드세이크(Handshake) 프로토콜을 통해 생성됨
- DES[Data Encryption Standard]는 블록 암호의 일종으로, 미국 NBS (National Bureau of Standards, 현재 NIST)에서 국가 표준으로 정한 암호이다. DES는 대칭키 암호이며, 56비트의 키를 사용한다.
- RC4는 로널드 라이베스트가 만든 스트림 암호로, 전송 계층 보안(TLS)이나 WEP 등의 여러 프로토콜에 사용되어 왔다. 하지만 이후 여러 연구를 통해 취약한 것으로 밝혀져 있으며, RC4를 사용한 WEP의 경우 해당 프로토콜의 사용을 권장하지 않는다.
많은 스트림 암호가 비트 단위의 선형 되먹임 시프트 레지스터를 기반으로 하는 것과 달리, RC4는 해당 구조를 갖지 않으며 옥텟 단위를 기반으로 한다. 따라서 비트 단위의 암호보다 소프트웨어적인 실행 속도가 빠르다.
- DES[Data Encryption Standard]는 블록 암호의 일종으로, 미국 NBS (National Bureau of Standards, 현재 NIST)에서 국가 표준으로 정한 암호이다. DES는 대칭키 암호이며, 56비트의 키를 사용한다.
- 상호 인증
RSA(Rivest-Shamir-Adelman), DSA(Digital Signature Algorithm)와 같은 전자 서명 알고리즘과 X.509 공개키 인증서를 사용
- RSA는 공개키 암호시스템의 하나로, 암호화뿐만 아니라 전자서명이 가능한 최초의 알고리즘으로 알려져 있다. RSA가 갖는 전자서명 기능은 인증을 요구하는 전자 상거래 등에 RSA의 광범위한 활용을 가능하게 하였다.
1977년 로널드 라이베스트(Ron Rivest), 아디 샤미르(Adi Shamir), 레오널드 애들먼(Leonard Adleman)의 연구에 의해 체계화되었으며, RSA라는 이름은 이들 3명의 이름 앞 글자를 딴 것이다. 이 세 발명자는 이 공로로 2002년 튜링상을 수상했다.
RSA 암호체계의 안정성은 큰 숫자를 소인수 분해하는 것이 어렵다는 것에 기반을 두고 있다. 그러므로 큰 수의 소인수분해를 획기적으로 빠르게 할 수 있는 알고리즘이 발견된다면 이 암호 체계는 가치가 떨어질 것이다. 1993년 피터 쇼어는 쇼어 알고리즘을 발표하여, 양자 컴퓨터를 이용하여 임의의 정수를 다항 시간 안에 소인수 분해하는 방법을 발표하였다. 따라서 양자 컴퓨터가 본격적으로 실용화되면 RSA 알고리즘은 무용지물이 될 것이다. 그러나 양자 컴퓨터가 이 정도 수준으로 실용화되려면 아직 여러 해가 더 필요할 것으로 보인다.
RSA 암호화 알고리즘은 1983년에 발명자들이 소속되어 있던 매사추세츠 공과대학교(MIT)에 의해 미국에 특허로 등록되었고, 2000년 9월 21일에 그 특허가 만료되었다
- DSA[Digital Signature Algorithm] : NIST가 미국 전자 서명 표준에서 사용하기 위해 발표한 정부용 전자 서명 알고리즘으로, 그 안전성은 이산대수 문제의 어려움에 기반하고 있다.
- 메시지 무결성
MAC(Message Authentication Code) 기법을 이용하여 데이터 변조 여부의 확인 가능
- MAC : 컴퓨터 보안에서 메시지의 내용, 작성자, 발신처 등 속성의 정당성을 검증하기 위해 메시지와 함께 전송되는 어떤 값 또는 부분, 암호 기법에서 하나의 인증 알고리즘으로 데이터를 처리하여 생성된 수나 값, 또는 디지털 서명 부호를 의미
- MAC : 컴퓨터 보안에서 메시지의 내용, 작성자, 발신처 등 속성의 정당성을 검증하기 위해 메시지와 함께 전송되는 어떤 값 또는 부분, 암호 기법에서 하나의 인증 알고리즘으로 데이터를 처리하여 생성된 수나 값, 또는 디지털 서명 부호를 의미
- SSL 구조
- SSL 핸드셰이크 프로토콜
사용할 암호 알고리즘을 결정하고 키 분배 작업을 수행
- SSL 레코드 프로토콜
- 상위 계층에 기본적인 보안 서비스를 제공
- SSL 핸드세이크 프로토콜에서 결정된 블록 암호 알고리즘과 비밀키를 이용해 송.수신자료의 암호화와 복호화를 수행
- 상위 계층에 기본적인 보안 서비스를 제공
- SSL 핸드셰이크 프로토콜
- 한 세션 동안 사용되는 암호 매개변수는 SSL 핸드셰이크 프로토콜에 의해서 생성되는데, 이것은 SSL 레코드 계층의 위에서 동작함
- 이 프로토콜은 한 세션에서 사용되는 비밀 정보를 공유하기 위해 이용
- SSL 클라이언트와 서버가 처음으로 통신을 시작할 때 서로 프로토콜 버전을 확인하고, 암호 알고리즘을 선택하고, 선택적으로 서로를 인증하고, 공유할 비밀 정보를 생성하기 위해 공개키 암호 기법을 이용
- 한 세션 동안 사용되는 암호 매개변수는 SSL 핸드셰이크 프로토콜에 의해서 생성되는데, 이것은 SSL 레코드 계층의 위에서 동작함
- SSL 레코드 프로토콜
SSL 핸드셰이크 프로토콜 단계에서 암호 알고리즘, 키 등의 정보를 협상에 의해 클라이언트와 서버가 공유한 후, 한 세션 동안 그 정보를 SSL 레코드 계층에서 계속적으로 이용
- SSL 에서 이용하는 알고리즘
- SSL 에서는 전자 서명과 키 교환을 위해 RSA 또는 DH(Diffie-Hellman) 알고리즘을 이용
- 암호 알고리즘은 RC4, RC2, IDEA(International Data Encryption Algorithm), DES 등을 이용할 수 있지만, 미국 외의 국가에서는 40비트 RC4 알고리즘만을 이용하도록 제한 됨
- SSL 에서는 전자 서명과 키 교환을 위해 RSA 또는 DH(Diffie-Hellman) 알고리즘을 이용
전자 서명 및 키 교환 알고리즘 | RSA, Fortezza, DH/DHE-DSS/RSA, DH-anon, DHE non-certified parameters | |
암호 알고리즘 | RC4, RC2, IDEA, DES, 3DES, Fortezza | |
해시 함수(MAC을 위한) | MD5, SHA-1 ((H)MAC over {session key, seq#, length, content} |
▶ SSL에서 사용하는 알고리즘
- DH 알고리즘 : 이산대수 문제의 어려움에 바탕을 둔 최초의 비 대칭키 암호 알고리즘으로, 여기에서 사용되는 공개키와 비밀키는 키 교환과 분배를 위해서만 사용됨
- IDEA : 스위스에서 1990년 Xuejia Lai, James Messey에 의해 만들어진 PES(Proposed Encryption Standard)는 이후 1992년 IDEA(International Data Encryption Algorithm)로 이름을 고쳐 제안했고, 현재 가장 안전하고 최고라고 생각되는 알고리즘으로 블럭 초당 177Mbit의 처리가 가능한 빠른 암호화 방법이다. IDEA는 128-bit key, 8-round, 64-bit block cipher이며 주된 연산은 XOR, add mod 216, multiply mod 216+1이다. RSA와 더불어 PGP에 사용되는 방식이기도 하다. IDEA는 안전성에서 인정을 받아 전자 우편을 위한 보안도구로 널리 이용되고 있는 PGP에 사용되고 있고, 유럽 표준으로도 등록되어 있습니다. IDEA는 블록 암호 알고리즘으로써 64비트의 평문에 대하여 동작하며, 키의 길이는 128bit이고, 8round의 암호 방식을 적용합니다. 또한, 암호화와 복호화에 동일한 알고리즘이 사용됩니다. IDEA 알고리즘은 상이한 대수 그룹으로부터의 세가지 연산(Additional modular 216, Multiplication Modular 216+1)을 혼합하는 것으로 이들은 모두 하드웨어나 소프트웨어로 쉽게 구현될 수 있습니다. IDEA는 16비트 단위 연산을 사용하여 16bit 프로세스에 구현이 용이하도록 설계되었습니다.
댓글 없음:
댓글 쓰기