 |
파일속성 chattr / lsattr Programing/Linux | 2009/04/27 13:52
|
chattr의 사용형식은 다음과 같습니다.
명령어위치 : /usr/bin/chattr
사용형식 : chattr [-RV] [-v 설정버전] [+-=설정모드] 대상파일들
chattr에서 사용하는 [설정모드]는 다음과 같습니다.
+ : 지정한 속성을 부여합니다. +기호가 사용되면 지정한 속성을 부여한다는 의미입니다. : 지정한 속성을 제거합니다. -기호가 사용되면 부여된 속성을 제거한다는 의미입니다. : 원래 파일이 가지고 있던 그 속성만을 유지하게 합니다.
그리고 chattr에서의 -RVv옵션에 대한 설명은 다음과 같습니다.
-R : 서브디렉토리이하까지 그 속성을 변경할 수 있습니다.
-V : 자세한 출력모드를 제공합니다.
-v version : 지정된 파일에 버전을 설정할 수 있습니다.
또한 chattr명령어에서 무엇보다 중요한 것은 각 속성을 정확하게 이해하는 것입니다.
즉, chattr로 설정할 수 있는 파일(디렉토리)의 속성에는 다음과 같은 것들이 있습니다.
아래 각 속성의 의미를 정확하게 이해하시고 여러분들께서 관리하고 계시는 리눅스서버의 파일보안을 위하여 chattr로 설정(+)하시거나 또는 제거(-)하실 수 있습니다.
아래 속성의 의미를 파악하신 후에 이어지는 실제 사용예들을 보시기 바랍니다.
a 속성
해당 파일을 추가만 할 수 있습니다.
당연히 root만이 속성변경이 가능합니다. 파일보안을 위해 주로 사용하는 속성입니다.
c 속성
이 속성이 설정된 파일은 커널에 의해 디스크상에 자동적으로 압축된 상태로 저장이 되어 있습니다.
파일을 읽을 경우에는 압축을 해제한 상태로 되돌려주며 쓰기시에는 디스크에 저장하기 전에 파일을 압축합니다.
d 속성
이 속성이 설정된 파일은 dump로 백업이 되지않습니다.
i 속성
이 속성이 지정되어 있다면 해당파일의 변경, 삭제, 이름변경뿐 아니라 파일추가및 링크파일도 만들 수 없게 됩니다.
변경추가가 거의 없는 부팅관련 파일들에 설정하면 부팅이 되지않는 문제로 인한 시스템장애를 줄일 수 있습니다.
또한 a 속성과 함께 필자가 주로 사용하는 속성이기도 합니다.
s 속성
이 속성이 설정된 파일은 파일삭제가 될 경우에 해당블럭이 모두 0으로 되어 버리고 디스크에 다시 쓰기가 발생합니다.
S 속성 이 속성이 설정된 파일은 변경이 될 경우에 디스크동기화가 일어나는 효과를 그대로 누릴 수 있습니다.
u 속성
이 속성을 가진 파일이 삭제가 되었을 경우에는 그 내용이 저장이 되며 삭제되기 전의 데이터로 복구가 가능해집니다.
따라서 chattr로 파일과 디렉토리의 속성을 지정하는 주된 이유는 허가되지않은 사용자가 파일의 변경을 못하게하는 설정을 하여 파일보안을 하기위한 것입니다.
|
|
이 글의 관련글(트랙백) 주소 :: http://kdm0228.tistory.com/trackback/26
|
|
|
 |
RSA 암호화와 그 원리 Programing/암호화 | 2008/08/13 09:26
|
RSA 암호와 그 원리
샤미르, 리베스트, '암호학(Cryptography)의 모든 것' 에서 RSA 암호에 대해 간략하게 설명한 바 있다. RSA 암호는 공개키 암호(Public-key cryptography) 의 한 종류로 '큰 정수의 소인수분해의 난해성' 을 기초로 한 암호다. 이 암호는 1977년에 MIT 에서 리베스트(Ronald Rivest), 샤미르(Adi Shamir), 애들만(Leonard Adleman) 이 개발하였으며 그들 이름의 머리글자를 따서 RSA 암호라 이름 붙였다. 원래 영국 정보통신 사령부(GCHQ) 에 소속된 콕스(Clifford Cocks) 가 1973년에 동일한 시스템을 개발하였으나 이를 계산할만한 컴퓨터가 없어서 비록 주목은 받았으나 이용되지는 못하였다. 콕스의 발견은 1997년 까지 일급 기밀에 속해 있어서 세상에 알려지지 못하였다. RSA 암호는 2개의 키를 필요로 한다. 하나는 공개키 이고 하나는 개인키 인데, 메세지는 공개키를 통해 암호화 되고 오직 개인키를 통해 복호화 될 수 있다. RSA 알고리즘을 통한 키 생성은 다음과 같다.
- 먼저, 무작위로 큰 두 소수 p 와 q 를 고른다.
- 이 때,
를 통해 n 값을 계산한다.
- 또한, n 이하의 n 과 서로소인 수들의 개수 인
를 계산한다.
- 세번째로, 1 < e < φ(n), 이고 e 와 φ(n) 가 서로소인 e 를 선택한다.
- 마지막으로
를 만족하는 d 를 계산한다. 즉, 임의의 정수 k 에 대해서 다음을 만족할 것이다. de = 1 + kφ(n) 이제 부호화 할 준비는 끝났다. 이 때 (n,e) 는 공개키 이고, d 는 개인키 이다. 또한 숫자 p,q 도 매우 중요하기 때문에 공개키와 개인키의 생성이 끝난다면 곧바로 지워버리는 것이 상책이다.
부호화 과정
만약 앨리스(Alice)가 밥(Bob)에게 어떠한 메세지 M 을 보내려고 한다고 하자. 그렇다면 앨리스와 밥이 서로 알고있는 변환법(Padding scheme) 을 통해 M 을 m<n 인 m 으로 변환한다. 또한 밥은 앨리스에게 공개키인 n 과 e 를 알려준다. (이 공개키는 제 3자가 가로채도 안전하다.) 이 때 앨리스는 다음을 계산한 c 를 보내면 된다.
복호화 과정
밥은 앨리스로 부터 c 를 받았다. 이 때 밥은 그 만이 알고있는 개인키 d 를 이용해 다음과 같은 작업을 통해 c 로 부터 m 을 해독해 낼 수 있다.
이 때, m 으로 부터 변환법에 따라 역으로 해준다면 M 을 알 수 있을 것이다. 여기서 위의 식이 성립하는 이유는 다음과 같다. 일단 위의 식에서
가 된다. 또한
이므로,

- 로 분해 가능하다. 위 식을 변형시킨다면,
- 로 나타낼 수 있다. 이 때, m 이 p 의 배수가 아니라면 m 과 p 는 서로소 이다. 왜냐하면 p 가 소수이기 때문이다. 따라서 페르마 소정리의 의해 다음이 성립한다.
- 따라서 원래 식은 다음과 같이 바뀔 수 있다.
- 참고로 만약 m 이 p 의 배수여도 위 식이 성립한다. 왜냐하면
-
- 이기 때문이다.
똑같은 방법으로 q 에 대해서도 보일 수 있다.
- 이 때, p 와 q 는 모두 소수이고 p, q 각각 med − m 을 나누기 때문에 다음과 같은 결론을 내릴 수 있다.
- 따라서
- 가 성립한다.
실제로 RSA 암호를 이용해 보자.
- 두 소수 p=61, q=53 으로 정한다.
에서 n = 61 * 53 = 3233 으로 계산한다.
- 또한 n 이하의 n 과 서로소인 수들의 개수인 φ(n) 을 계산한다.

- 3120 과 서로소인 e 를 고른다. 이 때 e=17 이라 하자.
마지막으로 아래 식을 만족하는 d 를 계산하자. 이 때, d=2753 이라 하자.
이 때 m=123 을 암호화 하기 위해 n 과 e 를 이용해 계산해 보면
- 이 때 c 를 받은 밥은 비밀키 d=2753을 통해 해독할 수 있다.
 만약 제 3자가 n 을 알고있더라 해도 n 을 소인수분해 하지 못한다면 p,q 를 알 수 없다. 따라서 비밀키 d 는 안전하게 보관될 수 있다. 그러나 p,q 를 알아낸다면 d 를 손쉽게 알아 낼 수 있으므로 곧 암호는 뚤리게 된다. 따라서 보통 RSA 암호 키는 1024비트(2진수로 나타냈을 때, 1024자리란 뜻) 정도의 길이를 가지며 이를 푸는데는 수십년은 족히 걸린다. 1994년에 쇼어(Peter Shor) 가 쇼어의 알고리즘을 통해서 양자컴퓨터는 정수의 소인수분해를 다항시간 내에(polynomial time, 문제를 해결하는데 걸리는 시간함수가 다항함수 이하로 정해지는 경우) 할 수 있어 RSA 암호를 무용지물화 만들 수 있음을 보였다. 그러나 양자 컴퓨터는 아직 개발단계(2001년 IBM 서 15 의 소인수분해를 할 정도)에 머물러 있으며 실용화 되려도 오랜 시간이 걸릴 것으로 보인다.
|
|
이 글의 관련글(트랙백) 주소 :: http://kdm0228.tistory.com/trackback/24
|
|
|
|