반응형
https://www.kisa.or.kr/public/laws/laws3.jsp
기술안내서 가이드 < 관련법령·기술안내서 < 자료실 : 한국인터넷진흥원
기술안내서 가이드 한국인터넷진흥원 기술안내서 가이드 입니다. 게시판 목록 보기 기술안내서 가이드 표 대분류 소분류 기술안내서 가이드 대상 수준 인터넷 진흥 및 이용 활성화 인터넷 진흥
www.kisa.or.kr
구현 단계 시큐어코딩 가이드 - 보안 기능 - 중요정보 평문 전송
가. 개요
- 사용자 또는 시스템의 중요정보가 포함된 데이터를 평문으로 송·수신할 경우, 통신채널 스니핑을 통해 인가되지 않은 사용자에게 민감한 데이터가 노출될 수 있는 보안약점이다.
나. 보안대책
- 민감한 정보를 통신 채널을 통하여 내보낼 때에는 반드시 암호화 과정을 거쳐야 하며, 필요할 경우 SSL 또는 HTTPS 등과 같은 보안 채널을 사용해야 한다.
- HTTPS와 같은 보안 채널을 사용하거나 브라우저 쿠키에 중요 데이터를 저장하는 경우, 쿠키 객체에 보안 속성을 설정하여 (Ex. setSecure(true) 메소드 사용 등) 중요정보 노출을 방지한다.
- 보안속성이 설정된 쿠키는 HTTP로는 전송되지 않으므로, 중요 데이터를 저장한 쿠키를 HTTP로 전송하기 위해서는 보안 속성을 대신하여 반드시 암호화를 적용하여야 한다
다. 코드예제
JAVA
더보기
![](https://blog.kakaocdn.net/dn/trTIu/btqFOL4CalA/4JRR0RJ4Rk2tZM2oE9ZYN1/img.png)
![](https://blog.kakaocdn.net/dn/VBhqA/btqFP9XKaC0/7TPRgF7uA8eB01hM8IrDuk/img.png)
아래 예제는 패스워드를 암호화하지 않고 네트워크를 통해 전송하고 있다. 이 경우 패킷 스니핑을 통하여 패스워드가 노출될 수 있다.
![](https://blog.kakaocdn.net/dn/trTIu/btqFOL4CalA/4JRR0RJ4Rk2tZM2oE9ZYN1/img.png)
아래 예제는 패스워드를 네트워크를 통해 서버로 전송하기 전에 AES 등의 안전한 암호 알고리즘으로 암호화한 안전한 프로그램이다.
![](https://blog.kakaocdn.net/dn/VBhqA/btqFP9XKaC0/7TPRgF7uA8eB01hM8IrDuk/img.png)
C#
더보기
![](https://blog.kakaocdn.net/dn/ciwnmh/btqFONuBrdB/d0KKaCQbOHLEaGGkD3v1m1/img.png)
![](https://blog.kakaocdn.net/dn/calZd9/btqFQah4F7n/0VkikBG34Nyu5ubOLnlOI0/img.png)
![](https://blog.kakaocdn.net/dn/cUcH3g/btqFQLvlrV6/XDBKMIawfrZr3OpjIW0s5k/img.png)
![](https://blog.kakaocdn.net/dn/BhnCr/btqFQ9CJw9P/F3HcKcybm4fJS4Plj0Ft41/img.png)
아래 C# 예제 또한 패스워드를 암호화하지 않고 네트워크를 통해 전송하고 있다. 이 경우 패킷 스니핑을 통하여 패스워드가 노출될 수 있다.
![](https://blog.kakaocdn.net/dn/ciwnmh/btqFONuBrdB/d0KKaCQbOHLEaGGkD3v1m1/img.png)
![](https://blog.kakaocdn.net/dn/calZd9/btqFQah4F7n/0VkikBG34Nyu5ubOLnlOI0/img.png)
패스워드를 네트워크를 통하여 전송할 때에는 암호화하는 것이 바람직하다.
![](https://blog.kakaocdn.net/dn/cUcH3g/btqFQLvlrV6/XDBKMIawfrZr3OpjIW0s5k/img.png)
![](https://blog.kakaocdn.net/dn/BhnCr/btqFQ9CJw9P/F3HcKcybm4fJS4Plj0Ft41/img.png)
C
더보기
![](https://blog.kakaocdn.net/dn/chO3kp/btqFOXqczHD/bTBlRcTur1Gkkk3PAbhwR1/img.png)
![](https://blog.kakaocdn.net/dn/zPskH/btqFOiVTdtX/hpVbpsaU8Wul8V4ZDnFbL1/img.png)
![](https://blog.kakaocdn.net/dn/bdAZ2A/btqFP8YSLgI/cGyCyRBwNPalkRVKXwpdY1/img.png)
![](https://blog.kakaocdn.net/dn/bxrEzj/btqFOiaujVD/4vjUyJHCTgfst6Pq5kt1Gk/img.png)
파일에서 읽어온 패스워드를 바로 사용하는 C예제 코드이다.
![](https://blog.kakaocdn.net/dn/chO3kp/btqFOXqczHD/bTBlRcTur1Gkkk3PAbhwR1/img.png)
![](https://blog.kakaocdn.net/dn/zPskH/btqFOiVTdtX/hpVbpsaU8Wul8V4ZDnFbL1/img.png)
외부에서 입력된 패스워드는 검증의 과정을 거쳐서 사용해야 한다.
![](https://blog.kakaocdn.net/dn/bdAZ2A/btqFP8YSLgI/cGyCyRBwNPalkRVKXwpdY1/img.png)
![](https://blog.kakaocdn.net/dn/bxrEzj/btqFOiaujVD/4vjUyJHCTgfst6Pq5kt1Gk/img.png)
참고자료
- CWE-319, Cleartext Transmission of Sensitive Information, MITRE,
http://cwe.mitre.org/data/definitions/319.html - Insecure Transport, OWASP,
https://www.owasp.org/index.php/Insecure_Transport
반응형
'공부 > KISA' 카테고리의 다른 글
충분하지 않은 키 길이 사용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
---|---|
하드코드된 비밀번호 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
중요정보 평문저장 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.21 |
취약한 암호화 알고리즘 사용 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.20 |
중요한 자원에 대한 잘못된 권한 설정 - KISA 소프트웨어 개발 보안 가이드 (0) | 2020.07.20 |
댓글