목록랩/Cryptography and Security (18)
시드니랩

IPSec 이 네트워크 계층에서의 보안을 담당하였다면, SSL은 전송계층에서 보안을 담당한다. IPSec 못지않게 어디에서나 쓰이는 보안 프로토콜로, http 와 SSL 의 결합인 https 의 탄생으로 이제는 쓰지 않을 수 없는 요소가 되었다. SSL 은 NetScape 에서 개발되었으며, 전송계층 중 TCP 위에서 동작한다. UDP 에서는 일반적으로 동작하지 않으며 DTLS 라는 프로토콜로 SSL 비슷하게 적용할수 있다고 한다. 자세한 내용은 OpenSSL 을 참고하도록 하자. TCP 위에서만 동작하기 때문에, TCP가 기반인 Application(HTTP, FTP, Telnet.. )에 대해서는 SSL이 모두 적용 가능하다. 그리고 당연하지만, Application Independent 하다. SS..

이론 TCP/IP Suite 기준 Network Layer 에서 동작하는 보안 프로토콜로, Network Layer 그리고 그 상위 Layer 까지 의 보안을 담당한다. 네트워크 계층에 보안을 하는 이유는 역시 Efficiency 와 Security 두가지 측면이 있다. 각각의 어플리케이션 마다 보안 프로토콜을 구현하기엔 효율적이지 못하고, 데이터링크 계층까지 가버리면 네트워크 구조상 보안상의 문제가 생기기 때문이다. 위 그림에서 볼수 있듯이 IP 프로토콜 위에 IPSec 이 얹혀져 있다고 생각하면 된다. IPSec 은 뒤에서 나오겠지만 AH와 ESP 두가지 방법을 사용할 수 있다. 개요 IPSec 이 제공하는 Security Service 는 아래와 같으며, 구조는 아래 그림을 참조하자. Sender ..

케르베로스는 그리스로마 신화에서 지옥의문을 지키는 머리 셋 달린 개의 이름이다. 원래 담긴 의미와 비슷하게 보안시스템상에서 케르베로스는, 네트워크의 관문을 지키고 외부인을 인증하는 용도로 쓰이는 시스템을 일컫는다. 만약 시스템이 분산시스템이 아니라 단일 서버로 이루어져있다면, 굳이 케르베로스를 사용할 필요없이, 앞서 다루었던 DSS 지문으로 본인을 확인하면 된다. 하지만 거의 대부분 인프라는 분산시스템으로 이루어져있기 때문에 필수적으로 짚고 넘어가야할 개념이다. 이 게시물은 Kerveros version 4 를 기준으로 작성하였다. 참고로, Kerveros version 5에서는 Encryption이 One Key Cipher 여러 종류를 지원하는 반면에 version4 는 2-DES만 지원한다. ✣ K..

앞서 기본적인 암호기법을 공부하였다. 이제 본격적으로, 실생활에 사용되는 보안 프로토콜을 공부해보자. 가장 먼저 보안 프로토콜로 떠올릴 수 있는 것은 이메일 보안인데, 이는 독립된 개체가 서로 정보를 주고받을때, 가장 보안이 중요한 분야가 이메일이기 때문이다. 대표적인 이메일 보안기법으로 Pretty Good Privacy 가 있는데, 모든 암호기법을 한번 훑고 보안기법으로 처음 이것을 학습하는 이유는 여태까지 배운 것들의 조합이라서 그렇다. PGP를 공부하면서 꼭 얻어가야할 내용은, 각각 빌딩 블록들이 어떤 이유에 근거해서 이런 순서로 설계되었는지 파악하는 것이다. 먼저 이메일을 주고받을때 필요한 기능들을 나열해보자 1. Nonrepudiation (Sender Authentication) : DSS ..

암호학에서 다루는 한 종류인 Secret Sharing은, 반드시 정해진 인원이 모여야지 비밀을 확인할 수 있도록 설계된 수학 모델이다. 가장 직관적이고 편한 예를 들자면, "어느 마을에 오형제가 있다. 이 오형제는 아버지가 유산으로 남겨주신 보물을 찾으려고 한다. 하지만 아버지는 보물이 숨겨진 보물지도를 다섯 조각으로 찢어서, 각각 아들들에게 나누어주었다. " 위의 예시에서, 아버지의 보물을 찾기위해서 반드시 오형제중 정해진 t명이 모두 모여야지만 보물을 확인할 수 있는 보물지도를 디자인 하는것이 바로 암호학에서 다루는 Secret Sharing 이라고 할 수 있다. ✣ 기본 골격 Secret Sharing 의 기본 구조는 다음과 같다. 1. Secret 을 나눠가질 구성원이 n 명이라고 할때, $f_..

앞서 전자서명에 대해서 간략하게 다루었다. 이번 게시글에서는 이에 대해 조금 더 깊이 알아보고, 현실에서 실제로 쓰이는 전자서명표준인 Digital Signature Standard (이하 DSS) 에 대해서 알아보도록 하자. 일반적으로 DSS라고 하면, DSA로 서명한 표준을 일컫는다. Digital Signature 이란, 내가 보내려는 메시지가 실제로 내가 보냈다는 것을 상대방에게 알려주기 위해 필요한 것이다. 이 서명 기법을 통해서 상대방은 대표적으로 Nonrepudiation 을 확보 할수있다. 수업에서는 Sender Authentication 이라는 단어로 대신 사용하였다. ❖ Nonrepudiation : 데이터를 송신한 자가 송신 사실을 허위로 부인하는 것으로부터 수신자를 보호하기 위하여 ..

웹 서핑을 한다는 것은 네트워크를 통해서 수많은 임의의 상대방들과의 통신을 하기 위함이다. 이러한 구조에서 반드시 필요한 것은 통신하는 상대방이 정말 본인이 맞는지, 그리고 인증된 상대방과 외부의 침입으로 부터 안전한게 통신할 수 있는지에 대한 보장이다. 즉, 상대방의 인증과 메시지의 암호화가 필요하다. 인터넷을 사용하면서, 내가 통신하는 모든 상대방의 공개키를 가지고 있다는 것은 불가능하다. 내가 어떤 웹사이트에 접속해서 누구와 통신할지 모를뿐더러, 수많은 사람들이 작성한 웹페이지를 방문하기 때문이다. 그래서 SSL은 Digital Certificate 을 지원한다. (참고로 HTTPS 는 SSL을 지원하는 HTTP). 임의의 웹사이트를 접속을하면, 통신 프로토콜 차원에서 Digital Certific..

Hash 의 종류 중에 한놈만 제대로 이해해보자, 128 bit 고정길이로 해시값을 내어놓는 MD5는 죽은지 오래고.... 그중 만만하다고 생각되서 고른 녀석이 SHA -1 이다. ◉ SHA 란? 알고리즘 개발자가 이름을 지은것이 아니고, Secure Hash Algoritm 의 약자이다. 대회를 열어서 최종 수상작에 SHA 라는 이름을 부여한다던가.... ◉ SHA -1 Algorithm 이론적으로 SHA -1 의 최대 입력은 2^64 이다. - Preprocessing 단계 Message를 M 이라고 하면, 길이가 448mod512 를 만족할때까지 padding 을 해야한다. (왜 448 이냐면, padding 후에 앞에 message 길이를 나타내는 64비트를 붙여줌ㅋ ) padding 그리고, 앞..

◉ Hash function Hash function 은, 임의의 길이를 입력으로 받아서 항상 fixed length string으로 리턴해주는 함수이다. 단순히 길이만 fixed length로 리턴해 주는것이 아니라, 모든 입력값이 서로 다른 hash value (hash function의 함수값)을 갖는다. 예를 들어, 1. Input : Justin Seo => gaf34r3 2. Input : Justin Suo => wefnf33 이렇게 Plain Text 에서 단순히 하나의 값만 바꿔도, 해시값이 통채로 바뀌게 되버린다. 해시함수를 비유하자면, 엄청 큰 정보의 문서를 구겨버려서(Crush) 해버려서 작게 압축해버리는 것과 비슷한 맥락이라고 볼 수 있겠다. ◉ 이 Hash Function은 그러..

이게 RSA 보다 참 어려운데, RSA 만큼은 아니지만 많이 쓰인다. 그나마 위안이 되는것은 암호학은 여러 종류를 많이 공부하는것 보다는 보안 산업 자체가 승자독식의 구조이기때문에, 널리쓰이는 몇개만 알아놓으면 된다는 것이다. ◉ ElGamal Cipher Elgamal Cipher은 소인수분해의 어려움에 기반한 RSA와는 달리, Discrete Lograithm 의 어려움에 기반한 공개키 암호화 방식이다. ◉ Security of ElGamal Cipher