티스토리 뷰

반응형

 

 

가. 원인

  - 사용자 및 시스템의 중요정보를 평문으로 송/수신할 경우

 

 

나. 영향

  - 네트워크 스니핑을 통해 인가되지 않은 사용자에게 민감정보 등이 노출

 

 

다. 보안대책

  - 로그인 시 반드시 HTTPS와 같은 안전한 통신채널을 사용

  - 중요정보는 암호화 후 전송하거나 안전한 통신채널을 사용

  - 중요정보를 쿠키로 전송할 경우, HTTPS통신으로만 값이 전달될 수 있도록 보안속성( setSecure(true) )을 설정

  - 중요정보를 쿠키로 전송 시 HTTP 통신을 해야할 경우, 반드시 암호화 후 전송

 

 

라. 안전한 코드

1. 패스워드를 암호화 후 전송

 

  String pwd = getPassword();

  ...

  // 데이터 암호화 후 전송이므로 서버의 공개키로 양방향 암호화 처리 후 전송

  // 서버의 비밀키로만 복호화가 되므로 패스워드의 노출을 방지

  Cipher c = Cipher.getInstance( "AES/CBC/PKCS5Padding" );

  byte[] encPassword = c.update( pwd.getBytes() );

  ...

  Socket s = new Socket( "tranPassword", 4444 );

  PrintSteam out = new PrintStream( s.getOutputStream(), true );

  out.write( encPassword, 0, encPassword.lenght );

  ...

  

 

 

 

 

마. 진단방법

<중요정보 전송>

  1.개인정보 / 금융정보 / 패스워드 등 중요정보를 송/수신 하는지 확인

  2. 중요정보가 전송 시 암호화 처리를 수행하는지 확인

  3. 중요정보가 전송 시 안전한 통신채널을 사용하는지 확인

  4. 중요정보가 쿠키를 통해 전송되는지 확인

 

 

 

바. 정/오탐 케이스

<정탐 케이스>

  1. 패스워드를 암호화하지 않고 네트워크를 통해 서버에 전송

  2. 보안채널을 사용하지 않고 HTTP통신으로 정보를 송/수신할 경우

반응형
댓글
반응형
최근에 올라온 글
Total
Today
Yesterday