Skip to content

Secure Coding

소프트웨어 개발 보안 또는 시큐어 코딩(Secure Coding)이란 안전한 소프트웨어 개발을 위해 소스 코드 등에 존재할 수 있는 잠재적인 보안 취약점을 제거하고, 보안을 고려하여 기능을 설계 및 구현하는 등 소프트웨어 개발 과정에서 지켜야 할 일련의 보안 활동을 말한다. 인터넷 홈페이지나 소프트웨어 개발 시 보안 취약점을 악용한 해킹 등 내외부 공격으로부터 시스템을 안전하게 방어할 수 있도록 코딩하는 것이 여기에 해당한다.

미국은 2002년 연방정보보안관리법(FISMA)을 제정해 시큐어 코딩을 의무화했고, 마이크로소프트는 윈도 비스타를 개발할 때 시큐어 코딩을 도입했다. 대한민국의 경우 2012년 12월부터 SW 개발 단계부터 보안 취약점을 제거하는 'SW 개발 보안 의무제'가 시행되었다. 이에 따라 공공기관의 정보화 사업 중 40억원 이상의 발주는 시큐어 코딩을 의무화했고, 2014년 12월 31일까지는 20억원 미만의 사업에도 의무적으로 적용된다.

Key store

Credential Store항목 참조. (OS별, 안전한 키 저장소에 대한 정리)

License key

해당 항목 참조

Key generate

Symmetric algorithms are limited, in that any novice cracker with a disassembler can find your key (or the algorithm used to generate one) and make a "keygen".

For this reason, asymmetric cryptology is the way to go. The basic premise is something like this:

  • When the user purchases a license from you, you collect certain identifying details about the user and/or their environment (typically, this is just a full name; sometimes a company, too).
  • You make a 128-bit MD5 hash of this information.
  • Using a 128-bit Elliptic Curve crypto, encrypt this hash using the private key on the server.
  • The 128-bit cipher text can be represented to the user as a 25-character string consisting of letters and digits (plus separating dashes for readability). Notice that 26 letters + 10 digits = 36 discreet values, and that 36^25 > 2^128.
  • The user types this product key into your registration dialog. The client software converts it back to a 128-bit number (16 bytes), decrypts that using the public key of your EC crypto, and compares the result to an MD5 hash of the user's personal information, which must match what was used for registration.

Python Security Libraries

Python:Libraries#Security 항목 참조.

Application Isolation

Application Sandboxing 또는 Application Containerization. 항목 참조.

Password security

See also

Favorite site

References


  1. Software_security_weaknesses_diagnosed_Guide_2013.zip 

  2. Software_Development_Security_Guide_2013.zip 

  3. IOS_Security_Guide_Oct_2014.pdf 

  4. Secure-Programs-HOWTO.7z 

  5. NAVER_D2_-_Secure_password_storage.pdf 

  6. Technology_of_password_security_-_CODEOK.pdf 

  7. Salted_Password_Hashing_-_Doing_it_Right.pdf 

  8. C_Secure_Coding_Guide.pdf 

  9. Java_Secure_Coding_Guide.pdf