'알고리즘'에 해당되는 글 3건

  1. 2015.10.13 각종 인증서 기본이 되는 SHA-1에 충돌 공격 비상
  2. 2015.04.09 암호화 해시 함수 알고리즘
  3. 2009.12.03 SHA-256/SHA-512를 사용한 암호 해싱
2015.10.13 18:50

각종 인증서 기본이 되는 SHA-1에 충돌 공격 비상

이론상 취약점 항상 지적당해온 SHA-1의 위기, 현실화
예전에 발표되고 인정받은 이론이라도 다시 살펴보아야

http://www.boannews.com/media/view.asp?idx=48181



아주 오래 전부터 SHA-1의 불완전함은 보안 전문가들이 지적해온 바 있다. 그들이 지적한 내용을 정리하면 다음과 같다. 

1) SHA-1은 해시 알고리즘의 일종이며, 해시 알고리즘은 긴 메시지를 대표하는 하나의 짧은 값을 생성하는 암호화 방식이다. 그 짧은 값을 보통 해시값(hash value)이라고 부른다. 긴 메시지의 대표 이미지 혹은 썸네일 이미지라고 이해하면 된다.

2) 해시 알고리즘의 특성은 두 가지다. 하나는 해시값만 가지고 최초의 입력 값 즉, 데이터를 알아내기가 불가능하다는 것이고 또 다른 하나는 해시값이 같은 두 개의 데이터를 알아내기가 매우 힘들다는 것이다. 

3) 디지털 인증서에 SHA-1이 많이 사용된다고 했는데, 그 말을 보다 상세히 풀면 인증서의 입력 값 혹은 데이터에 대한 해시값을 생성하고(=해시방식으로 암호화하고), 이 해시값을 디지털 인증서의 서명키로 다시 전환한 것, 즉 해시값을 암호화해서 서명키로 바꾼다는 것과 같다. 

4) 이는 즉 같은 해시값에 최초 입력 값과 최종 서명키가 얽혀있게 된다는 것으로서, 해시 알고리즘의 특정 중 하나인 ‘해시값이 같은 두 개의 데이터를 알아내기 매우 힘들다’가 깨진다면 같은 인증서에 대한 최초 입력 값과 최종 서명키를 얻어낼 수 있다는 것이다. 

5) 공격자가 이렇게 같은 해시값을 갖고 있는 두 개의 데이터를 확보한다면 인증서의 내용 자체는 조작하지 못해도 인증서의 가짜 서명문을 생성해 사용자가 전송하도록 유도할 수 있다. 그러면 공격자가 이를 중간에 가로채 다른 것으로 대체하고, 서명을 검증하는 쪽에서는 중간에 이런 저런 변경이 있었다는 걸 모르고 수신된 서명문이 합법적인 것으로 인증하게 된다. 

6) 그렇다면 해시값이 같은 두 개의 데이터를 찾아내기만 하면 SHA-1은 뚫릴 수 있다는 것이고, 그걸 해내는 공격이 바로 충돌 공격(collision attack)이다. 즉 SHA-1은 애초에 충돌 공격에 약할 수밖에 없는 게 태생적인 한계다.

이런 지적은 2005년부터 있어왔다.




출처 : 보안뉴스


Trackback 0 Comment 0
2015.04.09 19:43

암호화 해시 함수 알고리즘

위키백과, 우리 모두의 백과사전.

암호화 해시 함수(cryptographic hash function)은 해시 함수의 일종으로, 해시 값으로부터 원래의 입력값과의 관계를 찾기 어려운 성질을 가지는 경우를 의미한다. 암호화 해시 함수가 가져야 하는 성질은 다음과 같다.[1]

  • 역상 저항성(preimage resistance): 주어진 해시 값에 대해, 그 해시 값을 생성하는 입력값을 찾는 것이 계산상 어렵다. 즉, 제 1 역상 공격에 대해 안전해야 한다. 이 성질은 일방향함수와 연관되어 있다.
  • 제 2 역상 저항성(second preimage resistance): 입력 값에 대해, 그 입력의 해시 값을 바꾸지 않으면서 입력을 변경하는 것이 계산상 어렵다.제 2 역상 공격에 대해 안전해야 한다.
  • 충돌 저항성(collision resistance): 해시 충돌에 대해 안전해야 한다. 같은 해시 값을 생성하는 두 개의 입력값을 찾는 것이 계산상 어려워야 한다.

즉, 입력값과 해시 값에 대해서, 해시 값을 망가뜨리지 않으면서 입력값을 수정하는 공격에 대해 안전해야 한다. 이러한 성질을 가지는 해시 값은 원래 입력값을 의도적으로 손상시키지 않았는지에 대한 검증 장치로 사용할 수 있다.

순환 중복 검사(CRC)와 같은 몇몇 해시 함수는 암호 안전성에 필요한 저항성을 가지지 않으며, 우연적인 손상을 검출할 수는 있지만 의도적인 손상의 경우 검출되지 않도록 하는 것이 가능하기도 하다. 가령, 유선 동등 프라이버시(WEP)의 경우 암호화 해시 함수로 CRC를 사용하나, CRC의 암호학적 취약점을 이용한 암호공격이 가능하다는 것이 밝혀져 있다.

암호화 해시 함수의 비교

가장 널리 사용되는 해시 함수에는 MD5와 SHA-1이 있으나, 이들은 안전하지 않다는 것이 알려져 있다. 미국 US-CERT에서는 2008년 MD5를 사용하지 말아야 한다고 발표했다.[2] NIST에서는 2008년 SHA-1의 사용을 중지하며 SHA-2를 사용할 것이라고 발표했다.[3]

2008년 미국 국립표준기술연구소(NIST)에서는 SHA-3로 부를 새로운 안전한 암호화 해시 함수에 대한 공모전을 열었다. 2012년 8월 현재 SHA-3의 후보는 다섯 개가 있으며, 2012년 중으로 이들 중 최종 후보를 뽑을 예정이다.[4]

다음은 널리 알려진 암호화 해시 함수 알고리즘의 목록이다. 이들 중에는 안전하지 않다는 것이 밝혀진 것도 있다.




출처 : 위키백과


Trackback 0 Comment 0
2009.12.03 19:20

SHA-256/SHA-512를 사용한 암호 해싱

현재 SHA-256 및 SHA-512 해시 기능을 사용한 암호 해싱이 지원됩니다.

설치된 시스템에서 SHA-256 또는 SHA-512로 전환하려면 authconfig --passalgo=sha256 --kickstart 또는 authconfig --passalgo=sha512 --kickstart 명령을 실행합니다. 기존의 사용자 계정은 암호를 변경하기 전 까지 영향을 받지 않게 됩니다.

새로 설치된 시스템의 경우, SHA-256 또는 SHA-512 사용은 킥스타트 설치에서만 설정될 수 있습니다. 이를 위해, 킥스타트 명령 auth--passalgo=sha256 또는 --passalgo=sha512 옵션을 사용합니다; 또한, --enablemd5 옵션이 있을 경우 이를 삭제합니다.

설치 프로그램이 킥스타트를 사용하지 않을 경우, 위의 설명 대로 authconfig를 사용한 후, 설치 후 생성된 모든 암호 (root 포함)를 변경합니다.

이러한 암호 해싱 알고리즘을 지원하기 위해 알맞은 옵션이 libuser, pam, shadow-utils에 추가되었습니다. authconfig 명령은 필요한 옵션을 자동으로 생성하므로, 이를 수동으로 수정할 필요가 없습니다:

  • 현재 crypt_style 옵션의 새로운 값과 hash_rounds_minhash_rounds_max 명령의 새로운 옵션은 /etc/libuser.conf[defaults] 부분에서 지원됩니다. 보다 자세한 내용은 /usr/share/doc/libuser-[libuser version]/README.sha에서 참조하시기 바랍니다.

  • 현재 새로운 옵션 sha256, sha512, roundspam_unix PAM 모듈에 의해 지원됩니다. 보다 자세한 내용은 /usr/share/doc/pam-[pam version]/txts/README.pam_unix에서 참조하시기 바랍니다.

  • 현재 다음과 같은 /etc/login.defs에서의 새 옵션은 shadow-utils에 의해 지원됩니다:

    • ENCRYPT_METHOD — 사용할 암호화 방식을 지정합니다. 사용 가능한 값은 DES, MD5, SHA256, SHA512 입니다. 이러한 옵션이 지정될 경우, MD5_CRYPT_ENAB 명령은 무시됩니다.

    • SHA_CRYPT_MIN_ROUNDSSHA_CRYPT_MAX_ROUNDSENCRYPT_METHODSHA256 또는 SHA512로 설정되어 있을 경우 사용할 해싱 라운드 수를 지정합니다. 아무 옵션도 설정되어 있지 않을 경우, glibc에 의해 기본값이 지정됩니다. 하나의 옵션만이 설정되어 있을 경우 암호화 방식이 라운드 수를 지정하게 됩니다.

      두 옵션 모두가 사용될 경우, 임의로 선택된 라운드 수에서 포괄적인 간격을 지정합니다. 선택된 라운드 수는 포괄적인 간격 [1000, 999999999]으로 제한되어 있습니다.


출처 : http://us.aminet.net/pub/centos4.64/NOTES/RELEASE-NOTES-U7-ko.html

Trackback 1 Comment 0