16.MD5


  앞장에서 Cookie에 대해서 열심히 떠들었다. 그러면서 Cookie는 보안에 취약 하다는 점을 강조했었다. 사용자가 자기 맘대로 Cookie값을 바꿀 수 있다면, 이걸 가지고 user정보를 담아둘 수가 없는 것이다. 이럴 때 MD5를 쓰면 좋다. 일단 MD5에 대해서 알아보자.

  물론 MD5가 완벽한 해결책은 아니다. 단지 좀더 어렵게 만든 것 뿐이지, 완전히 못풀 게 한 것은 아니다. 만일 현금이 운영되는 싸이트라면, 별도의 암호화 기법을 사용해야 할 것이다. ( 일부의 개발 툴은 그러한 기능을 제공하기도 한다.)

    Cookie의 Session   원리는 단순하다. 서버에 공유메모리를 두고 거기에 저장하는 방법이다. 이때, Cookie값으로 특정한 Key값이 내려간다. 그래서, 이 Key값을 가지고 공유메모리를 찾아가는 것이다.( Key값이 동일할 때 Read/Write할 수 있도록 설계되었다. ) 이런 기능을 제공하는 언어로는 ASP(Active Server Page)SSJS(Server Side JavaScript), JSP(Java Server Page), Servlet등이 있고, Sapphire WEB과 같은 툴은 C언어로작성하면서 이러한 일들을 가능하도록 해준다. 즉, Cookie값으 없었으면, User를 구분하지 못했을 것이다.
  MD5가 뭐냐? message-digest algorithm이다. 쉽게 말해서 checksum인데, 문자열을 가지고 유일한 값을 만들어 낸다. 자세한 예기는 후반부에 하고, 일단 이 파일을 구하는 방법, 설치방법부터 설명한다.

  • MD5 설치하기

      어디서 MD5를 얻는가? 다음파일에 있다. MD5.zip ( winzip 7.0으로 압축했다. ). 이 파일은 공용이며, 본인도 열심히 인터넷을 돌아다니다가 어느 싸이트에선가 다운을 받은 것으로 기억하고 있다. (물론 외국싸이트였다. 난 항상 이런게 싫다! )

      자 이 MD5는 C언어로 작성된 UNIX하에서 수행될 수 있는 프로그램이다. ( 뭐 C언어로 작성됐으니까, 다른 환경으로도 쉽게 이관할 수 있을 것이다. ). 압축을 풀면 여러 파일이 나오는데, 원리나 기초를 알고 싶은 사람은 파일중에 txt나 ps파일을 보면 된다.

      설치하는 법은 간단하다. Makefile이 있으니까, make명령만 실행하면 md5라는 실행파일이 생성될 것이다.( 컴파일이 안되는 사람은 주변의 C언어 경험자에게 부탁하라. 시스템 환경에 따라 조금만 손보면 된다. )

  • MD5 실행하기

      이제 설치가 됐는데, 이걸 어떻게 사용하는 것일까? 간단하다. 몇가지 옵션이 있는데, 일단 문자열 "1234567890"을 주면 checksum 값을 출력하는 것부터 보자.

    $ md5 -s1234567890

    MD5 ("1234567890") = e807f1fcf82d132f9bb018ca6738a19f


      UNIX상에서 실행해본 결과이다.( -s 옵션이 string을 의미한다. )

      또 하나의 기능으로 파일의 checksum을 구하는 방법도 있다. md5.h라는 파일의 checksum은 다음과 같다.

    $ md5 md5.h

    MD5 (md5.h) = d14ccb56e8457cd654fb7975171874b4


      앞으로 우리가 사용할 방법은 첫 번째 방법인 sting의 checksum값이다. 하나 주의할 것은 누가 어디서 실행시키든 똑같은 string에 대해서는 md5의 값은 항상 동일하다는 점이다. 그래서 별도의 추가사항을 넣어주어야 한다.

- Last Update : 2001.7.9 by Deadfire(http://www.deadfire.net)

CGI with C 활용
브라우저구분
환경변수LIST
클라이언트풀
서버푸쉬
Form Mail
진행현황보기
Cookie
MD5
File Download
SSI
Redirection
File Upload
GD1.2
Database
마치며

Copyright ⓒ 1997 ~, Deadfire Program Master