Tag Info

Hot answers tagged

7

Take care that the set of possible extensions is, by definition, not bounded (at least not practically; there is an internal limit a bit of about 1282255). There are standard extensions which are described in the X.509 standard, but there could be a lot more elsewhere. In particular, Microsoft's implementations (e.g. AD Certificate Services) tend to use a ...


6

It is the server's responsibility to serve up the entire certification chain. If your web server isn't doing that, it is misconfigured, and you should fix it. You can use the SSL test service from SSL Labs to test whether your server has SSL properly configured. Just type in your server's domain name, and it will give you a report indicating whether it ...


6

In "pure X.509", it does not really matter if an extension is critical or not, because conforming implementations are supposed to honour the extensions that they recognize, be they marked critical or not. The "critical" flag is for extensions which are not standard: you make such an extension critical if it is important for security (implementations which do ...


6

According to your comments to other answers, you actually want to sign a pdf file with [your] certificate, then have this signature saved and appended to the pdf [you]'ve just signed. (BTW, you sign with the private key associated with the public key in your certificate, not with the certificate itself, but that's a detail.) I assume you want to ...


6

In a certificate, the serial number is chosen by the CA which issued the certificate. It is just written in the certificate. The CA can choose the serial number in any way as it sees fit, not necessarily randomly (and it has to fit in 20 bytes). A CA is supposed to choose unique serial numbers, that is, unique for the CA. You cannot count on a serial number ...


5

A root CA is actually an illusion. In X.509, there are trust anchors. A trust anchor is, mostly, a name and a public key, which you know a priori and that you trust. Representation of that name and that public key as a "certificate file" (traditionally self-signed) is just a convenient way to keep the trust anchor as a bunch of bytes. As per X.509, a CA is ...


5

The Netscape extensions were defined by Netscape during Days of Yore -- around 1996 or so. Netscape did that because the "official" extensions were missing, ill-defined, or found to be lacking some way or another by the Netscape developers. Old Netscape versions (when it was called Navigator and Communicator) used these extensions, so you had to include ...


5

OpenSSH does not officially support x.509 certificate based authentication: The developers have maintained a stance that the complexity of X.509 certificates introduces an unacceptable attack surface for sshd. Instead, they have [recently] implemented an alternative certificate format which is much simpler to parse and thus introduces less risk. ...


5

Strictly speaking, a key should not be "multipurpose". Distinct key usages call for incompatible key life cycles. The Key Usage extension is a formalism of this fact. For instance, keys which are used for signatures and authentication could be lost with relatively low consequences: if your smart card is destroyed, you can no longer sign, but no data is ...


4

In addition to what @Tom Leek's said about the certification path API, it seems that you're talking about "TLS certificates", which I presume implies you may be using your X.509 certificate within the scope of TLS. To do this as part of Java's TLS stack (JSSE), you can use the existing X509TrustManager infrastructure. I must admit I'm not sure whether it ...


4

Certificate validation is, huh, a bit more than looking at the dates. Have a look at RFC 5280. It would be an utter delusion to believe that you could implement certificate validation with any kind of security, and decent interoperability, if you do not read several times and wholly understand that document. A lot of crud has accumulated on the ...


4

The base idea is that a policy describes the certification process over the whole path, not just at the level of a given CA. Within a given certificate C, the Certificate Policies extension gives the set of policies to which the process which resulted in the creation of C conforms. During validation (see section 6.1 of RFC 5280), the verifier computes the ...


4

Digital certificates are used to verify identities and affiliations online. People change jobs, students graduate, businesses fail or change ownership, private keys get leaked, and any number of other things may happen that would cause a particular certificate to stop being an accurate way to verify an identity. Certificates expire so that people using them ...


4

There are two distinct semantics that the nextUpdate field is used to convey: the date at which a newer CRL should be available, thus making it worth a new download (similarly, before the date given in the nextUpdate field, a cached CRL should be considered to be the newest); the date after which a given CRL should be considered obsolete. It is expected ...


4

The public key contained in a certificate can be used in two ways: It is used to decrypt something that has been encrypted with the corresponding private key (typically to verify a signature) It is used to encrypt something that will be "decrytable" only with the corresponding private key There is a great number of certificates on the Web, so in order to ...


4

In practice, what software can support is uniformResourceIdentifier. The extension then contains a URI which points to the CRL. http:// and ldap:// URL are rather common; https:// URL for CRL download raise interesting issues since the server certificate must then also be validated (so, in practice, it does not work well, or at all). In situations where ...


4

No extension is strictly necessary in the SSL server certificate, but some extensions can only help: An Authority Key Identifier extension will help clients link the certificate with the issuing CA. A CRL Distribution Points extension (non critical) should be used to point to the URL where the CRL should be found. An Authority Information Access extension ...


4

The correct name for the standard extension is Extended Key Usage; see section 4.2.1.12 of RFC 5280. Its OID is 2.5.29.37. Confusion comes from Microsoft documentation and software: They use "extended key usage" and "enhanced key usage" interchangeably. They defined a Microsoft-specific extension called "Application Policies" (OID 1.3.6.1.4.1.311.21.10) ...


3

It's about expanding trust, yes. If you trust both CA1 and CA2, and a cert is signed by both, you've got a very high level of trust because two seaparate entities that you trust have verified the cert. It has the added bonus of increasing the ease of verification of trust, such as situations where you've got clients that trust CA1 or CA2 (but not both). In ...


3

Self-signed and self-issued are two different things. Thus, the self-issued certificate has the same subject as issuer, but is not signed by the same key. This means there is another certificate which binds the public key used to signed the self-issued certificate. This can be used for key rollover, e.g. an organization starts using a new key, creates a new ...


3

I found an example here that is a lot more detailed than the text you are quoting from: http://tools.ietf.org/html/rfc2527 Section 3.2 and 3.3. This seemed particularly relevant from Section 3.3.1 - When processing a certification path, a certificate policy that is acceptable to the certificate-using application must be present in every ...


3

Without certificate revocation, your only way of validating a certificate would be to make sure the dates are good and that the CA that signed it is trusted. What if you issued a client certificate to a user for VPN access and that certificate was misplaced or stolen? What if a server was compromised and the certificate no longer trusted? Certificate ...


3

I'm attempting the same thing. I am doing a lot of research for this hobby and you'll find a very extensive set of things to think about here: How should I configure my Offline Root and Intermediate CA? Should I implement Suite B? Simply put, is there any way I could create a root certificate that could only be used to issue X.509 certificates to be ...


3

In firefox, you can edit the Trust level you give to a certificate. Go to the Advanced options, encryption and in the CA list, click on any certificate and then "Edit Trust". This gives you some flexibility.


3

In order to support this functionality the interpreter will have to be augmented. Fortunately this a code singing feature probably doesn't require a PHP extension like hardened-php. In fact there is a simpler way. You could change your php.ini to auto-prepend a php script that reads the $_SERVER['SCRIPT_FILENAME'] and verifies the current script's ...


3

Nominally, the contents of the extension (the extnValue) could be any sequence of bytes. The "value bytes" are to be interpreted relatively to the extension ID; each extension is free to define its own syntax. The extension which are defined by X.509 itself all use ASN.1: for each "standard" extension, the syntax for the corresponding value uses ASN.1, so ...


3

In ASN.1, there are two distinct types which are designated by BIT STRING. If you have this: Foo ::= BIT STRING then Foo is a type for a generic string of bits, with an arbitrary length, and arbitrary values for each bit. On the other hand, with this: Bar ::= BIT STRING { x (0), y (1), z (2) } then Bar is a type for a set of flags, and ...


3

ENUMERATED and INTEGER are almost identical (they just use distinct tags). The generic idea is that ENUMERATED is for a choice within a bounded set of possible values, whereas INTEGER is for values which could, at least theoretically, raise indefinitely. Here, the use of ENUMERATED for CRLReasons is a hint which says that "there shall be no other reason in ...


3

In X.509, all revocation goes through objects signed by certificate issuers. The decision to revoke or not revoke is not in the hands of the certificate owner, but of its issuing CA. The CA makes its decision known by including or not including the target certificate serial number in the CRL it produces (ditto for OCSP responses, which are just CRL with a ...


2

For PHP there are various encrypting engines like ionCube PHP encoder - these work as PHP extensions that hook into a parser and decrypt the code that is to be run, validating the signature, checking the restrictions of a licence file (e.g. MAC address, domain name, time restrictions). They can be set up so that a code that is not 'encrypted' with ...



Only top voted, non community-wiki answers of a minimum length are eligible