Chris Crowe's Blog
Ramblings of an IIS MVP ( MVP Since 1997 )

Powered By IIS 7

Search my blog

Some of my readers



My Microsoft Certifications


Dec 15, 1998

Dec 20, 2000

Jan 31, 2001

Jul 22, 2002

Nov 1, 2004

My Microsoft MVP Awards




1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
mvp.support.microsoft.com

The BlackBerry API set is subdivided into five distinct classifications.

The first of these classifications is the set of “Open” APIs. These APIs include all standard Java APIs from MIDP and CLDC, as well as many BlackBerry-specific APIs. The open API set is, as the name implies, open for all developers. Applications developed that use only open APIs require no signatures of any sort.

The remaining classifications are all “Controlled” APIs. These APIs fall into four categories pertaining to their specific use:

  1. RIM Runtime APIs
  2. BlackBerry APIs
  3. RIM Cryptography
  4. Certicom Cryptography

There is a security risk associated with every class and method in these APIs. For example, the BlackBerry API allows a developer to access the user's Personal Information Manager (PIM) data, which may be a security risk to the end user. The RIM Runtime API allows the developer to send SMS messages, a potential security risk to the network operator and the end user.

To help control these risks, any application that uses a Controlled API will not run on a BlackBerry handheld unless the application is properly signed.

How Do Developers Sign Applications?

Prior to granting access to any of the Controlled APIs, RIM requires the developer to go through a simple registration process during which the developer's identity is verified. The developer needs to download and fill out a registration form from www.na.blackberry.com/eng/developers/downloads/api.jsp then fax it to RIM. Once the registration form and associated processing fee has been received, RIM will send the developer a set of keys via email. These keys can be used in conjunction with the Signature Tool utility in the BlackBerry JDE to sign any application.

The signing process itself is very straightforward. After compilation, the developer manually starts the Signature Tool , which displays a list of necessary signatures. With a single button press, the Signature Tool submits a hash of the application to RIM's signing authority. The signing authority automatically returns the required signature, which is automatically appended to the application. The application can then be loaded onto a handheld.

Detailed instructions related to installing keys and running the signature tool can be found in the BlackBerry Java Developer Guide, Volume 2 - Advanced Topics.

A Few Things to Remember...

In order to run applications that use controlled APIs on a handheld, you must first get it signed by RIM. At no point in the signing process does RIM receive a copy of your application, only a hash of the file(s). The application itself is not reviewed by RIM and the signing is completely automated. Should an application later turn out to have malicious intent, RIM will be able to determine the author of the application by matching the hash of the application against records of the hash kept by RIM signing authorities.

As a developer, your key is your identity. Do not give your keys to others or let others use your keys to sign their applications.

When you register for your keys, you will get three emails from RIM, one from each of the various signing authorities (with the exception of Certicom Crypto). Follow the instructions in the BlackBerry Developer Guide carefully. Also, when you request your keys, you provide RIM with a PIN number. This PIN is used in conjunction with the keys when first contacting the signing authority to ensure that you, and only you, can use the keys that you have been assigned.

To receive a key for the Certicom Cryptography APIs, RIM requires confirmation from Certicom Corp that you have a license for Certicom's Security Builder Toolkit v3.0.

Keep in mind that you do not need to register with RIM to use the JDE or to simulate applications. Applications do not need to be signed to run on the BlackBerry simulator.

Why a $100 fee?

A $100 fee is charged to sign applications. This fee is only charged once to receive a set of keys. There is no fee for each subsequent use of thek eys.

There are two reasons for the fee. First, a legitimate credit card account and a successful transaction help us verify the identity of the registrants. Second, it helps us offset some of the costs of running the program. The expectation is that this small fee is not a burden to legitimate developers, but creates a moderate disincentive for any developer with malicious intent.

For more details see http://na.blackberry.com/eng/developers/resources/journals/may_2004/give_me_a_sign.jsp

Note: The details above are taken from the page referenced above.

posted on Wednesday, July 11, 2007 8:19 AM | Filed Under [ Blackberry Development ]

Comments


# re: BlackBerry Code Signing 101

Gravatar
Hi chris ,
It was nice article.
Can you throw some light on the Procedure to be followed in Blackberry JDE to get signed..

Thanks,
Mohan.
Posted by Mohu on 7/20/2007 3:08 AM

# re: BlackBerry Code Signing 101

Gravatar
I received an Error when running an unsigned application Error statting SFA Module 'SFA' must be signed with the RIM Runtime Code Signing key (RRT). My application has not accessed any controlled api's. I have recently accessed XML api's on org.w3c.dom and net.rim.device.api.xml.parsers
Posted by Ade Omoboya on 11/23/2007 2:51 AM

# re: BlackBerry Code Signing 101

Gravatar
Hi ,
I have a J2ME application which uses networking and messaging APIs.
Since my application's size is more than 130KB so I have converted it into three cod files (2 Lib and one main COD).
When I launch the application it asks for permission, how can I avoid it?

Do i need to sign my application though it is not using any of the RIM/Blackberry APIs (Only J2me APIs)?

If yes, then do I need to sign all COD files?

Jayesh
jayesh.jjkk@yahoo.com

Posted by Jayesh on 5/29/2008 11:17 PM

# re: BlackBerry Code Signing 101

Gravatar
please update your article. i think the pricing is now $20 per order form
Posted by jacques koorts on 8/24/2008 7:24 PM

# re: BlackBerry Code Signing 101

Gravatar
yes even i am confused about 100$ and 20$...plz explain
Posted by akash shah on 9/30/2008 3:48 AM

# re: BlackBerry Code Signing 101

Gravatar
j'ai besoin de restaurer mon appareil black berry 7290. le menu téléphone et navigation ont été effacés de mon terminal mobile . j'ai besoin de votre aide . merci !
Posted by mr yao on 10/9/2008 12:22 AM

# re: BlackBerry Code Signing 101

Gravatar
Hi,

I am facing a trouble with signing keys. I have vista home premium on my development machine with JDE 4.2.0, JDE 4.2.1 and JDE 4.7.1 installed.

My project is configured and being developed in JDE 4.2.1 only. When I got keys from RIM, I double clicked the first .csi file. As this was the first time I am signing Blackberry app on this machine, I was asked to first create the missing csk files, so the two step process was carried out BUT it by default was done in JDE 4.7.1\bin directory and then I did registered all three .csi files successfully.

I didn't attempted to sign my application because it is in JDE 4.2.1, so I had to copy the sigtool.csh, sigtool.db and sigtool.set files to my JDE 4.2.1\bin directory.

Here is the problem, I dont see the three files in my JDE 4.7.1\bin directory.

Can anybody tell me where the hell these files gone, even after registration of all three .csi files.

I did tried to search using default search tool in Windows Vista Home Premium, but the files are found no where. Somebody just told me that it may be because I am not having the admin previliges, but thats not true, I have all the rights on my system.. I suppose. Do I?

Please help me in anyway you can.

Thanks in Advance.
Posted by sam on 10/24/2008 10:02 AM

# re: BlackBerry Code Signing 101

Gravatar
I got 3 emails from RIM , each file had an csi file.
I double click the csi file and the well known windows open with dialog appears. What to do noe ?

I tried to run signaturetool.jar file on command prompt azs follows:

javaw.exe -jar "C:\Program Files\Research In Motion\BlackBerry JDE 4.6.0\bin\SignatureTool.jar" "client-RBB-3296512345.csi"

it allows me to create keys....i move my mouse, and suddenly i get a message saying .....no "client-RBB-3296512345.csi" exist.

Any pointers ?
Posted by Abhijit Chandekar on 1/17/2009 12:57 PM

# re: BlackBerry Code Signing 101

Gravatar
Hello,
The sign up fee for the developers is not a wise idea. Developers' should be in freedom for using APIs and working with as well. Whatever the amount is - small or large.

Thanks.
Posted by Md. Nura Azom Lipon on 2/3/2009 5:14 PM

Post Comment


Title *
Name *
Email
Url
Comment *  
Please add 6 and 2 and type the answer here: