시큐어코딩
- home
- 보안소식
- 시큐어코딩
23. [보안 기능] 충분하지 않은 키 길이 사용
2019.05.07 14:41
안녕하세요 신뢰와 정직의 가치를 중시하는 정보보호 전문기업 지에스인포입니다!
오늘은 행자부 SW 개발보안 가이드 47개 항목 중 '충분하지 않은 키 길이 사용' 에 대해 배워보고자 합니다.
# 충분하지 않은 키 길이 사용 : 키 길이가 충분히 길지 않을 경우 공격자가 짧은 시간 안에 키를 찾아낼 수 있는 보안 취약점
오늘의 주제를 설명하기에 앞서 보석을 가지고 있는 '김보안'이라는 사람이 있다고 가정 해 봅시다.
김보안씨는 자기의 재산인 보석을 안전하게 보관하기 위해 매우 튼튼한 강철금고를 마련하였습니다.
그런데 금고의 비밀번호가 달랑 두 자리 숫자라면 어떻게 될까요?
도둑이 들어서 금고를 열고자 할 때, 00부터 99까지 단 100가지의 경우의 수만 시도 해 보면 금고를 열 수 있겠죠?
그렇다면 아무리 튼튼한 강철금고라 해도 소용이 없을 것입니다.
따라서, 안전하게 금고를 지키기 위해서는 외부 침입자가 인위적으로 입력해서 들어오는 것이 불가능할 만큼 비밀번호의 길이가 충분히 길어야 할텐데요. 정보보안의 원리도 이와 같답니다!
길이가 짧은 키를 사용하는 것은 암호화 알고리즘을 취약하게 만들 수 있습니다. 키는 암호화 및 복호화에 사용되는데, 검증된 암호화 알고리즘을 사용하더라도 키 길이가 충분히 길지 않으면 짧은 시간 안에 키를 찾아낼 수 있고 이를 이용해 공격자가 암호화된 데이터나 패스워드를 복호화 할 수 있게 됩니다.
따라서 RSA 알고리즘은 적어도 2048 비트 이상의 길이를 가진 키와 함께 사용해야 합니다. 또한 대칭암호화 알고리즘의 경우에는 적어도 128 비트 이상의 키를 사용해야 하지요.
그럼 예제를 함께 보시면서 배워볼까요?
위의 소스코드는 보안성이 강한 RSA 알고리즘을 사용함에도 불구하고, 키 사이즈를 1024로 작게 설정함으로써 프로그램의 보안 약점을 야기한 경우입니다.
이럴 경우엔 이와 같이 키 길이를 2048 이상으로 설정해주면 보안성을 훨씬 높일 수 있답니다!
이렇게 암호키의 길이만 길게 설정 해 주어도 소중한 정보를 더욱 안전하게 보호 할 수 있다는 사실, 모두 아셨나요?
오늘은 '충분하지 않은 키 길이' 항목에 대해 알아보았습니다.
다음에도 더욱 유익하고 유용한 정보로 찾아오는 지에스인포 되겠습니다.