sha1sum
sha1sum은 SHA-1 암호화 해시 함수를 계산하고 검증하는 컴퓨터 프로그램이다. 주로 파일의 무결성을 검증하는 데 사용된다. 이 프로그램(또는 그 변형)은 대부분의 리눅스 배포판에 기본적으로 설치되어 있다. 일반적으로 sha1sum과 함께 배포되는 프로그램으로는 특정 SHA-2 해시 함수를 사용하는 sha224sum, sha256sum, sha384sum, sha512sum과, BLAKE2 암호화 해시 함수를 사용하는 b2sum이 있다.[1]
SHA-1 변형들은 충돌 공격에 취약함이 증명되었으므로, 사용자는 악의적인 변조를 방지하기 위해 sha256sum과 같은 SHA-2 변형이나 BLAKE2 변형인 b2sum을 대신 사용해야 한다.[2][3]
이 프로그램은 GNU 코어 유틸리티[4], 비지박스(b2sum 제외)[5], 그리고 토이박스(b2sum 제외)에 포함되어 있다.[6] 마이크로소프트 윈도우를 포함하여 매우 다양한 시스템으로 포팅되어 있다.
사용 예시
[편집]제공되지 않은 경우, SHA-1 해시가 포함된 파일을 생성하려면 다음과 같이 한다:
$ sha1sum filename [filename2] ... > SHA1SUM
단일 파일을 배포하는 경우, 파일 이름에 .sha1 파일 확장자를 추가할 수 있다:
$ sha1sum --binary my-zip.tar.gz > my-zip.tar.gz.sha1
출력은 파일당 한 줄씩 "{hash} SPACE (ASTERISK|SPACE) [{directory} SLASH] {filename}" 형식으로 표시된다. (해시 다이제스트 생성이 바이너리 모드가 아닌 텍스트 모드에서 수행되는 경우, 공백 한 칸과 별표 대신 공백 두 칸이 표시된다는 점에 유의하라.) 예시:
$ sha1sum -b my-zip.tar.gz
d5db29cd03a2ed055086cef9c31c252b4587d6d0 *my-zip.tar.gz
$ sha1sum -b subdir/filename2
55086cef9c87d6d031cd5db29cd03a2ed0252b45 *subdir/filename2
파일이 올바르게 다운로드되었는지 또는 변조되지 않았는지 확인하려면 다음과 같이 한다:
$ sha1sum -c SHA1SUM
filename: OK
filename2: OK
$ sha1sum -c my-zip.tar.gz.sha1
my-zip.tar.gz: OK
해시 파일 트리
[편집]sha1sum은 디렉터리 내의 하나 이상의 파일에 대한 체크섬만 생성할 수 있으며, 하위 디렉터리, 하위 하위 디렉터리 등 디렉터리 트리 전체에 대한 체크섬은 생성할 수 없다. 이는 -exec 옵션을 사용한 find 명령과 sha1sum을 조합하거나, find의 출력을 Xargs로 파이프 처리하여 가능하다. sha1deep은 디렉터리 트리의 체크섬을 생성할 수 있다.
sha1sum을 find와 함께 사용하려면:
$ find s_* -type f -exec sha1sum '{}' \;
65c23f142ff6bcfdddeccebc0e5e63c41c9c1721 s_1/file_s11
d3d59905cf5fc930cd4bf5b709d5ffdbaa9443b2 s_2/file_s21
5590e00ea904568199b86aee4b770fb1b5645ab8 s_a/file_02
마찬가지로 find의 출력을 xargs로 파이프 처리해도 동일한 결과를 얻을 수 있다:
$ find s_* -type f | xargs sha1sum
65c23f142ff6bcfdddeccebc0e5e63c41c9c1721 s_1/file_s11
d3d59905cf5fc930cd4bf5b709d5ffdbaa9443b2 s_2/file_s21
5590e00ea904568199b86aee4b770fb1b5645ab8 s_a/file_02
관련 프로그램
[편집]- shasum은 SHA-1, 224, 256, 384, 512 해시를 계산하기 위한 펄 프로그램이다.[7] 이 프로그램은 액티브펄 배포판에 포함되어 있다.
- sha3sum은 SHA-3, HAKE, RawSHAKE, SHA-3 함수를 계산하는 유사한 이름의 프로그램이다.[8]
- <hash>sum 명명 규칙은
b2sum및b3sum을 사용하는 BLAKE 팀과해시 트리프로그램 등 다수에서 사용된다. - FreeBSD 및 OpenBSD에서는 이 유틸리티를 md5, sha1, sha256, sha512라고 부른다. 이 버전들은 약간 다른 옵션과 기능을 제공한다. 추가로 FreeBSD는 Skein 계열의 메시지 다이제스트를 제공한다.[9]
같이 보기
[편집]각주
[편집]- ↑ “b2sum source code in GNU coreutils”. 《GNU coreutils mirror at GitHub》. 2022년 1월 29일에 확인함.
- ↑ Bruce Schneier. “Cryptanalysis of SHA-1”. Schneier on Security.
- ↑ “Announcing the first SHA1 collision”.
- ↑ “Sha1sum invocation (GNU Coreutils 9.0)”.
- ↑ “Mirror/Busybox”. 《깃허브》. 2021년 10월 26일.
- ↑ “Landley/Toybox”. 《깃허브》. 2021년 10월 26일.
- ↑ – 리눅스 General Commands Manual
- ↑ – 리눅스 General Commands Manual
- ↑ – FreeBSD 일반 명령어 매뉴얼 페이지