암호화/복호화

웹개발 2015. 7. 25. 18:28

은노기의 블록암호에 대한 부분을 보다가

서버에 저장되는 데이터를 암호화해서 저장하거나 다시 역으로 복호화하는 과정에 대하여 공부를 하게 되었다.

- 암호화 과정

  신용카드번호와 같은 정보를 암호화 알고리즘을 사용하여 암호화를 한후 저장하고

- 복호화 과정

  암호화된 정보를 사용하여 복호화 알고리즘을 통하여 복호화를 함으로써 원래 정보인 신용카드번호를 알아낸다.


우리는 인터넷뱅킹을 할 때, 공인인증서를 발급받아 인터넷뱅킹의 서버로부터 휴대폰으로 인증서를 다운받는다. 이와 같이 인터넷뱅킹 서버와 휴대폰간에 키를 공유하게 된다.

또한 우리는 인증서가 노춛되었다거나 다른 사람이 인증서를 주었다고 하여 그대로 사용할 수 있는 것이 아니다. 인증암호가 별도로 있기 때문인데, 이것은 이전에 기술한 비밀번호 저장과 같이 자신의 인증번호로 다시 암호화를 하기 때문이다.


은노기에서는 KISA에서 제공하는 SEED 알고리즘을 사용하여 암호화 및 복호화를 한다.

신용카드 정보와 비밀키를 사용하여 SEED 알고리즘을 돌려 암호화된 신용카드 정보를 생성한 후 저장하게 된다.


config.jsp : ket.dat에 대한 경로를 저장하는데 full path를 지정해 주어야 한다.

Posted by 세상을 살아가는 사람
,

오늘은 은노기의 JSP2.3 웹프로그래밍을 공부를 하다가

회원관리 프로그램의 데이터베이스 테이블 중 비밀번호 부분을 암호화하는 절차를 기술하고자 한다.

참조 : 은노기 JSP2.3 웹프로그래밍 372p


입력받은 비밀번호와 Private 키를 사용하여 SHA-256 해시함수를 돌린다.

해시함수의 결과로 생성된 암호화된 비밀번호를 다시 bcript를 사용하여 해시함수를 돌린다.

그러면 60 바이트의 암호화된 비밀번호가 생성이 된다.


해시함수의 특성상 암호화된 비밀번호가 알려주더라고 원래의 비밀번호를 다시 알아낼 수가 없다.

따라서 비밀번호의 노출을 방지할 수 있다. 즉, 시스템에는 원래 사용자가 설정한 비밀번호는 저장이 되지 않고, 해시함수를 통해 생성된 암호화된 비밀번호만이 저장되기 때문에 운영자들도 사용자가 설정한 비밀번호를 알수가 없으며, 비밀번호의 분실시에는 다시 새로운 비밀번호를 사용자가 설정하도록 함으로써 비밀번호의 보안을 유지한다.

Posted by 세상을 살아가는 사람
,
라즈베리파이에 서버로 동작을 시키기 위해서는 데이터베이스가 필수적이다. 이를 위해 MYSQL을 설치해 본다.

예전에 라즈베리파이2에 XE를 설치하였는데, 그 절차 중에 MYSQL을 설치하는 부분만을 이용하면 된다.

참고 : http://elradiun.tistory.com/1

       http://funnylog.kr/561


주의할 사항은 default-character-set=utf8이 client와 mysqld에 중복되게 기술되어 오류가 있다는 것이다.

mysqld에 있는 것을 삭제해 준다.



Posted by 세상을 살아가는 사람
,